 |
My Project
debian-1:4.1.1-p2+ds-4
|
Go to the documentation of this file.
36 #define UPMATELEM(i,j,nVar) ( (nVar * ((i)-1) - ((i) * ((i)-1))/2 + (j)-1)-(i) )
106 short iFirstAltVar, iLastAltVar;
170 return (
p->ncRingType());
221 const poly,
const ring r);
226 const int,
const ring r);
236 return r->GetNC()->p_Procs.mm_Mult_pp(
m,
p, r);
246 return r->GetNC()->p_Procs.mm_Mult_p(
m,
p, r);
254 return r->GetNC()->p_Procs.SPoly(p1, p2, r);
266 assume(r->GetNC()->p_Procs.ReduceSPoly!=
NULL);
270 return r->GetNC()->p_Procs.ReduceSPoly(p1, p2, r);
286 const ring r =
b->bucket_ring;
291 assume(r->GetNC()->p_Procs.BucketPolyRed!=
NULL);
292 return r->GetNC()->p_Procs.BucketPolyRed(
b,
p, c);
297 const ring r =
b->bucket_ring;
302 assume(r->GetNC()->p_Procs.BucketPolyRed_Z!=
NULL);
303 return r->GetNC()->p_Procs.BucketPolyRed_Z(
b,
p, c);
308 poly
nc_pSubst(poly
p,
int n, poly e,
const ring r);
317 bool dummy_ring =
false
327 bool nc_rCopy(ring
res,
const ring r,
bool bSetupQuotient);
329 poly
pOppose(ring Rop_src, poly
p,
const ring Rop_dst);
330 ideal
idOppose(ring Rop_src, ideal I,
const ring Rop_dst);
336 static const bool bNoPluralMultiplication =
false;
338 static const bool bNoFormula =
true;
339 static const bool bNoCache =
false;
364 #ifdef PLURAL_INTERNAL_DECLARATIONS
375 static inline poly
GetC(
const ring r,
int i,
int j )
382 return ( C->
m[
ncols * ((
i)-1) + (
j)-1] );
386 static inline poly
GetD(
const ring r,
int i,
int j )
391 const int ncols =
D->ncols;
393 return (
D->m[
ncols * ((
i)-1) + (
j)-1] );
396 #endif // PLURAL_INTERNAL_DECLARATIONS
void nc_PolyPolyRed(poly &b, poly p, number *c, const ring r)
BOOLEAN nc_rComplete(const ring src, ring dest, bool bSetupQuotient=true)
nc_type ncRingType() const
poly(* SPolyReduce_Proc_Ptr)(const poly p1, poly p2, const ring r)
poly nc_p_Bracket_qq(poly p, const poly q, const ring r)
returns [p,q], destroys p
static poly GetC(const ring r, int i, int j)
static nc_type & ncRingType(nc_struct *p)
short FirstAltVar() const
BOOLEAN rIsLikeOpposite(ring rBase, ring rCandidate)
checks whether rings rBase and rCandidate could be opposite to each other returns TRUE if it is so
void * GB
From "gb_hack.h".
mm_Mult_p_Proc_Ptr mm_Mult_p
poly(* SPoly_Proc_Ptr)(const poly p1, const poly p2, const ring r)
bucket_Proc_Ptr BucketPolyRed
poly(* mm_Mult_p_Proc_Ptr)(const poly m, poly p, const ring r)
int setNCExtensions(int iMask)
poly pOppose(ring Rop_src, poly p, const ring Rop_dst)
opposes a vector p from Rop to currRing (dst!)
poly nc_p_Minus_mm_Mult_qq(poly p, const poly m, const poly q, int &lp, const poly, const ring r)
for p_Minus_mm_Mult_qq in pInline2.h
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
CFormulaPowerMultiplier *& GetFormulaPowerMultiplier()
SPolyReduce_Proc_Ptr ReduceSPoly
CGlobalMultiplier * GetGlobalMultiplier() const
poly nc_p_Plus_mm_Mult_qq(poly p, const poly m, const poly q, int &lp, const int, const ring r)
poly(* mm_Mult_pp_Proc_Ptr)(const poly m, const poly p, const ring r)
bool nc_rCopy(ring res, const ring r, bool bSetupQuotient)
bool ncExtensions(int iMask)
void(* bucket_Proc_Ptr)(kBucket_pt b, poly p, number *c)
struct p_Procs_s p_Procs_s
poly _nc_p_Mult_q(poly p, poly q, const ring r)
general NC-multiplication with destruction
void nc_rKill(ring r)
complete destructor
static poly nc_mm_Mult_p(const poly m, poly p, const ring r)
static poly nc_ReduceSpoly(const poly p1, poly p2, const ring r)
static void nc_BucketPolyRed_Z(kBucket_pt b, poly p, number *c)
void nc_p_ProcsSet(ring rGR, p_Procs_s *p_Procs)
mm_Mult_pp_Proc_Ptr mm_Mult_pp
poly nc_CreateShortSpoly(poly p1, poly p2, const ring r)
poly _nc_pp_Mult_qq(const poly p, const poly q, const ring r)
general NC-multiplication without destruction
BOOLEAN nc_CallPlural(matrix cc, matrix dd, poly cn, poly dn, ring r, bool bSetupQuotient, bool bCopyInput, bool bBeQuiet, ring curr, bool dummy_ring=false)
returns TRUE if there were errors analyze inputs, check them for consistency detects nc_type,...
bucket_Proc_Ptr BucketPolyRed_Z
CGlobalMultiplier *& GetGlobalMultiplier()
static poly nc_mm_Mult_pp(const poly m, const poly p, const ring r)
static poly GetD(const ring r, int i, int j)
ideal idOppose(ring Rop_src, ideal I, const ring Rop_dst)
opposes a module I from Rop to currRing(dst)
matrix nc_PrintMat(int a, int b, ring r, int metric)
returns matrix with the info on noncomm multiplication
CFormulaPowerMultiplier * m_PowerMultiplier
CFormulaPowerMultiplier * GetFormulaPowerMultiplier() const
bool nc_SetupQuotient(ring rGR, const ring rG=NULL, bool bCopy=false)
static poly nc_CreateSpoly(const poly p1, const poly p2, const ring r)
static nc_struct *& GetNC(ring r)
BOOLEAN nc_CheckSubalgebra(poly PolyVar, ring r)
static bool rIsSCA(const ring r)
poly nc_pSubst(poly p, int n, poly e, const ring r)
substitute the n-th variable by e in p destroy p e is not a constant
static void nc_kBucketPolyRed(kBucket_pt b, poly p, number *c)
CGlobalMultiplier * m_Multiplier