diff --git a/kalk/src/kalk_num/regular.rs b/kalk/src/kalk_num/regular.rs index 0dd5332..cf5b338 100644 --- a/kalk/src/kalk_num/regular.rs +++ b/kalk/src/kalk_num/regular.rs @@ -107,7 +107,7 @@ impl KalkNum { } pub(crate) fn pow_without_unit(self, rhs: KalkNum) -> KalkNum { - if self.has_imaginary() || rhs.has_imaginary() { + if self.has_imaginary() || rhs.has_imaginary() || (self.value < 0f64 && rhs.value < 1f64) { let a = self.value.clone(); let b = self.imaginary_value.clone(); let c = rhs.value; diff --git a/kalk/src/kalk_num/with_rug.rs b/kalk/src/kalk_num/with_rug.rs index c34b02c..b230395 100644 --- a/kalk/src/kalk_num/with_rug.rs +++ b/kalk/src/kalk_num/with_rug.rs @@ -65,7 +65,7 @@ impl KalkNum { } pub(crate) fn pow_without_unit(self, rhs: KalkNum) -> KalkNum { - if self.has_imaginary() || rhs.has_imaginary() { + if self.has_imaginary() || rhs.has_imaginary() || (self.value < 0f64 && rhs.value < 1f64) { let a = self.value.clone(); let b = self.imaginary_value.clone(); let c = rhs.value;