# eq (6) in Iglesias Z Krist. 221 (2006)
b := proc(p, q)
local d;
a := 0 ;
for d from 1 to min(p, q) do
if modp(p, d)=0 and modp(q, d)=0 then
ph := floor(p/2/d) ;
qh := floor(q/2/d) ;
a := a+numtheory[mobius](d)*binomial(ph+qh, ph) ;
end if ;
end do:
a ;
end proc:
# eq (17) in Iglesias Z Krist. 221 (2006)
bt := proc(p, q)
if type(p+q, 'odd') then
b(p, q) ;
else
0;
end if;
end proc:
# corrected eq (15) in Iglesias Z Krist. 221 (2006), d|(p/2) and d|(q/2)
bbtemp := proc(p, q)
local d, ph, qh;
a := 0 ;
for d from 1 to min(p, q) do
if modp(p, 2*d)=0 and modp(q, 2*d)=0 then
ph := p/2/d ;
qh := q/2/d ;
a := a+numtheory[mobius](d)*binomial(ph+qh, ph) ;
end if ;
end do:
a ;
end proc:
# eq (16) in Iglesias Z Krist. 221 (2006)
bb := proc(p, q)
if type(p, 'even') and type(q, 'even') then
( bbtemp(p, q)-bt(p/2, q/2) )/2 ;
else
0 ;
end if;
end proc:
# eq (25) in Iglesias Z Krist. 221 (2006)
FracR := proc(Phalf)
if type(Phalf, 'even') then
(bb(Phalf, Phalf)-
A045683(Phalf))/2 ;
else
0;
end if;
end proc:
# eq (24) in Iglesias Z Krist. 221 (2006)
local a, p, q, P ;
P := 2*n ;
a := FracR(P/2) ;
for q from 0 to P do
p := P-q ;
if modp(p-q, 3) = 0 and p < q then
a := a+bb(p, q) ;
end if;
end do:
a ;
end proc: