source: git/kernel/tgbgauss.h @ b055de9

spielwiese
Last change on this file since b055de9 was b055de9, checked in by Michael Brickenstein <bricken@…>, 19 years ago
*bricken: gauss externalized git-svn-id: file:///usr/local/Singular/svn/trunk@8101 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 1.9 KB
Line 
1#ifndef TGBGAUSS_HEADER
2#define TGBGAUSS_HEADER
3#include "mod2.h"
4#include "numbers.h"
5#include "tgb_internal.h"
6class tgb_matrix{
7 private:
8  number** n;
9  int columns;
10  int rows;
11  BOOLEAN free_numbers;
12 public:
13  tgb_matrix(int i, int j);
14  ~tgb_matrix();
15  int get_rows();
16  int get_columns();
17  void print();
18  void perm_rows(int i, int j);
19  void set(int i, int j, number n);
20  number get(int i, int j);
21  BOOLEAN is_zero_entry(int i, int j);
22  void free_row(int row, BOOLEAN free_non_zeros=TRUE);
23  int min_col_not_zero_in_row(int row);
24  int next_col_not_zero(int row,int pre);
25  BOOLEAN zero_row(int row);
26  void mult_row(int row,number factor);
27  void add_lambda_times_row(int add_to,int summand,number factor);
28  int non_zero_entries(int row);
29};
30class tgb_sparse_matrix{
31 private:
32  ring r;
33  mac_poly* mp;
34  int columns;
35  int rows;
36  BOOLEAN free_numbers;
37 public:
38  void sort_rows();
39  friend poly free_row_to_poly(tgb_sparse_matrix* mat, int row, poly* monoms, int monom_index);
40  friend void init_with_mac_poly(tgb_sparse_matrix* mat, int row, mac_poly m);
41  tgb_sparse_matrix(int i, int j, ring rarg);
42  ~tgb_sparse_matrix();
43  int get_rows();
44  int get_columns();
45  void print();
46  void row_normalize(int row);
47  void row_content(int row);
48  //  void perm_rows(int i, int j);
49  void perm_rows(int i, int j){
50  mac_poly h;
51  h=mp[i];
52  mp[i]=mp[j];
53  mp[j]=h;
54  }
55  void set(int i, int j, number n);
56  number get(int i, int j);
57  BOOLEAN is_zero_entry(int i, int j);
58  void free_row(int row, BOOLEAN free_non_zeros=TRUE);
59  int min_col_not_zero_in_row(int row);
60  int next_col_not_zero(int row,int pre);
61  BOOLEAN zero_row(int row);
62  void mult_row(int row,number factor);
63  void add_lambda_times_row(int add_to,int summand,number factor);
64  int non_zero_entries(int row);
65};
66void simple_gauss(tgb_sparse_matrix* mat, calc_dat* c);
67void simple_gauss2(tgb_matrix* mat);
68#endif
Note: See TracBrowser for help on using the repository browser.