T NumericArray<T>::DotProduct (const NumericArray<T>& source) const // Dot porduct fucntion. { if (Size() != source.Size()) { throw SizeMissmatchException(); } T sum = 0; for (int i = 0; i < (Size()); i++) { sum += source[i]* (*this)[i] ; } return sum; }
NumericArray<T> NumericArray<T>::operator + (const NumericArray<T>& source) const { cout << "operator + (const NumericArray<T>& source) const is called \n " <<endl ; if (Size() != source.Size()) { throw SizeMissmatchException(); } NumericArray<T> temp(Size()); for (int i = 0; i < Size(); i++) { temp[i] = source[i] + (*this)[i]; } return temp; }
NumericArray<T> NumericArray<T>::operator + (const NumericArray<T>& arr) const { if (this->Size() == arr.Size()) { NumericArray<T> temp(this->Size()); for (int i = 0; i < this->Size(); i++) { temp.SetElement(i, (*this)[i] + arr[i]); } } else { throw DifferentSizeException(-1); } }
double NumericArray<T>::DotProduct(const NumericArray<T>& arr) const { double product = 0; if (this->Size() == arr.Size()) { for (int i = 0; i < this->Size(); i++) { product += (*this)[i] * arr[i]; } } else { // Throw different size exception throw DifferentSizeException(-1); } return product; }