Math-FakeDD

 view release on metacpan or  search on metacpan

FakeDD.xs  view on Meta::CPAN


#ifdef  __MINGW32__
#ifndef __USE_MINGW_ANSI_STDIO
#define __USE_MINGW_ANSI_STDIO 1
#endif
#endif

#define PERL_NO_GET_CONTEXT 1

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"


void dd_frexp(pTHX_ SV * nv) {
  dXSARGS;
  double frac;
  int exp;
  PERL_UNUSED_ARG(items);

  frac = frexp((double)SvNVX(nv), &exp);
  ST(0) = sv_2mortal(newSVnv(frac));
  ST(1) = sv_2mortal(newSViv(exp));
  XSRETURN(2);
}


MODULE = Math::FakeDD  PACKAGE = Math::FakeDD

PROTOTYPES: DISABLE


void
dd_frexp (nv)
	SV *	nv
        PREINIT:
        I32* temp;
        PPCODE:
        temp = PL_markstack_ptr++;
        dd_frexp(aTHX_ 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;



( run in 0.815 second using v1.01-cache-2.11-cpan-71847e10f99 )