Skip to content

Commit f1ca575

Browse files
committed
add custom methods to COMPLEX
1 parent 59bff3f commit f1ca575

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/snap/likelihood/COMPLEX.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ public COMPLEX(double fRe, double fIm) {
3737
m_fIm = fIm;
3838
}
3939

40+
public COMPLEX(COMPLEX other) {
41+
m_fRe = other.m_fRe;
42+
m_fIm = other.m_fIm;
43+
}
44+
4045
public void divide(COMPLEX cNumerator, double fDivisor) {
4146
m_fRe = cNumerator.m_fRe / fDivisor;
4247
m_fIm = cNumerator.m_fIm / fDivisor;
@@ -61,18 +66,32 @@ public void muladd(double f1, COMPLEX x1, double f2, COMPLEX x2 ) {
6166
m_fRe = f1 * x1.m_fRe + f2 * x2.m_fRe;
6267
m_fIm = f1 * x1.m_fIm + f2 * x2.m_fIm;
6368
}
69+
70+
public void mulsub(COMPLEX cMul1, COMPLEX cMul2) {
71+
m_fRe -= cMul2.m_fRe * cMul1.m_fRe - cMul2.m_fIm * cMul1.m_fIm;
72+
m_fIm -= cMul2.m_fRe * cMul1.m_fIm + cMul2.m_fIm * cMul1.m_fRe;
73+
}
74+
6475
// calc
6576
public void divide(COMPLEX cNumerator, COMPLEX cDivisor) {
6677
double f = cDivisor.m_fRe * cDivisor.m_fRe + cDivisor.m_fIm * cDivisor.m_fIm;
6778
m_fRe = (cNumerator.m_fRe * cDivisor.m_fRe + cNumerator.m_fIm * cDivisor.m_fIm) / f;
6879
m_fIm = (cNumerator.m_fIm * cDivisor.m_fRe - cNumerator.m_fRe * cDivisor.m_fIm) / f;
6980
}
81+
7082
public void mul(COMPLEX cMul1, COMPLEX cMul2) {
7183
m_fRe = cMul2.m_fRe * cMul1.m_fRe - cMul2.m_fIm * cMul1.m_fIm;
7284
m_fIm = cMul2.m_fRe * cMul1.m_fIm + cMul2.m_fIm * cMul1.m_fRe;
7385
}
86+
87+
public void mul(COMPLEX cMul1, double m_fRe, double m_fIm) {
88+
m_fRe = m_fRe * cMul1.m_fRe - m_fIm * cMul1.m_fIm;
89+
m_fIm = m_fRe * cMul1.m_fIm + m_fIm * cMul1.m_fRe;
90+
}
91+
7492
public String toString() {
7593
return "(" +m_fRe + "," + m_fIm + ")";
7694
}
7795

96+
7897
}

0 commit comments

Comments
 (0)