%I #51 Mar 24 2024 13:17:40
%S 0,1,0,1,4,5,4,5,0,1,0,1,4,5,4,5,16,17,16,17,20,21,20,21,16,17,16,17,
%T 20,21,20,21,0,1,0,1,4,5,4,5,0,1,0,1,4,5,4,5,16,17,16,17,20,21,20,21,
%U 16,17,16,17,20,21,20,21,64,65,64,65,68,69,68,69,64,65,64,65,68,69,68
%N Remove odd-positioned bits from the binary expansion of n.
%C a(n) is the formal derivative of x*n (evaluated at x=2 after being lifted to Z[x]) where n is interpreted as a polynomial in GF(2)[x] via its binary expansion. - _Keith J. Bauer_, Mar 17 2024
%H Reinhard Zumkeller, <a href="/A063694/b063694.txt">Table of n, a(n) for n = 0..10000</a>
%H Ralf Stephan, <a href="/somedcgf.html">Some divide-and-conquer sequences ...</a>
%H Ralf Stephan, <a href="/A079944/a079944.ps">Table of generating functions</a>
%F a(n) = Sum_{k>=0} (-1)^k*2^k*floor(n/2^k).
%F a(n) + A063695(n) = n.
%F a(n) = n - 2*a(floor(n/2)). - _Vladeta Jovovic_, Feb 23 2003
%F G.f.: 1/(1-x) * Sum_{k>=0} (-2)^k*x^2^k/(1-x^2^k). - _Ralf Stephan_, May 05 2003
%F a(n) = 4*a(floor(n/4)) + (n mod 4) mod 2. - _Reinhard Zumkeller_, Sep 26 2015
%F a(n) = Sum_{k>=0} A030308(n,k)*A199572(k). - _Philippe Deléham_, Jan 12 2023
%e a(25) = 17 because 25 = 11001 in binary and when we AND this with 10101 we are left with 10001 = 17.
%p every_other_pos := proc(nn, x, w) local n, i, s; n := nn; i := 0; s := 0; while(n > 0) do if((i mod 2) = w) then s := s + ((x^i)*(n mod x)); fi; n := floor(n/x); i := i+1; od; RETURN(s); end: [seq(every_other_pos(j, 2, 0), j=0..120)];
%t a[n_] := BitAnd[n, Sum[2^k, {k, 0, Log[2, n] // Floor, 2}]]; Table[a[n], {n, 0, 100}] (* _Jean-François Alcover_, Feb 28 2016 *)
%o (PARI) a(n)=sum(k=0,n,(-1)^k*2^k*floor(n/2^k)) /* since n> ceil(log(n)/log(2)) */
%o (PARI) a(n)=if(n<0,0,sum(k=0,n,(-1)^k*2^k*floor(n/2^k))) /* since n> ceil(log(n)/log(2)) */
%o (Haskell)
%o a063694 0 = 0
%o a063694 n = 4 * a063694 n' + mod q 2
%o where (n', q) = divMod n 4
%o -- _Reinhard Zumkeller_, Sep 26 2015
%o (Magma)
%o function A063694(n)
%o if n le 1 then return n;
%o else return 4*A063694(Floor(n/4)) + ((n mod 4) mod 2);
%o end if; return A063694;
%o end function;
%o [A063694(n): n in [0..120]]; // _G. C. Greubel_, Dec 05 2022
%o (SageMath)
%o def A063694(n):
%o if (n<2): return n
%o else: return 4*A063694(floor(n/4)) + ((n%4)%2)
%o [A063694(n) for n in range(121)] # _G. C. Greubel_, Dec 05 2022
%o (Python)
%o def A063694(n): return n&((1<<(m:=n.bit_length())+(m&1))-1)//3 # _Chai Wah Wu_, Jan 30 2023
%Y Cf. A004514, A063695 (remove even-positioned bits), A088442.
%K nonn,base,easy
%O 0,5
%A _Antti Karttunen_, Aug 03 2001