6 import qualified Vector

as SV

7 import qualified Vectorised

as SPA

8 import qualified Data

.Vector

as V

9 import qualified Data

.Vector

.Unboxed

as VU

10 import qualified Data

.Array.Parallel

as P

11 import qualified Data

.Array.Parallel

.PArray

as P

14 type Solver

= VU

.Vector Vec3

-> VU

.Vector

(Int,Int,Int) -> VU

.Vector Vec3

-> VU

.Vector

(Vec3

, Double)
16 solvers

:: [(String,Solver

)]
18 [("vectorised", solverPA

)
19 ,("vector", SV

.solveV

)]
21 solverPA verts tris rays

22 = let fv a

= P

.fromVector

(VU

.convert a

)
23 in VU

.convert

(P

.toVector

(SPA

.solvePA

(fv verts

) (fv tris

) (fv rays

)))