function testMultIm()
 {
     /*{{{*/
     $tmp = Math_ComplexOp::multIm($this->cnum1, $this->im);
     $this->assertEquals('0.6 - 0.36i', $tmp->toString());
 }
Пример #2
0
 /**
  * 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);
     }
 }
if (!Math_ComplexOp::areEqual($a, $b)) {
    echo "a != b\n";
}
$z = Math_ComplexOp::add($a, $b);
echo "add(a, b) = " . $z->toString() . "\n";
$z = Math_ComplexOp::sub($a, $b);
echo "sub(a,b) = a - b = " . $z->toString() . "\n";
$t = Math_ComplexOp::sub($b, $a);
echo "b - a: " . $t->toString() . "\n";
$t = Math_ComplexOp::sub($b, Math_ComplexOp::conjugate($a));
echo "b - a': " . $t->toString() . "\n";
$v = Math_ComplexOp::conjugate($b);
$t = Math_ComplexOp::sub($v, $a);
echo "b' - a: " . $t->toString() . "\n";
$v = Math_ComplexOp::conjugate($b);
$t = Math_ComplexOp::sub($v, Math_ComplexOp::conjugate($a));
echo "b' - a': " . $t->toString() . "\n";
$z = Math_ComplexOp::mult($a, $b);
echo "mult(a, b) = " . $z->toString() . "\n";
$z = Math_ComplexOp::div($a, $b);
echo "div(a, b) = " . $z->toString() . "\n";
$z = Math_ComplexOp::pow($a, $b);
echo "pow(a, b) = " . $z->toString() . "\n";
$z = Math_ComplexOp::logBase($a, $b);
echo "logBase(a, b) = " . $z->toString() . "\n";
$z = Math_ComplexOp::multReal($a, M_PI);
echo "multReal(a, M_PI) = " . $z->toString() . "\n";
$z = Math_ComplexOp::multIm($a, $im);
echo "multIm(a, i) = " . $z->toString() . "\n";
$z = Math_ComplexOp::powReal($a, M_E);
echo "powReal(a, M_E) = " . $z->toString() . "\n";