source: git/Singular/longalg.h @ 550b4c

spielwiese
Last change on this file since 550b4c was 550b4c, checked in by Olaf Bachmann <obachman@…>, 26 years ago
* Exponents in parameter (polys) are typedef'ed to EXPONENT_TYPE git-svn-id: file:///usr/local/Singular/svn/trunk@1408 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.4 KB
Line 
1#ifndef LONGALG_H
2#define LONGALG_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: longalg.h,v 1.6 1998-04-21 10:59:26 obachman Exp $ */
7/*
8* ABSTRACT:   algebraic numbers
9*/
10#include "structs.h"
11#include "longrat.h"
12#include "polys-impl.h"
13
14struct slnumber;
15typedef struct slnumber * lnumber;
16
17//make parameter type same as exponent type
18#if 1
19#define PARAMETER_TYPE EXPONENT_TYPE
20#define SIZEOF_PARAMETER SIZEOF_EXPONENT
21#else
22#define PARAMETER_TYPE int
23#define SIZEOF_PARAMETER SIZOF_EXPONENT
24#endif
25
26struct reca
27{
28  alg ne;
29  number ko;
30  PARAMETER_TYPE e[1];
31};
32
33struct slnumber
34{
35  alg z;
36  alg n;
37  BOOLEAN s;
38};
39
40extern int naNumbOfPar;             /* maximal number of parameters */
41extern alg naMinimalPoly;
42extern char **naParNames;
43extern int napMonomSize;
44
45void naSetChar(int p, BOOLEAN complete, char ** param, int pars);
46#ifdef LDEBUG
47void    naDBDelete (number *p,char *f, int l);
48#define naDelete(A) naDBDelete(A,__FILE__,__LINE__)
49#else
50void    naDelete (number *p);
51#endif
52number  naInit(int i);                              /* z := i */
53number  naPar(int i);                               /* z := par(i) */
54int     naParDeg(number n);                         /* i := deg(n) */
55int     naInt(number &n);
56void    naNumberToInt(number n, int *i);
57void    naNew(number *z);
58BOOLEAN naIsZero(number za);                         /* za = 0 ? */
59BOOLEAN naIsOne(number  za);                         /* za = 1 ? */
60BOOLEAN naIsMOne(number  za);                        /* za = -1 ? */
61BOOLEAN naEqual(number a, number b);                  /* a = b ? */
62BOOLEAN naGreater(number a, number b);                  /* dummy */
63number  naNeg(number za);                           /* za := - za */
64number  naInvers(number a);
65BOOLEAN naGreaterZero(number a);
66void    naPower(number x, int exp, number *lo);
67BOOLEAN naGreaterZero(number a);
68number  naCopy(number p);                              /* erg:= p */
69number  naAdd(number la, number li);               /* lu := la+li */
70number  naMult(number la, number li);              /* lo := la*li */
71number  naDiv(number la, number li);               /* lo := la/li */
72number  naIntDiv(number la, number li);            /* lo := la/li */
73//number  naIntMod(number la, number li);            /* lo := la/li */
74number  naSub(number la, number li);               /* lu := la-li */
75void    naNormalize(number &p);
76number  naGcd(number a, number b);
77number  naLcm(number a, number b);
78char *  naRead(char * s, number * p);
79void    naWrite(number &p);
80char *  naName(number n);
81BOOLEAN naSetMap(int c, char ** par, int nop, number minpol);
82#ifdef LDEBUG
83BOOLEAN naDBTest(number a, char *f,int l);
84#endif
85
86void    naSetIdeal(ideal I);
87
88// external access to the interna
89#define napoly alg
90#define RECA_SIZE (sizeof(alg)+sizeof(number))
91alg napAdd(alg p1, alg p2);
92void napDelete(alg *p);
93poly naPermNumber(number z, int * par_perm, int P);
94#define napVariables naNumbOfPar
95#define napNext(p) (p->ne)
96#define napGetCoeff(p) (p->ko)
97#define napGetExp(p,i) (p->e[(i)-1])
98#define napNew() ((alg)Alloc0(napMonomSize))
99#define nanumber lnumber
100#define naGetNom(na)  (((nanumber)(na))->z)
101#define naGetDenom(na)  (((nanumber)(na))->n)
102extern number   (*nacCopy)(number a);
103extern BOOLEAN  (*nacIsZero)(number a);
104extern number   (*nacInit)(int i);
105extern void     (*nacNormalize)(number &a);
106extern void napWrite(alg l);
107#endif
108
Note: See TracBrowser for help on using the repository browser.