decode (encode NaN) /= NaN
- Langage dominant
- Haskell
- Étoiles
- 120
- Forks
- 70
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
The IEEE "not-a-number" (NaN) value is not encoded properly, since `encode` uses `decodeFloat`, which is unspecified for NaN (cf. [Prelude](http://hackage.haskell.org/package/base-4.7.0.1/docs/Prelude.html#v:decodeFloat)).
Examples:
``` Haskell
(0 / 0 :: Double) = NaN
(decode (encode (0 / 0 :: Double)) :: Double) = -Infinity
(log (-1) :: Double) = NaN
(decode (encode (log (-1) :: Double)) :: Double) = Infinity
(0 / 0 :: Float) = NaN
(decode (encode (0 / 0 :: Float)) :: Float) = -Infinity
```
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par lire les points d’entrée encode et decode du paquet Haskell binary, en vous concentrant sur le chemin Float et Double qui utilise decodeFloat. Reproduisez les exemples de NaN indiqués, puis vérifiez que l’encodage et le décodage de NaN préservent NaN pour les deux types.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- haskell
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 42/100