Anar al contingut

NaN

De L'Enciclopèdia, la wikipedia en valencià


NaN, prové de l'acrònim en anglés «Not a Number» (en espanyol: no és un número). Este acrònim s'usa generalment en alguns llenguages de programació per a expressar un resultat impossible de calcular, com el cas de les raïls negatives, indeterminaciones, etc., retornant NaN com a resultat de l'operació.

NaN en els sancers

[editar | editar còdic]

La majoria dels formats de representació de sancers no posseïx una forma d'indicar l'invalidea de les senyes. El paquet de perl que indica el sancer més gran (BigInt), usa el valor de NaN per als resultats de transformació de cadenes que no siguen representables com a sancers.

perl -mMath::BigInt -i "print Math::BigInt->new('foo')"
NaN 

NaN en menge flotant

[editar | editar còdic]

En les operacions de menge flotant, NaN no és lo mateix que infinit, ya que abdós són tractats com a casos especials en les representacions de menge flotant per a número real, aixina com en les operacions. Una operació inválida no és lo mateix que un overflow aritmètic (que podria retornar infinit despuix de l'operació) o un underflow aritmètic (que pot retornar el número més chicotet que es pot representar).

Segons la norma IEEE 754, els casos de NaN es poden representar reblint el camp d'exponent en uns i la mantissa en alguns números diferents de zero. Un eixemple d'esta representació en precisió simple seria:

x11111111axxxxxxxxxxxxxxxxxxxxxx

en x com qualsevol número. Sí a és 1 és un NaN en dígit 1, sino és un signe. Un valor de NaN no és possible comparar-ho en algun número de menge flotant, a menos que posseïxca una representació idèntica.

En l'estàndart de la IEEE s'establix que les operacions aritmètiques que involucren un NaN produïxen un NaN, permetent que este valor puga propagar-se a través dels càlculs. En la proposta de revisió de l'estàndart (IEEE 754r), s'establixen vàries excepcions a esta regla, incloent l'implementació de les funcions maxnum i minnum, que permeten la tornada dels valors mínims i màxims d'un operador i el número en cas d'una evaluació conjunta entre un número i el valor NaN. Esta modificació és útil en les operacions d'estadística a on hi ha senyes en valors desconeguts.

Un concepte similar ha segut implementat en NaN toolbox para GNU Octave i MATLAB. En abdós programes, NaN posseïx un significat diferent i representa valors desconeguts. El NaN Toolbox posseïx funcions estadístiques que ignoren qualsevol valor de NaN en les senyes, evitant la propagació d'este resultat. La majoria dels algoritmes es basen en la funció SUMSKIPNAN,[1] com suma i conte totes les senyes que prenen valors de NaN.

Operacions que creen NaN

[editar | editar còdic]

Els següents casos poden generar l'estat de NaN en la majoria dels llenguages de programació que accepten este estat com a tornada d'una funció matemàtica:

  • Totes les operacions matemàtiques que posseïxquen NaN com operant matemàtic.
  • Les divisions indeterminades o per infinit (0/0, ∞/∞, ∞/-∞, -∞/∞)
  • Les multiplicacions de 0 per infinit (0×∞, 0×-∞)
  • Les restes de valors infinits (∞ -∞)
  • Aplicant funcions que excedixquen el domini de la mateixa. Per eixemple, la raïl quadrada d'un número negatiu, logaritmo de qualsevol número menor o igual que 0, o l'inversa d'un coseno que siga menor que -1 o major que +1.

No obstant, és important destacar que els resultats NaN no són necessàriament generats pel processador. En el cas dels NaN en dígit 1, el primer elements sempre és vàlit per a cada processador, en el restant no necessàriament ho és. Per eixemple, en l'arquitectura Intel, l'Unitat de Menge Flotant mai crea una excepció de NaN en el primer cas. En els atres casos pot generar excepcions, pero no NaN. No obstant, el software que determina les excepcions pot examinar els operadors i decidir si retorna l'estat NaN.

Referències

[editar | editar còdic]


Referències

[editar | editar còdic]