]> gitweb.michael.orlitzky.com - spline3.git/commitdiff
Force a few maps in the MRI module.
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 8 Sep 2011 21:35:06 +0000 (17:35 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 8 Sep 2011 21:35:06 +0000 (17:35 -0400)
Separate the flip16 (swap_bytes) map from bracket.

src/MRI.hs

index 040dcc2a521ed9553974bca43e8fe23df9a63541..ce1bb7d9d078e567ebde68323d1b112e4e9166f3 100644 (file)
@@ -61,21 +61,32 @@ bracket low high x
 
 {-# INLINE flip16 #-}
 flip16 :: Word16 -> Word16
-flip16 xx = 
+flip16 xx =
   shift xx 8 .|. (shift xx (-8) .&. 0x00ff)
 
 
+swap_bytes :: (Shape sh) => (RawData sh) -> (RawData sh)
+swap_bytes arr =
+    R.force $ R.map flip16 arr
+
 bracket_array :: (Shape sh) => (RawData sh) -> (RawData sh)
 bracket_array arr =
-  R.map (bracket mri_lower_threshold mri_upper_threshold . fromIntegral . flip16) arr
+  R.force $ R.map f arr
+  where
+    f = (bracket mri_lower_threshold mri_upper_threshold) . fromIntegral
+
 
 flip_y :: RawData3D -> RawData3D
 flip_y arr =
-  R.traverse arr id (\get (Z :. z :. y :. x) -> get (Z :. z :. (mri_height - 1) - y :. x))
+  R.force $ R.traverse arr id
+              (\get (Z :. z :. y :. x) ->
+                   get (Z :. z :. (mri_height - 1) - y :. x))
 
 flip_x :: RawData3D -> RawData3D
 flip_x arr =
-  R.traverse arr id (\get (Z :. z :. y :. x) -> get (Z :. z :. y :. (mri_width - 1) - x))
+  R.force $ R.traverse arr id
+              (\get (Z :. z :. y :. x) ->
+                   get (Z :. z :. y :. (mri_width - 1) - x))
 
 write_word16s :: (Shape sh) => FilePath -> (RawData sh) -> IO ()
 write_word16s = R.writeArrayToStorableFile