X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTetrahedron.hs;h=8e9acd38c8b9a0b858f56287fc8aa0c637fd8beb;hb=d6dd574714648c0703175b5b2d3ccdd5198bb552;hp=52e9266d992cdc3901104b967361d147d8a4a6ce;hpb=b088e499540a1ccd0ee5acbaf5dc1556fd3ec404;p=spline3.git diff --git a/src/Tetrahedron.hs b/src/Tetrahedron.hs index 52e9266..8e9acd3 100644 --- a/src/Tetrahedron.hs +++ b/src/Tetrahedron.hs @@ -1,4 +1,5 @@ {-# LANGUAGE BangPatterns #-} + module Tetrahedron ( Tetrahedron(..), b0, -- Cube test @@ -10,27 +11,22 @@ module Tetrahedron ( polynomial, tetrahedron_properties, tetrahedron_tests, - volume -- Cube test - ) + volume ) -- Cube test where -import qualified Data.Vector as V ( - singleton, - snoc, - sum - ) - -import Test.Framework (Test, testGroup) -import Test.Framework.Providers.HUnit (testCase) -import Test.Framework.Providers.QuickCheck2 (testProperty) +import Data.Vector ( singleton, snoc ) +import qualified Data.Vector as V ( sum ) +import Test.Framework ( Test, testGroup ) +import Test.Framework.Providers.HUnit ( testCase ) +import Test.Framework.Providers.QuickCheck2 ( testProperty ) import Test.HUnit (Assertion, assertEqual) -import Test.QuickCheck (Arbitrary(..), Gen, Property, (==>)) +import Test.QuickCheck ( Arbitrary(..), Gen, Property, (==>) ) -import Comparisons ((~=)) -import FunctionValues (FunctionValues(..), empty_values) -import Misc (factorial) -import Point (Point(..), scale) -import RealFunction (RealFunction, cmult, fexp) +import Comparisons ( (~=) ) +import FunctionValues ( FunctionValues(..), empty_values ) +import Misc ( factorial ) +import Point ( Point(..), scale ) +import RealFunction ( RealFunction, cmult, fexp ) data Tetrahedron = Tetrahedron { function_values :: FunctionValues, @@ -78,25 +74,25 @@ barycenter (Tetrahedron _ v0' v1' v2' v3' _) = {-# INLINE polynomial #-} polynomial :: Tetrahedron -> (RealFunction Point) polynomial t = - V.sum $ V.singleton ((c t 0 0 0 3) `cmult` (beta t 0 0 0 3)) `V.snoc` - ((c t 0 0 1 2) `cmult` (beta t 0 0 1 2)) `V.snoc` - ((c t 0 0 2 1) `cmult` (beta t 0 0 2 1)) `V.snoc` - ((c t 0 0 3 0) `cmult` (beta t 0 0 3 0)) `V.snoc` - ((c t 0 1 0 2) `cmult` (beta t 0 1 0 2)) `V.snoc` - ((c t 0 1 1 1) `cmult` (beta t 0 1 1 1)) `V.snoc` - ((c t 0 1 2 0) `cmult` (beta t 0 1 2 0)) `V.snoc` - ((c t 0 2 0 1) `cmult` (beta t 0 2 0 1)) `V.snoc` - ((c t 0 2 1 0) `cmult` (beta t 0 2 1 0)) `V.snoc` - ((c t 0 3 0 0) `cmult` (beta t 0 3 0 0)) `V.snoc` - ((c t 1 0 0 2) `cmult` (beta t 1 0 0 2)) `V.snoc` - ((c t 1 0 1 1) `cmult` (beta t 1 0 1 1)) `V.snoc` - ((c t 1 0 2 0) `cmult` (beta t 1 0 2 0)) `V.snoc` - ((c t 1 1 0 1) `cmult` (beta t 1 1 0 1)) `V.snoc` - ((c t 1 1 1 0) `cmult` (beta t 1 1 1 0)) `V.snoc` - ((c t 1 2 0 0) `cmult` (beta t 1 2 0 0)) `V.snoc` - ((c t 2 0 0 1) `cmult` (beta t 2 0 0 1)) `V.snoc` - ((c t 2 0 1 0) `cmult` (beta t 2 0 1 0)) `V.snoc` - ((c t 2 1 0 0) `cmult` (beta t 2 1 0 0)) `V.snoc` + V.sum $ singleton ((c t 0 0 0 3) `cmult` (beta t 0 0 0 3)) `snoc` + ((c t 0 0 1 2) `cmult` (beta t 0 0 1 2)) `snoc` + ((c t 0 0 2 1) `cmult` (beta t 0 0 2 1)) `snoc` + ((c t 0 0 3 0) `cmult` (beta t 0 0 3 0)) `snoc` + ((c t 0 1 0 2) `cmult` (beta t 0 1 0 2)) `snoc` + ((c t 0 1 1 1) `cmult` (beta t 0 1 1 1)) `snoc` + ((c t 0 1 2 0) `cmult` (beta t 0 1 2 0)) `snoc` + ((c t 0 2 0 1) `cmult` (beta t 0 2 0 1)) `snoc` + ((c t 0 2 1 0) `cmult` (beta t 0 2 1 0)) `snoc` + ((c t 0 3 0 0) `cmult` (beta t 0 3 0 0)) `snoc` + ((c t 1 0 0 2) `cmult` (beta t 1 0 0 2)) `snoc` + ((c t 1 0 1 1) `cmult` (beta t 1 0 1 1)) `snoc` + ((c t 1 0 2 0) `cmult` (beta t 1 0 2 0)) `snoc` + ((c t 1 1 0 1) `cmult` (beta t 1 1 0 1)) `snoc` + ((c t 1 1 1 0) `cmult` (beta t 1 1 1 0)) `snoc` + ((c t 1 2 0 0) `cmult` (beta t 1 2 0 0)) `snoc` + ((c t 2 0 0 1) `cmult` (beta t 2 0 0 1)) `snoc` + ((c t 2 0 1 0) `cmult` (beta t 2 0 1 0)) `snoc` + ((c t 2 1 0 0) `cmult` (beta t 2 1 0 0)) `snoc` ((c t 3 0 0 0) `cmult` (beta t 3 0 0 0)) @@ -580,11 +576,11 @@ tetrahedron_properties = testProperty "b3_v0_always_zero" prop_b3_v0_always_zero, testProperty "b3_v1_always_zero" prop_b3_v1_always_zero, testProperty "b3_v2_always_zero" prop_b3_v2_always_zero, - testProperty "swapping_vertices_doesnt_affect_coefficients1" $ + testProperty "swapping_vertices_doesnt_affect_coefficients1" prop_swapping_vertices_doesnt_affect_coefficients1, - testProperty "swapping_vertices_doesnt_affect_coefficients2" $ + testProperty "swapping_vertices_doesnt_affect_coefficients2" prop_swapping_vertices_doesnt_affect_coefficients2, - testProperty "swapping_vertices_doesnt_affect_coefficients3" $ + testProperty "swapping_vertices_doesnt_affect_coefficients3" prop_swapping_vertices_doesnt_affect_coefficients3, - testProperty "swapping_vertices_doesnt_affect_coefficients4" $ + testProperty "swapping_vertices_doesnt_affect_coefficients4" prop_swapping_vertices_doesnt_affect_coefficients4 ]