aboutsummaryrefslogtreecommitdiff
path: root/src/maths/complex.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/maths/complex.h')
-rw-r--r--src/maths/complex.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/maths/complex.h b/src/maths/complex.h
new file mode 100644
index 0000000..c94f64a
--- /dev/null
+++ b/src/maths/complex.h
@@ -0,0 +1,28 @@
+#pragma once
+
+struct PsiComplex
+{
+ double real;
+ double imaginary;
+};
+
+struct PsiComplex psi_new_complex(double real, double imaginary);
+struct PsiComplex psi_new_complex_from_real(double real);
+
+struct PsiComplex psi_conjugate_complex(struct PsiComplex z);
+struct PsiComplex psi_neg_complex(struct PsiComplex z);
+
+double psi_phase_complex(struct PsiComplex z);
+double psi_norm2_complex(struct PsiComplex z);
+double psi_abs_complex(struct PsiComplex z);
+struct PsiComplex psi_sqrt_complex(struct PsiComplex z);
+
+struct PsiComplex psi_add_complex(struct PsiComplex a, struct PsiComplex b);
+struct PsiComplex psi_sub_complex(struct PsiComplex a, struct PsiComplex b);
+struct PsiComplex psi_mul_complex(struct PsiComplex a, struct PsiComplex b);
+struct PsiComplex psi_div_complex(struct PsiComplex a, struct PsiComplex b);
+
+struct PsiComplex psi_add_complex_real(struct PsiComplex a, double b);
+struct PsiComplex psi_sub_complex_real(struct PsiComplex a, double b);
+struct PsiComplex psi_mul_complex_real(struct PsiComplex a, double b);
+struct PsiComplex psi_div_complex_real(struct PsiComplex a, double b);