A lightweight mathematical library that allows a comfortable handling of complex numbers in Kotlin
Installation
The Maven artifact is available in the Maven Central repository:
<groupId>org.kotlinmath</groupId>
<artifactId>complex-numbers</artifactId>
<version>1.0</version>
The sources are hosted on GitHub.
Examples
import org.kotlinmath.*
The complex number 4+3i can be defined in four ways:val z1 = 4 + 3.I
val z2 = 4 + 3 * I
val z3 = complex(3, 4)
val z4 = "4+3i".toComplex()
You can use the operators +
, -
, *
, and /
with any other numeric type in all combinations:val w1 = 1.5F / z1 * 2 - 4.32 + 10L + (3.toBigDecimal() * I)
There are the common standard functions like exp
, sin
, cos
, ln
and sqrt
:val w2 = I * z1 + exp(I * PI/2) + sqrt(-9)
The extension.I
creates a pure imaginary number;.R
creates a complex number without imaginary part:
val fourI = 4.I // four times ival three = 3.R // three as number of type Comple
x
The constants INF
(infinity) and NaN
(not a number) can be used to represent a pole resp. an essential singularity. Examples:(3 + 4.I) / 0 == INF
1 / INF == ZERO
ln(0) == NaN
2 * INF == INF
exp(INF) == NaN