|
| resMatrixDense (const resMatrixDense &) |
| deactivated copy constructor
|
|
void | generateBaseData () |
| Generate the "matrix" M.
|
|
void | generateMonomData (int deg, intvec *polyDegs, intvec *iVO) |
| Generates needed set of monoms, split them into sets S0, ... Sn and check if reduced/nonreduced and calculate size of submatrix.
|
|
void | generateMonoms (poly m, int var, int deg) |
| Recursively generate all homogeneous monoms of (currRing->N) variables of degree deg.
|
|
void | createMatrix () |
| Creates quadratic matrix M of size numVectors for later use.
|
|
Definition at line 1929 of file mpr_base.cc.
◆ resMatrixDense() [1/2]
resMatrixDense::resMatrixDense |
( |
const ideal | _gls, |
|
|
const int | special = SNONE ) |
_gls: system of multivariate polynoms special: -1 -> resMatrixDense is a symbolic matrix 0,1, ... -> resMatrixDense ist eine u-Resultante, wobei special das lineare u-Polynom angibt
Definition at line 2064 of file mpr_base.cc.
2066{
2068
2073
2074
2076
2079 {
2081 }
2082
2084
2086}
void generateBaseData()
Generate the "matrix" M.
#define mprSTICKYPROT2(msg, arg)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static long pTotaldegree(poly p)
◆ ~resMatrixDense()
resMatrixDense::~resMatrixDense |
( |
| ) |
|
Definition at line 2088 of file mpr_base.cc.
2089{
2092 {
2096 {
2098 }
2099
2106 }
2107
2109
2110
2112 {
2114 }
2115}
resVector * resVectorList
#define idDelete(H)
delete an ideal
#define omFreeSize(addr, size)
#define omfreeSize(addr, size)
int numColVectorSize
size of numColVector
◆ resMatrixDense() [2/2]
deactivated copy constructor
◆ createMatrix()
void resMatrixDense::createMatrix |
( |
| ) |
|
|
private |
Creates quadratic matrix M of size numVectors for later use.
u0, u1, ...,un are replaced by 0. Entries equal to 0 are not initialized ( == NULL)
Definition at line 2120 of file mpr_base.cc.
2121{
2124
2126
2129 {
2132 }
2133
2134
2136 {
2138 {
2141 {
2143 }
2144 }
2145 else
2146 {
2150 {
2152 {
2155 }
2156 }
2157 }
2158 }
2160
2161#ifdef mprDEBUG_ALL
2163 {
2165 {
2167 {
2169 }
2171 }
2172 }
2174 {
2176 {
2178 }
2180 }
2181#endif
2182}
resVector * getMVector(const int i)
column vector of matrix, index von 0 ... numVectors-1
matrix mpNew(int r, int c)
create a r x c zero-matrix
#define MATELEM(mat, i, j)
1-based access to matrix
#define mprSTICKYPROT(msg)
#define pInit()
allocates a new monomial and initializes everything to 0
void PrintS(const char *s)
number getElemNum(const int i)
index von 0 ... numVectors-1
◆ generateBaseData()
void resMatrixDense::generateBaseData |
( |
| ) |
|
|
private |
Generate the "matrix" M.
Each column is presented by a resVector holding all entries for this column.
Definition at line 2343 of file mpr_base.cc.
2344{
2346 number matEntry;
2347 poly pmatchPos;
2349
2350
2354
2355
2356
2359 {
2363 {
2365 {
2368 }
2369 }
2370 }
2371 else
2372 {
2376 }
2377
2378
2379 int sumDeg= 0;
2380 for (
k= 0;
k < polyDegs.rows();
k++ )
2381 sumDeg+= polyDegs[
k];
2382 sumDeg-= polyDegs.rows() - 1;
2383
2384
2386
2387
2389 {
2391 {
2392
2393
2398
2399
2402
2403
2405 {
2409
2412 break;
2413
2415
2418
2420 }
2422 }
2423 else
2424 {
2425
2426
2427
2431
2434
2437 {
2440
2443 break;
2444
2449 }
2452 }
2453 }
2454
2457
2458
2460
2461}
void createMatrix()
Creates quadratic matrix M of size numVectors for later use.
void generateMonomData(int deg, intvec *polyDegs, intvec *iVO)
Generates needed set of monoms, split them into sets S0, ... Sn and check if reduced/nonreduced and c...
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
poly pp_DivideM(poly a, poly b, const ring r)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pLmInit(p)
like pInit, except that expvector is initialized to that of p, p must be != NULL
#define pCopy(p)
return a copy of the poly
int elementOfS
number of the set S mon is element of
int * numColParNr
holds the index of u0, u1, ..., un, if (elementOfS == linPolyS) the size is given by (currRing->N)
number * numColVector
holds the column vector if (elementOfS != linPolyS)
◆ generateMonomData()
void resMatrixDense::generateMonomData |
( |
int | deg, |
|
|
intvec * | polyDegs, |
|
|
intvec * | iVO ) |
|
private |
Generates needed set of monoms, split them into sets S0, ... Sn and check if reduced/nonreduced and calculate size of submatrix.
Definition at line 2227 of file mpr_base.cc.
2228{
2230
2231
2235
2236
2239
2240
2244
2246
2247
2248
2249
2250 ideal pDegDiv=
idInit( polyDegs->
rows(), 1 );
2251 for (
k= 0;
k < polyDegs->
rows();
k++ )
2252 {
2257 }
2258
2259
2260
2261
2262 int divCount;
2264 {
2265 divCount= 0;
2268 divCount++;
2270 }
2271
2272
2273
2274
2275
2276 bool doInsert;
2277 for (
k= 0;
k < iVO->
rows();
k++)
2278 {
2279
2281 {
2282
2284 {
2285
2287 {
2288
2290 for (
i= 0;
i <
k;
i++ )
2291 {
2292
2294 {
2295
2297 break;
2298 }
2299 }
2300 if ( doInsert )
2301 {
2302
2305 }
2306 }
2307 }
2308 }
2309 }
2310
2311
2312
2314 int sub;
2315 for (
i= 0;
i < polyDegs->
rows();
i++ )
2316 {
2317 sub= 1;
2318 for (
k= 0;
k < polyDegs->
rows();
k++ )
2319 if (
i !=
k ) sub*= (*polyDegs)[
k];
2321 }
2323
2324
2326
2327#ifdef mprDEBUG_ALL
2328
2331 {
2332 Print(
"// %s, S(%d), db ",
2338 }
2340#endif
2341}
void generateMonoms(poly m, int var, int deg)
Recursively generate all homogeneous monoms of (currRing->N) variables of degree deg.
long isReduced(const mat_zz_p &M)
#define pLmDivisibleByNoComp(a, b)
like pLmDivisibleBy, does not check components
ideal idInit(int idsize, int rank)
initialise an ideal / module
◆ generateMonoms()
void resMatrixDense::generateMonoms |
( |
poly | m, |
|
|
int | var, |
|
|
int | deg ) |
|
private |
Recursively generate all homogeneous monoms of (currRing->N) variables of degree deg.
Definition at line 2187 of file mpr_base.cc.
2188{
2189 if ( deg == 0 )
2190 {
2191 poly mon =
pCopy( mm );
2192
2194 {
2203
2204 }
2208 return;
2209 }
2210 else
2211 {
2212 if ( var == (
currRing->N)+1 )
return;
2213 poly newm =
pCopy( mm );
2214 while ( deg >= 0 )
2215 {
2219 deg--;
2220 }
2222 }
2223
2224 return;
2225}
#define omReallocSize(addr, o_size, size)
◆ getDetAt()
number resMatrixDense::getDetAt |
( |
const number * | evpoint | ) |
|
|
virtual |
Evaluate the determinant of the matrix M at the point evpoint where the ui's are replaced by the components of evpoint.
Uses singclap_det from factory.
Reimplemented from resMatrixBase.
Definition at line 2550 of file mpr_base.cc.
2551{
2553
2554
2555
2557 {
2559 {
2561 {
2566 }
2567 }
2568 }
2569
2571
2572
2574
2575
2576 number numres;
2578 {
2580 }
2581 else
2582 {
2585 }
2587
2589
2590 return( numres );
2591}
poly singclap_det(const matrix m, const ring s)
◆ getMatrix()
ideal resMatrixDense::getMatrix |
( |
| ) |
|
|
virtual |
Returns the matrix M in an usable presentation.
Reimplemented from resMatrixBase.
Definition at line 2469 of file mpr_base.cc.
2470{
2472
2473
2477 {
2479 {
2484 )
2485 {
2487 }
2488 }
2489 }
2491 {
2493 {
2495 {
2500
2502 {
2504 }
2505 else
2506 {
2509 }
2510 }
2511 }
2512 }
2513
2514
2516 return resmod;
2517}
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....
#define pSetCoeff(p, n)
deletes old coeff before setting the new one
ideal id_Matrix2Module(matrix mat, const ring R)
converts mat to module, destroys mat
◆ getMVector()
column vector of matrix, index von 0 ... numVectors-1
Definition at line 2463 of file mpr_base.cc.
◆ getSubDet()
number resMatrixDense::getSubDet |
( |
| ) |
|
|
virtual |
Evaluates the determinant of the submatrix M'.
Since the matrix is numerically, no evaluation point is needed. Uses singclap_det from factory.
Reimplemented from resMatrixBase.
Definition at line 2593 of file mpr_base.cc.
2594{
2597
2598
2600
2602 {
2604 {
2607 }
2608 }
2611 {
2616 {
2619 {
2621 }
2622
2623
2624
2625
2626
2627
2629 }
2631 }
2632
2634
2635 number numres;
2637 {
2639 }
2640 else
2641 {
2643 }
2645 return numres;
2646}
◆ getSubMatrix()
ideal resMatrixDense::getSubMatrix |
( |
| ) |
|
|
virtual |
Returns the submatrix M' of M in an usable presentation.
Reimplemented from resMatrixBase.
Definition at line 2519 of file mpr_base.cc.
2520{
2523
2524
2526
2529 {
2534 {
2537 {
2539 }
2541 }
2543 }
2544
2545
2547 return resmod;
2548}
poly getElem(const int i)
index von 0 ... numVectors-1
◆ numVectors
int resMatrixDense::numVectors |
|
private |
◆ resVectorList
◆ subSize
int resMatrixDense::subSize |
|
private |
◆ veclistblock
int resMatrixDense::veclistblock |
|
private |
◆ veclistmax
int resMatrixDense::veclistmax |
|
private |
The documentation for this class was generated from the following file: