aboutsummaryrefslogtreecommitdiff
path: root/Graphics/Glyph/Util.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Graphics/Glyph/Util.hs')
-rw-r--r--Graphics/Glyph/Util.hs15
1 files changed, 15 insertions, 0 deletions
diff --git a/Graphics/Glyph/Util.hs b/Graphics/Glyph/Util.hs
index 1c1269d..90640a4 100644
--- a/Graphics/Glyph/Util.hs
+++ b/Graphics/Glyph/Util.hs
@@ -329,3 +329,18 @@ mix a b c = a * c + b * (1 - c)
fpart :: (RealFrac a) => a -> a
fpart x = x - (fromIntegral (floor x::Int))
+ifNaN :: (RealFloat a) => a -> a -> a
+ifNaN reg def = if' (isNaN reg) def reg
+
+everyN :: Int -> [a] -> [a]
+everyN _ [] = []
+everyN n (x : xs) = x : (everyN n $ drop n xs)
+
+chunkList :: [a] -> [(a,a)]
+chunkList l = zip [x | x <- everyN 1 l] [x | x <- everyN 1 (tail l)]
+
+chunkList3 :: [a] -> [(a,a,a)]
+chunkList3 l = zip3
+ [x | x <- everyN 2 l]
+ [x | x <- everyN 2 (tail l)]
+ [x | x <- everyN 2 (tail $ tail l)]