For invmod, b has to be > 1, fix a logic typo

This commit is contained in:
Ed Yu
2024-03-04 10:14:51 -08:00
parent 4c35633e01
commit de41c2256d

View File

@@ -2046,9 +2046,9 @@ internal_int_inverse_modulo :: proc(dest, a, b: ^Int, allocator := context.alloc
if internal_is_positive(a) && internal_eq(b, 1) { return internal_zero(dest) }
/*
`b` cannot be negative and has to be > 1
`b` cannot be negative and b has to be > 1
*/
if internal_is_negative(b) || internal_gt(b, 1) { return .Invalid_Argument }
if internal_is_negative(b) || !internal_gt(b, 1) { return .Invalid_Argument }
/*
If the modulus is odd we can use a faster routine instead.
@@ -2954,4 +2954,4 @@ internal_zero_unused :: proc { internal_int_zero_unused, }
/*
========================== End of low-level routines ==========================
*/
*/