Lines Matching refs:a

13 BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w)  in BN_mod_word()  argument
31 BIGNUM *tmp = BN_dup(a); in BN_mod_word()
42 bn_check_top(a); in BN_mod_word()
44 for (i = a->top - 1; i >= 0; i--) { in BN_mod_word()
51 ret = ((ret << BN_BITS4) | ((a->d[i] >> BN_BITS4) & BN_MASK2l)) % w; in BN_mod_word()
52 ret = ((ret << BN_BITS4) | (a->d[i] & BN_MASK2l)) % w; in BN_mod_word()
54 ret = (BN_ULLONG) (((ret << (BN_ULLONG) BN_BITS2) | a->d[i]) % in BN_mod_word()
61 BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w) in BN_div_word() argument
66 bn_check_top(a); in BN_div_word()
72 if (a->top == 0) in BN_div_word()
78 if (!BN_lshift(a, a, j)) in BN_div_word()
81 for (i = a->top - 1; i >= 0; i--) { in BN_div_word()
84 l = a->d[i]; in BN_div_word()
87 a->d[i] = d; in BN_div_word()
89 if ((a->top > 0) && (a->d[a->top - 1] == 0)) in BN_div_word()
90 a->top--; in BN_div_word()
92 if (!a->top) in BN_div_word()
93 a->neg = 0; /* don't allow negative zero */ in BN_div_word()
94 bn_check_top(a); in BN_div_word()
98 int BN_add_word(BIGNUM *a, BN_ULONG w) in BN_add_word() argument
103 bn_check_top(a); in BN_add_word()
110 if (BN_is_zero(a)) in BN_add_word()
111 return BN_set_word(a, w); in BN_add_word()
113 if (a->neg) { in BN_add_word()
114 a->neg = 0; in BN_add_word()
115 i = BN_sub_word(a, w); in BN_add_word()
116 if (!BN_is_zero(a)) in BN_add_word()
117 a->neg = !(a->neg); in BN_add_word()
120 for (i = 0; w != 0 && i < a->top; i++) { in BN_add_word()
121 a->d[i] = l = (a->d[i] + w) & BN_MASK2; in BN_add_word()
124 if (w && i == a->top) { in BN_add_word()
125 if (bn_wexpand(a, a->top + 1) == NULL) in BN_add_word()
127 a->top++; in BN_add_word()
128 a->d[i] = w; in BN_add_word()
130 bn_check_top(a); in BN_add_word()
134 int BN_sub_word(BIGNUM *a, BN_ULONG w) in BN_sub_word() argument
138 bn_check_top(a); in BN_sub_word()
145 if (BN_is_zero(a)) { in BN_sub_word()
146 i = BN_set_word(a, w); in BN_sub_word()
148 BN_set_negative(a, 1); in BN_sub_word()
152 if (a->neg) { in BN_sub_word()
153 a->neg = 0; in BN_sub_word()
154 i = BN_add_word(a, w); in BN_sub_word()
155 a->neg = 1; in BN_sub_word()
159 if ((a->top == 1) && (a->d[0] < w)) { in BN_sub_word()
160 a->d[0] = w - a->d[0]; in BN_sub_word()
161 a->neg = 1; in BN_sub_word()
166 if (a->d[i] >= w) { in BN_sub_word()
167 a->d[i] -= w; in BN_sub_word()
170 a->d[i] = (a->d[i] - w) & BN_MASK2; in BN_sub_word()
175 if ((a->d[i] == 0) && (i == (a->top - 1))) in BN_sub_word()
176 a->top--; in BN_sub_word()
177 bn_check_top(a); in BN_sub_word()
181 int BN_mul_word(BIGNUM *a, BN_ULONG w) in BN_mul_word() argument
185 bn_check_top(a); in BN_mul_word()
187 if (a->top) { in BN_mul_word()
189 BN_zero(a); in BN_mul_word()
191 ll = bn_mul_words(a->d, a->d, a->top, w); in BN_mul_word()
193 if (bn_wexpand(a, a->top + 1) == NULL) in BN_mul_word()
195 a->d[a->top++] = ll; in BN_mul_word()
199 bn_check_top(a); in BN_mul_word()