amath  1.6.2
Simple command line calculator
catan.c File Reference
#include "prim.h"
#include "math.h"
#include "complex.h"
Include dependency graph for catan.c:

Go to the source code of this file.

Functions

complex catan (complex z)
 Inverse tangent of complex number. More...
 

Function Documentation

complex catan ( complex  z)

Inverse tangent of complex number.

Version
1.1
Date
14/10/01

Inverse tangent expressed using complex logarithms:

atan(z) = i/2 * (log(1 - i * z) - log(1 + i * z))

More info is available at Wikipedia:
http://en.wikipedia.org/wiki/Inverse_trigonometric_functions#Logarithmic_forms

Definition at line 43 of file catan.c.

References cadd(), cdiv(), clog(), cmul(), cpack(), and csub().

Referenced by ComplexNumber::ArcTangent().

44 {
45  complex one = cpack(1.0, 0.0);
46  complex two = cpack(2.0, 0.0);
47  complex i = cpack(0.0, 1.0);
48  complex iz = cmul(i, z);
49  complex p = clog(csub(one, iz));
50  complex q = clog(cadd(one, iz));
51  complex w = cmul(cdiv(i, two), csub(p, q));
52  return w;
53 }
complex cmul(complex a, complex z)
Multiplication of two complex numbers.
Definition: prim.c:150
complex cadd(complex a, complex z)
Addition of two complex numbers.
Definition: prim.c:128
static double two
Definition: erf.c:150
complex csub(complex a, complex z)
Subtraction of two complex numbers.
Definition: prim.c:139
complex cdiv(complex a, complex z)
Division of two complex numbers.
Definition: prim.c:170
complex clog(complex z)
Natural logarithm of a complex number.
Definition: clog.c:46
#define one
Definition: ktan.c:64
complex cpack(double x, double y)
Pack two real numbers into a complex number.
Definition: prim.c:71

Here is the call graph for this function:

Here is the caller graph for this function: