module Complex: sig .. end
Complex numbers.
This module provides arithmetic operations on complex numbers.
Complex numbers are represented by their real and imaginary parts
(cartesian representation). Each part is represented by a
double-precision floating-point number (type float
).
type t = {
|
re : float; |
|
im : float; |
}
The type of complex numbers. re
is the real part and im
the
imaginary part.
let zero: t;
The complex number 0
.
let one: t;
The complex number 1
.
let i: t;
The complex number i
.
let neg: t => t;
Unary negation.
let conj: t => t;
Conjugate: given the complex x + i.y
, returns x - i.y
.
let add: (t, t) => t;
Addition
let sub: (t, t) => t;
Subtraction
let mul: (t, t) => t;
Multiplication
let inv: t => t;
Multiplicative inverse (1/z
).
let div: (t, t) => t;
Division
let sqrt: t => t;
Square root. The result x + i.y
is such that x > 0
or
x = 0
and y >= 0
.
This function has a discontinuity along the negative real axis.
let norm2: t => float;
Norm squared: given x + i.y
, returns x^2 + y^2
.
let norm: t => float;
Norm: given x + i.y
, returns sqrt(x^2 + y^2)
.
let arg: t => float;
Argument. The argument of a complex number is the angle
in the complex plane between the positive real axis and a line
passing through zero and the number. This angle ranges from
-pi
to pi
. This function has a discontinuity along the
negative real axis.
let polar: (float, float) => t;
polar norm arg
returns the complex having norm norm
and argument arg
.
let exp: t => t;
Exponentiation. exp z
returns e
to the z
power.
let log: t => t;
Natural logarithm (in base e
).
let pow: (t, t) => t;
Power function. pow z1 z2
returns z1
to the z2
power.