Ticket #1398 (closed defect: remind)

Opened 2 years ago

Last modified 2 years ago

Errores en gsl_cdf_beta_Pinv con diferentes versiones de GSL

Reported by: vdebuen Owned by: josp
Priority: highest Milestone: Mantainance
Component: Math Version: head
Severity: blocker Keywords:
Cc:

Description

La siguiente línea TOL

Real gsl_cdf_beta_Pinv(0.9999999868417623,24.95643274099755,918.6566331776214);

en windows devuelve 0.06581172725382078 y en linux omitido.

He probado en R y me da lo mismo que en windows por lo que entiendo que está bien.

qbeta(0.9999999868417623,24.95643274099755,918.6566331776214);
[1] 0.06581173

En windows estamos usando la versión 1.8 de 2006 que es al que encontré en su día ya precompilada como DLL para llegar y meter en Visual C++. En linux estamos en la 1.13 o la 1.12. Yo he probado a compilar en windows un main.c de un proyecto de ejemplo con la 1.13 y falla como en windows, dando algo más de información que no sé muy bien porqué se está perdiendo pues supuestamente tenemos un hook para recogerla:

gsl: ..\cdf\betainv.c:181: ERROR: inverse failed to converge
Default GSL error handler invoked.

Definitivamente hay que retroceder en linux a una GSL que funcione, empezando por la 1.8

Change History

Changed 2 years ago by josp

  • owner changed from vdebuen to josp
  • status changed from new to accepted

Empiezo por probar la version 1.8 en Linux. He descargado los fuentes de http://gnuwin32.sourceforge.net/downlinks/gsl-src-zip.php ya que el sitio oficial está de "black out"

Changed 2 years ago by josp

  • status changed from accepted to closed
  • resolution set to fixed

Hemos comprobado que con la versión 1.8 esa función retorna los resultados esperados.

Changed 2 years ago by josp

(In [4024]) refs #1398, testing code

Changed 2 years ago by vdebuen

  • summary changed from Error en gsl_cdf_beta_Pinv con GSL 1.13 to Errores en gsl_cdf_beta_Pinv con diferentes versiones de GSL

Esta otra línea devuelve omitido con la GSL 1.8

Real gsl_cdf_beta_Pinv(0.9446900135371834,0.06873371518266619,6.27892521836533);

En cambio con las GSL 1.13 devuelve 0.058553049991647677 lo mismo que en R.

Changed 2 years ago by vdebuen

  • status changed from closed to reopened
  • resolution fixed deleted

Changed 2 years ago by josp

(In [4025]) refs #1398, testing gsl_cdf_beta_Pinv in C

Changed 2 years ago by josp

(In [4026]) refs #1398, adding more test points

Changed 2 years ago by josp

(In [4027]) refs #1398, bug in loop

Changed 2 years ago by vdebuen

(In [4028]) Refs #1398
Avoiding problem with gsl_cdf_beta_Pinv in gsl_M_cdf_beta_Pinv using BBetaDist::InvInc based on cdfbet of DCDFLIB

Changed 2 years ago by vdebuen

(In [4029]) Refs #1398
Checking non finite values

Changed 2 years ago by vdebuen

(In [4030]) Refs #1398
Checking non finite values

Changed 2 years ago by josp

  • status changed from reopened to closed
  • resolution set to remind
Note: See TracTickets for help on using tickets.