-module Examples
+module Examples (
+ naturals,
+ naturals_1d,
+ trilinear,
+ trilinear_zoom_2,
+ trilinear9x9x9,
+ zeros
+ )
where
import qualified Data.Array.Repa as Repa
n_cube n = (Repa.Z Repa.:. n Repa.:. n Repa.:. n)
trilinear :: Values3D
-trilinear = Repa.fromList (n_cube 3) $ flatten trilinear_list
+trilinear = Repa.fromList (n_cube 3) $
+ flatten $
+ transpose_xz
+ trilinear_list
-- | Values of the function f(x,y,z) = 1 + x + xy + xyz taken at 5^3
trilinear_zoom_2_list = [[[1, 3/2, 2, 5/2, 3], [1, 7/4, 5/2, 13/4, 4], [1, 2, 3, 4, 5], [1, 9/4, 7/2, 19/4, 6], [1, 5/2, 4, 11/2, 7]], [[1, 3/2, 2, 5/2, 3], [1, 15/8, 11/4, 29/8, 9/2], [1, 9/4, 7/2, 19/4, 6], [1, 21/8, 17/4, 47/8, 15/2], [1, 3, 5, 7, 9]], [[1, 3/2, 2, 5/2, 3], [1, 2, 3, 4, 5], [1, 5/2, 4, 11/2, 7], [1, 3, 5, 7, 9], [1, 7/2, 6, 17/2, 11]], [[1, 3/2, 2, 5/2, 3], [1, 17/8, 13/4, 35/8, 11/2], [1, 11/4, 9/2, 25/4, 8], [1, 27/8, 23/4, 65/8, 21/2], [1, 4, 7, 10, 13]], [[1, 3/2, 2, 5/2, 3], [1, 9/4, 7/2, 19/4, 6], [1, 3, 5, 7, 9], [1, 15/4, 13/2, 37/4, 12], [1, 9/2, 8, 23/2, 15]]]
trilinear_zoom_2 :: Values3D
-trilinear_zoom_2 = Repa.fromList (n_cube 6) $ flatten trilinear_zoom_2_list
+trilinear_zoom_2 = Repa.fromList (n_cube 6) $
+ flatten $
+ transpose_xz
+ trilinear_zoom_2_list
-- | Values of the function f(x,y,z) = 1 + x + xy + xyz taken at nine^3
trilinear9x9x9 :: Values3D
-trilinear9x9x9 = Repa.fromList (n_cube 9) $ flatten trilinear9x9x9_list
+trilinear9x9x9 = Repa.fromList (n_cube 9) $
+ flatten $
+ transpose_xz
+ trilinear9x9x9_list
-- | A 3x3x3 array of zeros.
[ 0, 0, 0 ]]]
+-- No need to transpose_xz this one.
zeros :: Values3D
zeros = Repa.fromList (n_cube 3) $ flatten zeros_list
+
-- | A 3x3x3 array of numbers, starting at (0,0,0) == 0 and counting
-- up to (2,2,2) == 26 in x,y,z order.
naturals_list :: [[[Double]]]
[ 24, 25, 26 ]]]
naturals :: Values3D
-naturals = Repa.fromList (n_cube 3) $ flatten naturals_list
\ No newline at end of file
+naturals = Repa.fromList (n_cube 3) $
+ flatten $
+ transpose_xz
+ naturals_list
+
+
+
+naturals_1d_list :: [[[Double]]]
+naturals_1d_list =[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]]]
+
+
+twenty_vector :: Repa.DIM3
+twenty_vector = (Repa.Z Repa.:. 1 Repa.:. 20 Repa.:. 1)
+
+-- | Used in at least one test where we need a 1x20x1 array.
+naturals_1d :: Values3D
+naturals_1d = Repa.fromList twenty_vector (flatten naturals_1d_list)