30 set_this= &((*set_this)->next);
41 set_this= &((*set_this)->next);
64 set_this= &((*set_this)->next);
163 assume(this_area>=last_area);
164 if(this_area>last_area)
167 for(j=last_area+1;j<=this_area;j++)
172 for(i=last_area+1;i<=max_area_index;i++)
188 assume(tai<=max_area_index);
189 if(tai==max_area_index)
192 max_in_area=area[tai+1]-1;
202 assume(pn<=mat->get_rows());
203 for(i=row+1;i<=max_in_area;i++)
225 for(i=found_in_row+1;i<=max_in_area;i++)
230 int first=row_cache[
i];
244 int h=row_cache[row];
245 row_cache[row]=row_cache[found_in_row];
246 row_cache[found_in_row]=
h;
259 for(i=max_in_area;i>row;i--)
262 assume(col_area_index<=max_area_index);
266 int first=row_cache[
i];
269 if(row_cache[i]==col)
272 number c1=mat->
get(i,col);
273 number c2=mat->
get(row,col);
287 if(row_cache[i]==matcol)
292 int this_cai=col_area_index;
293 while(this_cai<max_area_index)
295 last_in_area=area[this_cai+1]-1;
296 int h_c=row_cache[last_in_area];
297 row_cache[last_in_area]=row_cache[
index];
298 row_cache[
index]=h_c;
305 row_cache[
index]=row_cache[pn-1];
306 row_cache[pn-1]=matcol;
314 int this_cai=col_area_index;
316 assume(final_cai<=max_area_index);
317 while(this_cai<final_cai)
319 last_in_area=area[this_cai+1]-1;
320 int h_c=row_cache[last_in_area];
321 row_cache[last_in_area]=row_cache[
index];
322 row_cache[
index]=h_c;
386 while((row<pn-1)&&(col<mat->get_columns())){
398 assume(pn<=mat->get_rows());
428 for(i=row+1;i<pn;i++){
434 number c2=mat->
get(row,col);
464 n=(number**)
omAlloc(i*
sizeof (number*));;
469 n[z]=(number*)
omAlloc(j*
sizeof(number));
613 number n1=
n[add_to][
i];
614 number n2=
nMult(factor,
n[summand][i]);
642 if((free_non_zeros)||(!(
nIsZero(
n[row][i]))))
690 if (ap==
NULL)
return 1;
691 if (bp==
NULL)
return -1;
692 if (ap->
exp<bp->
exp)
return -1;
730 while(((*set_this)!=
NULL) && ((*set_this)->exp<j))
731 set_this=&((*set_this)->next);
733 if (((*set_this)==
NULL)||((*set_this)->exp>
j))
740 (*set_this)->next=old;
743 assume((*set_this)->exp==j);
753 (*set_this)=dt->
next;
815 while((rr!=
NULL)&&(rr->
exp<=pre))
void simple_gauss2(tgb_matrix *mat)
void simple_gauss(tgb_sparse_matrix *mat, slimgb_alg *)
void row_content(int row)
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...
const CanonicalForm int s
tgb_sparse_matrix(int i, int j, ring rarg)
void free_row(int row, BOOLEAN free_non_zeros=TRUE)
void row_normalize(int row)
BOOLEAN is_zero_entry(int i, int j)
int min_col_not_zero_in_row(int row)
int min_col_not_zero_in_row(int row)
mac_poly mac_p_add_ff_qq(mac_poly a, number f, mac_poly b)
Compatiblity layer for legacy polynomial operations (over currRing)
int next_col_not_zero(int row, int pre)
#define TEST_OPT_CONTENTSB
int ksCheckCoeff(number *a, number *b)
void set(int i, int j, number n)
static FORCE_INLINE void n_Normalize(number &n, const coeffs r)
inplace-normalization of n; produces some canonical representation of n;
void set(int i, int j, number n)
BOOLEAN zero_row(int row)
static BOOLEAN rField_has_simple_inverse(const ring r)
void mac_destroy(mac_poly p)
void add_lambda_times_row(int add_to, int summand, number factor)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void add_lambda_times_row(int add_to, int summand, number factor)
void StringSetS(const char *st)
void perm_rows(int i, int j)
int next_col_not_zero(int row, int pre)
static FORCE_INLINE void n_Write(number n, const coeffs r, const BOOLEAN bShortOut=TRUE)
void PrintS(const char *s)
void free_row(int row, BOOLEAN free_non_zeros=TRUE)
static int index(p_Length length, p_Ord ord)
void perm_rows(int i, int j)
void mult_row(int row, number factor)
void mult_row(int row, number factor)
static int row_cmp_gen(const void *a, const void *b)
BOOLEAN zero_row(int row)
int mac_length(mac_poly p)
void mac_mult_cons(mac_poly p, number c)
int non_zero_entries(int row)
static const int bundle_size
int non_zero_entries(int row)
BOOLEAN is_zero_entry(int i, int j)