\\ Implementation of assembly level operations \\ in pari for illustration. padd(a,b,r)= { time++; [(a+b+r)%M,(a+b+r)\M]; } psub(a,b,r)= { time++; if ((a >= b+r), [(a-b-r),0], [M+a-b-r,1] ); } pmul(a,b)= { time++; [(a*b)%M,(a*b)\M]; } pdiv(a,b,c)= { time++; [(b*M+c)\a,(b*M+c)%a]; }