from org.ujmp.core import Matrix,DenseMatrix,SparseMatrix

# dense empty matrix with 4 rows and 4 columns
dense = DenseMatrix.Factory.zeros(4, 4)

# set entry at row 2 and column 3 to the value 5.0
dense.setAsDouble(5.0, 2, 3)

# set some other values
dense.setAsDouble(1.0, 0, 0)
dense.setAsDouble(3.0, 1, 1)
dense.setAsDouble(4.0, 2, 2)
dense.setAsDouble(-2.0, 3, 3)
dense.setAsDouble(-2.0, 1, 3)

print dense

# create a sparse empty matrix with 4 rows and 4 columns
sparse = SparseMatrix.Factory.zeros(4, 4)
sparse.setAsDouble(2.0, 0, 0)

# basic calculations
transpose = dense.transpose()
sum = dense.plus(sparse)
difference = dense.minus(sparse)
matrixProduct = dense.mtimes(sparse)
scaled = dense.times(2.0)

inverse = dense.inv()
pseudoInverse = dense.pinv()
determinant = dense.det()

singularValueDecomposition = dense.svd()
eigenValueDecomposition = dense.eig()
luDecomposition = dense.lu()
qrDecomposition = dense.qr()
choleskyDecomposition = dense.chol()
print choleskyDecomposition
choleskyDecomposition.showGUI()

