+{-# INLINE zoom_lookup #-}
+zoom_lookup :: Grid -> Int -> a -> (R.DIM3 -> Double)
+zoom_lookup g scale_factor _ = zoom_result g scale_factor
+
+
+{-# INLINE zoom_result #-}
+zoom_result :: Grid -> Int -> R.DIM3 -> Double
+zoom_result g scale_factor (R.Z R.:. i R.:. j R.:. k) =
+ f p
+ where
+ sf = fromIntegral scale_factor
+ i' = fromIntegral i / sf
+ j' = fromIntegral j / sf
+ k' = fromIntegral k / sf
+ p = (i', j', k') :: Point
+ c = find_containing_cube g p
+ t = head (find_containing_tetrahedra c p)
+ f = polynomial t
+
+