From 8f727c70cfe960030189d57e0f11a5eb04c7b6d6 Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 24 Mar 2023 00:14:35 +0000 Subject: [PATCH] Add file --- src/Dodge/DownscaleSize.hs | 5 +++++ src/Geometry/Triangulate.hs | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/Dodge/DownscaleSize.hs create mode 100644 src/Geometry/Triangulate.hs diff --git a/src/Dodge/DownscaleSize.hs b/src/Dodge/DownscaleSize.hs new file mode 100644 index 000000000..69185e6e9 --- /dev/null +++ b/src/Dodge/DownscaleSize.hs @@ -0,0 +1,5 @@ +module Dodge.DownscaleSize where + +downSize :: Int +{-# INLINE downSize #-} +downSize = 8 diff --git a/src/Geometry/Triangulate.hs b/src/Geometry/Triangulate.hs new file mode 100644 index 000000000..63dadc77e --- /dev/null +++ b/src/Geometry/Triangulate.hs @@ -0,0 +1,20 @@ +{-# LANGUAGE BangPatterns #-} + +module Geometry.Triangulate where + +import Data.List + +polyToTris :: [s] -> [s] +{-# INLINEABLE polyToTris #-} +polyToTris (x : xs) = foldl' (f x) [] $ zip xs $ tail xs + where + f a ls (b, c) = a : b : c : ls +polyToTris _ = [] + +-- kept as an example benchmark +polyToTris'' :: [s] -> [s] +polyToTris'' (a : as) = go a as + where + go !x (y : z : ys) = x : y : z : go x (z : ys) + go _ _ = [] +polyToTris'' _ = []