1#! /usr/bin/env python
2
3from __future__ import print_function
4from openturns import *
5
6TESTPREAMBLE()
7
8try:
9    matrix1 = SquareMatrix(2)
10    matrix1.setName("matrix1")
11    matrix1[0, 0] = 1.0
12    matrix1[1, 0] = 2.0
13    matrix1[0, 1] = 5.0
14    matrix1[1, 1] = 12.0
15    print("matrix1 = ", matrix1)
16
17    pt = Point()
18    pt.add(5.0)
19    pt.add(0.0)
20    print("pt = ", pt)
21
22    result = matrix1.solveLinearSystem(pt)
23    print("result = ", result)
24
25    determinant = matrix1.computeDeterminant()
26    print("determinant = %.6g" % determinant)
27
28    ev = matrix1.computeEigenValues()
29    print("ev = ", ev)
30    ev, evect = matrix1.computeEV()
31    print("ev=", ev)
32    print("evect=", evect)
33    print("evect=")
34    print(evect.__str__())
35    maxModule = matrix1.computeLargestEigenValueModule(10, 1e-2)
36    print("max |ev|=%.6g" % maxModule)
37
38    # Check the high dimension determinant computation
39    matrix2 = SquareMatrix(3)
40    matrix2[0, 0] = 1.0
41    matrix2[0, 1] = 2.0
42    matrix2[0, 2] = 3.0
43    matrix2[1, 0] = -1.5
44    matrix2[1, 1] = 2.5
45    matrix2[1, 2] = -3.5
46    matrix2[2, 0] = 1.5
47    matrix2[2, 1] = -3.5
48    matrix2[2, 2] = 2.5
49
50    print("matrix2=")
51    print(matrix2.__str__())
52    # Need a specific Python wrapping, e.g returning both value and sign
53    # sign = 0.0
54    # value = matrix2.computeLogAbsoluteDeterminant(sign)
55    # print "log(|det|)=", value, ", sign=", sign
56    determinant = matrix2.computeDeterminant()
57    print("determinant = %.6g" % determinant)
58
59except:
60    import sys
61    print("t_SquareMatrixLapack_std.py", sys.exc_info()[0], sys.exc_info()[1])
62