{-# LANGUAGE CPP #-}

#define MODULE \
module Numeric.AD.Rank1.Kahn.Float

#define AD_EXPORT KahnFloat

#define IMPORTS \
import Numeric.AD.Internal.Kahn (Kahn); \
import qualified Numeric.AD.Rank1.Kahn as Kahn; \
import Numeric.AD.Internal.Kahn.Float

#define UNBINDWITH unbindWithUArray
#define GRAD Kahn.grad
#define JACOBIAN Kahn.jacobian

#define AD_TYPE KahnFloat
#define SCALAR_TYPE Float
#define BASE0_1(x)
#define BASE1_1(x,y) x
#define BASE2_1(x,y,z) (x,y)
#include "rank1_kahn.h"