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 :
| |
im :
|
}
The type of complex numbers. re
is the real part and im
the imaginary part.
val zero : t
The complex number 0
.
val one : t
The complex number 1
.
val i : t
The complex number i
.
val neg : t -> t
Unary negation.
val conj : t -> t
Conjugate: given the complex x + i.y
, returns x - i.y
.
val add : t -> t -> t
Addition
val sub : t -> t -> t
Subtraction
val mul : t -> t -> t
Multiplication
val inv : t -> t
Multiplicative inverse (1/z
).
val div : t -> t -> t
Division
val 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.
val norm2 : t -> float
Norm squared: given x + i.y
, returns x^2 + y^2
.
val norm : t -> float
Norm: given x + i.y
, returns sqrt(x^2 + y^2)
.
val 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.
val polar : float -> float -> t
polar norm arg
returns the complex having norm norm
and argument arg
.
val exp : t -> t
Exponentiation. exp z
returns e
to the z
power.
val log : t -> t
Natural logarithm (in base e
).
val pow : t -> t -> t
Power function. pow z1 z2
returns z1
to the z2
power.
© INRIA 1995-2020.
https://www.ocaml.org/releases/4.11/htmlman/libref/Complex.html