aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/environment.c2
-rw-r--r--src/stdlib/integers.c4
-rw-r--r--src/stdlib/integers.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/environment.c b/src/environment.c
index 35c76fe5..651bc9ca 100644
--- a/src/environment.c
+++ b/src/environment.c
@@ -121,7 +121,7 @@ env_t *global_env(bool source_mapping)
{"power", "Int$power", "func(base:Int,exponent:Int -> Int)"},
#if __GNU_MP_VERSION >= 6
#if __GNU_MP_VERSION_MINOR >= 3
- {"prev_prime", "Int$prev_prime", "func(x:Int -> Int)"},
+ {"prev_prime", "Int$prev_prime", "func(x:Int -> Int?)"},
#endif
#endif
{"right_shifted", "Int$right_shifted", "func(x,y:Int -> Int)"},
diff --git a/src/stdlib/integers.c b/src/stdlib/integers.c
index b4ca69d3..bb39d99c 100644
--- a/src/stdlib/integers.c
+++ b/src/stdlib/integers.c
@@ -434,12 +434,12 @@ public Int_t Int$next_prime(Int_t x)
#if __GNU_MP_VERSION >= 6
#if __GNU_MP_VERSION_MINOR >= 3
-public Int_t Int$prev_prime(Int_t x)
+public OptionalInt_t Int$prev_prime(Int_t x)
{
mpz_t p;
mpz_init_set_int(p, x);
if (unlikely(mpz_prevprime(p, p) == 0))
- fail("There is no prime number before ", x);
+ return NONE_INT;
return Int$from_mpz(p);
}
#endif
diff --git a/src/stdlib/integers.h b/src/stdlib/integers.h
index c7643a8d..7b7cf12e 100644
--- a/src/stdlib/integers.h
+++ b/src/stdlib/integers.h
@@ -144,7 +144,7 @@ bool Int$is_prime(Int_t x, Int_t reps);
Int_t Int$next_prime(Int_t x);
#if __GNU_MP_VERSION >= 6
#if __GNU_MP_VERSION_MINOR >= 3
-Int_t Int$prev_prime(Int_t x);
+OptionalInt_t Int$prev_prime(Int_t x);
#endif
#endif
Int_t Int$choose(Int_t n, Int_t k);