Differences Between: [Versions 310 and 311] [Versions 39 and 311]
1 <?php 2 3 /** 4 * 5 * Function code for the complex pow() function 6 * 7 * @copyright Copyright (c) 2013-2018 Mark Baker (https://github.com/MarkBaker/PHPComplex) 8 * @license https://opensource.org/licenses/MIT MIT 9 */ 10 namespace Complex; 11 12 /** 13 * Returns a complex number raised to a power. 14 * 15 * @param Complex|mixed $complex Complex number or a numeric value. 16 * @param float|integer $power The power to raise this value to 17 * @return Complex The complex argument raised to the real power. 18 * @throws Exception If the power argument isn't a valid real 19 */ 20 function pow($complex, $power): Complex 21 { 22 $complex = Complex::validateComplexArgument($complex); 23 24 if (!is_numeric($power)) { 25 throw new Exception('Power argument must be a real number'); 26 } 27 28 if ($complex->getImaginary() == 0.0 && $complex->getReal() >= 0.0) { 29 return new Complex(\pow($complex->getReal(), $power)); 30 } 31 32 $rValue = \sqrt(($complex->getReal() * $complex->getReal()) + ($complex->getImaginary() * $complex->getImaginary())); 33 $rPower = \pow($rValue, $power); 34 $theta = $complex->argument() * $power; 35 if ($theta == 0) { 36 return new Complex(1); 37 } 38 39 return new Complex($rPower * \cos($theta), $rPower * \sin($theta), $complex->getSuffix()); 40 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body