//--------------------------------------------------------------------------- // ŠNikolai V. Shokhirev, 2004-2008 <nikolai@shokhirev.com> http://www.shokhirev.com/nikolai.html // Test program for the struct implementation of complex numbers //--------------------------------------------------------------------------- #include <iostream> #include "Complex.h" #include "StringUtils.h" // BoolToStr, ComplexToStr using namespace std; int main() { Complex c0 = cmplx(1.0, 2.0); Complex c1 = cmplx(1.0, -1.0); Complex c2 = c0; cout << "c0 = c2 : " << BoolToStr(Equal(c2, c0)) << endl; cout << "Cadd(c0, c1) : " << BoolToStr(Equal(Cadd(c0, c1), 2.0, 1.0)) << endl; cout << "Cadd(c0, -1.0) : " << BoolToStr(Equal(Cadd(c0, -1.0), 0.0, 2.0)) << endl; cout << "Cadd(1.0, c1) : " << BoolToStr(Equal(Cadd(1.0, c1), 2.0, -1.0)) << endl; cout << "Cadd(Real(1),Img(2)) : " << BoolToStr(Equal(Cadd(Real(1.0),Img(2.0)), c0)) << endl; cout << "Csub(c0, c1) : " << BoolToStr(Equal(Csub(c0, c1), 0.0, 3.0)) << endl; cout << "Csub(c0, 1.0) : " << BoolToStr(Equal(Csub(c0, 1.0), 0.0, 2.0)) << endl; cout << "Csub(3.0, c1) : " << BoolToStr(Equal(Csub(3.0, c1), 3.0, -3.0)) << endl; cout << "c2 = conjug(c1) : " << BoolToStr(Equal(conjug(c1), 1.0, 1.0)) << endl; c2 = Cmul(c0,conjug(c0)); cout << "c0*conjug(c0)=mod2(c0) : " << BoolToStr(Equal(c2, mod2(c0), 0.0)) << endl; cout << "Cmul(c0, c1) : " << BoolToStr(Equal(Cmul(c0, c1), 3.0, 1.0)) << endl; cout << "Cmul(c0, 3.0) : " << BoolToStr(Equal(Cmul(c0, 3.0), 3.0, 6.0)) << endl; cout << "Cmul(3.0, c1) : " << BoolToStr(Equal(Cmul(3.0, c1), 3.0, -3.0)) << endl; cout << "Cdiv(c0, c0) : " << BoolToStr(Equal(Cdiv(c0, c0), 1.0, 0.0)) << endl; Complex c3 = Cdiv(c1, c0); c2 = Cmul(c3, c0); cout << "Cdiv(c1, c0) : " << BoolToStr(Equal(c2, c1)) << endl; c2 = Cdiv(3.0, c0); c2 = Cmul(c2, c0); cout << "(3.0/c0)*c0 : " << BoolToStr(Equal(c2, 3.0, 0.0)) << endl; c2 = Cdiv(c0, 3.0); c2 = Cmul(c2, 3.0); cout << "(c0/3.0)*3.0 : " << BoolToStr(Equal(c2, c0)) << endl; c2 = Csqrt(c0); cout << "Csqrt(c0) = " << ComplexToStr(c2); c2 = Cmul(c2, c2); cout << " : " << BoolToStr(Equal(c2, c0)) << endl; return 0; }