#ifndef _INC_NMATH
#define _INC_NMATH

int nadd(unsigned int *x,unsigned int *y,unsigned int *z,int p);
int nsub(unsigned int *x,unsigned int *y,unsigned int *z,int p);
int nmpy(unsigned int *x,unsigned int *y,unsigned int *z,int p);
int numpy(unsigned int *x,unsigned int *y,unsigned int *z,int p);
int ndiv(unsigned int *x,unsigned int *y,unsigned int *z,int p);
int nudiv(unsigned int *x,unsigned int *y,unsigned int *z,int p,unsigned int *a);
int ncomp(unsigned int *x,unsigned int *y,int p);
double ntod(unsigned int *x,int p);
void ncopy(unsigned int *x,unsigned int *y,int p);
void _rncopy(unsigned int *x,unsigned int *y,int p);
void iton(unsigned int *x,int i,int p);
void dton(unsigned int *x,double i,int p);
void nclear(unsigned int *x,int p);
int nprint(unsigned int *x,int p,int len,int maxe);
int nuprint(unsigned int *x,int p,int len,int maxe,unsigned int *b);
int _mul10(unsigned int *x,unsigned int *y,int n);
int _div10(unsigned int *x,unsigned int *y,int n);
int _addsub(unsigned int *x,unsigned int *y,unsigned int *z,int p,int m);
int _addx(unsigned int *x,unsigned int *y,unsigned int *z,int len,int rem);
int _subx(unsigned int *x,unsigned int *y,unsigned int *z,int len,int rem);
int _comp(unsigned int *x,unsigned int *y,int n);
int _norm(unsigned int *x,int n);
int _shft(unsigned int *x,int n);
void _muladdn(unsigned int *x,unsigned int y,unsigned int *z,int n);
void _mulsubn(unsigned int *x,unsigned int y,unsigned int *z,int n);
unsigned int _div64(unsigned int *x,int y);
void _shl24(unsigned int *x,int n);
void _shr24(unsigned int *x,int n);
void _shl16(unsigned int *x,int n);
void _shr16(unsigned int *x,int n);
void _shl8(unsigned int *x,int n);
void _shr8(unsigned int *x,int n);
void _addn(unsigned int x,unsigned int *z);

#endif
