Program Listing for File gp_solve.cpp

Return to documentation for file (ellip/gp_solve.cpp)

#include "gp_solve.hpp"

using Vec = std::valarray<double>;

template <>
Info4EM<Vec> gp_base<double>::operator()(const Vec& x) const
{
    double f;
    Vec g(x.size());

    for (auto i = 1; i != _M.size(); ++i)
    {
        g = _M[i].lse_gradient(x, f);
        if (f > 0)
            return {false, g, f, x};
    }

    g = _M[0].lse_gradient(x, f);
    return {true, g, f, x};
}