Math-NV
view release on metacpan or search on metacpan
if(out == NULL) croak("Failed to allocate memory in Csprintf function");
#ifdef NV_IS_FLOAT128
quadmath_snprintf(out, size, fmt, (__float128)SvNV(nv));
#else
sprintf(out, fmt, (NV)SvNV(nv));
#endif
ST(0) = sv_2mortal(newSVpv(out, 0));
Safefree(out);
XSRETURN(1);
}
/* Provide our own looks_like_number() for use by test suite. */
int _looks_like_number(pTHX_ SV * x) {
if(looks_like_number(x)) return 1;
return 0;
}
SV * _set_C (pTHX_ char * str) {
#ifdef NV_IS_FLOAT128
return newSVnv(strtoflt128(str, NULL));
#endif
#ifdef NV_IS_LONG_DOUBLE
return newSVnv(strtold(str, NULL));
#endif
#ifdef NV_IS_DOUBLE
return newSVnv(strtod(str, NULL));
#endif
}
int _has_perl_strtod(void) {
#ifdef Perl_strtod
return 1;
#else
return 0;
#endif
}
MODULE = Math::NV PACKAGE = Math::NV
PROTOTYPES: DISABLE
SV *
_itsa (a)
SV * a
CODE:
RETVAL = _itsa (aTHX_ a);
OUTPUT: RETVAL
void
nv (str)
SV * str
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
nv(aTHX_ str);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
SV *
nv_type ()
CODE:
RETVAL = nv_type (aTHX);
OUTPUT: RETVAL
unsigned long
mant_dig ()
int
Isnan_ld (d)
NV d
void
_ld2binary (ld)
SV * ld
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
_ld2binary(aTHX_ ld);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
void
_ld_str2binary (ld)
char * ld
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
_ld_str2binary(aTHX_ ld);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
SV *
_bin2val (precision, exponent, bin)
SV * precision
SV * exponent
SV * bin
CODE:
RETVAL = _bin2val (aTHX_ precision, exponent, bin);
OUTPUT: RETVAL
SV *
_bug_95e20 ()
CODE:
RETVAL = _bug_95e20 (aTHX);
OUTPUT: RETVAL
SV *
_bug_1175557635e10 ()
CODE:
RETVAL = _bug_1175557635e10 (aTHX);
OUTPUT: RETVAL
void
Cprintf (fmt, nv)
char * fmt
SV * nv
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
Cprintf(aTHX_ fmt, nv);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
void
Csprintf (fmt, nv, size)
char * fmt
SV * nv
int size
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
Csprintf(aTHX_ fmt, nv, size);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
int
_looks_like_number (x)
SV * x
CODE:
RETVAL = _looks_like_number (aTHX_ x);
OUTPUT: RETVAL
SV *
_set_C (str)
char * str
CODE:
RETVAL = _set_C (aTHX_ str);
OUTPUT: RETVAL
int
_has_perl_strtod ()
( run in 1.790 second using v1.01-cache-2.11-cpan-71847e10f99 )