]> gitweb.michael.orlitzky.com - numerical-analysis.git/commitdiff
src/Integration/Gaussian.hs: fix monomorphism restriction warnings.
authorMichael Orlitzky <michael@orlitzky.com>
Fri, 7 Dec 2018 15:52:09 +0000 (10:52 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Fri, 7 Dec 2018 15:52:09 +0000 (10:52 -0500)
src/Integration/Gaussian.hs

index 554dadc1b6f1b5f77f22efa0cb429e2369fd21ed..c2e4d5f684b7b5a97cb702b0a6049f88f3031b84 100644 (file)
@@ -102,14 +102,12 @@ nodes_and_weights :: forall m a.
 nodes_and_weights iterations =
   (nodes, weights)
   where
-    jac = jacobi_matrix
-
     -- A shift is needed to make sure the QR algorithm
     -- converges. Since the roots (and thus eigenvalues) of orthogonal
     -- polynomials are real and distinct, there does exist a shift
     -- that will make it work. We guess lambda=1 makes it work.
 
-    shifted_jac = jac - identity_matrix
+    shifted_jac = jacobi_matrix - identity_matrix :: Mat (S m) (S m) a
     (shifted_nodes, vecs) = eigenvectors_symmetric iterations shifted_jac
 
     ones :: Col (S m) a
@@ -147,6 +145,7 @@ gaussian :: forall a.
 gaussian f =
   gaussian' f nodes weights
   where
+    coerce :: (ToRational.C b) => b -> a
     coerce = fromRational' . toRational
 
     nodes :: Col10 a