1 # negate r when n > (p-1)/2
4 r = n > (p-1)>>1 ? m : r;
8 # curve a*x**2+y**2==1+d*x**2*y**2
9 # input X,Y,Z,T (extended coordinates)
10 decaf_encode(p,a,d, X,Y,Z,T, s) mod(p) {
11 r = misqrt((a-d)*(Z+Y)*(Z-Y), p);
13 decaf_neg(p, -2*u*Z, r);
14 s = u*(r*(a*Z*X-d*Y*T)+Y)/a;
19 # curve a*x**2+y**2==1+d*x**2*y**2
21 # output in extended coordinates
22 decaf_decode(p,a,d, s, ok,X,Y,Z,T) {