{-# LANGUAGE CPP #-} #define MODULE \ module Numeric.AD.Rank1.Kahn.Double #define AD_EXPORT KahnDouble #define IMPORTS \ import Numeric.AD.Internal.Kahn (Kahn); \ import qualified Numeric.AD.Rank1.Kahn as Kahn; \ import Numeric.AD.Internal.Kahn.Double #define UNBINDWITH unbindWithUArray #define GRAD Kahn.grad #define JACOBIAN Kahn.jacobian #define AD_TYPE KahnDouble #define SCALAR_TYPE Double #define BASE0_1(x) #define BASE1_1(x,y) x #define BASE2_1(x,y,z) (x,y) #include "rank1_kahn.h"