19 #ifndef IP_L2NORMFUNCTIONAL_HH_BSVF8BMQ
20 #define IP_L2NORMFUNCTIONAL_HH_BSVF8BMQ
22 #include "pism/inverse/functional/IPFunctional.hh"
Abstract base class for IPFunctionals arising from an inner product.
virtual void valueAt(array::Scalar &x, double *OUTPUT)
Computes the value of the functional at the vector x.
IP_L2NormFunctional2S(std::shared_ptr< const Grid > grid)
virtual void gradientAt(array::Scalar &x, array::Scalar &gradient)
Computes the gradient of the functional at the vector x.
virtual void dot(array::Scalar &a, array::Scalar &b, double *v)
Computes the inner product .
virtual ~IP_L2NormFunctional2S()
IP_L2NormFunctional2S & operator=(IP_L2NormFunctional2S const &)
IP_L2NormFunctional2S(IP_L2NormFunctional2S const &)
Implements a functional corresponding to (the square of) an norm of a scalar valued function.
IP_L2NormFunctional2V & operator=(IP_L2NormFunctional2V const &)
virtual void gradientAt(array::Vector &x, array::Vector &gradient)
Computes the gradient of the functional at the vector x.
virtual ~IP_L2NormFunctional2V()
virtual void valueAt(array::Vector &x, double *v)
Computes the value of the functional at the vector x.
virtual void dot(array::Vector &a, array::Vector &b, double *v)
Computes the inner product .
IP_L2NormFunctional2V(IP_L2NormFunctional2V const &)
IP_L2NormFunctional2V(std::shared_ptr< const Grid > grid)
Implements a functional corresponding to (the square of) an norm of a vector valued function.