From: Michael Orlitzky Date: Thu, 8 Sep 2011 21:35:06 +0000 (-0400) Subject: Force a few maps in the MRI module. X-Git-Tag: 0.0.1~142 X-Git-Url: http://gitweb.michael.orlitzky.com/?p=spline3.git;a=commitdiff_plain;h=66ac320e3b6c12208adb272b1175a370eaea3ed3 Force a few maps in the MRI module. Separate the flip16 (swap_bytes) map from bracket. --- diff --git a/src/MRI.hs b/src/MRI.hs index 040dcc2..ce1bb7d 100644 --- a/src/MRI.hs +++ b/src/MRI.hs @@ -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