From 9e9c3b63423940f7cc6f1eb39a324793508ac666 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Thu, 21 May 2020 22:33:22 -0600 Subject: [PATCH] modify int_pow so that a power of -1 is valid (#548) --- src/prolog/machine/arithmetic_ops.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/prolog/machine/arithmetic_ops.rs b/src/prolog/machine/arithmetic_ops.rs index ab604e32..ae3e3c62 100644 --- a/src/prolog/machine/arithmetic_ops.rs +++ b/src/prolog/machine/arithmetic_ops.rs @@ -398,7 +398,7 @@ impl MachineState { match (n1, n2) { (Number::Fixnum(n1), Number::Fixnum(n2)) => { - if n1 != 1 && n2 < 0 { + if n1 != 1 && n2 < -1 { let n = Number::from(n1); let stub = MachineError::functor_stub(clause_name!("^"), 2); @@ -424,7 +424,7 @@ impl MachineState { } } (Number::Fixnum(n1), Number::Integer(n2)) => { - if n1 != 1 && &*n2 < &0 { + if n1 != 1 && &*n2 < &-1 { let n = Number::from(n1); let stub = MachineError::functor_stub(clause_name!("^"), 2); @@ -442,7 +442,7 @@ impl MachineState { } } (Number::Integer(n1), Number::Fixnum(n2)) => { - if &*n1 != &1 && n2 < 0 { + if &*n1 != &1 && n2 < -1 { let n = Number::Integer(n1); let stub = MachineError::functor_stub(clause_name!("^"), 2); @@ -460,7 +460,7 @@ impl MachineState { } } (Number::Integer(n1), Number::Integer(n2)) => { - if &*n1 != &1 && &*n2 < &0 { + if &*n1 != &1 && &*n2 < &-1 { let n = Number::Integer(n1); let stub = MachineError::functor_stub(clause_name!("^"), 2); -- 2.54.0