Skip to content

Commit ab7bcec

Browse files
committed
Introduced 0 (zero) to mp_is_square as a perfect square
1 parent 2cec6ad commit ab7bcec

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

demo/test.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,17 @@ static int test_mp_is_square(void)
677677

678678
DOR(mp_init_multi(&a, &b, NULL));
679679

680+
681+
/* Domain is {x \in \mathbb{Z} : x \le 0} */
682+
mp_set_l(&a, -1);
683+
EXPECT(mp_is_square(&a, &res) == MP_VAL);
684+
EXPECT(!res);
685+
686+
/* Zero is a perfect square, too */
687+
mp_zero(&a);
688+
DO(mp_is_square(&a, &res));
689+
EXPECT(res);
690+
680691
for (i = 0; i < 1000; ++i) {
681692
printf("%6d\r", i);
682693
fflush(stdout);

mp_is_square.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ mp_err mp_is_square(const mp_int *arg, bool *ret)
4141
}
4242

4343
if (mp_iszero(arg)) {
44+
*ret = true;
4445
return MP_OKAY;
4546
}
4647

0 commit comments

Comments
 (0)