#ifndef _ADV_DRIVERS_HPP #define _ADV_DRIVERS_HPP #include "Tape.hpp" #include namespace adv { std::vector zero_order(const Tape& tape, const std::vector& x); std::pair, std::vector> first_order(const Tape& tape, const std::vector& x, const std::vector& dx); std::pair, std::vector> first_order_reverse(const Tape& tape, const std::vector& x, const std::vector& ybar); std::vector jacobian(const Tape& tape, const std::vector& x); std::vector jacobian_reverse(const Tape& tape, const std::vector& x); struct AbsNormalForm { std::size_t n; std::size_t m; std::size_t s; std::vector a; std::vector Z; std::vector L; std::vector b; std::vector J; std::vector Y; }; AbsNormalForm abs_normal(const Tape& tape, const std::vector& x); } // namespace adv #endif // _ADV_DRIVERS_HPP