/*********************************************************************** qcomplexnumber.cpp - Source file for QComplexNumber Template class for handling complex numbers with a real and imaginary part. ************************************************************************ This file is part of QRealFourier. QRealFourier is free software: you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Foobar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public License for more details. You should have received a copy of the Lesser GNU General Public License along with Foobar. If not, see . ************************************************************************ Copyright © 2012 - 2013 Christoph Stallmann, University of Pretoria Developer: Christoph Stallmann University of Pretoria Department of Computer Science http://www.visore.org http://sourceforge.net/projects/qrealfourier http://github.com/visore/QRealFourier qrealfourier@visore.org qrealfourier@gmail.com ***********************************************************************/ #include "qcomplexnumber.h" template QComplexNumber::QComplexNumber() { mReal = 0; mImaginary = 0; } template QComplexNumber::QComplexNumber(T real, T imaginary) { mReal = real; mImaginary = imaginary; } template void QComplexNumber::setReal(T real) { mReal = real; } template void QComplexNumber::setImaginary(T imaginary) { mImaginary = imaginary; } template void QComplexNumber::set(T real, T imaginary) { mReal = real; mImaginary = imaginary; } template void QComplexNumber::set(QComplexNumber complex) { mReal = complex.real(); mImaginary = complex.imaginary(); } template T QComplexNumber::real() { return mReal; } template T QComplexNumber::imaginary() { return mImaginary; } template QComplexNumber& QComplexNumber::operator+=(const QComplexNumber &number) { mReal += number.mReal; mImaginary += number.mImaginary; return *this; } template QComplexNumber& QComplexNumber::operator-=(const QComplexNumber &number) { mReal -= number.mReal; mImaginary -= number.mImaginary; return *this; } template QComplexNumber& QComplexNumber::operator/=(const QComplexNumber &number) { mReal /= number.mReal; mImaginary /= number.mImaginary; return *this; } template QComplexNumber& QComplexNumber::operator*=(const QComplexNumber &number) { mReal *= number.mReal; mImaginary *= number.mImaginary; return *this; } template QComplexNumber& QComplexNumber::operator/=(const T &value) { mReal /= value; mImaginary /= value; return *this; } template QComplexNumber& QComplexNumber::operator*=(const T &value) { mReal *= value; mImaginary *= value; return *this; } template class QComplexNumber; template class QComplexNumber; template class QComplexNumber; template class QComplexNumber; template class QComplexNumber;