102{
109 if (
B->isFractional()) {
111 s1->skalmult(
B->viewBasisDen(), C);
113 } else {
115 }
116 if (
A->isFractional()) {
118 s2->skalmult(
A->viewBasisDen(), C);
123 } else {
125 }
126 } else {
128 }
130
131 if (
A->isFractional())
133 if (
B->isFractional())
135
137 if (!(
modA =
A->viewMin())) {
138 modA =
A->viewNorm();
139 }
140 if (!(
modB =
B->viewMin())) {
141 modB =
B->viewNorm();
142 }
148 } else {
151 t2->copySubmatInto(r, 1,
O->getDim()+1,
O->getDim(),
O->getDim(), 1,1);
152 }
153 delete r;
155 t2->simplifyContentDen(&
den);
156 }
159 D->setBasisDenTransfer(
den);
160
166}
void hnf()
transforms INPLACE to HNF
bigintmat * modhnf(number p, coeffs c)
computes HNF(this | p*I)
void concatcol(bigintmat *a, bigintmat *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
static FORCE_INLINE number n_Copy(number n, const coeffs r)
return a copy of 'n'
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,...
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
The main handler for Singular numbers which are suitable for Singular polynomials.