aboutsummaryrefslogtreecommitdiff
path: root/tester
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-09-02 18:56:09 +0200
committerhachem <im@hachem.wtf>2026-09-02 18:56:09 +0200
commit4d404450cd53946e56cc64c66372f0b2d439dbc6 (patch)
treeb577c728f0541552dff1c5e50ee6b5cd3011a1e0 /tester
parentcd69b3c1be9a515906954f48f7f1dbc582f8ad83 (diff)
c: port over matrices
Diffstat (limited to 'tester')
-rw-r--r--tester/main.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tester/main.c b/tester/main.c
index bc29bb1..334291f 100644
--- a/tester/main.c
+++ b/tester/main.c
@@ -1,6 +1,7 @@
#include <stdio.h>
#include "maths/complex.h"
+#include "maths/matrix.h"
#include "maths/vector.h"
#include "psi.h"
@@ -38,5 +39,26 @@ int main(void)
psi_free_vector(&u);
psi_free_vector(&v);
+ struct PsiMatrix m = psi_matrix(2, 2,
+ psi_new_complex(1.0, 0.0), psi_new_complex(2.0, 0.0),
+ psi_new_complex(3.0, 0.0), psi_new_complex(4.0, 0.0));
+ struct PsiMatrix mm = psi_dot_matrix(m, m);
+
+ printf("m*m = [%g %g; %g %g]\n",
+ psi_get_matrix(mm, 0, 0).real, psi_get_matrix(mm, 0, 1).real,
+ psi_get_matrix(mm, 1, 0).real, psi_get_matrix(mm, 1, 1).real);
+
+ struct PsiVector x = psi_column_vector(
+ psi_new_complex(1.0, 0.0),
+ psi_new_complex(1.0, 0.0));
+ struct PsiVector mx = psi_mul_vector_matrix(x, m);
+
+ printf("m*x = [%g, %g]\n", mx.data[0].real, mx.data[1].real);
+
+ psi_free_vector(&x);
+ psi_free_vector(&mx);
+ psi_free_matrix(&m);
+ psi_free_matrix(&mm);
+
return 0;
}