我想使用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