source 2007 Bernstein--Lange compute a0 = S1 compute a1 = C1 compute a2 = D1 compute a3 = Z1 compute l1 = a3 a1 compute m = l1^2 compute l2 = a0 a2 compute n = l2^2 compute l3 = 2(a1 a2)^2 compute r3 = m+n compute r0 = (l1+l2)^2-r3 compute r1 = m-n compute r2 = l3-r1 compute S3 = r0 compute C3 = r1 compute D3 = r2 compute Z3 = r3