summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/type/doubleComplex.c42
-rw-r--r--src/type/doubleComplex.h4
2 files changed, 46 insertions, 0 deletions
diff --git a/src/type/doubleComplex.c b/src/type/doubleComplex.c
index 710a13f9..a17311b2 100644
--- a/src/type/doubleComplex.c
+++ b/src/type/doubleComplex.c
@@ -133,4 +133,46 @@ bool zisimags(doubleComplex z) {
return false;
}
+/*
+** Operators
+** {
+*/
+
+/*
+** \function zadds
+** \brief add 2 Complex numbers.
+*/
+doubleComplex zadds(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real + z2.real, z1.imag + z2.imag);
+#else
+ return z1 + z2;
+#endif
+}
+
+/*
+** \function zdiffs
+** \brief diff 2 Complex numbers.
+*/
+doubleComplex zdiffs(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real - z2.real, z1.imag - z2.imag);
+#else
+ return z1 - z2;
+#endif
+}
+
+/*
+** \function ztimess
+** \brief Multiply 2 Complex numbers.
+*/
+doubleComplex ztimess(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real*z2.real - z1.imag*z2.imag,
+ z1.real*z2.imag + z2.real*z1.imag);
+#else
+ return z1 * z2;
+#endif
+}
+
diff --git a/src/type/doubleComplex.h b/src/type/doubleComplex.h
index 51cede5d..2d252bc7 100644
--- a/src/type/doubleComplex.h
+++ b/src/type/doubleComplex.h
@@ -63,5 +63,9 @@ doubleComplex DoubleComplex(double, double);
doubleComplex* DoubleComplexMatrix(double*, double*, int);
bool zisreals(doubleComplex);
bool zisimags(doubleComplex);
+doubleComplex zadds(doubleComplex, doubleComplex);
+doubleComplex zdiffs(doubleComplex, doubleComplex);
+doubleComplex ztimess(doubleComplex, doubleComplex);
+doubleComplex zdevides(doubleComplex, doubleComplex);
#endif /* !__DOUBLECOMPLEX_H__ */