Example #1
0
Spectrum Spectrum::add(double coeff_this, double coeff, const Spectrum & rhs) const {
    assert(elems.size()==rhs.elems.size());
    const size_t n = elems.size();
    Spectrum result(n);
    for(size_t i=0; i<n; ++i){
        result.elems[i] = coeff_this * elems[i] + coeff * rhs.elems[i]; 
    }
    const double ct2 = coeff_this * coeff_this;
    const double c2 = coeff * coeff;
    for(size_t i=0; i<n; ++i){
        for(size_t j=0; j<n; ++j){
            result.cov_(i,j) = ct2 * cov_(i,j) + c2 * rhs.cov_(i, j);
        }
    }
    return result;
}