packages feed

casadi-bindings-3.1.0.2: src/Casadi/Interpolant.hs

{-# OPTIONS_GHC -Wall -fno-cse #-}

module Casadi.Interpolant
       ( interpolant
       ) where

import Data.Map ( Map )
import qualified Data.Traversable as T
import Data.Vector ( Vector )
import System.IO.Unsafe ( unsafePerformIO )

import qualified Casadi.Core.Tools as C

import Casadi.GenericType ( GenericType, GType, fromGType )
import Casadi.Function ( Function )

interpolant :: String -> String -> Vector (Vector Double) -> Vector Double -> Map String GType -> Function
interpolant name solver grid values opts0 = unsafePerformIO $ do
  opts <- T.mapM fromGType opts0 :: IO (Map String GenericType)
  C.interpolant__1 name solver grid values opts