It's great that it's much harder to find issues.

Looking at the new $modinv I haven't yet run into anything yet involving integer parameters, but in both doubles/bf mode for modinverse(A,B) the 'A' is ignoring the fraction but the 'B' is not, and and that is making it return some unusual numbers, and causes $modinv(A,B.2) to not match $powmod(A,-1,B.2) in the examples below. I'm not planning to use floats for parameters, but this behavior in other identifiers allows us scriptors to be lazy by avoiding a call to $int() to sanitize inputs.

//var -s %i 0 , %m 7.2 | while (%i isnum 0- %m) { echo -ag %i : $powmod(%i,-1,%m ) vs $modinv(%i,%m) | inc %I }

0 : -1 vs -1
1 : 1 vs -28
2 : 4 vs -10
3 : 5 vs -4
4 : 2 vs -1
5 : 3 vs 3242591731706750
6 : 6 vs 1
7 : -1 vs 1158068475609551

//var -s %i 0 , %m.bf $calc(2^64 -11) $+ .1 | while (%i isnum 0- 10) { echo -ag %i : $powmod(%i,-1,%m.bf ) vs $modinv(%i,%m.bf) | inc %I }

0 : -1 vs -1
1 : 1 vs 0
2 : 9223372036854775803 vs 83010348331692982223
3 : 6148914691236517202 vs 0
4 : 13835058055282163704 vs -32281802128991715308
5 : -1 vs 14757395258967641284
6 : 3074457345618258601 vs 21521201419327810206
7 : 10540996613548315203 vs -10540996613548315202
8 : 6917529027641081852 vs -6917529027641081851
9 : 14347467612885206804 vs 14347467612885206804
10 : -1 vs 90389045961176802865