dims,
empty3d,
idx,
- read_values_3d,
zoom_shape
)
where
import Data.Array.Repa (
- Array,
+ Array, U,
Z(..),
(:.)(..),
- DIM1,
DIM2,
DIM3,
extent,
- fromList,
+ fromListUnboxed,
unsafeIndex,
- reshape
)
-import Data.Array.Repa.IO.Vector (readVectorFromTextFile)
import System.FilePath ()
import Test.QuickCheck (Arbitrary(..), Gen, choose, vectorOf)
import ScaleFactor (ScaleFactor)
-type Values sh = Array sh Double
-type Values1D = Values DIM1
-type Values2D = Values DIM2
-type Values3D = Values DIM3
+type Values sh = Array U sh Double
+type Values2D = Values DIM2
+type Values3D = Values DIM3
instance Arbitrary Values3D where
z_dim <- choose (1, 27)
elements <- vectorOf (x_dim * y_dim * z_dim) (arbitrary :: Gen Double)
let new_shape = (Z :. x_dim :. y_dim :. z_dim)
- let three_d = Data.Array.Repa.fromList new_shape elements
+ let three_d = Data.Array.Repa.fromListUnboxed new_shape elements
return three_d
-read_values_1d :: FilePath -> IO Values1D
-read_values_1d = readVectorFromTextFile
-
-
-read_values_3d :: DIM3 -> FilePath -> IO Values3D
-read_values_3d sh path = do
- one_d <- read_values_1d path
- return $ reshape sh one_d
-
empty3d :: Values3D
-empty3d = Data.Array.Repa.fromList (Z :. 0 :. 0 :. 0) []
+empty3d = Data.Array.Repa.fromListUnboxed (Z :. 0 :. 0 :. 0) []
dims :: Values3D -> (Int, Int, Int)