Opened 9 years ago
Last modified 9 years ago
#1872 new defect
Warnings con gsl_sf_hazard
Reported by: | Pedro Gea | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | normal | Milestone: | Mantainance |
Component: | Kernel | Version: | head |
Severity: | critical | Keywords: | |
Cc: |
Description
La función gsl_sf_hazard
produce mensajes de warning cuando es llamada con valores muy negativos:
Real gsl_sf_hazard(-100);
Warning: [1] [GSL Error 15] underflow At line 114 of file ..\..\specfunc\exp.c Warning: [2] [GSL Error 15] gsl_sf_hazard_e(x, &result) At line 463 of file ..\..\specfunc\erfc.c
En versiones anteriores de tol.3.2 (o en tol.3.1, etc.) no ocurría. Ahora ocurre tanto en tol-gnu como en tol-msvc.
Estos mensajes de advertencia afectan (por su frecuencia) a QltvRespModel (y con ello también a GrzLinModel). Véase tolp/OfficialTolArchiveNetwork/QltvRespModel/WgtProbit.tol método Hazard
.
Note: See
TracTickets for help on using
tickets.
Supongo que será un cambio en la propia GSL, y que ahora estaréis usando una nueva versión de la misma que da ese warning, o que antes estuvieran desactivados de alguna manera que desconozco.
Si se ha cambiado la versión hay unas https://www.tol-project.org/browser/tolp/trunk/tol/btol/bgsl/tolgsl_usrapi_real.leame.txt instrucciones a seguir, aunque no sé si tendrá algo que ver. La cosa es que si tocamos a mano los CPP entonces los cambios se perderían si queremos volver a correr el script que crea la API GSL-TOL. Tampoco sé si esto será necesario pues tampoco creo que metan muchas funciones nuevas a la GSL
En cualquier caso no tiene mucho sentido ese mensaje pues esta función tiende asintóticamente a cero cuando nos desplazamos en el eje de abscisas hacia menos infinito.
De hecho, en aritmética discreta de doble precisión, el valor es indistinguible de cero por debajo de -37.7
Podríamos poner un cortocircuito en la línea 3199 de tolgsl_usrapi_real.cpp para arreglarlo pero como ya he dicho podría perderse si se corre el script de regeneración.
Otra opción sería deshabilitar los mensajes de underflow en la función https://www.tol-project.org/browser/tolp/trunk/tol/btol/bgsl/tolgsl.cpp#L43 GslErrorHandler, pues yo diría que no suponen nunca ningún peligro