[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re:

**From**: |
Martin Jansche |

**Subject**: |
Re: |

**Date**: |
Tue, 30 Jun 2020 12:03:39 +0100 |

There is indeed no function named “gsl_cdf_gaussian_p”. However, there is a
function named "gsl_cdf_gaussian_P", as documented in the GSL manual here:
https://www.gnu.org/software/gsl/doc/html/randist.html.
The following rewritten version of your code compiles, though I cannot
comment on whether it does what you want:
#include <math.h>
#include <gsl/gsl_cdf.h>
#include <gsl/gsl_randist.h>
double truncnorm(double mu, double s, double a, double b, const gsl_rng *r)
{
double sqrt_s = sqrt(s);
double pa = gsl_cdf_gaussian_P(a - mu, sqrt_s);
double pb = gsl_cdf_gaussian_P(b - mu, sqrt_s);
double z = gsl_ran_flat(r, a, b);
return gsl_cdf_gaussian_Pinv(z, sqrt_s) + mu;
}
I'm assuming you are aware of the following paper:
Geweke, J. (1991). Efficient simulation from the multivariate normal and
student-t distributions subject to linear constraints. In Computing Science
and Statistics: Proceedings of the 23rd Symposium on the Interface, Ed. E.
Keramidas and S. Kaufman, pp. 571-8. Fairfax Station, VA: Interface
Foundation of North America.
Hope this helps!
On Tue, Jun 30, 2020 at 4:25 AM 李 思达 <s.li@knights.ucf.edu> wrote:
>* Dear GSL*
>
>* I encounter problems in using GSL.*
>
>* GSL version: 2.4.0.8788, Visual Studio 2017 Release GSL as NuGet package.*
>* Operating system: Win10, X64*
>* Compiler: Visual Studio 2019, C++*
>* Behavior: #include<gsl/gsl_cdf.h>, could not find “gsl_cdf_gaussian_p”*
>* function when call it. Also, “gsl_cdf_gaussian_pinv” could not be found.*
>* Short program:*
>* double truncnorm(double mu, double s, double a, double b){*
>* #include <gsl/gsl_cdf.h>*
>* double z;*
>* a = gsl_cdf_gaussian_p(a-mu,sqrt(s));*
>* b = gsl_cdf_gaussian_p(b-mu,sqrt(s));*
>* z = gsl_ran_flat(r,a,b);*
>* return gsl_cdf_gaussian_pinv(z,sqrt(s)) + mu;*
>* }*
>
>* Could you help me solve that?*
>* Thanks in advance.*
>* Best,*
>* Sida Li*
>* PhD student*
>
>* National Center for Integrated Coastal Research, UCF, USA*
>* Cell: 407 879 3347*
>* E-mail: s.li@Knights.ucf.edu*
>
>