Module Complex
: sigend
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 ).
typet = {
re : float ;
im : float ;
}
The type of complex numbers. re is the real part and im the imaginary part.
valzero : t
The complex number 0 .
valone : t
The complex number 1 .
vali : t
The complex number i .
valneg : t->t
Unary negation.
valconj : t->t
Conjugate: given the complex x+i.y , returns x-i.y .
valadd : t->t->t
Addition
valsub : t->t->t
Subtraction
valmul : t->t->t
Multiplication
valinv : t->t
Multiplicative inverse ( 1/z ).
valdiv : t->t->t
Division
valsqrt : 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.
valnorm2 : t->float
Norm squared: given x+i.y , returns x^2+y^2 .
valnorm : t->float
Norm: given x+i.y , returns sqrt(x^2+y^2) .
valarg : 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.
valpolar : float->float->tpolarnormarg returns the complex having norm norm and argument arg .
valexp : t->t
Exponentiation. expz returns e to the z power.
vallog : t->t
Natural logarithm (in base e ).
valpow : t->t->t
Power function. powz1z2 returns z1 to the z2 power.
OCamldoc 2025-06-12 Complex(3o)