¿Hay alguna forma en Haskell de obtener la constante que sea el número racional positivo mayor y menor posible mayor que cero que pueda representarse mediante dobles?Haskell mínimo/máximo Doble constante
7
A
Respuesta
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 tiene la función [floatRange][2]
:
floatRange :: a -> (Int, Int) Fuente
una función constante, la devolución de los valores más altos y más bajos que el exponente puede asumir
que debería ser lo que quieres.
+1
Umm? 'Prelude.floatRange' funciona en todas las instancias de' clase RealFloat', incluido 'Double'. – ephemient
+0
@ephemient: Entiendo. Gracias por la explicación. –
Cuestiones relacionadas
- 1. define constante doble como hexadecimal?
- 2. ¿Doble mapa en haskell?
- 3. Haskell mónada: IO [doble] a [IO Doble]
- 4. multiplicar un complejo doble con un doble en Haskell
- 5. ¿Qué significa :: (doble colon) en Haskell?
- 6. de Java de doble precisión con la constante multiplicación/división
- 7. Asignar constante doble a variable flotante sin advertencia en C?
- 8. plantilla falla al compilar: 'doble' no es un tipo válido para una plantilla de parámetro constante
- 9. ¿Cómo escribo una función de longitud de espacio constante en Haskell?
- 10. Haskell: Listas vs Streams
- 11. diferencia Junit entre assertEquals (Doble, Doble) y assertEquals (doble, doble, delta)
- 12. doble menos doble dando problemas de precisión
- 13. sobrecarga de funciones Firmas Haskell
- 14. comparación doble de matlab
- 15. puntero constante frente a un puntero en un valor constante
- 16. Doble alineación
- 17. C constante hexadecimal tipo
- 18. constante binaria C++/literal
- 19. variable o constante?
- 20. constante no inicializada Base64
- 21. Constante DateTime en C#
- 22. asignación dinámica constante
- 23. Constante Python NotImplemented
- 24. Uso de constante indefinida
- 25. Constante global Codeigniter
- 26. C++ expresión constante esperada
- 27. P en constante declaración
- 28. definición constante en Clojure
- 29. Greasemonkey Version Script constante
- 30. vida temporal constante C++
En verdad, mirando hacia atrás, no tengo idea de por qué quería saber esto ... – Claudiu