44 #ifndef OPTIPACK_DEFAULT_POLY_LINE_SEARCH_POINT_EVALUATOR_HPP 45 #define OPTIPACK_DEFAULT_POLY_LINE_SEARCH_POINT_EVALUATOR_HPP 48 #include "OptiPack_LineSearchPointEvaluatorBase.hpp" 49 #include "Thyra_VectorStdOps.hpp" 68 template<
typename Scalar>
74 typedef typename ScalarTraits<Scalar>::magnitudeType
ScalarMag;
83 void initialize(
const ArrayView<
const RCP<
const Thyra::VectorBase<Scalar> > > &vecs);
92 const Ptr<Thyra::VectorBase<Scalar> > &p
99 Array<RCP<const Thyra::VectorBase<Scalar> > > vecs_;
108 template<
typename Scalar>
109 const RCP<DefaultPolyLineSearchPointEvaluator<Scalar> >
124 template<
typename Scalar>
129 template<
typename Scalar>
131 const ArrayView<
const RCP<
const Thyra::VectorBase<Scalar> > > &vecs
135 TEUCHOS_ASSERT(vecs.size());
144 template<
typename Scalar>
146 const Ptr<Thyra::VectorBase<Scalar> > &p
149 typedef ScalarTraits<Scalar> ST;
154 if (alpha != ST::zero()) {
156 const int n = vecs_.size();
157 for (
int i = 1; i < n; ++i, alpha_i *= alpha) {
158 Vp_StV(p, alpha_i, *vecs_[i]);
167 #endif // OPTIPACK_DEFAULT_POLY_LINE_SEARCH_POINT_EVALUATOR_HPP virtual void computePoint(const ScalarMag &alpha, const Ptr< Thyra::VectorBase< Scalar > > &p) const
Default line search point evaluator using a polynomial linear combination of vectors.
DefaultPolyLineSearchPointEvaluator()
void initialize(const ArrayView< const RCP< const Thyra::VectorBase< Scalar > > > &vecs)
Base class interface for line search point updates.
const RCP< DefaultPolyLineSearchPointEvaluator< Scalar > > defaultPolyLineSearchPointEvaluator()
Nonmember constructor.
ScalarTraits< Scalar >::magnitudeType ScalarMag