]> gitweb.michael.orlitzky.com - spline3.git/commitdiff
Remove the coincident vertices guards from the Tetrahedron volume function.
authorMichael Orlitzky <michael@orlitzky.com>
Mon, 7 Nov 2011 01:05:40 +0000 (20:05 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 7 Nov 2011 01:05:40 +0000 (20:05 -0500)
doc/TODO
src/Tetrahedron.hs

index 944518159546db869eb42e96db3f685b8166fed1..14fb7268667b1af3aa22650470a98be7f5395316 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -2,7 +2,4 @@
 
 * Document everything.
 
-* Test whether or not dropping the guards from the Tetrahedron.volume
-  function speeds things up (and still produces a correct result).
-
 * Re-run hpc and remove any dead code.
index 75957291c4d37ce005448de53fb159785a73361a..2a4227a7f1bbee2d10a99baa66a07904e1e16c15 100644 (file)
@@ -313,20 +313,8 @@ det p0 p1 p2 p3 =
 --   page 436.
 {-# INLINE volume #-}
 volume :: Tetrahedron -> Double
-volume t
-       | v0' == v1' = 0
-       | v0' == v2' = 0
-       | v0' == v3' = 0
-       | v1' == v2' = 0
-       | v1' == v3' = 0
-       | v2' == v3' = 0
-       | otherwise = (1/6)*(det v0' v1' v2' v3')
-  where
-    v0' = v0 t
-    v1' = v1 t
-    v2' = v2 t
-    v3' = v3 t
-
+volume (Tetrahedron _ v0' v1' v2' v3' _) =
+  (1/6)*(det v0' v1' v2' v3')
 
 -- | The barycentric coordinates of a point with respect to v0.
 {-# INLINE b0 #-}