Safe HaskellNone

AronFFI

Synopsis

Documentation

c_increment :: CInt -> IO CInt Source #

f_increment :: Int -> IO Int Source #

c_alloca_memory :: Ptr CInt -> CInt -> IO () Source #

c_dotn :: CInt -> Ptr CDouble -> Ptr CDouble -> IO CDouble Source #

f_dot :: [CDouble] -> [CDouble] -> IO CDouble Source #

c_addVec :: CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO () Source #

c_subVec3 :: Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO () Source #

c_mulScaleVec3 :: CDouble -> Ptr CDouble -> Ptr CDouble -> IO () Source #

c_mulVec3Scale :: Ptr CDouble -> CDouble -> Ptr CDouble -> IO () Source #

c_multiVec :: CInt -> CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO () Source #

c_multiMat :: CInt -> CInt -> Ptr CDouble -> CInt -> CInt -> Ptr CDouble -> Ptr CDouble -> IO () Source #

c_quickSortInt :: CInt -> CInt -> Ptr CInt -> IO () Source #

f_quickSortInt :: [Int] -> IO [Int] Source #

f_multiMat :: [[Double]] -> [[Double]] -> IO [[Double]] Source #

fxx :: Int -> [a] -> [[a]] Source #

f_multiVec :: [[Double]] -> [Double] -> IO [Double] Source #

f_addVec :: [Double] -> [Double] -> IO [Double] Source #

f_subVec3 :: [CDouble] -> [CDouble] -> IO [CDouble] Source #

f_mulScaleVec3 :: CDouble -> [CDouble] -> IO [CDouble] Source #

f_mulVec3Scale :: [CDouble] -> CDouble -> IO [CDouble] Source #

f_alloca_memory :: Int -> IO [Int] Source #

  • - NOTE: Need to free(pt) here f_alloca_memory::Int -> IO [Int] f_alloca_memory n = do pt <- mallocBytes n c_alloca_memory pt (fromIntegral n) arr <- peekArray n pt return $ map fromIntegral arr