Matrix Example

from dhllinalg.bla import Matrix

Create a matrix object

A = Matrix(10,10)
for i in range(10):
    for j in range(10):
        A[i,j] = i + 2 * j
print(A)
0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 
 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 
 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 
 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 
 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 
 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 
 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 
 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 
 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 
 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 
 

You can get matrix values by indexing with numbers or slicing

print(f'First row of A: {A[1,:]}')
First row of A: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19

Matrix operations

B = Matrix(10,10)
B[:,:] = 10
# matrix with all values equal to 10
print(A + B)
10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 
 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 
 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 
 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 
 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 
 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 
 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 
 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 
 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 
 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 
 
print(A * B)
900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 
 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 
 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 
 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 
 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 
 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 
 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 
 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 
 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 
 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 
 

Matrix Vector Multiplication

from dhllinalg.bla import Vector
x = Vector(10)
for i in range(10):
    x[i] = i
print(A * x)
570, 615, 660, 705, 750, 795, 840, 885, 930, 975