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
x
andy
for 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
x
by real numbery
. Source Edit proc `/`[T](x: T; y: Complex[T]): Complex[T]
- Divides real number
x
by complex numbery
. Source Edit proc `/`[T](x, y: Complex[T]): Complex[T]
- Divides
x
byy
. 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
x
withy
. Source Edit proc `+=`[T](x: var Complex[T]; y: Complex[T])
- Adds
y
tox
. Source Edit proc `-=`[T](x: var Complex[T]; y: Complex[T])
- Subtracts
y
fromx
. Source Edit proc `*=`[T](x: var Complex[T]; y: Complex[T])
- Multiplies
y
tox
. Source Edit proc `/=`[T](x: var Complex[T]; y: Complex[T])
- Divides
x
byy
in 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]
-
e
raised 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]
-
x
raised to the powery
. Source Edit proc pow[T](x: Complex[T]; y: T): Complex[T]
- Complex number
x
raised 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
z
in polar coordinates. Source Edit proc rect[T](r, phi: T): Complex[T]
- Returns the complex number with polar coordinates
r
andphi
.
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