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
+naturals = Repa.fromList (n_cube 3) $
+ flatten $
+ transpose_xz $
+ naturals_list