Closed ffreyer closed 1 year ago
The hopping matrix and thus the its matrix exponential is Hermitian which means rather than $A{ij} B{jk}$ we can calculate $A{ji} B{jk}$ which is more cashe friendly. Using this speeds up the add_*_slice_matrix_*() functions:
add_*_slice_matrix_*()
multiply_slice_matrix_left!
multiply_slice_matrix_right!
multiply_slice_matrix_inv_left!
multiply_slice_matrix_inv_right!
multiply_daggered_slice_matrix_left!
(1 - new/old time @ L = 8 square lattice)
The hopping matrix and thus the its matrix exponential is Hermitian which means rather than $A{ij} B{jk}$ we can calculate $A{ji} B{jk}$ which is more cashe friendly. Using this speeds up the
add_*_slice_matrix_*()
functions:multiply_slice_matrix_left!
-41%multiply_slice_matrix_right!
-17%multiply_slice_matrix_inv_left!
-34%multiply_slice_matrix_inv_right!
-7%multiply_daggered_slice_matrix_left!
±0%(1 - new/old time @ L = 8 square lattice)