File collocation.hpp

template<typename Point, typename NT, typename Polytope, typename bfunc, typename func, typename NontLinearOracle = MPSolveHPolyoracle<Polytope, bfunc>>
struct CollocationODESolver

Public Types

typedef std::vector<Point> pts
typedef std::vector<pts> ptsv
typedef Polytope::MT MT
typedef Polytope::VT VT
typedef std::vector<MT> MTs
typedef std::vector<Polytope*> bounds
typedef std::vector<NT> coeffs

Public Functions

inline CollocationODESolver(NT initial_time, NT step, pts initial_state, func oracle, bounds boundaries, coeffs c_coeffs, bfunc basis, bfunc grad_basis)
inline unsigned int order() const
inline void initialize_matrices()
inline void step()
inline void print_state()
inline void steps(int num_steps)
inline Point get_state(int index)
inline void set_state(int index, Point p)

Public Members

unsigned int dim
NT eta
NT t
NT t_prev
NT dt
NT t_temp
const NT tol = 1e-3
const bool exact = false
const bool precompute = true
bool precompute_flag = false
func F
bfunc phi
bfunc grad_phi
bounds Ks
pts xs
pts xs_prev
pts zs
Point y
NT temp_grad
NT temp_func
ptsv as
coeffs cs
MTs As
MTs Bs
MTs temps
VT Ar
VT Av
NontLinearOracle oracle
int prev_facet = -1
Point prev_point