aboutsummaryrefslogtreecommitdiff
path: root/src/maths/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/maths/matrix.c')
-rw-r--r--src/maths/matrix.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/maths/matrix.c b/src/maths/matrix.c
index 400c2a7..44b953c 100644
--- a/src/maths/matrix.c
+++ b/src/maths/matrix.c
@@ -30,6 +30,15 @@ struct PsiMatrix psi_clone_matrix(struct PsiMatrix m)
return psi_new_matrix_from(m.data, m.rows, m.cols);
}
+struct PsiMatrix psi_identity_matrix(size_t size)
+{
+ struct PsiMatrix m = psi_new_matrix(size, size);
+ for (size_t i = 0; i < size; i++)
+ m.data[i * size + i] = psi_new_complex(1.0, 0.0);
+
+ return m;
+}
+
void psi_free_matrix(struct PsiMatrix *m)
{
free(m->data);