Alternating Power Fibonacci Sequence Definition

The Alternating Power Fibonacci Sequence is formed as follows.


Start with the empty sequence and set n to 1.
Compute fn, the nth non-negative Fibonacci number, with repetitions.
0 is the first, 1 is the second and the third, 2 is the fourth. All others are obtained by summing the two previous numbers in the sequence, so 3 = 1 + 2 is the fifth, 5 = 2 + 3 is the sixth, etc.
If n is odd, change the sign of fn.
Append 2n-1 copies of fn to the sequence.
Increment n and go back to step 2.


These are the first one hundred terms of the APF sequence.

 0  1  1 -1 -1 -1 -1  2  2  2  2  2  2  2  2 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
-3 -3 -3 -3 -3 -3  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5
 5  5  5  5  5  5  5  5  5  5  5  5  5 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8
-8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8


Task

Write a full program or a function that takes a positive integer n as input and prints or returns the nth term of the APF sequence.

If you prefer 0-based indexing, you can alternatively take a non-negative integer n and print or return the APF number at index n.

This is code-golf; may the shortest code in bytes win!

Test cases (1-based)

    1 -&gt;    0
    2 -&gt;    1
    3 -&gt;    1
    4 -&gt;   -1
    7 -&gt;   -1
    8 -&gt;    2
  100 -&gt;   -8
  250 -&gt;   13
  500 -&gt;  -21
 1000 -&gt;   34
11111 -&gt;  233
22222 -&gt; -377
33333 -&gt;  610


Test cases (0-based)

    0 -&gt;    0
    1 -&gt;    1
    2 -&gt;    1
    3 -&gt;   -1
    6 -&gt;   -1
    7 -&gt;    2
   99 -&gt;   -8
  249 -&gt;   13
  499 -&gt;  -21
  999 -&gt;   34
11110 -&gt;  233
22221 -&gt; -377
33332 -&gt;  610
Python 2, 30 bytes



f=lambda n:n&lt;1or f(n/4)-f(n/2)


Try it online!

One-indexed.

The sequence felt like a puzzle, something that Dennis generated by having a short way to express it. The power-of-two repetitions suggest recursing by bit-shifting (floor-dividing by 2). The alternating-sign Fibonacci recursion f(n)=f(n-2)-f(n-1) can be adapted to bitshift in place of decrementing. The base case works out nicely because everything funnels to n=0.