function testLog() { /*{{{*/ $tmp = Math_ComplexOp::log($this->cnum1); $this->assertEquals('-0.539404830686 + 1.03037682652i', $tmp->toString()); }
/** * Returns the logarithm of base c2 of the complex number c1 * * @param Math_Complex $c1 * @param Math_Complex $c2 * @return Math_Complex A valid Math_Complex number on success * @throws InvalidArgumentException */ public static function logBase(Math_Complex $c1, Math_Complex $c2) { if (!Math_ComplexOp::isComplex($c1) || !Math_ComplexOp::isComplex($c2)) { throw new InvalidArgumentException('Both arguments must be Math_Complex objects'); } else { return Math_ComplexOp::div(Math_ComplexOp::log($c1), Math_ComplexOp::log($c2)); } }
require_once 'Math/ComplexOp.php'; $a = new Math_Complex(0.3, 0.5); $b = new Math_Complex(1.0, -M_PI_2); $im = -1.2; echo "a = " . $a->toString() . "\n"; echo "b = " . $b->toString() . "\n"; echo "im = {$im}i\n"; $z = Math_ComplexOp::createFromPolar(0.022, -0.223); echo "from polar, z = " . $z->toString() . "\n"; $z = Math_ComplexOp::sqrt($a); echo "sqrt(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::sqrtReal(-2.3); echo "sqrtReal(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::exp($a); echo "exp(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::log($a); echo "log(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::log10($a); echo "log10(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::conjugate($a); echo "conjugate(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::negative($a); echo "negative(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::inverse($a); echo "inverse(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::sin($a); echo "sin(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::cos($a); echo "cos(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::tan($a); echo "tan(a) = " . $z->toString() . "\n";