Home | History | Annotate | Download | only in libtommath

Lines Matching defs:u3

19    a*u1 + b*u2 = u3
21 int mp_exteuclid(mp_int *a, mp_int *b, mp_int *U1, mp_int *U2, mp_int *U3)
23 mp_int u1,u2,u3,v1,v2,v3,t1,t2,t3,q,tmp;
26 if ((err = mp_init_multi(&u1, &u2, &u3, &v1, &v2, &v3, &t1, &t2, &t3, &q, &tmp, NULL)) != MP_OKAY) {
30 /* initialize, (u1,u2,u3) = (1,0,a) */
32 if ((err = mp_copy(a, &u3)) != MP_OKAY) { goto _ERR; }
40 /* q = u3/v3 */
41 if ((err = mp_div(&u3, &v3, &q, NULL)) != MP_OKAY) { goto _ERR; }
43 /* (t1,t2,t3) = (u1,u2,u3) - (v1,v2,v3)q */
49 if ((err = mp_sub(&u3, &tmp, &t3)) != MP_OKAY) { goto _ERR; }
51 /* (u1,u2,u3) = (v1,v2,v3) */
54 if ((err = mp_copy(&v3, &u3)) != MP_OKAY) { goto _ERR; }
62 /* make sure U3 >= 0 */
63 if (u3.sign == MP_NEG) {
66 mp_neg(&u3, &u3);
72 if (U3 != NULL) { mp_exch(U3, &u3); }
75 _ERR: mp_clear_multi(&u1, &u2, &u3, &v1, &v2, &v3, &t1, &t2, &t3, &q, &tmp, NULL);