13#ifndef OPTIMIST_TESTSET_LINEAR_HH
14#define OPTIMIST_TESTSET_LINEAR_HH
38 template <
typename Scalar>
39 requires TypeTrait<Scalar>::IsScalar
51 this->
m_solutions.emplace_back(-this->m_q / this->m_m);
70 out = this->m_m * x + this->m_q;
71 return std::isfinite(out);
82 return std::isfinite(out);
93 return std::isfinite(out);
114 template <
typename Vector>
138 Scalar tmp{-this->m_q / this->m_m};
139 if constexpr (VectorTrait::IsFixed) {
142 }
else if constexpr (VectorTrait::IsDynamic) {
147 }
else if constexpr (VectorTrait::IsSparse) {
172#define CMD "Optimist::TestSet::Linear1::evaluate_impl(...): "
174 if constexpr (VectorTrait::IsFixed) {
175 out << this->m_m * x(0) + this->m_q;
176 return std::isfinite(out(0));
177 }
else if constexpr (VectorTrait::IsDynamic) {
179 out << this->m_m * x(0) + this->m_q;
180 return std::isfinite(out(0));
181 }
else if constexpr (VectorTrait::IsSparse) {
184 out.coeffRef(0) = this->m_m * x.coeff(0) + this->m_q;
185 return std::isfinite(out.coeff(0));
202#define CMD "Optimist::TestSet::Linear1::first_derivative_impl(...): "
204 if constexpr (VectorTrait::IsFixed) {
206 }
else if constexpr (VectorTrait::IsDynamic) {
209 }
else if constexpr (VectorTrait::IsSparse) {
212 out.coeffRef(0, 0) = this->m_m;
217 return std::isfinite(this->m_m);
230#define CMD "Optimist::TestSet::Linear1::second_derivative_impl(...): "
233 if constexpr (VectorTrait::IsFixed) {
235 }
else if constexpr (VectorTrait::IsDynamic) {
238 }
else if constexpr (VectorTrait::IsSparse) {
241 out[0].coeffRef(0, 0) = 0.0;
#define OPTIMIST_ERROR(MSG)
Definition Optimist.hh:38
#define OPTIMIST_BASIC_CONSTANTS(Scalar)
Definition Optimist.hh:70
typename InputTrait::Scalar Scalar
Definition Function.hh:53
std::conditional_t< InputTrait::IsEigen||OutputTrait::IsEigen, std::conditional_t< InputTrait::IsSparse||OutputTrait::IsSparse, std::vector< Eigen::SparseMatrix< Scalar > >, std::vector< Eigen::Matrix< Scalar, OutputTrait::Dimension, InputTrait::Dimension > > >, Scalar > SecondDerivative
Definition Function.hh:64
std::vector< Scalar > m_guesses
Definition Function.hh:79
std::vector< Scalar > m_solutions
Definition Function.hh:77
std::conditional_t< InputTrait::IsEigen||OutputTrait::IsEigen, std::conditional_t< InputTrait::IsSparse||OutputTrait::IsSparse, Eigen::SparseMatrix< Scalar >, Eigen::Matrix< Scalar, OutputTrait::Dimension, InputTrait::Dimension > >, Scalar > FirstDerivative
Definition Function.hh:56
Function()
Definition Function.hh:234
Linear1()
Definition Linear.hh:135
bool second_derivative_impl(const Vector &, SecondDerivative &out) const
Definition Linear.hh:228
bool evaluate_impl(const Vector &x, Vector &out) const
Definition Linear.hh:171
bool first_derivative_impl(const Vector &, FirstDerivative &out) const
Definition Linear.hh:200
typename Vector::Scalar Scalar
Definition Linear.hh:120
constexpr std::string name_impl() const
Definition Linear.hh:161
Scalar m_m
Definition Linear.hh:126
TypeTrait< Vector > VectorTrait
Definition Linear.hh:119
Scalar m_q
Definition Linear.hh:127
constexpr std::string name_impl() const
Definition Linear.hh:59
bool second_derivative_impl(const Scalar, Scalar &out) const
Definition Linear.hh:91
Scalar m_q
Definition Linear.hh:42
Scalar m_m
Definition Linear.hh:41
Linear()
Definition Linear.hh:50
bool evaluate_impl(const Scalar x, Scalar &out) const
Definition Linear.hh:69
bool first_derivative_impl(const Scalar, Scalar &out) const
Definition Linear.hh:80
Namespace for the Optimist library.
Definition Optimist.hh:90
Definition Optimist.hh:114