2011-12-06 8 views
27

Existen operaciones matemáticas que producen números reales desde +/- infinito. Por ejemplo exp(-infinity) = 0. ¿Hay un estándar para funciones matemáticas en la biblioteca estándar C que acepte infinidades IEEE-754 (sin tirar, o devolver NaN). Estoy en un sistema Linux y estaría interesado en dicha lista para glibc. No pude encontrar esa lista en su manual en línea. Por ejemplo, su documentación en exp no menciona cómo maneja el caso -infinity. Cualquier ayuda será muy apreciada.Hasta el infinito y volver

+1

¿Has probado 'exp (-infinity)'? ¿Lanzó? ¿Recibió NaN o 0? –

+9

+1 incluso solo por el título :-) –

+3

El estándar de lenguaje no dice nada acerca de si el infinito es un valor representable, por lo que seguramente esto depende de la implementación. –

Respuesta

13

El Véase también sección de POSIX' math.h definition enlaces a las definiciones POSIX de dominios aceptables.

E.g. fabs():

If x is ±0, +0 shall be returned. 
If x is ±Inf, +Inf shall be returned. 

I Modificada mencionado Véase también -section a Stackoverflow-Markdown:

acos(), acosh(), asin(), atan(), atan2(), cbrt(), ceil(), cos(), cosh(), erf(), exp(), expm1(), fabs(), floor(), fmod(), frexp(), hypot(), ilogb(), isnan(), j0(), ldexp(), lgamma(), log(), log10(), log1p(), logb(), modf(), nextafter(), pow(), remainder(), rint(), scalb(), sin(), sinh(), sqrt(), tan(), tanh(), y0(),

Contribuí search/replace/regex-fu. Ahora solo necesitamos a alguien con cURL-fu.

+0

¡Oh hombre! Creo que debería haber dicho "ahora que tengo la url no necesito la lista. Puedo buscar las funciones que uso". Pero muchas gracias, me siento mal porque te hice ver todo eso. – srean

+0

@srean: Está bien, es útil para mí :) –

+3

Si quiere todos estos en un lugar ordenado, los casos de borde posix son (casi) todos heredados del Anexo F del estándar C. –

9

En C99 está en el Apéndice F:

F.9.3.1 The exp functions 
-- exp(±0) returns 1. 
-- exp(-∞) returns +0. 
-- exp(+∞) returns +∞. 

Apéndice F es normativa y:

Una implementación que define __STDC_IEC_559__ deberá ajustarse a las especificaciones de este anexo.

+0

Gracias por el puntero. (sin juego de palabras) – srean

+0

Buen descubrimiento :) --- –

Cuestiones relacionadas