hermann on Tue, 01 Oct 2024 10:37:58 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: What is the Mathematica "PowerMod[a, 1/2, m]" equivalent in PARI/GP? |
On 2024-10-01 07:38, Loïc Grenié wrote:
PowerMod[] can deal with non-prime modulus — how can this be computed with PARI/GP? pi@raspberrypi5:~ $ time wolframscript -code"PowerMod[41,1/2,71641520761751435455133616475667090434063332228247871795429]"15567422879070002639383923810785206745982804843948310703484 real 0m59.452s user 0m0.341s sys 0m0.071s pi@raspberrypi5:~ $Presumably issquare is your solution. my(r);issquare(Mod(41,71641520761751435455133616475667090434063332228247871795429),&r);r cpu time = 2,615 ms, real time = 2,644 ms. %1 = Mod(19404231649676781033243368819091487975254979923473930822898, 71641520761751435455133616475667090434063332228247871795429) Best, Loïc
Thank you, exactly what I searched for. And PARI/GP is much faster than Mathematica for that computation! First I overclocked my 2.4GHz default frequency Raspberry Pi5 to 3GHz. Mathematica does now need 50 seconds instead of 59 seconds before: pi@raspberrypi5:~/RSA_numbers_factored/pari $ freq min=cur=3000000=maxpi@raspberrypi5:~/RSA_numbers_factored/pari $ time wolframscript -code "PowerMod[41,1/2,71641520761751435455133616475667090434063332228247871795429]"
15567422879070002639383923810785206745982804843948310703484 real 0m50.558s user 0m0.360s sys 0m0.063s pi@raspberrypi5:~/RSA_numbers_factored/pari $ As said, PARI/GP is much faster(!), only 4 seconds:pi@raspberrypi5:~/RSA_numbers_factored/pari $ gp -q RSA_numbers_factored.gp
? [,n,p,q]=RSA.get(59)[59, 71641520761751435455133616475667090434063332228247871795429, 200429218120815554269743635437, 357440504101388365610785389017, [2, 2; 3, 2; 946790500267, 1; 5880369817360553, 1], [2, 3; 41, 1; 149, 1; 1356913, 1; 2739881, 1; 1967251783951, 1]]
? issquare(Mod(41,n),&r); ? ## *** last result: cpu time 4,167 ms, real time 4,168 ms. ? lift(r^2) 41 ? #digits(n) 59 ? pi@raspberrypi5:~/RSA_numbers_factored/pari $Having a (faster) method for that computation on PARI/GP opens up all my x86_64 CPUs including my faster AMD 7950X PC. While Mathematica use is free on Raspberry single board computers, Raspberry CPUs are much slower than the x86_64 CPUs I have and with
PARI/GP they can do the computations much faster. Regards, Hermann.