Binnary Splitting

Binnary Splitting — Binnary splitting algorithms used to evaluate sums fast and with arbitrary precision

Description

FIXME

Details

struct NcmBinSplit

struct NcmBinSplit {
};

FIXME


NCM_BINSPLIT_ONE

extern mpz_t NCM_BINSPLIT_ONE;

NcmBinSplitEval ()

void                (*NcmBinSplitEval)                  (NcmBinSplit *bs,
                                                         gulong n1,
                                                         gulong n2);

ncm_binsplit_alloc ()

NcmBinSplit *       ncm_binsplit_alloc                  (gpointer userdata);

FIXME

userdata :

FIXME

Returns :

FIXME

ncm_binsplit_test_next ()

glong               ncm_binsplit_test_next              (NcmBinSplit *bs,
                                                         NcmBinSplitEval bs_eval,
                                                         gulong nt);

FIXME

bs :

a NcmBinSplit

bs_eval :

a NcmBinSplitEval

nt :

FIXME

Returns :

FIXME

ncm_binsplit_join ()

void                ncm_binsplit_join                   (NcmBinSplit *bs,
                                                         NcmBinSplit *bs_l,
                                                         NcmBinSplit *bs_r);

FIXME

bs :

a NcmBinSplit

bs_l :

a NcmBinSplit

bs_r :

a NcmBinSplit

ncm_binsplit_eval_join ()

void                ncm_binsplit_eval_join              (NcmBinSplit *bs,
                                                         NcmBinSplitEval bs_eval,
                                                         gulong nt);

FIXME

bs :

a NcmBinSplit

bs_eval :

a NcmBinSplitEval

nt :

FIXME

ncm_binsplit_eval_prec ()

gulong              ncm_binsplit_eval_prec              (NcmBinSplit *bs,
                                                         NcmBinSplitEval bs_eval,
                                                         gulong step,
                                                         glong prec);

FIXME

bs :

a NcmBinSplit

bs_eval :

a NcmBinSplitEval

step :

FIXME

prec :

FIXME

Returns :

FIXME

ncm_binsplit_get ()

void                ncm_binsplit_get                    (NcmBinSplit *bs,
                                                         mpfr_t res);

FIXME

bs :

a NcmBinSplit

res :

FIXME

ncm_binsplit_get_q ()

void                ncm_binsplit_get_q                  (NcmBinSplit *bs,
                                                         mpq_t q);

FIXME

bs :

a NcmBinSplit

q :

FIXME

ncm_binsplit_get_d ()

gdouble             ncm_binsplit_get_d                  (NcmBinSplit *bs,
                                                         mp_rnd_t rnd);

FIXME

bs :

a NcmBinSplit

rnd :

FIXME

Returns :

FIXME

NCM_BINSPLIT_DECL()

#define NCM_BINSPLIT_DECL(name,v,u,n,data) static inline void name (mpz_t v, mpz_t u, gulong n, gpointer data)

NCM_BINSPLIT_DENC_NULL()

#define NCM_BINSPLIT_DENC_NULL(a,b,c,d)