28 set_this= &((*set_this)->next);
39 set_this= &((*set_this)->next);
62 set_this= &((*set_this)->next);
161 assume(this_area>=last_area);
162 if(this_area>last_area)
165 for(
j=last_area+1;
j<=this_area;
j++)
170 for(
i=last_area+1;
i<=max_area_index;
i++)
186 assume(tai<=max_area_index);
187 if(tai==max_area_index)
190 max_in_area=area[tai+1]-1;
200 assume(pn<=mat->get_rows());
201 for(
i=row+1;
i<=max_in_area;
i++)
223 for(
i=found_in_row+1;
i<=max_in_area;
i++)
228 int first=row_cache[
i];
242 int h=row_cache[row];
243 row_cache[row]=row_cache[found_in_row];
244 row_cache[found_in_row]=
h;
257 for(
i=max_in_area;
i>row;
i--)
260 assume(col_area_index<=max_area_index);
264 int first=row_cache[
i];
267 if(row_cache[
i]==col)
270 number c1=mat->
get(
i,col);
271 number c2=mat->
get(row,col);
285 if(row_cache[
i]==matcol)
290 int this_cai=col_area_index;
291 while(this_cai<max_area_index)
293 last_in_area=area[this_cai+1]-1;
294 int h_c=row_cache[last_in_area];
295 row_cache[last_in_area]=row_cache[
index];
296 row_cache[
index]=h_c;
303 row_cache[
index]=row_cache[pn-1];
304 row_cache[pn-1]=matcol;
312 int this_cai=col_area_index;
314 assume(final_cai<=max_area_index);
315 while(this_cai<final_cai)
317 last_in_area=area[this_cai+1]-1;
318 int h_c=row_cache[last_in_area];
319 row_cache[last_in_area]=row_cache[
index];
320 row_cache[
index]=h_c;
384 while((row<pn-1)&&(col<mat->get_columns())){
396 assume(pn<=mat->get_rows());
426 for(
i=row+1;
i<pn;
i++){
432 number c2=mat->
get(row,col);
462 n=(number**)
omAlloc(
i*
sizeof (number*));;
611 number n1=
n[add_to][
i];
640 if((free_non_zeros)||(!(
nIsZero(
n[row][
i]))))
689 if (bp==
NULL)
return -1;
690 if (
ap->exp<bp->
exp)
return -1;
728 while(((*set_this)!=
NULL) && ((*set_this)->exp<
j))
729 set_this=&((*set_this)->next);
731 if (((*set_this)==
NULL)||((*set_this)->exp>
j))
738 (*set_this)->next=old;
751 (*set_this)=dt->
next;
813 while((rr!=
NULL)&&(rr->
exp<=pre))
void mult_row(int row, number factor)
void add_lambda_times_row(int add_to, int summand, number factor)
void set(int i, int j, number n)
int min_col_not_zero_in_row(int row)
int non_zero_entries(int row)
int next_col_not_zero(int row, int pre)
BOOLEAN zero_row(int row)
BOOLEAN is_zero_entry(int i, int j)
void free_row(int row, BOOLEAN free_non_zeros=TRUE)
void perm_rows(int i, int j)
void set(int i, int j, number n)
BOOLEAN is_zero_entry(int i, int j)
int min_col_not_zero_in_row(int row)
tgb_sparse_matrix(int i, int j, ring rarg)
void add_lambda_times_row(int add_to, int summand, number factor)
BOOLEAN zero_row(int row)
void row_normalize(int row)
void perm_rows(int i, int j)
int next_col_not_zero(int row, int pre)
int non_zero_entries(int row)
void mult_row(int row, number factor)
void row_content(int row)
void free_row(int row, BOOLEAN free_non_zeros=TRUE)
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_Write(number n, const coeffs r, const BOOLEAN bShortOut=TRUE)
static FORCE_INLINE void n_Normalize(number &n, const coeffs r)
inplace-normalization of n; produces some canonical representation of n;
const CanonicalForm int s
int ksCheckCoeff(number *a, number *b)
#define TEST_OPT_CONTENTSB
static int index(p_Length length, p_Ord ord)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Compatiblity layer for legacy polynomial operations (over currRing)
void StringSetS(const char *st)
void PrintS(const char *s)
static BOOLEAN rField_has_simple_inverse(const ring r)
static const int bundle_size
mac_poly mac_p_add_ff_qq(mac_poly a, number f, mac_poly b)
static int row_cmp_gen(const void *a, const void *b)
void mac_destroy(mac_poly p)
void simple_gauss2(tgb_matrix *mat)
void mac_mult_cons(mac_poly p, number c)
void simple_gauss(tgb_sparse_matrix *mat, slimgb_alg *)
int mac_length(mac_poly p)