My Project  UNKNOWN_GIT_VERSION
tgbgauss.h
Go to the documentation of this file.
1 #ifndef TGBGAUSS_HEADER
2 #define TGBGAUSS_HEADER
3 /****************************************
4 * Computer Algebra System SINGULAR *
5 ****************************************/
6 /*
7 * ABSTRACT: gauss implementation for F4 header
8 */
9 #include "coeffs/numbers.h"
11 #include "omalloc/omalloc.h"
12 #ifndef XMEMORY_H
13 #include "omalloc/omallocClass.h"
14 #endif
15 
16 class slimgb_alg;
17 
19 {
20  private:
21  number** n;
22  int columns;
23  int rows;
25  public:
26  tgb_matrix(int i, int j);
27  ~tgb_matrix();
28  int get_rows();
29  int get_columns();
30  void print();
31  void perm_rows(int i, int j);
32  void set(int i, int j, number n);
33  number get(int i, int j);
34  BOOLEAN is_zero_entry(int i, int j);
35  void free_row(int row, BOOLEAN free_non_zeros=TRUE);
36  int min_col_not_zero_in_row(int row);
37  int next_col_not_zero(int row,int pre);
38  BOOLEAN zero_row(int row);
39  void mult_row(int row,number factor);
40  void add_lambda_times_row(int add_to,int summand,number factor);
41  int non_zero_entries(int row);
42 };
43 
45 #ifndef XMEMORY_H
46  :public omallocClass
47 #endif
48 {
49 public:
50  number coef;
52  int exp;
54 };
55 //mac_polys exp are smaller iff they are greater by monomial ordering
56 //corresponding to solving linear equations notation
57 
59 
61 {
62  private:
63  ring r;
65  int columns;
66  int rows;
68  public:
69  void sort_rows();
70  friend poly free_row_to_poly(tgb_sparse_matrix* mat, int row, poly* monoms, int monom_index);
71  friend void init_with_mac_poly(tgb_sparse_matrix* mat, int row, mac_poly m);
72  tgb_sparse_matrix(int i, int j, ring rarg);
74  int get_rows();
75  int get_columns();
76  void print();
77  void row_normalize(int row);
78  void row_content(int row);
79  // void perm_rows(int i, int j);
80  void perm_rows(int i, int j){
81  mac_poly h;
82  h=mp[i];
83  mp[i]=mp[j];
84  mp[j]=h;
85  }
86  void set(int i, int j, number n);
87  number get(int i, int j);
88  BOOLEAN is_zero_entry(int i, int j);
89  void free_row(int row, BOOLEAN free_non_zeros=TRUE);
90  int min_col_not_zero_in_row(int row);
91  int next_col_not_zero(int row,int pre);
92  BOOLEAN zero_row(int row);
93  void mult_row(int row,number factor);
94  void add_lambda_times_row(int add_to,int summand,number factor);
95  int non_zero_entries(int row);
96 };
98 void simple_gauss2(tgb_matrix* mat);
99 
100 
102 
103 void mac_mult_cons(mac_poly p,number c);
104 int mac_length(mac_poly p);
105 
106 //contrary to delete on the mac_poly_r, the coefficients are also destroyed here
107 void mac_destroy(mac_poly p);
108 
109 #endif
omalloc.h
omallocClass.h
mac_poly_r::next
mac_poly_r * next
Definition: tgbgauss.h:51
tgb_sparse_matrix::min_col_not_zero_in_row
int min_col_not_zero_in_row(int row)
Definition: tgbgauss.cc:799
j
int j
Definition: facHensel.cc:105
f
FILE * f
Definition: checklibs.c:9
tgb_sparse_matrix::add_lambda_times_row
void add_lambda_times_row(int add_to, int summand, number factor)
Definition: tgbgauss.cc:910
tgb_sparse_matrix::rows
int rows
Definition: tgbgauss.h:66
tgb_sparse_matrix
Definition: tgbgauss.h:60
tgb_sparse_matrix::perm_rows
void perm_rows(int i, int j)
Definition: tgbgauss.h:80
tgb_sparse_matrix::columns
int columns
Definition: tgbgauss.h:65
tgb_sparse_matrix::tgb_sparse_matrix
tgb_sparse_matrix(int i, int j, ring rarg)
Definition: tgbgauss.cc:646
tgb_matrix::is_zero_entry
BOOLEAN is_zero_entry(int i, int j)
Definition: tgbgauss.cc:545
mac_mult_cons
void mac_mult_cons(mac_poly p, number c)
Definition: tgbgauss.cc:92
simple_gauss2
void simple_gauss2(tgb_matrix *mat)
Definition: tgbgauss.cc:366
tgb_sparse_matrix::mult_row
void mult_row(int row, number factor)
Definition: tgbgauss.cc:915
tgb_sparse_matrix::print
void print()
Definition: tgbgauss.cc:699
tgb_matrix::tgb_matrix
tgb_matrix(int i, int j)
Definition: tgbgauss.cc:460
tgb_matrix::set
void set(int i, int j, number n)
Definition: tgbgauss.cc:521
tgb_sparse_matrix::r
ring r
Definition: tgbgauss.h:63
tgb_sparse_matrix::row_normalize
void row_normalize(int row)
Definition: tgbgauss.cc:832
tgb_matrix::print
void print()
Definition: tgbgauss.cc:499
tgb_matrix::add_lambda_times_row
void add_lambda_times_row(int add_to, int summand, number factor)
Definition: tgbgauss.cc:604
tgb_sparse_matrix::mp
mac_poly * mp
Definition: tgbgauss.h:64
b
CanonicalForm b
Definition: cfModGcd.cc:4044
tgb_sparse_matrix::free_numbers
BOOLEAN free_numbers
Definition: tgbgauss.h:67
tgb_sparse_matrix::sort_rows
void sort_rows()
Definition: tgbgauss.cc:694
mac_poly
mac_poly_r * mac_poly
Definition: tgbgauss.h:58
TRUE
#define TRUE
Definition: auxiliary.h:98
i
int i
Definition: cfEzgcd.cc:125
mac_poly_r::mac_poly_r
mac_poly_r()
Definition: tgbgauss.h:53
mac_poly_r
Definition: tgbgauss.h:44
tgb_matrix
Definition: tgbgauss.h:18
BOOLEAN
int BOOLEAN
Definition: auxiliary.h:85
mac_p_add_ff_qq
mac_poly mac_p_add_ff_qq(mac_poly a, number f, mac_poly b)
Definition: tgbgauss.cc:17
tgb_matrix::next_col_not_zero
int next_col_not_zero(int row, int pre)
Definition: tgbgauss.cc:569
tgb_sparse_matrix::non_zero_entries
int non_zero_entries(int row)
Definition: tgbgauss.cc:904
tgb_matrix::get
number get(int i, int j)
Definition: tgbgauss.cc:538
h
static Poly * h
Definition: janet.cc:972
mac_destroy
void mac_destroy(mac_poly p)
Definition: tgbgauss.cc:114
tgb_sparse_matrix::set
void set(int i, int j, number n)
Definition: tgbgauss.cc:722
tgb_sparse_matrix::get_columns
int get_columns()
Definition: tgbgauss.cc:762
tgb_sparse_matrix::free_row
void free_row(int row, BOOLEAN free_non_zeros=TRUE)
Definition: tgbgauss.cc:929
tgb_matrix::zero_row
BOOLEAN zero_row(int row)
Definition: tgbgauss.cc:580
tgb_sparse_matrix::free_row_to_poly
friend poly free_row_to_poly(tgb_sparse_matrix *mat, int row, poly *monoms, int monom_index)
Definition: tgb.cc:3064
p_polys.h
tgb_matrix::mult_row
void mult_row(int row, number factor)
Definition: tgbgauss.cc:620
tgb_sparse_matrix::init_with_mac_poly
friend void init_with_mac_poly(tgb_sparse_matrix *mat, int row, mac_poly m)
Definition: tgb.cc:3049
tgb_sparse_matrix::get_rows
int get_rows()
Definition: tgbgauss.cc:757
omallocClass
Definition: omallocClass.h:17
tgb_matrix::perm_rows
void perm_rows(int i, int j)
Definition: tgbgauss.cc:550
mac_poly_r::exp
int exp
Definition: tgbgauss.h:52
factor
CanonicalForm factor
Definition: facAbsFact.cc:101
tgb_matrix::n
number ** n
Definition: tgbgauss.h:21
tgb_sparse_matrix::next_col_not_zero
int next_col_not_zero(int row, int pre)
Definition: tgbgauss.cc:810
slimgb_alg
Definition: tgb_internal.h:213
tgb_matrix::free_numbers
BOOLEAN free_numbers
Definition: tgbgauss.h:24
tgb_sparse_matrix::row_content
void row_content(int row)
Definition: tgbgauss.cc:848
m
int m
Definition: cfEzgcd.cc:121
tgb_matrix::free_row
void free_row(int row, BOOLEAN free_non_zeros=TRUE)
Definition: tgbgauss.cc:636
tgb_matrix::get_rows
int get_rows()
Definition: tgbgauss.cc:528
NULL
#define NULL
Definition: omList.c:10
tgb_matrix::non_zero_entries
int non_zero_entries(int row)
Definition: tgbgauss.cc:591
tgb_matrix::rows
int rows
Definition: tgbgauss.h:23
tgb_sparse_matrix::get
number get(int i, int j)
Definition: tgbgauss.cc:767
p
int p
Definition: cfModGcd.cc:4019
tgb_sparse_matrix::is_zero_entry
BOOLEAN is_zero_entry(int i, int j)
Definition: tgbgauss.cc:783
mac_poly_r::coef
number coef
Definition: tgbgauss.h:50
simple_gauss
void simple_gauss(tgb_sparse_matrix *mat, slimgb_alg *c)
Definition: tgbgauss.cc:126
mac_length
int mac_length(mac_poly p)
Definition: tgbgauss.cc:103
tgb_sparse_matrix::~tgb_sparse_matrix
~tgb_sparse_matrix()
Definition: tgbgauss.cc:660
tgb_matrix::get_columns
int get_columns()
Definition: tgbgauss.cc:533
numbers.h
tgb_matrix::~tgb_matrix
~tgb_matrix()
Definition: tgbgauss.cc:478
tgb_sparse_matrix::zero_row
BOOLEAN zero_row(int row)
Definition: tgbgauss.cc:823
tgb_matrix::columns
int columns
Definition: tgbgauss.h:22
tgb_matrix::min_col_not_zero_in_row
int min_col_not_zero_in_row(int row)
Definition: tgbgauss.cc:558