/*
 * This file was generated automatically by xsubpp version 1.9507 from the 
 * contents of ran.xs. Do not edit this file, edit ran.xs instead.
 *
 *	ANY CHANGES MADE HERE WILL BE LOST! 
 *
 */

#line 1 "ran.xs"
#ifdef __cplusplus
extern "C" {
#endif
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#ifdef __cplusplus
}
#endif


double __0FEran2Ui(unsigned x);
double __0FEran1Pi(int *);
double __0FGNnoisePi(int *);
double __0FFran1aPi(int *);

#line 27 "ran.c"
XS(XS_ran_ran2)
{
    dXSARGS;
    if (items != 1)
	croak("Usage: ran::ran2(x)");
    {
	unsigned	x = (unsigned)SvIV(ST(0));
	double	RETVAL;
#line 25 "ran.xs"
	RETVAL = __0FEran2Ui(x);
#line 38 "ran.c"
	ST(0) = sv_newmortal();
	sv_setnv(ST(0), (double)RETVAL);
    }
    XSRETURN(1);
}

XS(XS_ran_ran1)
{
    dXSARGS;
    if (items != 0)
	croak("Usage: ran::ran1()");
    {
	double	RETVAL;
#line 32 "ran.xs"
	RETVAL = __0FEran1Pi(0);
#line 54 "ran.c"
	ST(0) = sv_newmortal();
	sv_setnv(ST(0), (double)RETVAL);
    }
    XSRETURN(1);
}

XS(XS_ran_Nnoise)
{
    dXSARGS;
    if (items != 0)
	croak("Usage: ran::Nnoise()");
    {
	double	RETVAL;
#line 39 "ran.xs"
	RETVAL = __0FGNnoisePi(0);
#line 70 "ran.c"
	ST(0) = sv_newmortal();
	sv_setnv(ST(0), (double)RETVAL);
    }
    XSRETURN(1);
}

XS(XS_ran_ran1a)
{
    dXSARGS;
    if (items != 0)
	croak("Usage: ran::ran1a()");
    {
	double	RETVAL;
#line 46 "ran.xs"
	RETVAL = __0FFran1aPi(0);
#line 86 "ran.c"
	ST(0) = sv_newmortal();
	sv_setnv(ST(0), (double)RETVAL);
    }
    XSRETURN(1);
}

#ifdef __cplusplus
extern "C"
#endif
XS(boot_ran)
{
    dXSARGS;
    char* file = __FILE__;

    XS_VERSION_BOOTCHECK ;

        newXSproto("ran::ran2", XS_ran_ran2, file, "$");
        newXSproto("ran::ran1", XS_ran_ran1, file, "");
        newXSproto("ran::Nnoise", XS_ran_Nnoise, file, "");
        newXSproto("ran::ran1a", XS_ran_ran1a, file, "");
    XSRETURN_YES;
}

