From bb64b59e11b73daa4e21148a62fa6ff3fe75d159 Mon Sep 17 00:00:00 2001 From: Andreu Correa Date: Sun, 30 Apr 2017 21:01:13 +0200 Subject: [PATCH] Use guard clause in Decimal::pow --- src/Decimal.php | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/Decimal.php b/src/Decimal.php index 6b4aa7b..55fc7f1 100644 --- a/src/Decimal.php +++ b/src/Decimal.php @@ -340,20 +340,16 @@ public function pow(Decimal $b, int $scale = null): Decimal $pow_scale ); } else { // elseif ($this->isNegative()) - if ($b->isInteger()) { - if (\preg_match('/^[+\-]?[0-9]*[02468](\.0+)?$/', $b->value, $captures) === 1) { - // $b is an even number - return $this->additiveInverse()->pow($b, $scale); - } else { - // $b is an odd number - return $this->additiveInverse()->pow($b, $scale)->additiveInverse(); - } + if (!$b->isInteger()) { + throw new NotImplementedError( + "Usually negative numbers can't be powered to non integer numbers. " . + "The cases where is possible are not implemented." + ); } - throw new NotImplementedError( - "Usually negative numbers can't be powered to non integer numbers. " . - "The cases where is possible are not implemented." - ); + return (\preg_match('/^[+\-]?[0-9]*[02468](\.0+)?$/', $b->value, $captures) === 1) + ? $this->additiveInverse()->pow($b, $scale) // $b is an even number + : $this->additiveInverse()->pow($b, $scale)->additiveInverse(); // $b is an odd number } } }