44 #ifndef GLOBIPACK_MERIT_FUNC_1D_BASE_HPP
45 #define GLOBIPACK_MERIT_FUNC_1D_BASE_HPP
48 #include "GlobiPack_Types.hpp"
49 #include "Teuchos_Describable.hpp"
61 template<
typename Scalar>
87 virtual void eval(
const Scalar &alpha,
const Ptr<Scalar> &phi,
88 const Ptr<Scalar> &Dphi )
const = 0;
97 template<
typename Scalar>
98 typename ScalarTraits<Scalar>::magnitudeType
101 Scalar phi_val = ScalarTraits<Scalar>::zero();
102 phi.
eval(alpha, Teuchos::outArg(phi_val), Teuchos::null);
111 template<
typename Scalar>
114 const bool compute_phi =
true,
const bool compute_Dphi =
false)
117 using Teuchos::outArg;
120 phi.
eval( alpha, compute_phi ? outArg(p.
phi) :
null ,
121 compute_Dphi ? outArg(p.
Dphi) :
null );
Base class for 1D merit fucntions used in globalization methods.
virtual bool supportsDerivEvals() const =0
Determine if derivative evaluations are supported or not.
PointEval1D< Scalar > computePoint(const MeritFunc1DBase< Scalar > &phi, const Scalar &alpha, const bool compute_phi=true, const bool compute_Dphi=false)
Compute a point as an object.
ScalarTraits< Scalar >::magnitudeType computeValue(const MeritFunc1DBase< Scalar > &phi, const Scalar &alpha)
Compute the value of the merit function phi(alpha).
virtual void eval(const Scalar &alpha, const Ptr< Scalar > &phi, const Ptr< Scalar > &Dphi) const =0
Evaluate the merit function at alpha.
Represents the evaluation point of the merit function phi(alpha) and/or is derivative Dphi(alpha).
Scalar alpha
The value of the unknown alpha.
Scalar Dphi
The value of the derivative of the merit function Dphi(alpha).
Scalar phi
The value of the merit function phi(alpha).