11 #ifndef OOPS_ASSIMILATION_COSTJBSTATE_H_
12 #define OOPS_ASSIMILATION_COSTJBSTATE_H_
15 #include <boost/noncopyable.hpp>
24 template<
typename MODEL>
class Geometry;
25 template<
typename MODEL>
class Increment;
26 template<
typename MODEL>
class State;
27 template<
typename MODEL>
class JqTermTLAD;
37 template<
typename MODEL>
class CostJbState :
private boost::noncopyable {
Jb Cost Function Base Class.
virtual JqTermTLAD< MODEL > * initializeJqTL() const =0
Finalize after the TL run.
Geometry< MODEL > Geometry_
Increment< MODEL > Increment_
virtual Increment_ * newStateIncrement() const =0
Create new increment (set to 0).
virtual JqTermTLAD< MODEL > * initializeJqTLAD() const =0
Initialize Jq computations if needed.
virtual void linearize(const State_ &, const Geometry_ &)=0
Linearize before the linear computations.
virtual void Bminv(const Increment_ &, Increment_ &) const =0
virtual void Bmult(const Increment_ &, Increment_ &) const =0
Multiply by and .
virtual void randomize(Increment_ &) const =0
Randomize.
virtual void addGradient(const Increment_ &, Increment_ &, Increment_ &) const =0
Add Jb gradient.
virtual JqTermTLAD< MODEL > * initializeJqAD(const Increment_ &) const =0
Initialize before the AD run.
virtual ~CostJbState()
Destructor.
CostJbState()
Constructor.
virtual void computeIncrement(const State_ &, const State_ &, const State_ &, Increment_ &) const =0
Geometry class used in oops; subclass of interface class interface::Geometry.
Increment class used in oops.
State class used in oops; subclass of interface class interface::State.
The namespace for the main oops code.