function testAtan() { /*{{{*/ $tmp = Math_ComplexOp::atan($this->cnum1); $this->assertEquals('0.36890753006 + 0.482240147685i', $tmp->toString()); }
/** * Calculates the inverse hyperbolic tangent of a complex number: z = atanh(c1) * * @param Math_Complex $c1 * @return Math_Complex A valid Math_Complex number on success * @throws InvalidArgumentException */ public static function atanh(Math_Complex $c1) { if (!Math_ComplexOp::isComplex($c1)) { throw new InvalidArgumentException('argument is not a Math_Complex object'); } if ($c1->getIm() == 0.0) { $r = $c1->getReal(); if ($r > -1.0 && $r < 1.0) { return Math_Complex(atanh($r), 0.0); } else { return Math_Complex(atanh(1 / $r), $a < 0 ? M_PI_2 : -1 * M_PI_2); } } else { $z = Math_ComplexOp::multIm($c1, 1.0); $z = Math_ComplexOp::atan($z); return Math_ComplexOp::multIm($z, -1.0); } }
echo "tan(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::sec($a); echo "sec(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::csc($a); echo "csc(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::cot($a); echo "cot(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::asin($a); echo "asin(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::asinAlt($a); echo "asinAlt(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::asinReal(-0.22); echo "asinReal(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::acos($a); echo "acos(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::atan($a); echo "atan(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::asec($a); echo "asec(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::acsc($a); echo "acsc(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::acot($a); echo "acot(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::sinh($a); echo "sinh(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::cosh($a); echo "cosh(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::tanh($a); echo "tanh(a) = " . $z->toString() . "\n"; $z = Math_ComplexOp::sech($a); echo "sech(a) = " . $z->toString() . "\n";