isqrt
BIGNUM *n, *n_sqr, *lower, *upper, *testcase, *isqrt;
if ((isqrt = BN_CTX_get(ctx)) == NULL)
if (!bn_isqrt(isqrt, &is_perfect_square, n_sqr, ctx))
if ((cmp = BN_cmp(n, isqrt)) != 0 || !is_perfect_square) {
if (!bn_isqrt(isqrt, &is_perfect_square, upper, ctx))
if (!BN_sub_word(isqrt, 1))
if ((cmp = BN_cmp(n, isqrt)) != 0 || !is_perfect_square) {
if (!bn_isqrt(isqrt, &is_perfect_square, testcase, ctx))
if ((cmp = BN_cmp(n, isqrt)) != 0 ||
if (!bn_isqrt(isqrt, &is_perfect_square, testcase, ctx))
if (!BN_add_word(isqrt, 1))
if ((cmp = BN_cmp(n, isqrt)) != 0 || is_perfect_square) {
diag = isqrt(width * width + height * height);
diag = isqrt(width * width + height * height);
static int isqrt(int);
sq = isqrt(n);
static int isqrt(int);
sq = isqrt(n);
static int isqrt(int);
sq = isqrt(n);