// norm.cc -- compute norms // $Id$ // // *** class jtutil::norm:: // #include #include #include #include "util.hh" //***************************************************************************** // specify data point namespace jtutil { template void norm::data(fp x) { ++N_; sum2_ += x*x; infinity_norm_ = std::max(infinity_norm_, jtutil::abs(x)); } } // namespace jtutil:: //****************************************************************************** // get norms namespace jtutil { template fp norm::two_norm() const { return std::sqrt(sum2_); } template fp norm::rms_norm() const { assert(is_nonempty()); return std::sqrt(sum2_/fp(N_)); } template fp norm::infinity_norm() const { return infinity_norm_; } } // namespace jtutil:: //****************************************************************************** // // ***** template instantiations ***** // template class jtutil::norm; template class jtutil::norm;