Complex values and operations
Source code name: "matrix_jscience.groovy"
Programming language: Groovy
Topic: Linear Algebra/Matrices
https://datamelt.org/code/cache/matrix_jscience_7522.groovy
To run this script using the DataMelt IDE, copy the above URL link to the menu [File]→[Read script from URL] of the DMelt IDE.

``````

import org.jscience.mathematics.number.Complex
import static org.jscience.mathematics.number.Complex.I
import static org.jscience.mathematics.number.Complex.valueOf as c
import org.jscience.mathematics.function.Polynomial
import static org.jscience.mathematics.function.Polynomial.valueOf as p
import org.jscience.mathematics.function.Variable

// Defines two local variables (x, y).
def varX = new Variable.Local("x")
def varY = new Variable.Local("y")

use (JScienceCategory) {
def ONE = Complex.ONE
def TWO = c(2, 0)
// f(x) = ix?? + 2x + 1
def x = p(ONE, varX)
def fx = I * x ** 2 + TWO * x + ONE
println fx
println fx ** 2
println fx.differentiate(varX)
println fx.integrate(varY)
println fx.compose(fx)

// Calculates expression.
varX.set(c(2, 3))
println fx.evaluate()
}

class JScienceCategory {
static power(Polynomial p, int n) {
p.pow(n)
}
static multiply(Complex c, Polynomial p) {
p.times(c)
}
static multiply(Polynomial p, Complex c) {
p.times(c)
}
}
``````