diff options
Diffstat (limited to 'lib/Data/Packed/Internal/Common.hs')
-rw-r--r-- | lib/Data/Packed/Internal/Common.hs | 80 |
1 files changed, 46 insertions, 34 deletions
diff --git a/lib/Data/Packed/Internal/Common.hs b/lib/Data/Packed/Internal/Common.hs index 8930cbb..5ac4f5a 100644 --- a/lib/Data/Packed/Internal/Common.hs +++ b/lib/Data/Packed/Internal/Common.hs | |||
@@ -59,6 +59,10 @@ common f = commonval . map f where | |||
59 | infixl 0 // | 59 | infixl 0 // |
60 | (//) = flip ($) | 60 | (//) = flip ($) |
61 | 61 | ||
62 | -- | specialized fromIntegral | ||
63 | fi :: Int -> CInt | ||
64 | fi = fromIntegral | ||
65 | |||
62 | -- hmm.. | 66 | -- hmm.. |
63 | ww2 w1 o1 w2 o2 f = w1 o1 $ \a1 -> w2 o2 $ \a2 -> f a1 a2 | 67 | ww2 w1 o1 w2 o2 f = w1 o1 $ \a1 -> w2 o2 $ \a2 -> f a1 a2 |
64 | ww3 w1 o1 w2 o2 w3 o3 f = w1 o1 $ \a1 -> ww2 w2 o2 w3 o3 (f a1) | 68 | ww3 w1 o1 w2 o2 w3 o3 f = w1 o1 $ \a1 -> ww2 w2 o2 w3 o3 (f a1) |
@@ -103,37 +107,45 @@ foreign import ccall "auxi.h gsl_strerror" gsl_strerror :: CInt -> IO (Ptr CChar | |||
103 | -- ugly, but my haddock version doesn't understand | 107 | -- ugly, but my haddock version doesn't understand |
104 | -- yet infix type constructors | 108 | -- yet infix type constructors |
105 | --------------------------------------------------- | 109 | --------------------------------------------------- |
106 | ---------- signatures of the C functions ------- | 110 | ---------- signatures of the C functions --------- |
107 | ------------------------------------------------ | 111 | -------------------------------------------------- |
108 | type PD = Ptr Double -- | 112 | type PD = Ptr Double -- |
109 | type PC = Ptr (Complex Double) -- | 113 | type PC = Ptr (Complex Double) -- |
110 | type TV = Int -> PD -> IO CInt -- | 114 | type TV = CInt -> PD -> IO CInt -- |
111 | type TVV = Int -> PD -> TV -- | 115 | type TVV = CInt -> PD -> TV -- |
112 | type TVVV = Int -> PD -> TVV -- | 116 | type TVVV = CInt -> PD -> TVV -- |
113 | type TM = Int -> Int -> PD -> IO CInt -- | 117 | type TM = CInt -> CInt -> PD -> IO CInt -- |
114 | type TMM = Int -> Int -> PD -> TM -- | 118 | type TMM = CInt -> CInt -> PD -> TM -- |
115 | type TMMM = Int -> Int -> PD -> TMM -- | 119 | type TVMM = CInt -> PD -> TMM -- |
116 | type TVM = Int -> PD -> TM -- | 120 | type TMVMM = CInt -> CInt -> PD -> TVMM -- |
117 | type TVVM = Int -> PD -> TVM -- | 121 | type TMMM = CInt -> CInt -> PD -> TMM -- |
118 | type TMV = Int -> Int -> PD -> TV -- | 122 | type TVM = CInt -> PD -> TM -- |
119 | type TMVM = Int -> Int -> PD -> TVM -- | 123 | type TVVM = CInt -> PD -> TVM -- |
120 | type TMMVM = Int -> Int -> PD -> TMVM -- | 124 | type TMV = CInt -> CInt -> PD -> TV -- |
121 | type TCM = Int -> Int -> PC -> IO CInt -- | 125 | type TMMV = CInt -> CInt -> PD -> TMV -- |
122 | type TCVCM = Int -> PC -> TCM -- | 126 | type TMVM = CInt -> CInt -> PD -> TVM -- |
123 | type TCMCVCM = Int -> Int -> PC -> TCVCM -- | 127 | type TMMVM = CInt -> CInt -> PD -> TMVM -- |
124 | type TMCMCVCM = Int -> Int -> PD -> TCMCVCM -- | 128 | type TCM = CInt -> CInt -> PC -> IO CInt -- |
125 | type TCMCMCVCM = Int -> Int -> PC -> TCMCVCM -- | 129 | type TCVCM = CInt -> PC -> TCM -- |
126 | type TCMCM = Int -> Int -> PC -> TCM -- | 130 | type TCMCVCM = CInt -> CInt -> PC -> TCVCM -- |
127 | type TVCM = Int -> PD -> TCM -- | 131 | type TMCMCVCM = CInt -> CInt -> PD -> TCMCVCM -- |
128 | type TCMVCM = Int -> Int -> PC -> TVCM -- | 132 | type TCMCMCVCM = CInt -> CInt -> PC -> TCMCVCM -- |
129 | type TCMCMVCM = Int -> Int -> PC -> TCMVCM -- | 133 | type TCMCM = CInt -> CInt -> PC -> TCM -- |
130 | type TCMCMCM = Int -> Int -> PC -> TCMCM -- | 134 | type TVCM = CInt -> PD -> TCM -- |
131 | type TCV = Int -> PC -> IO CInt -- | 135 | type TCMVCM = CInt -> CInt -> PC -> TVCM -- |
132 | type TCVCV = Int -> PC -> TCV -- | 136 | type TCMCMVCM = CInt -> CInt -> PC -> TCMVCM -- |
133 | type TCVCVCV = Int -> PC -> TCVCV -- | 137 | type TCMCMCM = CInt -> CInt -> PC -> TCMCM -- |
134 | type TCMCV = Int -> Int -> PC -> TCV -- | 138 | type TCV = CInt -> PC -> IO CInt -- |
135 | type TVCV = Int -> PD -> TCV -- | 139 | type TCVCV = CInt -> PC -> TCV -- |
136 | type TCVM = Int -> PC -> TM -- | 140 | type TCVCVCV = CInt -> PC -> TCVCV -- |
137 | type TMCVM = Int -> Int -> PD -> TCVM -- | 141 | type TCMCV = CInt -> CInt -> PC -> TCV -- |
138 | type TMMCVM = Int -> Int -> PD -> TMCVM -- | 142 | type TVCV = CInt -> PD -> TCV -- |
139 | ------------------------------------------------ | 143 | type TCVM = CInt -> PC -> TM -- |
144 | type TMCVM = CInt -> CInt -> PD -> TCVM -- | ||
145 | type TMMCVM = CInt -> CInt -> PD -> TMCVM -- | ||
146 | -------------------------------------------------- | ||
147 | |||
148 | type TauxMul a = CInt -> CInt -> CInt -> Ptr a | ||
149 | -> CInt -> CInt -> CInt -> Ptr a | ||
150 | -> CInt -> CInt -> Ptr a | ||
151 | -> IO CInt | ||