| hermann on Tue, 05 Sep 2023 18:05:29 +0200 | 
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Questions on PARI/GP formatting | 
There seems to be no PARI/GP formatter tool: https://pari.math.u-bordeaux.fr/archives/pari-dev-2308/msg00029.html I added "\" suffix for multiline functions. Is there a simpler way? I added whitespace where it helped me, but overall it is not consistent. Are there best practices wrt GP optional whitespace use? I use "break", should it be "break()" instead? Is there a GP formatting best practices document?GP gist (determines sqrt(-1) (mod n) for rsa semiprime n and verifies by squaring):
https://gist.github.com/Hermann-SW/50514eaf06b4d91ec6bcee5e49732dff
\r RSA_numbers_factored
test(v) = {\
  if(#v < 4, break);\
  [l,n,p,q] = v;\
  if ((p%4 != 1) || (q%4 != 1), break);\
  forprime(t=2, oo, if(kronecker(t, p)==-1, pnr=t;break) );\
  forprime(t=2, oo, if(kronecker(t, q)==-1, qnr=t;break) );\
  r=centerlift( chinese( Mod(pnr, p)^((p-1)/4), Mod(qnr, q)^((q-1)/4) 
)^2 );\
print(l," ",r);\ }; foreach(rsa, v, test(v)) Output: hermann@i7-11850h:~/RSA_numbers_factored/pari$ gp -q < rsa_test.gp validate(rsa): ✓ 59 -1 129 -1 180 -1 230 -1 768 -1 hermann@i7-11850h:~/RSA_numbers_factored/pari$ Regards, Hermann.