| 1 | |
|---|
| 2 | |
|---|
| 3 | import Foreign |
|---|
| 4 | import Control.Monad |
|---|
| 5 | import System |
|---|
| 6 | |
|---|
| 7 | import TheModule |
|---|
| 8 | |
|---|
| 9 | main = |
|---|
| 10 | do |
|---|
| 11 | n <- return . read . head =<< getArgs |
|---|
| 12 | a <- mallocArray n |
|---|
| 13 | b <- mallocArray n |
|---|
| 14 | c <- mallocArray n |
|---|
| 15 | forM_ [0..n-1] $ \i -> pokeElemOff a i m4 |
|---|
| 16 | forM_ [0..n-1] $ \i -> pokeElemOff b i v4 |
|---|
| 17 | forM_ [0..n-1] $ \i -> |
|---|
| 18 | peekElemOff a i >>= \ai -> |
|---|
| 19 | peekElemOff b i >>= \bi -> |
|---|
| 20 | pokeElemOff c i (multmv ai bi) |
|---|
| 21 | peekElemOff c 0 >>= print |
|---|
| 22 | |
|---|
| 23 | m4 = (1:.2:.3:.4:.()):. |
|---|
| 24 | (5:.6:.7:.7:.()):. |
|---|
| 25 | (9:.10:.11:.12:.()):. |
|---|
| 26 | (13:.13:.15:.16:.()):.() :: Mat44 Double |
|---|
| 27 | |
|---|
| 28 | v4 = 4:.3:.2:.1:.() :: Vec4 Double |
|---|