/trunk/Examples/octave/operator/example.h
C++ Header | 35 lines | 31 code | 3 blank | 1 comment | 0 complexity | c2bb9614533296fa70da20cf50d10c4c MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- /* File : example.h */
- #include <math.h>
- class ComplexVal {
- private:
- double rpart, ipart;
- public:
- ComplexVal(double r = 0, double i = 0) : rpart(r), ipart(i) { }
- ComplexVal(const ComplexVal &c) : rpart(c.rpart), ipart(c.ipart) { }
- ComplexVal &operator=(const ComplexVal &c) {
- rpart = c.rpart;
- ipart = c.ipart;
- return *this;
- }
- ComplexVal operator+(const ComplexVal &c) const {
- return ComplexVal(rpart+c.rpart, ipart+c.ipart);
- }
- ComplexVal operator-(const ComplexVal &c) const {
- return ComplexVal(rpart-c.rpart, ipart-c.ipart);
- }
- ComplexVal operator*(const ComplexVal &c) const {
- return ComplexVal(rpart*c.rpart - ipart*c.ipart,
- rpart*c.ipart + c.rpart*ipart);
- }
- ComplexVal operator-() const {
- return ComplexVal(-rpart, -ipart);
- }
-
- double re() const { return rpart; }
- double im() const { return ipart; }
- };
- ComplexVal operator*(const double &s, const ComplexVal &c) {
- return ComplexVal(s*c.re(), s*c.im());
- }