⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fun.h

📁 calc大数库
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __FUN_H__
#define __FUN_H__

#define dprintd(expr) printf(#expr " = %d\n", expr); fflush(stdout)
#define dprintld(expr) printf(#expr " = %ld\n", expr); fflush(stdou)t
#define dprintg(expr) printf(#expr " = %g\n", expr); fflush(stdout)
#define dprints(expr) printf(#expr " = %s\n", expr); fflush(stdout)
#define dprintc(expr) printf(#expr " = %c\n", expr); fflush(stdout)
#define dprintu(expr) printf(#expr " = %u\n", expr); fflush(stdout)
#define dprintlu(expr) printf(#expr " = %lu\n", expr); fflush(stdout)

#define DPRINTPI(expr) printf(#expr " = "); PRINTPI(expr); printf("\n");\
 fflush(stdout)
#define DPRINTI(expr) printf(#expr " = "); PRINTI(expr); printf("\n"); \
fflush(stdout)
#define DPRINTR(expr) printf(#expr " = "); PRINTR(expr); printf("\n"); \
fflush(stdout)



#include "pI.h"
#include "roots.h"
#include "wrappers.h"
extern long nettbytes;
int isatty(int fd);
FILE *Fopen_r(char *filename);
MPI *ZSUB2IPLUS1(MPI *X, MPI *R, MPI *S, MPI *U, MPI *V, MPI *N);
MPI *XSUB2IPLUS1(MPI *X, MPI *Z, MPI *R, MPI *S, MPI *U, MPI *V, MPI *P, MPI *Q, MPI *N);
MPI *ZSUB2I(MPI *R, MPI *S, MPI *P, MPI *Q, MPI *N);
MPI *XSUB2I(MPI *R, MPI *S, MPI *P, MPI *Q, MPI *N);
MPI *FIBONACCI(USI n);
MPI *FUND_UNIT(MPI *D, MPI **Xptr, MPI **Yptr);
MPI *FUND_UNITX(MPI *D, MPI **Xptr, MPI **Yptr);
MPI *PEL(MPI *D, MPI *E, MPI **Xptr, MPI **Yptr);
MPI *PELX(MPI *D, MPI *E, MPI **Xptr, MPI **Yptr);
MPI *JUGGLERT(MPI *Dptr);
MPI **SMITHI(MPMATI *Mptr, MPMATI **Pptr, MPMATI **Qptr, USI *ptr, MPI *Eptr, USI m1, USI n1);
MPI **SMITHI1(MPMATI *Mptr, USI *ptr, MPI *Eptr, USI m1, USI n1);
MPI *ABSI(MPI *Aptr);
MPI *ADD0I(MPI *Aptr, MPI *Bptr);
MPI *ADD0_I(MPI *Aptr, unsigned long b);
MPI *ADDI(MPI *Aptr, MPI *Bptr);
MPI *ADDM(MPI *Aptr, MPI *Bptr, MPI *Mptr);
MPI *APPROXN(MPI *Aptr, unsigned int m);
MPI *BABY_DIVIDE(MPI *Nptr);
MPI *BABY_MTHROOT(MPI *Aptr, unsigned int m);
MPI *BANK_REALLOC(MPI *Aptr, unsigned int degree);
MPI *BIG_FACTOR(MPI *Nptr);
MPI *BIG_MTHROOT(MPI *Aptr, unsigned int m);
MPI *BIG_MTHROOTX(MPI *Aptr, MPI *M);
MPI *BINOMIAL(USI n, USI m);
MPI *BRENT_POLLARD(MPI *Nptr);
MPI *BUILDMPI(unsigned int n);
MPI *CHANGE(unsigned long n);
MPI *CHANGEI(long n);
MPI *CHINESE(MPI *A, MPI *B, MPI *M, MPI *N, MPI **Mptr);
MPI *CHINESEX(MPI *A, MPI *B, MPI *M, MPI *N, MPI **Mptr);
MPI *CHINESE_ARRAY(MPI *A[], MPI *M[], MPI **Mptr, USI n);
MPI *CHINESE_ARRAYX(MPIA A, MPIA M, MPI **Mptr);
MPI *COLLATZT(MPI *Dptr);
MPI *COLSUMI(MPMATI *Mptr, USI j);
MPI *CONGR(MPI *A, MPI *B, MPI *M, MPI **N);
MPI *CONGRX(MPI *A, MPI *B, MPI *M, MPI **N);
MPI *COPYI(MPI *Aptr);
MPI *CRA(USL n, USL *a, USL *m);
MPI *DIVISOR(MPI *N);
MPI *DIVISORX(MPI *N);
MPI *DIVM(MPI *Aptr, MPI *Bptr, MPI *Mptr);
MPI *DOTRI(MPMATI *Mptr, USI i, USI j);
MPI *EUCLIDI(MPI *Pptr, MPI *Qptr, MPI **Hptr, MPI **Kptr);
MPI *EULER(MPI *N);
MPI *EULERX(MPI *N);
MPI *FACTORQ();
MPI *FACTORQ1(MPI *Q, USI factored, USL base[], USL **M1, USI FBASE, long x, USL r1[], USL r2[], USL r, int INDEX[], USI CTR[]);
MPI *FACTORX(MPI *N);
MPI *FFM(MPI *a, MPI *b, USL K);
MPI *FINPUTI(FILE *f, unsigned int *uptr);
MPI *GCD(MPI *Aptr, MPI *Bptr);
MPI *GCD_ARRAY(MPIA M);
MPI *GCD_ARRAYV(MPIA M, MPIA *Y);
MPI *GCD_ARRAYVX(MPIA M, MPIA *Y);
MPI *INPUTI(unsigned int *uptr);
MPI *INPUTSI(char **ptr, unsigned int *uptr);
MPI *INPUTSID(char **ptr, unsigned int *uptr);
MPI *INT(MPI *Aptr, MPI *Bptr);
MPI *INT0(MPI *Aptr, MPI *Bptr);
MPI *INT0_(MPI *Aptr, unsigned long b);
MPI *INTI(MPI *Aptr, MPI *Bptr);
MPI *INT_(MPI *Aptr, unsigned long b);
MPI *INVERSEM(MPI *Nptr, MPI *Mptr);
MPI *INVERSEMX(MPI *A, MPI *M);
MPI *JACOB(MPI *M, MPI *N);
MPI *LCM(MPI *Aptr, MPI *Bptr);
MPI *LCM_ARRAY(MPIA M);
MPI *LENGTHX(MPI *N);
MPI *LENGTHSQCI(MPMATI *Mptr, USI i);
MPI *LENGTHSQRI(MPMATI *Mptr, USI j);
MPI *LPRIMROOT(MPI *P);
MPI *LPRIMROOTX(MPI *P);
MPI *LUCAS(MPI *N);
MPI *LUCASB(MPI *N);
MPI *LUCASS(USI n);
MPI *LUCASBX(MPI *N);
MPI *LUCASU(MPI *N, MPI *Q, MPI *M);
MPI *LUCASUX(MPI *N, MPI *Q, MPI *M);
MPI *LUCASX(MPI *N);
MPI *MAXELTI(MPMATI *Mptr);
MPI *MINELTI(MPMATI *Mptr);
MPI *MINUSI(MPI *Aptr);
MPI *MINUSM(MPI *Aptr, MPI *Mptr);
MPI *MINUS_ONEI();
MPI *MOBIUS(MPI *N);
MPI *MOBIUSX(MPI *N);
MPI *MOD(MPI *Aptr, MPI *Bptr);
MPI *MOD0(MPI *Aptr, MPI *Bptr);
MPI *MPOWER(MPI *Aptr, MPI *Bptr, MPI *Cptr);
MPI *MPOWERX(MPI *Aptr, MPI *Bptr, MPI *Cptr);
MPI *MPOWER_(long a, MPI *Bptr, MPI *Cptr);
MPI *MPOWER_M(MPI *Aptr, USL b, MPI *Cptr);
MPI *MPQS1(MPI *N);
MPI *MULT32X(MPI *X, MPI *Y);
MPI *MULTABC(MPI *A, MPI *B, MPI *C);
MPI *MULTI(MPI *Aptr, MPI *Bptr);
MPI *MULTI3(MPI *A, MPI *B, MPI *C);
MPI *MULTM(MPI *Aptr, MPI *Bptr, MPI *Mptr);
MPI *MULT_I(MPI *Aptr, long b);
MPI *MULT_II(MPI *Aptr, USL b);
MPI *NEAREST_INTI(MPI *Aptr, MPI *Bptr);
MPI *NEAREST_INTR(MPR *Aptr);
MPI *NEWTON(MPI *Aptr, unsigned int m, MPI *Fptr);
MPI *NEXT_PRIME(MPI *M, USI *hptr);
MPI *NEXT_PRIMEX(MPI *M);
MPI *NEXTPRIMEAP(MPI *A, MPI *B, MPI *M);
MPI *NEXTPRIMEAPX(MPI *A, MPI *B, MPI *M);
MPI *Nextprime(MPI *N);
MPI *ONEI();
MPI *ORDERM(MPI *A, MPI *M);
MPI *ORDERMX(MPI *A, MPI *M);
MPI *ORDERP(MPI *A, MPI *P);
MPI *ORDERPX(MPI *A, MPI *P);
MPI *ORDERQ(MPI *A, MPI *P, unsigned int n);
MPI *ORDERQX(MPI *A, MPI *P, MPI *N);
MPI *PI(unsigned int r);
MPI *PINCH_PRIME(MPI *M, MPI *N, long *base, USI FBASE, USI *hptr);
MPI *POLLARD(MPI *Nptr);
MPI *POWERI(MPI *Aptr, unsigned n);
MPI *POWER_I(long a, unsigned n);
MPI *PROB_PRIME(MPI *M, MPI *N, USI *hptr);
void Parse();
MPI *ROWSUMI(MPMATI *Mptr, USI i);
MPI *RSAE(MPI *Pptr, MPI *Qptr);
MPI *RSAEX(MPI *Pptr, MPI *Qptr);
MPI *SHIFTLB(MPI *U);
MPI *SIGMA(MPI *N);
MPI *SIGMAX(MPI *N);
MPI *SQRTM(MPI *x, MPI *p);
MPI *SQRTMX(MPI *x, MPI *p);
MPI *SUB0I(MPI *Aptr, MPI *Bptr);
MPI *SUB0_I(MPI *Aptr, unsigned long b);
MPI *SUBI(MPI *Aptr, MPI *Bptr);
MPI *SUBM(MPI *Aptr, MPI *Bptr, MPI *Mptr);
MPI *TWOI();
MPI *UPDATEMAXI(MPI *S, MPMATI *Mptr);
MPI *ZEROI();
MPMATI *ADDMATI(MPMATI *Mptr, MPMATI *Nptr);
MPMATI *ADD_MULT_ROWI(USI p, USI q, MPI *Aptr, MPMATI *Mptr);
MPMATI *BASIS_REDUCTION(MPMATI *Bptr, MPMATI **Eptr, USI rowstage, USI m1, USI n1);
MPMATI *BASIS_REDUCTION0(MPMATI *Bptr, USI m1, USI n1);
MPMATI *BASIS_REDUCTION00(MPMATI *Bptr, USI m1, USI n1, USI norig);
MPMATI *BUILDMATI(unsigned int m, unsigned int n);
MPMATI *COLSUBI(USI p, USI q, MPI *Aptr, MPMATI *Mptr);
MPMATI *COLSUBI0(USI p, USI q, MPI *Aptr, MPMATI *Mptr);
MPMATI *COPYMATI(MPMATI *Mptr);
MPMATI *DELETE_COL1I(MPMATI *Mptr);
MPMATI *DELETE_ROW1I(MPMATI *Mptr);
MPMATI *DELETE_ROWI(USI r, MPMATI *Mptr);
MPMATI *EXTGCD(MPMATI *Dptr, MPI **Aptr, MPMATI **Q, USI m1, USI n1);
MPMATI *FINPUTMATFILEI_I();
MPMATI *FINPUTMATI(FILE *infile);
MPMATI *HERMITE1(MPMATI *Aptr, USI *T, USI nz);
MPMATI *HERMITE1P(MPMATI *Aptr, MPMATI *Pptr, MPMATI **Qptr, USI *T, USI nz);
MPMATI *IDENTITYI(USI n);
MPMATI *INPUTMATI();
MPMATI *MULTMATI(MPMATI *Mptr, MPMATI *Nptr);
MPMATI *ROWSUBI(USI p, USI q, MPI *Aptr, MPMATI *Mptr);
MPMATI *ROWSUBI0(USI p, USI q, MPI *Aptr, MPMATI *Mptr);
MPMATI *SUBMATI(MPMATI *Mptr, MPMATI *Nptr);
MPMATI *SWAP_COLSI(USI p, USI q, MPMATI *Mptr);
MPMATI *SWAP_COLSI1(USI p, USI q, MPMATI *Mptr);
MPMATI *SWAP_ROWSI(USI p, USI q, MPMATI *Mptr);
MPMATI *SWAP_ROWSI1(USI p, USI q, MPMATI *Mptr);
MPMATI *ZEROMNI(USI m, USI n);
MPMATR *BUILDMATR(USI m, USI n);
MPMATR *CHOLESKYR(MPMATR *A);
MPMATR *COPYMATR(MPMATR *Mptr);
MPMATR *ZEROMNR(USI m, USI n);
MPR *ADDR(MPR *Aptr, MPR *Bptr);
MPR *BUILDMPR( );
MPR *COPYR(MPR *Aptr);
MPR *FINPUTR(FILE *f, unsigned int *uptr);
MPR *FRAC_PARTI(MPI *Aptr, MPI *Bptr);
MPR *FRAC_PARTR(MPR *Aptr);
MPR *INPUTR(unsigned int *uptr);
MPR *INPUTSR(char **ptr, unsigned int *uptr);
MPR *INPUTSRD(char **ptr);
MPR *INTR(MPR *Aptr);
MPR *INTROOT(MPR *Z, MPR *U);
MPR *INVERSER(MPR *Aptr);
MPR *MINUSR(MPR *Aptr);
MPR *MINUS_ONER();
MPR *MTHROOTR(MPR *Nptr, unsigned int m, unsigned int r);
MPR *MULTABCR(MPR *A, MPR *B, MPR *C);
MPR *MULTR(MPR *Aptr, MPR *Bptr);
MPR *ONER();
MPR *TWOR();
MPR *PII(unsigned int r);
MPR *POWERR(MPR *Aptr, unsigned int n);
MPR *POWERR_2(MPR *R, int n);
MPR *RATIOI(MPI *Aptr, MPI *Bptr);
MPR *RATIOR(MPR *Aptr, MPR *Bptr);
MPR *RECIPROCAL(unsigned long n);
MPR *SUBR(MPR *Aptr, MPR *Bptr);
MPR *ZEROR();
char *Fgets(FILE *f);
char *Gets();
int COMPAREI(MPI *Aptr, MPI *Bptr);
int COMPARER(MPR *Aptr, MPR *Bptr);
int QSORTCOMPAREI(const void *Aptr, const void *Bptr);
int QSORTRSV(const void *Aptr, const void *Bptr);
int GetCharFlush();
int JACOBI(USL n, USL m);
int JACOBIB(MPI *N, MPI *M);
int MAX(int i, int j);
int MIN(int i, int j);
int RSV(MPI *Aptr, MPI *Bptr);
int execerror(char *s, char *t);
int scanf01(USI *jptr);
int scanf011(USI *jptr, USI *kptr);
int scanf0112(USI *jptr, USI *kptr, USI *lptr, USI *mptr);
int scanf012(USI *jptr, USI *kptr, USI *lptr);
int scanf0122(USI *jptr, USI *kptr, USI *lptr, USI *mptr, USI *nptr);
int scanf01221(USI *jptr, USI *kptr, USI *lptr, USI *mptr, USI *nptr, USI *optr);
int scanf02(USI *jptr, USI *kptr);
int scanf021(USI *jptr, USI *kptr, USI *mptr);
int scanf03(USI *jptr, USI *kptr, USI *lptr);
int scanf031(USI *jptr, USI *kptr, USI *lptr, USI *mptr);
int scanf05(USI *iptr, USI *jptr, USI *kptr, USI *lptr, USI *mptr);
int scanf051(USI *iptr, USI *jptr, USI *kptr, USI *lptr, USI *mptr, USI *nptr);
int scanf10(USI *jptr);
int scanf11(USI *jptr, USI *kptr);
int scanf12(USI *jptr, USI *kptr, USI *lptr);
int scanf121(USI *hptr, USI *jptr, USI *kptr, USI *mptr);
int scanf13(USI *iptr, USI *jptr, USI *kptr, USI *lptr);
int scanf131(USI *iptr, USI *jptr, USI *kptr, USI *lptr, USI *mptr);
int scanf20(USI *iptr, USI *jptr);
int scanf21(USI *jptr, USI *kptr, USI *mptr);
int scanf22(USI *iptr, USI *jptr, USI *kptr, USI *lptr);
int scanf221(USI *hptr, USI *iptr, USI *jptr, USI *kptr, USI *mptr);
int scanf23(USI *iptr, USI *jptr, USI *kptr, USI *lptr, USI *mptr);
int scanf231(USI *iptr, USI *jptr, USI *kptr, USI *lptr, USI *mptr, USI *nptr);
int scanf30(USI *iptr, USI *jptr, USI *kptr);
int scanf321(USI *gptr, USI *hptr, USI *iptr, USI *jptr, USI *kptr, USI *mptr);
int scanf40(USI *iptr, USI *jptr, USI *kptr, USI *lptr);
int scanfd10(int *jptr);
int whitespace(FILE *f);
unsigned int *KB_ROW(MPMATI *Aptr, USI *nz);
unsigned int *KB_ROWP(MPMATI *Aptr, MPMATI **Pptr, USI *nz);
unsigned int BINARY(USL i);
unsigned int BINARYB(MPI *N);
unsigned int COLSEEKI(USI i, MPMATI *Mptr);
unsigned int EQMINUSONECI();
unsigned int EQMINUSONECR();
unsigned int EQMINUSONEI();
unsigned int EQMINUSONER();
unsigned int EQONECI();
unsigned int EQONECR();
unsigned int EQONEI(MPI *Mptr);
unsigned int EQONER();
unsigned int EQUALI (MPI *Aptr, MPI *Bptr);
unsigned int EQUALR(MPR *Aptr, MPR *Bptr);
unsigned int EQZEROCI();
unsigned int EQZEROCR();
unsigned int EQZEROI(MPI *Mptr);
unsigned int EQZEROR();
unsigned int FACTOR(MPI *Nptr);
unsigned int GetYN();
unsigned int HAVAS_PIVOTI(MPMATI *Mptr, USI *rptr, USI *cptr, USI r, USI s);
unsigned int LENGTHm(USL n);
unsigned int MATSEEKI(USI i, MPMATI *Mptr);
unsigned int MILLER(MPI *Nptr, USL b);
unsigned int ORDERECP(MPI *X, MPI *Z, MPI *P, MPI *Q, MPI *N);
unsigned int PRIME_FACTORS(MPI *Nptr);
unsigned int Q_PRIME_TEST(MPI *Nptr);
unsigned int REDUCED(MPI *D, MPI *U, MPI *V, USI i);
unsigned int ROWSEEKI(USI i, MPMATI *Mptr);
unsigned int SELFRIDGE(MPI *Nptr, USI *uptr);
unsigned int STEP4(USI k, USI l, MPMATI **Lptr, MPMATI **Bptr, MPMATI **Eptr, MPI *D[], USI i);
unsigned int STEP40(USI k, USI l, MPMATI **Lptr, MPMATI **Bptr, MPI *D[]);
unsigned int STEP400(USI k, USI l, MPMATI **Lptr, MPMATI **Bptr, MPI *D[],USI gcdflag,USI norig);
unsigned int binary(USL i);
unsigned long **idim2(USI row, USI col);
unsigned long *ERATOSTHENES(USI n);
unsigned long *FFI(USL N, USL *b, USL w, USL p);
unsigned long *FFP(USL N, USL *a, USL *b, USL m, USL n, USL w, USL p);
unsigned long *FFT(USL N, USL *a, USL w, USL p);
unsigned long ADDm(USL a, USL b, USL m);
unsigned long ADDm(USL a, USL b, USL m);
unsigned long CONVERTI(MPI *N);
unsigned long DIVm(USL a, USL b, USL m);
unsigned long GCDm(USL m, USL n);
unsigned long INVERSEm(USL n, USL m);
unsigned long INVERSEm(USL n, USL m);
unsigned long INVERSEm(USL n, USL m);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -