source: git/Singular/numbers.h @ a5189b

spielwiese
Last change on this file since a5189b was ae9091e, checked in by Hans Schönemann <hannes@…>, 23 years ago
*hannes: ring indep. n_procs git-svn-id: file:///usr/local/Singular/svn/trunk@4787 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.5 KB
Line 
1#ifndef NUMBERS_H
2#define NUMBERS_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: numbers.h,v 1.19 2000-12-01 15:21:35 Singular Exp $ */
7/*
8* ABSTRACT: interface to coefficient aritmetics
9*/
10#include "structs.h"
11
12#define n_Copy(n, r)          (r)->cf->nCopy(n)
13#define n_Delete(n, r)        (r)->cf->nDelete(n)
14#define n_Mult(n1, n2, r)     (r)->cf->nMult(n1, n2)
15#define n_Add(n1, n2, r)      (r)->cf->nAdd(n1, n2)
16#define n_IsZero(n, r)        (r)->cf->nIsZero(n)
17#define n_Equal(n1, n2, r)    (r)->cf->nEqual(n1, n2)
18#define n_Neg(n, r)           (r)->cf->nNeg(n)
19#define n_Sub(n1, n2, r)      (r)->cf->nSub(n1, n2)
20#define n_GetChar(r)          ((r)->cf->nChar)
21#define n_Init(i, r)          (r)->cf->nInit(i)
22#define n_IsOne(n, r)         (r)->cf->nIsOne(n)
23
24/* variables */
25extern short fftable[];
26
27/* prototypes */
28extern numberfunc nMult, nSub ,nAdd ,nDiv, nIntDiv, nIntMod, nExactDiv;
29extern void    (*nNew)(number * a);
30extern number  (*nInit)(int i);
31extern number  (*nPar)(int i);
32extern int     (*nParDeg)(number n);
33extern int     (*nSize)(number n);
34extern int     (*nInt)(number &n);
35extern number  (*nNeg)(number a);
36extern number  (*nInvers)(number a);
37extern number  (*nCopy)(number a);
38extern void    (*nWrite)(number &a);
39extern char *  (*nRead)(char * s, number * a);
40extern void    (*nNormalize)(number &a);
41extern BOOLEAN (*nGreater)(number a,number b),
42               (*nEqual)(number a,number b),
43               (*nIsZero)(number a),
44               (*nIsOne)(number a),
45               (*nIsMOne)(number a),
46               (*nGreaterZero)(number a);
47extern void    (*nPower)(number a, int i, number * result);
48extern number  (*nGetDenom)(number &n);
49extern numberfunc nGcd, nLcm;
50
51extern number nNULL; /* the 0 as constant */
52
53#ifdef LDEBUG
54extern BOOLEAN (*nDBTest)(number a, char *f, int l);
55#define nTest(a) nDBTest(a,__FILE__,__LINE__)
56extern void    (*nDBDelete)(number * a,char *f, int l);
57#define nDelete(A) nDBDelete(A,__FILE__,__LINE__)
58#else
59#define nTest(a) (1)
60extern void    (*nDelete)(number * a);
61#endif
62
63extern BOOLEAN (*nSetMap)(ring r);
64extern number  (*nMap)(number from);
65extern char *  (*nName)(number n);
66
67void nDummy1(number* d);
68void nDummy2(number &d);
69number ndGcd(number a, number b);
70number ndCopy(number a);
71
72#ifdef LDEBUG
73void nDBDummy1(number* d,char *f, int l);
74#endif
75int  nGetChar();
76void nInitChar(ring r);
77void nKillChar(ring r);
78void nSetChar(ring r, BOOLEAN complete);
79
80#endif
Note: See TracBrowser for help on using the repository browser.