On this page
complex
This module implements complex numbers. Complex numbers are currently implemented as generic on a 64-bit or 32-bit float.
Imports
Types
-
Complex[T] = object re*, im*: T ## A complex number, consisting of a real and an imaginary part. - Source Edit
-
Complex64 = Complex[float64] - Alias for a pair of 64-bit floats. Source Edit
-
Complex32 = Complex[float32] - Alias for a pair of 32-bit floats. Source Edit
Procs
-
proc complex[T: SomeFloat](re: T; im: T = 0.0): Complex[T] - Source Edit
-
proc complex32(re: float32; im: float32 = 0.0): Complex[float32] {...}{.raises: [], tags: [].} - Source Edit
-
proc complex64(re: float64; im: float64 = 0.0): Complex[float64] {...}{.raises: [], tags: [].} - Source Edit
-
proc abs[T](z: Complex[T]): T -
Returns the distance from (0,0) to
z. Source Edit -
proc abs2[T](z: Complex[T]): T -
Returns the squared distance from (0,0) to
z. Source Edit -
proc conjugate[T](z: Complex[T]): Complex[T] -
Conjugates of complex number
z. Source Edit -
proc inv[T](z: Complex[T]): Complex[T] -
Multiplicatives inverse of complex number
z. Source Edit -
proc `==`[T](x, y: Complex[T]): bool -
Compares two complex numbers
xandyfor equality. Source Edit -
proc `+`[T](x: T; y: Complex[T]): Complex[T] - Adds a real number to a complex number. Source Edit
-
proc `+`[T](x: Complex[T]; y: T): Complex[T] - Adds a complex number to a real number. Source Edit
-
proc `+`[T](x, y: Complex[T]): Complex[T] - Adds two complex numbers. Source Edit
-
proc `-`[T](z: Complex[T]): Complex[T] - Unary minus for complex numbers. Source Edit
-
proc `-`[T](x: T; y: Complex[T]): Complex[T] - Subtracts a complex number from a real number. Source Edit
-
proc `-`[T](x: Complex[T]; y: T): Complex[T] - Subtracts a real number from a complex number. Source Edit
-
proc `-`[T](x, y: Complex[T]): Complex[T] - Subtracts two complex numbers. Source Edit
-
proc `/`[T](x: Complex[T]; y: T): Complex[T] -
Divides complex number
xby real numbery. Source Edit -
proc `/`[T](x: T; y: Complex[T]): Complex[T] -
Divides real number
xby complex numbery. Source Edit -
proc `/`[T](x, y: Complex[T]): Complex[T] -
Divides
xbyy. Source Edit -
proc `*`[T](x: T; y: Complex[T]): Complex[T] - Multiplies a real number and a complex number. Source Edit
-
proc `*`[T](x: Complex[T]; y: T): Complex[T] - Multiplies a complex number with a real number. Source Edit
-
proc `*`[T](x, y: Complex[T]): Complex[T] -
Multiplies
xwithy. Source Edit -
proc `+=`[T](x: var Complex[T]; y: Complex[T]) -
Adds
ytox. Source Edit -
proc `-=`[T](x: var Complex[T]; y: Complex[T]) -
Subtracts
yfromx. Source Edit -
proc `*=`[T](x: var Complex[T]; y: Complex[T]) -
Multiplies
ytox. Source Edit -
proc `/=`[T](x: var Complex[T]; y: Complex[T]) -
Divides
xbyyin place. Source Edit -
proc sqrt[T](z: Complex[T]): Complex[T] -
Square root for a complex number
z. Source Edit -
proc exp[T](z: Complex[T]): Complex[T] eraised to the powerz. Source Edit-
proc ln[T](z: Complex[T]): Complex[T] -
Returns the natural log of
z. Source Edit -
proc log10[T](z: Complex[T]): Complex[T] -
Returns the log base 10 of
z. Source Edit -
proc log2[T](z: Complex[T]): Complex[T] -
Returns the log base 2 of
z. Source Edit -
proc pow[T](x, y: Complex[T]): Complex[T] xraised to the powery. Source Edit-
proc pow[T](x: Complex[T]; y: T): Complex[T] -
Complex number
xraised to the powery. Source Edit -
proc sin[T](z: Complex[T]): Complex[T] -
Returns the sine of
z. Source Edit -
proc arcsin[T](z: Complex[T]): Complex[T] -
Returns the inverse sine of
z. Source Edit -
proc cos[T](z: Complex[T]): Complex[T] -
Returns the cosine of
z. Source Edit -
proc arccos[T](z: Complex[T]): Complex[T] -
Returns the inverse cosine of
z. Source Edit -
proc tan[T](z: Complex[T]): Complex[T] -
Returns the tangent of
z. Source Edit -
proc arctan[T](z: Complex[T]): Complex[T] -
Returns the inverse tangent of
z. Source Edit -
proc cot[T](z: Complex[T]): Complex[T] -
Returns the cotangent of
z. Source Edit -
proc arccot[T](z: Complex[T]): Complex[T] -
Returns the inverse cotangent of
z. Source Edit -
proc sec[T](z: Complex[T]): Complex[T] -
Returns the secant of
z. Source Edit -
proc arcsec[T](z: Complex[T]): Complex[T] -
Returns the inverse secant of
z. Source Edit -
proc csc[T](z: Complex[T]): Complex[T] -
Returns the cosecant of
z. Source Edit -
proc arccsc[T](z: Complex[T]): Complex[T] -
Returns the inverse cosecant of
z. Source Edit -
proc sinh[T](z: Complex[T]): Complex[T] -
Returns the hyperbolic sine of
z. Source Edit -
proc arcsinh[T](z: Complex[T]): Complex[T] -
Returns the inverse hyperbolic sine of
z. Source Edit -
proc cosh[T](z: Complex[T]): Complex[T] -
Returns the hyperbolic cosine of
z. Source Edit -
proc arccosh[T](z: Complex[T]): Complex[T] -
Returns the inverse hyperbolic cosine of
z. Source Edit -
proc tanh[T](z: Complex[T]): Complex[T] -
Returns the hyperbolic tangent of
z. Source Edit -
proc arctanh[T](z: Complex[T]): Complex[T] -
Returns the inverse hyperbolic tangent of
z. Source Edit -
proc sech[T](z: Complex[T]): Complex[T] -
Returns the hyperbolic secant of
z. Source Edit -
proc arcsech[T](z: Complex[T]): Complex[T] -
Returns the inverse hyperbolic secant of
z. Source Edit -
proc csch[T](z: Complex[T]): Complex[T] -
Returns the hyperbolic cosecant of
z. Source Edit -
proc arccsch[T](z: Complex[T]): Complex[T] -
Returns the inverse hyperbolic cosecant of
z. Source Edit -
proc coth[T](z: Complex[T]): Complex[T] -
Returns the hyperbolic cotangent of
z. Source Edit -
proc arccoth[T](z: Complex[T]): Complex[T] -
Returns the inverse hyperbolic cotangent of
z. Source Edit -
proc phase[T](z: Complex[T]): T -
Returns the phase of
z. Source Edit -
proc polar[T](z: Complex[T]): tuple[r, phi: T] -
Returns
zin polar coordinates. Source Edit -
proc rect[T](r, phi: T): Complex[T] -
Returns the complex number with polar coordinates
randphi.
Source Editresult.re = r * cos(phi)result.im = r * sin(phi) -
proc `$`(z: Complex): string -
Returns
z's string representation as"(re, im)". Source Edit
Templates
-
template im(arg: typedesc[float32]): Complex32 - Source Edit
-
template im(arg: typedesc[float64]): Complex64 - Source Edit
-
template im(arg: float32): Complex32 - Source Edit
-
template im(arg: float64): Complex64 - Source Edit
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/complex.html