diff --git a/include/ITASpectrum.h b/include/ITASpectrum.h index 6fd22093964c93e666dbbd0a3982545fdf47a07d..3e674d56c069c48410881fb1db21fa30e17415a6 100644 --- a/include/ITASpectrum.h +++ b/include/ITASpectrum.h @@ -95,6 +95,14 @@ public: //! Set entire values of the spectrum by extrapolating range void SetValuesExtrapolated( const std::vector< float >& vfProvidedFrequencies, const std::vector< float >& vfProvidedValues, const int iStrategy = ITABase::InterpolationFunctions::NONE ); + + + CITASpectrum& operator*=(const float rhs); + CITASpectrum& operator*=(const CITASpectrum& rhs); + CITASpectrum& operator+=(const float rhs); + CITASpectrum& operator+=(const CITASpectrum& rhs); + CITASpectrum& operator-=(const float rhs); + CITASpectrum& operator-=(const CITASpectrum& rhs); protected: std::vector< float > m_vfValues; //!< Scalar spectrum values of any kind diff --git a/src/ITASpectrum.cpp b/src/ITASpectrum.cpp index f9c7599df66976566691a6b8574f8c6c1dde14f9..61a8d73359bbd7489249e457062f859fe152b151 100644 --- a/src/ITASpectrum.cpp +++ b/src/ITASpectrum.cpp @@ -194,6 +194,39 @@ void CITASpectrum::SetValuesExtrapolated( const std::vector< float >& vfProvided } } + +CITASpectrum& CITASpectrum::operator*=(const float rhs) +{ + this->Multiply(rhs); + return *this; +} +CITASpectrum& CITASpectrum::operator*=(const CITASpectrum& rhs) +{ + this->Multiply(rhs); + return *this; +} +CITASpectrum& CITASpectrum::operator+=(const float rhs) +{ + this->Add(rhs); + return *this; +} +CITASpectrum& CITASpectrum::operator+=(const CITASpectrum& rhs) +{ + this->Add(rhs); + return *this; +} +CITASpectrum& CITASpectrum::operator-=(const float rhs) +{ + (*this) += (-rhs); + return *this; +} +CITASpectrum& CITASpectrum::operator-=(const CITASpectrum& rhs) +{ + this->Sub(rhs); + return *this; +} + + std::ostream& operator<<( std::ostream& os, const CITASpectrum& oSpectrum ) { std::string sName = "Unnamed spectrum";