1 #ifndef RINTEGERS_H 2 #define RINTEGERS_H 3 /**************************************** 4 * Computer Algebra System SINGULAR * 5 ****************************************/ 6 /* 7 * ABSTRACT: numbers modulo n 8 */ 9 #include "misc/auxiliary.h" 10 11 #ifdef HAVE_RINGS 12 #include "coeffs/coeffs.h" 13 14 #if SI_INTEGER_VARIANT == 3 15 #define SR_HDL(A) ((long)(A)) 16 #define SR_INT 1L 17 #define INT_TO_SR(INT) ((number) (((long)INT << 2) + SR_INT)) 18 #define SR_TO_INT(SR) (((long)SR) >> 2) 19 #define n_Z_IS_SMALL(A) (SR_HDL(A) & SR_INT) 20 #define INT_IS_SMALL(A) ( ((A << 1) >> 1) == A ) 21 #endif 22 23 //extern int nrzExp; 24 //extern unsigned long nrzModul; 25 26 BOOLEAN nrzInitChar (coeffs r, void * parameter); 27 28 void nrzWrite (number a, const coeffs r); /*for rmodulon.cc*/ 29 void nrzDelete (number *a, const coeffs); /*for rmodulon.cc*/ 30 int nrzSize (number a, const coeffs); /*for rmodulon.cc*/ 31 void nrzWriteFd(number n, const ssiInfo* d, const coeffs); /*for rmodulon.cc*/ 32 number nrzReadFd(const ssiInfo *d, const coeffs); /*for rmodulon.cc*/ 33 34 number nrzInit (long i, const coeffs r); /*for SAGE, better: n_Init*/ 35 36 #endif 37 38 #endif 39