X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTetrahedron.hs;h=95233e008bfa0efe4fb69f20a4485b52f8e53b20;hb=c4701eee43e313f634d3d76faee681ff28d76b72;hp=4606761b94b3df7986fd07ce18b9d32277677d8b;hpb=3d197ab1a23d654d60617db6559daed195f1e016;p=spline3.git diff --git a/src/Tetrahedron.hs b/src/Tetrahedron.hs index 4606761..95233e0 100644 --- a/src/Tetrahedron.hs +++ b/src/Tetrahedron.hs @@ -3,7 +3,7 @@ where import Numeric.LinearAlgebra hiding (i, scale) import Prelude hiding (LT) -import Test.QuickCheck (Arbitrary(..), Gen, Positive(..)) +import Test.QuickCheck (Arbitrary(..), Gen) import Cardinal import Comparisons (nearly_ge) @@ -17,8 +17,7 @@ data Tetrahedron = Tetrahedron { fv :: FunctionValues, v0 :: Point, v1 :: Point, v2 :: Point, - v3 :: Point, - precomputed_volume :: Double } + v3 :: Point } deriving (Eq) @@ -29,8 +28,7 @@ instance Arbitrary Tetrahedron where rnd_v2 <- arbitrary :: Gen Point rnd_v3 <- arbitrary :: Gen Point rnd_fv <- arbitrary :: Gen FunctionValues - (Positive rnd_vol) <- arbitrary :: Gen (Positive Double) - return (Tetrahedron rnd_fv rnd_v0 rnd_v1 rnd_v2 rnd_v3 rnd_vol) + return (Tetrahedron rnd_fv rnd_v0 rnd_v1 rnd_v2 rnd_v3) instance Show Tetrahedron where @@ -267,27 +265,27 @@ volume t -- | The barycentric coordinates of a point with respect to v0. b0 :: Tetrahedron -> (RealFunction Point) -b0 t point = (volume inner_tetrahedron) / (precomputed_volume t) +b0 t point = (volume inner_tetrahedron) / (volume t) where inner_tetrahedron = t { v0 = point } -- | The barycentric coordinates of a point with respect to v1. b1 :: Tetrahedron -> (RealFunction Point) -b1 t point = (volume inner_tetrahedron) / (precomputed_volume t) +b1 t point = (volume inner_tetrahedron) / (volume t) where inner_tetrahedron = t { v1 = point } -- | The barycentric coordinates of a point with respect to v2. b2 :: Tetrahedron -> (RealFunction Point) -b2 t point = (volume inner_tetrahedron) / (precomputed_volume t) +b2 t point = (volume inner_tetrahedron) / (volume t) where inner_tetrahedron = t { v2 = point } -- | The barycentric coordinates of a point with respect to v3. b3 :: Tetrahedron -> (RealFunction Point) -b3 t point = (volume inner_tetrahedron) / (precomputed_volume t) +b3 t point = (volume inner_tetrahedron) / (volume t) where inner_tetrahedron = t { v3 = point }