1874 int (*POS)(ideal,
poly, std::vector<ideal>, std::vector<poly>, int);
1885 std::vector<ideal > idorb;
1886 std::vector< poly > polist;
1888 ideal orb_init =
idInit(1, 1);
1889 idorb.push_back(orb_init);
1893 std::vector< std::vector<int> > mat;
1894 std::vector<int> row;
1905 while(lpcnt < idorb.size())
1925 for(is = 1; is <= lV; is++)
1944 ps = (*POS)(Jwi, wi, idorb, polist, trInd);
1949 idorb.push_back(Jwi);
1950 polist.push_back(wi);
1955 row[ps-1] = row[ps-1] + 1;
1966 for(is = idorb.size()-1; is >= 0; is--)
1970 for(is = polist.size()-1; is >= 0; is--)
1980 int rowCount, colCount;
1982 for(rowCount = 0; rowCount < mat.size(); rowCount++)
1984 for(colCount = 0; colCount < mat[rowCount].size(); colCount++)
1986 Print(
"%d,",mat[rowCount][colCount]);
1990 printf(
"rhs column matrix::\n");
1991 for(colCount = 0; colCount < C.size(); colCount++)
1992 printf(
"%d,",C[colCount]);
1996 char** tt=(
char**)
omalloc(
sizeof(
char*));
2002 char** xx = (
char**)
omalloc(
sizeof(
char*));
2013 for(rowCount = 0; rowCount < lO; rowCount++)
2015 for(colCount = 0; colCount < mat[rowCount].size(); colCount++)
2017 if(mat[rowCount][colCount] != 0)
2019 MATELEM(mR, rowCount + 1, colCount + 1) =
p_ISet(mat[rowCount][colCount], R);
2023 if(C[rowCount] != 0)
2025 cMat->
m[rowCount] =
p_ISet(C[rowCount], R);
2027 mat[rowCount].resize(0);
2037 luDecomp(gMat, pMat, lMat, uMat, R);
2053 Print(
"\nOrbit size = %d\n", lO);
bool luSolveViaLUDecomp(const matrix pMat, const matrix lMat, const matrix uMat, const matrix bVec, matrix &xVec, matrix &H)
Solves the linear system A * x = b, where A is an (m x n)-matrix which is given by its LU-decompositi...
static int positionInOrbit_FG_Case(ideal I, poly, std::vector< ideal > idorb, std::vector< poly >, int)
#define idDelete(H)
delete an ideal
used for all transcendental extensions, i.e., the top-most extension in an extension tower is transce...
bool unitMatrix(const int n, matrix &unitMat, const ring R)
Creates a new matrix which is the (nxn) unit matrix, and returns true in case of success.
static long p_Totaldegree(poly p, const ring r)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
static number p_SetCoeff(poly p, number n, ring r)
static int positionInOrbit_IG_Case(ideal I, poly w, std::vector< ideal > idorb, std::vector< poly > polist, int trInd)
static FORCE_INLINE number n_Param(const int iParameter, const coeffs r)
return the (iParameter^th) parameter as a NEW number NOTE: parameter numbering: 1..n_NumberOfParameters(...)
static FORCE_INLINE number n_Mult(number a, number b, const coeffs r)
return the product of 'a' and 'b', i.e., a*b
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void luDecomp(const matrix aMat, matrix &pMat, matrix &lMat, matrix &uMat, const ring R)
LU-decomposition of a given (m x n)-matrix.
The main handler for Singular numbers which are suitable for Singular polynomials.
static ideal minimalMonomialsGenSet(ideal I)
ring rDefault(const coeffs cf, int N, char **n, int ord_size, int *ord, int *block0, int *block1, int **wvhdl)
struct for passing initialization parameters to naInitChar
void mp_Delete(matrix *a, const ring r)
void rChangeCurrRing(ring r)
matrix mpNew(int r, int c)
create a r x c zero-matrix
static ideal colonIdeal(ideal S, poly w, int lV, ideal Jwi)
ideal idInit(int idsize, int rank)
initialise an ideal / module
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent : VarOffset encodes the position in p->exp
void rDelete(ring r)
unconditionally deletes fields in r
static void p_Setm(poly p, const ring r)
matrix mp_Sub(matrix a, matrix b, const ring R)
poly p_ISet(long i, const ring r)
returns the poly representing the integer i
#define pCopy(p)
return a copy of the poly
#define MATELEM(mat, i, j)
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL