我想使用hmatrix但它坚持Double
,这有时会给出舍入误差。望着源,我想如何计算Haskell中的确切(整数)行列式?
type instance DoubleOf Rational = Rational
但DoubleOf
不外传(Numeric.ContainerBool
是隐藏的),而这可能是一个原因。
我想使用hmatrix但它坚持Double
,这有时会给出舍入误差。望着源,我想如何计算Haskell中的确切(整数)行列式?
type instance DoubleOf Rational = Rational
但DoubleOf
不外传(Numeric.ContainerBool
是隐藏的),而这可能是一个原因。
您可以使用bed-and-breakfast
package在矩阵上执行精确操作。
这里的样品ghci的会议:
>>> import Numeric.Matrix
>>> import Data.Ratio
>>> let m = fromList [[1 % 2, 2 % 3], [3 % 4, 4 % 5]] :: Matrix Rational
>>> det m
(-1) % 10
>>> m * m
3 % 4 13 % 15
39 % 40 57 % 50
>>> m^4
563 % 400 819 % 500
7371 % 4000 10723 % 5000
但是包(来自hackage的版本0.4.3)不能用ghc-7.8.2进行编译(''typeOf'不是类'Typeable'') – d8d0d65b3f7cf42
的(可见)方法,而是版本0.5 https:// github。 com/scravy /床和早餐。 – d8d0d65b3f7cf42
我想他们只是没有上传一个新版本到hackage。 – fizruk
您是否尝试过[这个数字矩阵包(http://hackage.haskell.org/package/bed-and-breakfast)?显然它声称做你想做的事。 – fizruk