My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
kernel
GBEngine
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
"
10
#include "
polys/monomials/p_polys.h
"
11
#include "
omalloc/omalloc.h
"
12
#ifdef HAVE_OMALLOC
13
#include "
omalloc/omallocClass.h
"
14
#endif
15
16
class
slimgb_alg
;
17
18
class
tgb_matrix
19
{
20
private
:
21
number**
n
;
22
int
columns
;
23
int
rows
;
24
BOOLEAN
free_numbers
;
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
44
class
mac_poly_r
45
#ifdef HAVE_OMALLOC
46
:
public
omallocClass
47
#endif
48
{
49
public
:
50
number
coef
;
51
mac_poly_r
*
next
;
52
int
exp
;
53
mac_poly_r
():
next
(
NULL
){}
54
};
55
//mac_polys exp are smaller iff they are greater by monomial ordering
56
//corresponding to solving linear equations notation
57
58
typedef
mac_poly_r
*
mac_poly
;
59
60
class
tgb_sparse_matrix
61
{
62
private
:
63
ring
r
;
64
mac_poly
*
mp
;
65
int
columns
;
66
int
rows
;
67
BOOLEAN
free_numbers
;
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);
73
~tgb_sparse_matrix
();
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
};
97
void
simple_gauss
(
tgb_sparse_matrix
* mat,
slimgb_alg
* c);
98
void
simple_gauss2
(
tgb_matrix
* mat);
99
100
101
mac_poly
mac_p_add_ff_qq
(
mac_poly
a, number
f
,
mac_poly
b
);
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
BOOLEAN
int BOOLEAN
Definition
auxiliary.h:88
TRUE
#define TRUE
Definition
auxiliary.h:101
m
int m
Definition
cfEzgcd.cc:128
i
int i
Definition
cfEzgcd.cc:132
p
int p
Definition
cfModGcd.cc:4086
b
CanonicalForm b
Definition
cfModGcd.cc:4111
f
FILE * f
Definition
checklibs.c:9
mac_poly_r
Definition
tgbgauss.h:48
mac_poly_r::next
mac_poly_r * next
Definition
tgbgauss.h:51
mac_poly_r::coef
number coef
Definition
tgbgauss.h:50
mac_poly_r::exp
int exp
Definition
tgbgauss.h:52
mac_poly_r::mac_poly_r
mac_poly_r()
Definition
tgbgauss.h:53
omallocClass
Definition
omallocClass.h:20
slimgb_alg
Definition
tgb_internal.h:199
tgb_matrix
Definition
tgbgauss.h:19
tgb_matrix::mult_row
void mult_row(int row, number factor)
Definition
tgbgauss.cc:619
tgb_matrix::rows
int rows
Definition
tgbgauss.h:23
tgb_matrix::n
number ** n
Definition
tgbgauss.h:21
tgb_matrix::tgb_matrix
tgb_matrix(int i, int j)
Definition
tgbgauss.cc:459
tgb_matrix::add_lambda_times_row
void add_lambda_times_row(int add_to, int summand, number factor)
Definition
tgbgauss.cc:603
tgb_matrix::set
void set(int i, int j, number n)
Definition
tgbgauss.cc:520
tgb_matrix::~tgb_matrix
~tgb_matrix()
Definition
tgbgauss.cc:477
tgb_matrix::min_col_not_zero_in_row
int min_col_not_zero_in_row(int row)
Definition
tgbgauss.cc:557
tgb_matrix::non_zero_entries
int non_zero_entries(int row)
Definition
tgbgauss.cc:590
tgb_matrix::next_col_not_zero
int next_col_not_zero(int row, int pre)
Definition
tgbgauss.cc:568
tgb_matrix::free_numbers
BOOLEAN free_numbers
Definition
tgbgauss.h:24
tgb_matrix::columns
int columns
Definition
tgbgauss.h:22
tgb_matrix::zero_row
BOOLEAN zero_row(int row)
Definition
tgbgauss.cc:579
tgb_matrix::is_zero_entry
BOOLEAN is_zero_entry(int i, int j)
Definition
tgbgauss.cc:544
tgb_matrix::free_row
void free_row(int row, BOOLEAN free_non_zeros=TRUE)
Definition
tgbgauss.cc:635
tgb_matrix::perm_rows
void perm_rows(int i, int j)
Definition
tgbgauss.cc:549
tgb_matrix::get
number get(int i, int j)
Definition
tgbgauss.cc:537
tgb_matrix::get_columns
int get_columns()
Definition
tgbgauss.cc:532
tgb_matrix::print
void print()
Definition
tgbgauss.cc:498
tgb_matrix::get_rows
int get_rows()
Definition
tgbgauss.cc:527
tgb_sparse_matrix
Definition
tgbgauss.h:61
tgb_sparse_matrix::set
void set(int i, int j, number n)
Definition
tgbgauss.cc:721
tgb_sparse_matrix::columns
int columns
Definition
tgbgauss.h:65
tgb_sparse_matrix::rows
int rows
Definition
tgbgauss.h:66
tgb_sparse_matrix::is_zero_entry
BOOLEAN is_zero_entry(int i, int j)
Definition
tgbgauss.cc:782
tgb_sparse_matrix::min_col_not_zero_in_row
int min_col_not_zero_in_row(int row)
Definition
tgbgauss.cc:798
tgb_sparse_matrix::~tgb_sparse_matrix
~tgb_sparse_matrix()
Definition
tgbgauss.cc:659
tgb_sparse_matrix::tgb_sparse_matrix
tgb_sparse_matrix(int i, int j, ring rarg)
Definition
tgbgauss.cc:645
tgb_sparse_matrix::add_lambda_times_row
void add_lambda_times_row(int add_to, int summand, number factor)
Definition
tgbgauss.cc:909
tgb_sparse_matrix::r
ring r
Definition
tgbgauss.h:63
tgb_sparse_matrix::zero_row
BOOLEAN zero_row(int row)
Definition
tgbgauss.cc:822
tgb_sparse_matrix::free_numbers
BOOLEAN free_numbers
Definition
tgbgauss.h:67
tgb_sparse_matrix::mp
mac_poly * mp
Definition
tgbgauss.h:64
tgb_sparse_matrix::row_normalize
void row_normalize(int row)
Definition
tgbgauss.cc:831
tgb_sparse_matrix::get_rows
int get_rows()
Definition
tgbgauss.cc:756
tgb_sparse_matrix::perm_rows
void perm_rows(int i, int j)
Definition
tgbgauss.h:80
tgb_sparse_matrix::sort_rows
void sort_rows()
Definition
tgbgauss.cc:693
tgb_sparse_matrix::next_col_not_zero
int next_col_not_zero(int row, int pre)
Definition
tgbgauss.cc:809
tgb_sparse_matrix::print
void print()
Definition
tgbgauss.cc:698
tgb_sparse_matrix::non_zero_entries
int non_zero_entries(int row)
Definition
tgbgauss.cc:903
tgb_sparse_matrix::mult_row
void mult_row(int row, number factor)
Definition
tgbgauss.cc:914
tgb_sparse_matrix::row_content
void row_content(int row)
Definition
tgbgauss.cc:847
tgb_sparse_matrix::get
number get(int i, int j)
Definition
tgbgauss.cc:766
tgb_sparse_matrix::get_columns
int get_columns()
Definition
tgbgauss.cc:761
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:3113
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:3128
tgb_sparse_matrix::free_row
void free_row(int row, BOOLEAN free_non_zeros=TRUE)
Definition
tgbgauss.cc:928
factor
CanonicalForm factor
Definition
facAbsFact.cc:97
j
int j
Definition
facHensel.cc:110
h
STATIC_VAR Poly * h
Definition
janet.cc:971
numbers.h
NULL
#define NULL
Definition
omList.c:12
omallocClass.h
omalloc.h
p_polys.h
mac_p_add_ff_qq
mac_poly mac_p_add_ff_qq(mac_poly a, number f, mac_poly b)
Definition
tgbgauss.cc:16
mac_destroy
void mac_destroy(mac_poly p)
Definition
tgbgauss.cc:113
simple_gauss
void simple_gauss(tgb_sparse_matrix *mat, slimgb_alg *c)
Definition
tgbgauss.cc:125
simple_gauss2
void simple_gauss2(tgb_matrix *mat)
Definition
tgbgauss.cc:365
mac_poly
mac_poly_r * mac_poly
Definition
tgbgauss.h:58
mac_mult_cons
void mac_mult_cons(mac_poly p, number c)
Definition
tgbgauss.cc:91
mac_length
int mac_length(mac_poly p)
Definition
tgbgauss.cc:102
Generated on
for My Project by
doxygen 1.17.0
for
Singular