template class FDVec { private: double e[dim]; public: FDVec() { for ( int i = 0; i < dim; i++ ) e[i] = 0.0; } // Member function: x.sum(y,out): returns out <- x + y FDVec &sum(const FDVec &y, FDVec &out) { for ( int i = 0; i < dim; i++ ) out.e[i] = e[i] + y.e[i]; return out; } // Member function: x.mult(s,out): returns out <- s*x FDVec &mult(double s, FDVec &out) { for ( int i = 0; i < dim; i++ ) out.e[i] = s*e[i]; } };