26 #ifndef CASADI_INTERPOLANT_IMPL_HPP 
   27 #define CASADI_INTERPOLANT_IMPL_HPP 
   29 #include "interpolant.hpp" 
   30 #include "function_internal.hpp" 
   31 #include "plugin_interface.hpp" 
   45                 const std::vector<double>& grid,
 
   46                 const std::vector<casadi_int>& offset,
 
   47                 const std::vector<double>& values,
 
   56     std::string 
class_name()
 const override {
return "Interpolant";}
 
   62     size_t get_n_in()
 override { 
return 1+has_parametric_values()+has_parametric_grid();}
 
   75     Sparsity get_sparsity_in(casadi_int i) 
override;
 
   76     Sparsity get_sparsity_out(casadi_int i) 
override;
 
   83     std::string get_name_in(casadi_int i) 
override;
 
   84     std::string get_name_out(casadi_int i) 
override;
 
   96     void init(
const Dict& opts) 
override;
 
   99     static std::vector<casadi_int> interpret_lookup_mode(
const std::vector<std::string>& modes,
 
  100         const std::vector<double>& grid, 
const std::vector<casadi_int>& offset,
 
  101         const std::vector<casadi_int>& margin_left=std::vector<casadi_int>(),
 
  102         const std::vector<casadi_int>& margin_right=std::vector<casadi_int>());
 
  104     static void stack_grid(
const std::vector< std::vector<double> >& grid,
 
  105       std::vector<casadi_int>& offset, std::vector<double>& stacked);
 
  107     static void check_grid(
const std::vector< std::vector<double> >& grid);
 
  108     static void check_grid(
const std::vector<casadi_int>& grid);
 
  110     static std::vector<double> meshgrid(
const std::vector< std::vector<double> >& grid);
 
  114                                     const std::vector<double>& grid,
 
  115                                     const std::vector<casadi_int>& offset,
 
  116                                     const std::vector<double>& values,
 
  122     static Function construct(
const std::string& solver, 
const std::string& name,
 
  123                       const std::vector<double>& grid,
 
  124                       const std::vector<casadi_int>& offset,
 
  125                       const std::vector<double>& values,
 
  129     typedef Function (* DoInline)(
const std::string& name,
 
  130                     const std::vector<double>& grid,
 
  131                     const std::vector<casadi_int>& offset,
 
  132                     const std::vector<double>& values,
 
  142 #ifdef CASADI_WITH_THREADSAFE_SYMBOLICS 
  143     static std::mutex mutex_solvers_;
 
  198     casadi_int arg_values() 
const;
 
  199     casadi_int arg_grid() 
const;
 
  204     casadi_int coeff_size() 
const;
 
  205     static casadi_int coeff_size(
const std::vector<casadi_int>& offset, casadi_int m);
 
  209     bool arg_values(casadi_int i) 
const;
 
  210     bool arg_grid(casadi_int i) 
const;
 
Helper class for Serialization.
 
Internal class for Function.
 
std::vector< std::string > lookup_modes_
 
static const Options options_
Options.
 
std::string serialize_base_function() const override
String used to identify the immediate FunctionInternal subclass.
 
std::vector< casadi_int > offset_
 
size_t get_n_out() override
Number of function inputs and outputs.
 
std::vector< double > grid_
 
bool has_parametric_grid() const
Is parametric?
 
std::string class_name() const override
Get type name.
 
std::vector< double > values_
 
size_t get_n_in() override
Number of function inputs and outputs.
 
bool get_diff_in(casadi_int i) override
Which inputs are differentiable?
 
static const std::string infix_
Infix.
 
bool has_parametric_values() const
Is parametric?
 
const Options & get_options() const override
Options.
 
static std::map< std::string, Plugin > solvers_
Collection of solvers.
 
Interface for accessing input and output data structures.
 
Base class for FunctionInternal and LinsolInternal.
 
Helper class for Serialization.
 
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
 
Options metadata for a class.