package batteries

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module BatComplexSource

Additional and modified functions for complex numbers.

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

  • author Xavier Leroy (base module)
  • author Gabriel Scherer
  • author David Teller
Sourcetype t = Complex.t = {
  1. re : float;
  2. im : float;
}
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 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 operations : t BatNumber.numeric
Sourceval inv : t -> t

inv x returns the value of 1/x

Sourceval succ : t -> t

Add one to this number.

Sourceval pred : t -> t

Remove one from this number.

Sourceval abs : t -> t

abs c returns the module of this complex number, i.e. abs c = Float.sqrt((re c) *. (re c) +. (im c) *. (im c) )

Sourceval modulo : t -> t -> t
Sourceval pow : t -> t -> t
Sourceval compare : t -> t -> int
Sourceval ord : t -> t -> BatOrd.order
Sourceval equal : t -> t -> bool
Sourceval of_int : int -> t
Sourceval to_int : t -> int

to_int c is the integer part of the real part of c

Sourceval of_string : string -> t

of_string s accepts strings with the following formats:

(<int>|<float>) (+|-) i ( * | . | ) (<int>|<float>)

where (a|b|c) is either a or b or c.

In addition the following degenerate formats are also accepted:

(+|-) i ( * | . | ) (<int>|<float>)

(<int>|<float>) (+|-) i

(<int>|<float>)

Sourceval to_string : t -> string
Sourceval (+) : t -> t -> t
Sourceval (-) : t -> t -> t
Sourceval (*) : t -> t -> t
Sourceval (/) : t -> t -> t
Sourceval (**) : t -> t -> t
Sourceval (--) : t -> t -> t BatEnum.t
Sourceval (---) : t -> t -> t BatEnum.t
Sourceval of_float : float -> t

Complex.of_float x returns the complex number x+0i

Sourceval to_float : t -> float

Complex.to_float (a+bi) returns the float a

Submodules grouping all infix operators

Boilerplate code

Sourceval print : 'a BatInnerIO.output -> t -> unit

Printing

OCaml

Innovation. Community. Security.