diff options
| author | hachem <im@hachem.wtf> | 2026-09-14 12:20:52 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-09-14 12:20:52 +0200 |
| commit | ee14ad272e68d9363202d7f668e0b20302827209 (patch) | |
| tree | 88dd1012ad7f9d6ac7abeb7562dac2194794b823 /src/maths/matrix.c | |
| parent | ae07aab1442a45bbddb79e066f15eaf252a4254a (diff) | |
feat: simd + testing + formatting
Diffstat (limited to 'src/maths/matrix.c')
| -rw-r--r-- | src/maths/matrix.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/maths/matrix.c b/src/maths/matrix.c index 44b953c..2415395 100644 --- a/src/maths/matrix.c +++ b/src/maths/matrix.c @@ -6,18 +6,17 @@ struct PsiMatrix psi_new_matrix(size_t rows, size_t cols) { - struct PsiComplex *data = calloc(rows * cols, sizeof(struct PsiComplex)); + struct PsiComplex* data = calloc(rows * cols, sizeof(struct PsiComplex)); assert(data != NULL || rows * cols == 0); - return (struct PsiMatrix) - { + return (struct PsiMatrix){ data, rows, cols, }; } -struct PsiMatrix psi_new_matrix_from(const struct PsiComplex *data, size_t rows, size_t cols) +struct PsiMatrix psi_new_matrix_from(const struct PsiComplex* data, size_t rows, size_t cols) { struct PsiMatrix m = psi_new_matrix(rows, cols); memcpy(m.data, data, rows * cols * sizeof(struct PsiComplex)); @@ -39,7 +38,7 @@ struct PsiMatrix psi_identity_matrix(size_t size) return m; } -void psi_free_matrix(struct PsiMatrix *m) +void psi_free_matrix(struct PsiMatrix* m) { free(m->data); m->data = NULL; @@ -53,7 +52,7 @@ struct PsiComplex psi_get_matrix(struct PsiMatrix m, size_t row, size_t col) return m.data[row * m.cols + col]; } -void psi_set_matrix(struct PsiMatrix *m, size_t row, size_t col, struct PsiComplex value) +void psi_set_matrix(struct PsiMatrix* m, size_t row, size_t col, struct PsiComplex value) { assert(row < m->rows && col < m->cols); m->data[row * m->cols + col] = value; @@ -69,7 +68,8 @@ struct PsiMatrix psi_dot_matrix(struct PsiMatrix a, struct PsiMatrix b) { struct PsiComplex sum = psi_new_complex(0.0, 0.0); for (size_t k = 0; k < a.cols; k++) - sum = psi_add_complex(sum, psi_mul_complex(a.data[i * a.cols + k], b.data[k * b.cols + j])); + sum = psi_add_complex( + sum, psi_mul_complex(a.data[i * a.cols + k], b.data[k * b.cols + j])); result.data[i * result.cols + j] = sum; } @@ -89,7 +89,8 @@ struct PsiMatrix psi_kronecker_matrix(struct PsiMatrix a, struct PsiMatrix b) { size_t row = i * b.rows + k; size_t col = j * b.cols + l; - result.data[row * result.cols + col] = psi_mul_complex(a_val, b.data[k * b.cols + l]); + result.data[row * result.cols + col] = + psi_mul_complex(a_val, b.data[k * b.cols + l]); } } |
