44
55package org.jetbrains.kotlinx.multik.jni.linalg
66
7- import org.jetbrains.kotlinx.multik.api.*
7+ import org.jetbrains.kotlinx.multik.api.identity
88import org.jetbrains.kotlinx.multik.api.linalg.dot
9+ import org.jetbrains.kotlinx.multik.api.linalg.eig
910import org.jetbrains.kotlinx.multik.api.linalg.inv
1011import org.jetbrains.kotlinx.multik.api.linalg.solve
12+ import org.jetbrains.kotlinx.multik.api.mk
13+ import org.jetbrains.kotlinx.multik.api.ndarray
1114import org.jetbrains.kotlinx.multik.jni.*
12- import org.jetbrains.kotlinx.multik.ndarray.complex.Complex
1315import org.jetbrains.kotlinx.multik.ndarray.complex.ComplexDouble
1416import org.jetbrains.kotlinx.multik.ndarray.complex.ComplexFloat
15- import org.jetbrains.kotlinx.multik.ndarray.data.*
16- import kotlin.math.abs
17- import kotlin.math.max
18- import kotlin.math.min
19- import kotlin.random.Random
20- import kotlin.test.*
17+ import org.jetbrains.kotlinx.multik.ndarray.data.get
18+ import org.jetbrains.kotlinx.multik.ndarray.data.rangeTo
19+ import kotlin.test.BeforeTest
20+ import kotlin.test.Test
21+ import kotlin.test.assertEquals
2122
2223class NativeLinAlgTest {
2324
@@ -256,4 +257,16 @@ class NativeLinAlgTest {
256257
257258 assertComplexFloatingNDArray(mk.identity(2 ), NativeLinAlg .dot(a, ainv))
258259 }
260+
261+ @Test
262+ fun `eigenvalues test` () {
263+ // val a = mk.d2arrayIndices(3, 3) { i, j -> if (i == j) i + 1.0 else 0.0 }
264+ val a = mk.ndarray(mk[mk[1 + 1e- 9 , 0.0 ], mk[0.0 , 1 - 1e- 9 ]])
265+ // println(mk.linalg.eigVals(a))
266+ val (w, v) = mk.linalg.eig(a)
267+ println (" w" )
268+ println (w)
269+ println (" v" )
270+ println (v)
271+ }
259272}
0 commit comments