Pseudo valor inf

Hernan Foffani hernan en orgmf.com.ar
Lun Mar 22 10:07:34 CET 2004


Antonio Castro escribio:
> El resultado podría ser infinito pero da un error y no deja
> de resultar una decisión arbitraria y caprichosa considerar unas
> veces inf y otras provocar el error. El probñema es que se
> pueden producir situaciones indeterminadas las cuales ahora
> veo que figuran como nan.
>
>>>> a=1.0e999
>>>> a*0
> nan

y en windows 2.3.2 da:
 >>> a=1.0e999
 >>> a
 1.#INF
 >>> a*0
 -1.#IND
 >>>

en algunos sistemas operativos se puede hacer float("NaN")
para crear un nan. no en windows.

> ... sobre el package math...
> Se podría haber puesto math.inf y math.nan

para mi no pertenecerían al modulo math.  a lo sumo podrían ser
constantes en el tipo float (float.inf, float.nan, etc.)

> Los números reales siempre han sido un quebradero de cabeza y
> personalmente creo que si se puede usar inf para ciertas cosas.
>
> El punto que yo considero conflictivo es que una cantidad finita tal
> que a=1.0e999 sea considerada infinito.

Hay un buen articulo en la doc de python "Floating Point Arithmetic",
te dará un buen comienzo para entender el problema.

Lo unico que hace python es exponer la implementacion de la IEEE-754
de la biblioteca estandar de C del compilador usado en cada plataforma.
Como ves, el comportamiento es muy diferente en windows que en linux.
Es mas, es MUY posible que un mismo programa python mostrara distintas
salidas en un runtime de python compilado con el gnu cc comparado
con otro runtime compilado con otro cc (el nativo de HP, etc.)

-H.




Más información sobre la lista de distribución Python-es