File implicit_midpoint.hpp

Functions

template<typename T>
inline std::vector<T> operator+(const std::vector<T> &v1, const std::vector<T> &v2)
template<typename T, typename Type>
inline std::vector<T> operator*(const std::vector<T> &v, const Type alpha)
template<typename T, typename Type>
inline std::vector<T> operator/(const std::vector<T> &v, const Type alpha)
template<typename T>
inline std::vector<T> operator-(const std::vector<T> &v1, const std::vector<T> &v2)
template<typename Point, typename NT, typename Polytope, typename func, int simdLen = 1>
struct ImplicitMidpointODESolver

Public Types

using VT = typename Polytope::VT
using MT = typename Polytope::MT
using pts = std::vector<MT>
using hamiltonian = Hamiltonian<Polytope, Point, simdLen>
using Opts = opts<NT>

Public Functions

inline ImplicitMidpointODESolver(NT initial_time, NT step, pts initial_state, func oracle, Polytope &boundaries, Opts &user_options)
inline void step(int k, bool accepted)
inline void steps(int num_steps, bool accepted)
inline MT get_state(int index)
inline void set_state(int index, MT p)
template<typename StreamType>
inline void print_state(StreamType &stream)
inline NT get_eta() const

Public Members

unsigned int dim
NT eta
int num_steps = 0
NT t
pts xs
pts xs_prev
func F
Polytope &P
Opts &options
MT nu
int num_runs = 0
hamiltonian ham
bool done