]> gitweb.michael.orlitzky.com - spline3.git/commitdiff
Add the PolynomialArray module.
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 4 Sep 2011 12:22:53 +0000 (08:22 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 4 Sep 2011 12:22:53 +0000 (08:22 -0400)
src/PolynomialArray.hs [new file with mode: 0644]

diff --git a/src/PolynomialArray.hs b/src/PolynomialArray.hs
new file mode 100644 (file)
index 0000000..2cf96dd
--- /dev/null
@@ -0,0 +1,26 @@
+-- | The PolynomialArray module contains one type, 'PolynomialArray',
+--   and a smart constructor for it. The array is essentially a hash;
+--   the unique keys can be thought of as a cube/tetrahedron pair, and
+--   the associated value is the polynomial function over that
+--   tetrahedron. Rather than define 'Ord' instances and a proper map,
+--   we just use the indices i,j,k along with the tetrahedron number
+--   as the keys.
+module PolynomialArray (
+  PolynomialArray,
+  make_polynomial_array
+  )
+where
+
+import RealFunction(RealFunction)
+import Point (Point)
+
+import Data.Array (Array, array)
+
+type PolynomialArray =
+    Array (Int,Int,Int,Int) (RealFunction Point)
+
+make_polynomial_array :: (Int, Int, Int, Int) ->
+                        [( (Int,Int,Int,Int), (RealFunction Point) )] ->
+                        PolynomialArray
+make_polynomial_array (max_i, max_j, max_k, max_tetrahedron_number) =
+  array ( (0,0,0,0), (max_i,max_j,max_k, max_tetrahedron_number) )