Module Stdlib.ComplexSource

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).

Sourcetype t = {
  1. re : float;
  2. im : float;
}

The type of complex numbers. re is the real part and im the imaginary part.

Sourceval zero : t

The complex number 0.

Sourceval one : t

The complex number 1.

Sourceval i : t

The complex number i.

Sourceval neg : t -> t

Unary negation.

Sourceval conj : t -> t

Conjugate: given the complex x + i.y, returns x - i.y.

Sourceval add : t -> t -> t

Addition

Sourceval sub : t -> t -> t

Subtraction

Sourceval mul : t -> t -> t

Multiplication

Sourceval inv : t -> t

Multiplicative inverse (1/z).

Sourceval div : t -> t -> t

Division

Sourceval 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.

Sourceval norm2 : t -> float

Norm squared: given x + i.y, returns x^2 + y^2.

Sourceval norm : t -> float

Norm: given x + i.y, returns sqrt(x^2 + y^2).

Sourceval 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.

Sourceval polar : float -> float -> t

polar norm arg returns the complex having norm norm and argument arg.

Sourceval exp : t -> t

Exponentiation. exp z returns e to the z power.

Sourceval log : t -> t

Natural logarithm (in base e).

Sourceval pow : t -> t -> t

Power function. pow z1 z2 returns z1 to the z2 power.