bernvec := function(nomb)
    B := [R | 1];
    four := R!4;
    for i := 1 to nomb do
	p1 := zero;
	p2 := four;
	n := 8;
	m := 5;
	d1 := i - 1;
	d2 := 2 * i - 3;
	for j := i - 1 to 1 by -1 do
	    p1 := ((n * m) * (p1 + B[j + 1])) / (d1 * d2);
	    p2 := p2 * 4;
	    n +:= 4;
	    m +:= 2;
	    d1 -:= 1;
	    d2 -:= 2;
	end for;
	p1 := 1 - (1 + p1) / (2 * i + 1);
	B[i + 1] := p1 / p2;
    end for;
    return B;
end function;

B := bernvec(10);
B2 := [BernoulliApproximation(2*i): i in [0 .. 10]];
for i in [1 .. #B] do
    if Abs(B2[i] - B[i]) gt elt<R | 1, -24> then
	print "ERROR: BernoulliApproximation", i;
    end if;
end for;
