Có cách nào trong Haskell để nhận được hằng số đó là số lượng hợp lý lớn nhất và nhỏ nhất có thể lớn hơn 0 mà có thể được biểu diễn bằng cách tăng gấp đôi không?Haskell tối thiểu/tối đa Double Constant
7
A
Trả lời
7
maxNonInfiniteFloat :: RealFloat a => a -> a
maxNonInfiniteFloat a = encodeFloat m n where
b = floatRadix a
e = floatDigits a
(_, e') = floatRange a
m = b^e - 1
n = e' - e
minPositiveFloat :: RealFloat a => a -> a
minPositiveFloat a = encodeFloat 1 $ fst (floatRange a) - floatDigits a
2
GHC.Float có chức năng [floatRange][2]
:
floatRange :: a -> (Int, Int) Nguồn
một hàm liên tục, trả lại và giá trị cao nhất thấp nhất số mũ có thể giả định
nên là những gì bạn muốn.
+1
Umm? 'Prelude.floatRange' hoạt động trên tất cả các trường hợp của' lớp RealFloat', bao gồm 'Double'. – ephemient
+0
@ephemient: Tôi hiểu. Cảm ơn lời giải thích. –
Các vấn đề liên quan
- 1. Các dòng tối đa và tối đa
- 2. Chức năng đa biến Haskell Với IO
- 3. Cửa sổ tối đa ở mức tối đa
- 4. Uninitialised Constant Iconv
- 5. Lỗi Sidekiq Uninitialized Constant
- 6. Ngày tối thiểu và tối đa
- 7. DragMove() và Tối đa
- 8. tối đa 2 số
- 9. tối đa trong LINQ
- 10. C#: double [] [] và double [,]
- 11. Tại sao tôi không thể thêm Integer vào Double trong Haskell?
- 12. Tối ưu hóa các vòng trong Haskell
- 13. nvarchar (tối đa) vs NText
- 14. Thời gian tối đa() | PHP
- 15. Độ dài byte tối đa []?
- 16. Kích thước đỉnh tối đa
- 17. Cách tìm Ngày Tối đa
- 18. đếm tối đa cho count (*)
- 19. Số lần gửi tối đa
- 20. Pandas: Không. hàng tối đa
- 21. SqlServer và nvarchar (tối đa)
- 22. Số nguyên tối đa Ruby
- 23. Câu hỏi tối đa SQL
- 24. Cách tìm tối đa avg
- 25. Thuật toán OpenMp C++ cho tối thiểu, tối đa, trung bình, trung bình
- 26. Junit chênh lệch giữa assertEquals (Double, Double) và assertEquals (double, double, đồng bằng)
- 27. Haskell đa hình và danh sách
- 28. Chức năng đa biến trong Haskell
- 29. thừa số Đa thức trong Haskell
- 30. Kích thước bộ đệm tối đa UDP sendto() và recvfrom() tối đa
Thật vậy, nhìn lại, tôi không biết tại sao tôi muốn biết điều này ... – Claudiu