|
GlobiPack
Version of the Day
|
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 );
129 #endif // GLOBIPACK_MERIT_FUNC_1D_BASE_HPP
Scalar alpha
The value of the unknown alpha.
Base class for 1D merit fucntions used in globalization methods.
Scalar Dphi
The value of the derivative of the merit function Dphi(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).
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.
Scalar phi
The value of the merit function phi(alpha).
ScalarTraits< Scalar >::magnitudeType computeValue(const MeritFunc1DBase< Scalar > &phi, const Scalar &alpha)
Compute the value of the merit function phi(alpha).
virtual bool supportsDerivEvals() const =0
Determine if derivative evaluations are supported or not.