11 #ifndef OOPS_INTERFACE_OBSERRORCOVARIANCE_H_
12 #define OOPS_INTERFACE_OBSERRORCOVARIANCE_H_
35 template <
typename OBS,
typename OBSERR>
41 static const std::string
classname() {
return "oops::ObsErrorCovariance";}
57 void print(std::ostream &)
const;
63 template <
typename OBS,
typename OBSERR>
67 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::ObsErrorCovariance starting" << std::endl;
68 util::Timer timer(
classname(),
"ObsErrorCovariance");
69 covar_.reset(
new OBSERR(conf, obsdb, obsvar));
70 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::ObsErrorCovariance done" << std::endl;
75 template <
typename OBS,
typename OBSERR>
77 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::~ObsErrorCovariance starting" << std::endl;
78 util::Timer timer(classname(),
"~ObsErrorCovariance");
80 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::~ObsErrorCovariance done" << std::endl;
85 template <
typename OBS,
typename OBSERR>
87 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::multiply starting" << std::endl;
88 util::Timer timer(classname(),
"multiply");
90 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::multiply done" << std::endl;
95 template <
typename OBS,
typename OBSERR>
97 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::inverseMultiply starting" << std::endl;
98 util::Timer timer(classname(),
"inverseMultiply");
100 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::inverseMultiply done" << std::endl;
105 template <
typename OBS,
typename OBSERR>
107 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::randomize starting" << std::endl;
108 util::Timer timer(classname(),
"randomize");
110 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::randomize done" << std::endl;
115 template <
typename OBS,
typename OBSERR>
117 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::getRMSE starting" << std::endl;
118 util::Timer timer(classname(),
"getRMSE");
119 double zz = covar_->getRMSE();
120 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::getRMSE done" << std::endl;
126 template<
typename OBS,
typename OBSERR>
128 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::print starting" << std::endl;
129 util::Timer timer(classname(),
"print");
131 Log::trace() <<
"ObsErrorCovariance<OBS, OBSERR>::print done" << std::endl;
138 #endif // OOPS_INTERFACE_OBSERRORCOVARIANCE_H_