From: Mark Thom Date: Fri, 22 May 2020 04:33:22 +0000 (-0600) Subject: modify int_pow so that a power of -1 is valid (#548) X-Git-Tag: v0.8.123~6 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=9e9c3b63423940f7cc6f1eb39a324793508ac666;p=scryer-prolog.git modify int_pow so that a power of -1 is valid (#548) --- 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);