My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
libpolys
polys
ext_fields
algext.h
Go to the documentation of this file.
1
#ifndef ALGEXT_H
2
#define ALGEXT_H
3
/****************************************
4
* Computer Algebra System SINGULAR *
5
****************************************/
6
/*
7
* ABSTRACT: numbers in an algebraic extension field K[a] / < f(a) >
8
* Assuming that we have a coeffs object cf, then these numbers
9
* are polynomials in the polynomial ring K[a] represented by
10
* cf->extRing.
11
* IMPORTANT ASSUMPTIONS:
12
* 1.) So far we assume that cf->extRing is a valid polynomial
13
* ring in exactly one variable, i.e., K[a], where K is allowed
14
* to be any field (representable in SINGULAR and which may
15
* itself be some extension field, thus allowing for extension
16
* towers).
17
* 2.) Moreover, this implementation assumes that
18
* cf->extRing->qideal is not NULL but an ideal with at
19
* least one non-zero generator which may be accessed by
20
* cf->extRing->qideal->m[0] and which represents the minimal
21
* polynomial f(a) of the extension variable 'a' in K[a].
22
* 3.) As soon as an std method for polynomial rings becomes
23
* available, all reduction steps modulo f(a) should be replaced
24
* by a call to std. Moreover, in this situation one can finally
25
* move from K[a] / < f(a) > to
26
* K[a_1, ..., a_s] / I, with I some zero-dimensional ideal
27
* in K[a_1, ..., a_s] given by a lex
28
* Gröbner basis.
29
* The code in algext.h and algext.cc is then capable of
30
* computing in K[a_1, ..., a_s] / I.
31
*/
32
33
#include "
coeffs/coeffs.h
"
34
#include "
polys/monomials/ring.h
"
35
36
/// struct for passing initialization parameters to naInitChar
37
typedef
struct
{ ring
r
;
/*ideal i;*/
}
AlgExtInfo
;
// `r.qideal` is supposed to be `i`
38
39
/// Get a mapping function from src into the domain of this type (n_algExt)
40
nMapFunc
naSetMap
(
const
coeffs
src,
const
coeffs
dst);
41
42
/// Initialize the coeffs object
43
BOOLEAN
naInitChar
(
coeffs
cf
,
void
* infoStruct);
44
BOOLEAN
n2pInitChar
(
coeffs
cf
,
void
* infoStruct);
45
46
/// if m == var(i)/1 => return i,
47
int
naIsParam
(number,
const
coeffs
);
48
49
/// assumes that p and q are univariate polynomials in r,
50
/// mentioning the same variable;
51
/// assumes a global monomial ordering in r;
52
/// assumes that not both p and q are NULL;
53
/// returns the gcd of p and q;
54
/// moreover, afterwards pFactor and qFactor contain appropriate
55
/// factors such that gcd(p, q) = p * pFactor + q * qFactor;
56
/// leaves p and q unmodified
57
poly
p_ExtGcd
(poly
p
, poly &pFactor, poly q, poly &qFactor, ring r);
58
59
char
*
naCoeffName
(
const
coeffs
r);
60
#endif
61
/* ALGEXT_H */
p_ExtGcd
poly p_ExtGcd(poly p, poly &pFactor, poly q, poly &qFactor, ring r)
assumes that p and q are univariate polynomials in r, mentioning the same variable; assumes a global ...
Definition
algext.cc:214
AlgExtInfo::r
ring r
Definition
algext.h:37
naIsParam
int naIsParam(number, const coeffs)
if m == var(i)/1 => return i,
Definition
algext.cc:1151
naCoeffName
char * naCoeffName(const coeffs r)
Definition
algext.cc:1390
naSetMap
nMapFunc naSetMap(const coeffs src, const coeffs dst)
Get a mapping function from src into the domain of this type (n_algExt).
Definition
algext.cc:1077
naInitChar
BOOLEAN naInitChar(coeffs cf, void *infoStruct)
Initialize the coeffs object.
Definition
algext.cc:1433
n2pInitChar
BOOLEAN n2pInitChar(coeffs cf, void *infoStruct)
Definition
algext.cc:1687
AlgExtInfo
struct for passing initialization parameters to naInitChar
Definition
algext.h:37
BOOLEAN
int BOOLEAN
Definition
auxiliary.h:88
p
int p
Definition
cfModGcd.cc:4086
cf
CanonicalForm cf
Definition
cfModGcd.cc:4091
coeffs.h
Coefficient rings, fields and other domains suitable for Singular polynomials.
nMapFunc
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
Definition
coeffs.h:80
coeffs
The main handler for Singular numbers which are suitable for Singular polynomials.
ring.h
Generated on
for My Project by
doxygen 1.17.0
for
Singular