module Complex: sig .. end
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; |
re is the real part and im the
imaginary part.let zero: t;
0.let one: t;
1.let i: t;
i.let neg: t => t;
let conj: t => t;
x + i.y, returns x - i.y.let add: (t, t) => t;
let sub: (t, t) => t;
let mul: (t, t) => t;
let inv: t => t;
1/z).let div: (t, t) => t;
let sqrt: t => t;
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;
x + i.y, returns x^2 + y^2.let norm: t => float;
x + i.y, returns sqrt(x^2 + y^2).let arg: t => float;
-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;
exp z returns e to the z power.let log: t => t;
e).let pow: (t, t) => t;
pow z1 z2 returns z1 to the z2 power.