104 coeffs C = O->basecoeffs();
108 if (
B->isFractional()) {
110 s1->skalmult(
B->viewBasisDen(), C);
111 den =
n_Copy(
B->viewBasisDen(), C);
115 if (
A->isFractional()) {
117 s2->skalmult(
A->viewBasisDen(), C);
119 number d =
n_Mult(den,
A->viewBasisDen(), C);
123 den =
n_Copy(
A->viewBasisDen(), C);
130 if (
A->isFractional())
132 if (
B->isFractional())
136 if (!(modA =
A->viewMin())) {
137 modA =
A->viewNorm();
139 if (!(modB =
B->viewMin())) {
140 modB =
B->viewNorm();
149 t2 =
new bigintmat(O->getDim(), O->getDim(), C);
150 t2->
copySubmatInto(r, 1, O->getDim()+1, O->getDim(), O->getDim(), 1,1);
void concatcol(bigintmat *a, bigintmat *b)
static FORCE_INLINE number n_Gcd(number a, number b, const coeffs r)
in Z: return the gcd of 'a' and 'b' in Z/nZ, Z/2^kZ: computed as in the case Z in Z/pZ...
number det()
det (via LaPlace in general, hnf for euc. rings)
void simplifyContentDen(number *den)
ensures that Gcd(den, content)=1 < enden hier wieder
void setMinTransfer(number a, number b)
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
void setNormTransfer(number a, number b)
static FORCE_INLINE number n_Mult(number a, number b, const coeffs r)
return the product of 'a' and 'b', i.e., a*b
void copySubmatInto(bigintmat *, int sr, int sc, int nr, int nc, int tr, int tc)
copy the submatrix of b, staring at (a,b) having n rows, m cols into the given matrix at pos...
The main handler for Singular numbers which are suitable for Singular polynomials.
D(ideal gnc_gr_bba(const ideal, const ideal, const intvec *, const intvec *, kStrategy, const ring _currRing)) D(ideal gnc_gr_mora(const ideal
Modified Plural's Buchberger's algorithmus.
void setBasisDenTransfer(number a)
void hnf()
transforms INPLACE to HNF
bigintmat * modhnf(number p, coeffs c)
computes HNF(this | p*I)
static FORCE_INLINE number n_Copy(number n, const coeffs r)
return a copy of 'n'
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
number get(int i, int j) const
get a copy of an entry. NOTE: starts at [1,1]