PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.4.8
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.4.8
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 3.10.4 All 148 releases
visualizer / vendor / markbaker / complex / classes / src / functions / atan.php

atan.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.4.8, at vendor/markbaker/complex/classes/src/functions/atan.php

46 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 *
5 * Function code for the complex atan() 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 //include_once 'Math/Complex.php';
13 //include_once 'Math/ComplexOp.php';
14
15 /**
16 * Returns the inverse tangent of a complex number.
17 *
18 * @param Complex|mixed $complex Complex number or a numeric value.
19 * @return Complex The inverse tangent of the complex argument.
20 * @throws Exception If argument isn't a valid real or complex number.
21 * @throws \InvalidArgumentException If function would result in a division by zero
22 */
23 function atan($complex)
24 {
25 $complex = Complex::validateComplexArgument($complex);
26
27 if ($complex->isReal()) {
28 return new Complex(\atan($complex->getReal()));
29 }
30
31 $t1Value = new Complex(-1 * $complex->getImaginary(), $complex->getReal());
32 $uValue = new Complex(1, 0);
33
34 $d1Value = clone $uValue;
35 $d1Value = subtract($d1Value, $t1Value);
36 $d2Value = add($t1Value, $uValue);
37 $uResult = $d1Value->divideBy($d2Value);
38 $uResult = ln($uResult);
39
40 return new Complex(
41 (($uResult->getImaginary() == M_PI) ? -M_PI : $uResult->getImaginary()) * -0.5,
42 $uResult->getReal() * 0.5,
43 $complex->getSuffix()
44 );
45 }
46