109 if (
B->isFractional()) {
111 s1->skalmult(
B->viewBasisDen(), C);
116 if (
A->isFractional()) {
118 s2->skalmult(
A->viewBasisDen(), C);
131 if (
A->isFractional())
133 if (
B->isFractional())
137 if (!(
modA =
A->viewMin())) {
138 modA =
A->viewNorm();
140 if (!(
modB =
B->viewMin())) {
141 modB =
B->viewNorm();
151 t2->copySubmatInto(r, 1,
O->getDim()+1,
O->getDim(),
O->getDim(), 1,1);
155 t2->simplifyContentDen(&
den);
159 D->setBasisDenTransfer(
den);
180 for(
int i=0;
i<
O->getDim();
i++) {
181 A->viewBasis()->getcol(
i+1, c);
197 if (!(
modA =
A->viewMin())) {
198 modA =
A->viewNorm();
200 if (!(
modB =
B->viewMin())) {
201 modB =
B->viewNorm();
217 if (
A->isFractional()) {
218 den =
A->viewBasisDen();
220 if (
B->isFractional()) {
227 t1->simplifyContentDen(&
den);
231 D->setBasisDenTransfer(
den);
248 if (
A->isFractional()) {
250 s->simplifyContentDen(&d);
252 res->setBasisDenTransfer(d);
271 A->setNormTransfer(n,
n_Init(1, C));
294 if (
A->isFractional()) {
296 s->simplifyContentDen(&d);
298 res->setBasisDenTransfer(d);
bigintmat * bimMult(bigintmat *a, bigintmat *b)
void hnf()
transforms INPLACE to HNF
bigintmat * modhnf(number p, coeffs c)
computes HNF(this | p*I)
void Write()
IO: writes the matrix into the current internal string buffer which must be started/ allocated before...
bool skalmult(number b, coeffs c)
Multipliziert zur Matrix den Skalar b hinzu.
void getColRange(int j, int no, bigintmat *a)
copies the no-columns staring by j (so j...j+no-1) into the pre-allocated a
void concatcol(bigintmat *a, bigintmat *b)
void one()
Macht Matrix (Falls quadratisch) zu Einheitsmatrix.
nforder_ideal()
0 Konstruktoren/Destruktoren ///
coeffs basecoeffs() const
bigintmat * elRepMat(bigintmat *a)
Coefficient rings, fields and other domains suitable for Singular polynomials.
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_Power(number a, int b, number *res, const coeffs r)
fill res with the power a^b
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE void n_Write(number n, const coeffs r, const BOOLEAN bShortOut=TRUE)
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
const CanonicalForm int s
The main handler for Singular numbers which are suitable for Singular polynomials.
nforder_ideal * nf_idMult(nforder_ideal *A, nforder_ideal *B)
nforder_ideal * nf_idPower(nforder_ideal *A, int i)
nforder_ideal * nf_idInit(int i, coeffs O)
nforder_ideal * nf_idAdd(nforder_ideal *A, nforder_ideal *B)
void StringSetS(const char *st)
void StringAppendS(const char *st)
void PrintS(const char *s)
void Werror(const char *fmt,...)