我想使用hmatrix,但它坚持使用Double
,这有时会产生舍入错误。看来源,我试过
type instance DoubleOf Rational = Rational
但DoubleOf
未导出(Numeric.ContainerBool
已隐藏),这可能是有原因的。
答案 0 :(得分:4)
您可以使用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