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