My Project  UNKNOWN_GIT_VERSION
Macros | Functions
ncSAMult.cc File Reference
#include "misc/auxiliary.h"
#include "nc/nc.h"
#include "nc/sca.h"
#include "misc/options.h"
#include "coeffs/numbers.h"
#include "monomials/ring.h"
#include "monomials/p_polys.h"
#include "nc/ncSAMult.h"

Go to the source code of this file.

Macros

#define MYTEST   0
 
#define OUTPUT   MYTEST
 
#define PLURAL_INTERNAL_DECLARATIONS
 

Functions

BOOLEAN ncInitSpecialPairMultiplication (ring r)
 
CSpecialPairMultiplierAnalyzePair (const ring r, int i, int j)
 

Macro Definition Documentation

◆ MYTEST

#define MYTEST   0

Definition at line 11 of file ncSAMult.cc.

◆ OUTPUT

#define OUTPUT   MYTEST

Definition at line 29 of file ncSAMult.cc.

◆ PLURAL_INTERNAL_DECLARATIONS

#define PLURAL_INTERNAL_DECLARATIONS

Definition at line 34 of file ncSAMult.cc.

Function Documentation

◆ AnalyzePair()

CSpecialPairMultiplier* AnalyzePair ( const ring  r,
int  i,
int  j 
)

Definition at line 778 of file ncSAMult.cc.

779 {
780 #if OUTPUT
781  Print("AnalyzePair(ring, i: %d, j: %d)!", i, j);
782  PrintLn();
783 #endif
784 
786 
787  if( type == _ncSA_notImplemented ) return NULL;
788 
789 
790  // last possibility:
791  return new CExternalSpecialPairMultiplier(r, i, j, type); // For tests!
792 
793 
794  if( type == _ncSA_1xy0x0y0 )
795  return new CCommutativeSpecialPairMultiplier(r, i, j);
796 
797  if( type == _ncSA_Mxy0x0y0 )
798  return new CAntiCommutativeSpecialPairMultiplier(r, i, j);
799 
800  if( type == _ncSA_Qxy0x0y0 )
801  {
802  const number q = p_GetCoeff(GetC(r, i, j), r);
803  return new CQuasiCommutativeSpecialPairMultiplier(r, i, j, q);
804  }
805 
806  const poly d = GetD(r, i, j);
807 
808  assume( d != NULL );
809  assume( pNext(d) == NULL );
810 
811  const number g = p_GetCoeff(d, r);
812 
813  if( type == _ncSA_1xy0x0yG ) // Weyl
814  return new CWeylSpecialPairMultiplier(r, i, j, g);
815 
816  if( type == _ncSA_1xyAx0y0 ) // Shift 1
817  return new CShiftSpecialPairMultiplier(r, i, j, i, g);
818 
819  if( type == _ncSA_1xy0xBy0 ) // Shift 2
820  return new CShiftSpecialPairMultiplier(r, i, j, j, g);
821 
822  if( type == _ncSA_1xy0x0yT2 ) // simple homogenized Weyl algebra
823  return new CHWeylSpecialPairMultiplier(r, i, j, p_IsPurePower(d, r));
824 
825 }

◆ ncInitSpecialPairMultiplication()

BOOLEAN ncInitSpecialPairMultiplication ( ring  r)

Definition at line 266 of file ncSAMult.cc.

267 {
268 #if OUTPUT
269  PrintS("ncInitSpecialPairMultiplication(ring), ring: \n");
270  rWrite(r, TRUE);
271  PrintLn();
272 #endif
273 
274  if(!rIsPluralRing(r))// ; // :(((
275  return TRUE;
276 
277  if(rIsSCA(r))
278  return TRUE;
279 
280  if( r->GetNC()->GetGlobalMultiplier() != NULL )
281  {
282  WarnS("Already defined!");
283  return TRUE;
284  }
285 
286  r->GetNC()->GetGlobalMultiplier() = new CGlobalMultiplier(r);
287 
288  ggnc_p_ProcsSet(r, r->p_Procs);
289  return FALSE; // ok!
290 }
FALSE
#define FALSE
Definition: auxiliary.h:94
p_GetCoeff
#define p_GetCoeff(p, r)
Definition: monomials.h:51
CWeylSpecialPairMultiplier
Definition: ncSAMult.h:540
j
int j
Definition: facHensel.cc:105
CAntiCommutativeSpecialPairMultiplier
Definition: ncSAMult.h:512
GetC
static poly GetC(const ring r, int i, int j)
Definition: nc.h:366
CShiftSpecialPairMultiplier
Definition: ncSAMult.h:571
_ncSA_notImplemented
@ _ncSA_notImplemented
Definition: ncSAFormula.h:17
g
g
Definition: cfModGcd.cc:4031
CFormulaPowerMultiplier::AnalyzePair
static Enum_ncSAType AnalyzePair(const ring r, int i, int j)
Definition: ncSAFormula.cc:702
CCommutativeSpecialPairMultiplier
Definition: ncSAMult.h:501
Enum_ncSAType
Enum_ncSAType
Definition: ncSAFormula.h:16
rIsPluralRing
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
Definition: ring.h:398
TRUE
#define TRUE
Definition: auxiliary.h:98
i
int i
Definition: cfEzgcd.cc:125
PrintS
void PrintS(const char *s)
Definition: reporter.cc:284
_ncSA_1xy0x0y0
@ _ncSA_1xy0x0y0
Definition: ncSAFormula.h:18
_ncSA_Qxy0x0y0
@ _ncSA_Qxy0x0y0
Definition: ncSAFormula.h:20
_ncSA_1xyAx0y0
@ _ncSA_1xyAx0y0
Definition: ncSAFormula.h:21
p_IsPurePower
int p_IsPurePower(const poly p, const ring r)
return i, if head depends only on var(i)
Definition: p_polys.cc:1218
rWrite
void rWrite(ring r, BOOLEAN details)
Definition: ring.cc:227
_ncSA_Mxy0x0y0
@ _ncSA_Mxy0x0y0
Definition: ncSAFormula.h:19
Print
#define Print
Definition: emacs.cc:80
CQuasiCommutativeSpecialPairMultiplier
Definition: ncSAMult.h:524
WarnS
#define WarnS
Definition: emacs.cc:78
assume
#define assume(x)
Definition: mod2.h:390
NULL
#define NULL
Definition: omList.c:10
GetD
static poly GetD(const ring r, int i, int j)
Definition: nc.h:377
_ncSA_1xy0x0yG
@ _ncSA_1xy0x0yG
Definition: ncSAFormula.h:23
CExternalSpecialPairMultiplier
Definition: ncSAMult.h:592
CHWeylSpecialPairMultiplier
Definition: ncSAMult.h:555
PrintLn
void PrintLn()
Definition: reporter.cc:310
rIsSCA
static bool rIsSCA(const ring r)
Definition: nc.h:190
_ncSA_1xy0x0yT2
@ _ncSA_1xy0x0yT2
Definition: ncSAFormula.h:24
_ncSA_1xy0xBy0
@ _ncSA_1xy0xBy0
Definition: ncSAFormula.h:22
pNext
#define pNext(p)
Definition: monomials.h:37
CGlobalMultiplier
Definition: ncSAMult.h:264