source: git/libpolys/coeffs/rintegers.h @ 4b5b36

spielwiese
Last change on this file since 4b5b36 was 4b5b36, checked in by Hans Schoenemann <hannes@…>, 5 years ago
add: ssi for poly over Z/n
  • Property mode set to 100644
File size: 1.1 KB
Line 
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
13#if SI_INTEGER_VARIANT == 3
14#define SR_HDL(A) ((long)(A))
15#define SR_INT    1L
16#define INT_TO_SR(INT)  ((number) (((long)INT << 2) + SR_INT))
17#define SR_TO_INT(SR)   (((long)SR) >> 2)
18#define n_Z_IS_SMALL(A)     (SR_HDL(A) & SR_INT)
19#define INT_IS_SMALL(A) ( ((A << 1) >> 1) == A )
20#endif
21
22//extern int nrzExp;
23//extern unsigned long nrzModul;
24
25BOOLEAN nrzInitChar    (coeffs r,  void * parameter);
26
27void    nrzWrite       (number a, const coeffs r); /*for rmodulon.cc*/
28void    nrzDelete      (number *a, const coeffs);  /*for rmodulon.cc*/
29int     nrzSize        (number a, const coeffs);   /*for rmodulon.cc*/
30void nrzWriteFd(number n, const ssiInfo* d, const coeffs); /*for rmodulon.cc*/
31number nrzReadFd(const ssiInfo *d, const coeffs);  /*for rmodulon.cc*/
32
33number  nrzInit        (long i, const coeffs r); /*for SAGE, better: n_Init*/
34
35#endif
36
37#endif
Note: See TracBrowser for help on using the repository browser.