![]() |
#include "kernel/mod2.h"
#include "kernel/GBEngine/tgb.h"
#include "kernel/GBEngine/tgb_internal.h"
#include "kernel/GBEngine/tgbgauss.h"
#include "misc/options.h"
#include "kernel/digitech.h"
#include "polys/nc/nc.h"
#include "polys/nc/sca.h"
#include "polys/prCopy.h"
#include "coeffs/longrat.h"
#include <stdlib.h>
#include <stdio.h>
#include <queue>
Go to the source code of this file.
Data Structures | |
class | poly_tree_node |
class | exp_number_builder |
Macros | |
#define | BUCKETS_FOR_NORO_RED 1 |
: delay nur auf Sugarvergroesserung : grade aus ecartS, setze dazu strat->honey; und nutze p.ecart : no tail reductions in syz comp More... | |
#define | SR_HDL(A) ((long)(A)) |
#define | ADD_LATER_SIZE 500 |
#define | LEN_VAR3 |
#define | degbound(p) assume(pTotaldegree(p)<10) |
#define | ENLARGE(pointer, type) pointer=(type*) omrealloc(pointer, c->array_lengths*sizeof(type)) |
#define | ENLARGE_ALIGN(pointer, type) |
Functions | |
static int | add_to_reductors (slimgb_alg *c, poly h, int len, int ecart, BOOLEAN simplified=FALSE) |
static void | multi_reduction (red_object *los, int &losl, slimgb_alg *c) |
static void | multi_reduce_step (find_erg &erg, red_object *r, slimgb_alg *c) |
static BOOLEAN | extended_product_criterion (poly p1, poly gcd1, poly p2, poly gcd2, slimgb_alg *c) |
static poly | gcd_of_terms (poly p, ring r) |
static int | tgb_pair_better_gen (const void *ap, const void *bp) |
static BOOLEAN | pair_better (sorted_pair_node *a, sorted_pair_node *b, slimgb_alg *c=NULL) |
static BOOLEAN | state_is (calc_state state, const int &i, const int &j, slimgb_alg *c) |
static void | super_clean_top_of_pair_list (slimgb_alg *c) |
static int | simple_posInS (kStrategy strat, poly p, int len, wlen_type wlen) |
static int * | make_connections (int from, int to, poly bound, slimgb_alg *c) |
static BOOLEAN | has_t_rep (const int &arg_i, const int &arg_j, slimgb_alg *state) |
static void | shorten_tails (slimgb_alg *c, poly monom) |
static poly | redNF2 (poly h, slimgb_alg *c, int &len, number &m, int n=0) |
static poly | redNFTail (poly h, const int sl, kStrategy strat, int len) |
static int | bucket_guess (kBucket *bucket) |
static void | simplify_poly (poly p, ring r) |
int | slim_nsize (number n, ring r) |
static BOOLEAN | monomial_root (poly m, ring r) |
static BOOLEAN | polynomial_root (poly h, ring r) |
static poly | p_Init_Special (const ring r) |
static poly | pOne_Special (const ring r=currRing) |
static wlen_type | pSLength (poly p, int l) |
wlen_type | kSBucketLength (kBucket *b, poly lm=NULL) |
TODO CoefBuckets bercksichtigen. More... | |
static BOOLEAN | elength_is_normal_length (poly p, slimgb_alg *c) |
static BOOLEAN | lies_in_last_dp_block (poly p, slimgb_alg *c) |
static int | get_last_dp_block_start (ring r) |
static wlen_type | do_pELength (poly p, slimgb_alg *c, int dlm=-1) |
wlen_type | pELength (poly p, slimgb_alg *c, ring) |
wlen_type | kEBucketLength (kBucket *b, poly lm, slimgb_alg *ca) |
static int | pELength (poly p, slimgb_alg *c, int l) |
static wlen_type | pQuality (poly p, slimgb_alg *c, int l=-1) |
static int | pTotaldegree_full (poly p) |
static int | red_object_better_gen (const void *ap, const void *bp) |
int | tgb_pair_better_gen2 (const void *ap, const void *bp) |
int | kFindDivisibleByInS_easy (kStrategy strat, const red_object &obj) |
int | kFindDivisibleByInS_easy (kStrategy strat, poly p, long sev) |
static int | posInPairs (sorted_pair_node **p, int pn, sorted_pair_node *qe, slimgb_alg *c, int an=0) |
static BOOLEAN | ascending (int *i, int top) |
sorted_pair_node ** | spn_merge (sorted_pair_node **p, int pn, sorted_pair_node **q, int qn, slimgb_alg *c) |
static BOOLEAN | trivial_syzygie (int pos1, int pos2, poly bound, slimgb_alg *c) |
int | find_best (red_object *r, int l, int u, wlen_type &w, slimgb_alg *c) |
returns position sets w as weight More... | |
BOOLEAN | good_has_t_rep (int i, int j, slimgb_alg *c) |
BOOLEAN | lenS_correct (kStrategy strat) |
static void | cleanS (kStrategy strat, slimgb_alg *c) |
static void | length_one_crit (slimgb_alg *c, int pos, int len) |
static void | move_forward_in_S (int old_pos, int new_pos, kStrategy strat) |
static void | move_backward_in_S (int old_pos, int new_pos, kStrategy strat) |
static void | replace_pair (int &i, int &j, slimgb_alg *c) |
static void | add_later (poly p, const char *prot, slimgb_alg *c) |
static void | clearS (poly p, unsigned long p_sev, int l, int *at, int *k, kStrategy strat) |
static int | iq_crit (const void *ap, const void *bp) |
static wlen_type | coeff_mult_size_estimate (int s1, int s2, ring r) |
static wlen_type | pair_weighted_length (int i, int j, slimgb_alg *c) |
sorted_pair_node ** | add_to_basis_ideal_quotient (poly h, slimgb_alg *c, int *ip) |
static poly | redTailShort (poly h, kStrategy strat) |
static void | line_of_extended_prod (int fixpos, slimgb_alg *c) |
static void | c_S_element_changed_hook (int pos, slimgb_alg *c) |
BOOLEAN | is_valid_ro (red_object &ro) |
int | terms_sort_crit (const void *a, const void *b) |
static void | mass_add (poly *p, int pn, slimgb_alg *c) |
static void | go_on (slimgb_alg *c) |
void | init_with_mac_poly (tgb_sparse_matrix *mat, int row, mac_poly m) |
poly | free_row_to_poly (tgb_sparse_matrix *mat, int row, poly *monoms, int monom_index) |
static int | poly_crit (const void *ap1, const void *ap2) |
ideal | t_rep_gb (const ring r, ideal arg_I, int syz_comp, BOOLEAN F4_mode) |
ideal | do_t_rep_gb (ring, ideal arg_I, int syz_comp, BOOLEAN F4_mode, int deg_pos) |
void | now_t_rep (const int &arg_i, const int &arg_j, slimgb_alg *c) |
sorted_pair_node * | top_pair (slimgb_alg *c) |
sorted_pair_node * | quick_pop_pair (slimgb_alg *c) |
void | clean_top_of_pair_list (slimgb_alg *c) |
void | free_sorted_pair_node (sorted_pair_node *s, const ring r) |
static BOOLEAN | pHasNotCFExtended (poly p1, poly p2, poly m) |
static wlen_type | quality_of_pos_in_strat_S (int pos, slimgb_alg *c) |
static wlen_type | quality_of_pos_in_strat_S_mult_high (int pos, poly high, slimgb_alg *c) |
static void | multi_reduction_lls_trick (red_object *los, int, slimgb_alg *c, find_erg &erg) |
static int | fwbw (red_object *los, int i) |
static void | canonicalize_region (red_object *los, int l, int u, slimgb_alg *) |
static void | multi_reduction_find (red_object *los, int, slimgb_alg *c, int startf, find_erg &erg) |
static int | multi_reduction_clear_zeroes (red_object *los, int losl, int l, int u) |
int | search_red_object_pos (red_object *a, int top, red_object *key) |
static void | sort_region_down (red_object *los, int l, int u, slimgb_alg *) |
Variables | |
static const int | bundle_size = 100 |
static const int | bundle_size_noro = 10000 |
static const int | delay_factor = 3 |
static omBin | lm_bin = NULL |
#define BUCKETS_FOR_NORO_RED 1 |
#define ENLARGE | ( | pointer, | |
type | |||
) | pointer=(type*) omrealloc(pointer, c->array_lengths*sizeof(type)) |
#define ENLARGE_ALIGN | ( | pointer, | |
type | |||
) |
|
static |
sorted_pair_node** add_to_basis_ideal_quotient | ( | poly | h, |
slimgb_alg * | c, | ||
int * | ip | ||
) |
Definition at line 1426 of file tgb.cc.
|
static |
Definition at line 965 of file tgb.cc.
|
static |
|
static |
Definition at line 1971 of file tgb.cc.
|
static |
void clean_top_of_pair_list | ( | slimgb_alg * | c | ) |
Definition at line 3883 of file tgb.cc.
|
static |
Definition at line 919 of file tgb.cc.
|
inlinestatic |
Definition at line 1323 of file tgb.cc.
|
static |
|
static |
ideal do_t_rep_gb | ( | ring | , |
ideal | arg_I, | ||
int | syz_comp, | ||
BOOLEAN | F4_mode, | ||
int | deg_pos | ||
) |
Definition at line 3568 of file tgb.cc.
|
static |
Definition at line 371 of file tgb.cc.
|
inlinestatic |
int find_best | ( | red_object * | r, |
int | l, | ||
int | u, | ||
wlen_type & | w, | ||
slimgb_alg * | c | ||
) |
poly free_row_to_poly | ( | tgb_sparse_matrix * | mat, |
int | row, | ||
poly * | monoms, | ||
int | monom_index | ||
) |
Definition at line 3064 of file tgb.cc.
void free_sorted_pair_node | ( | sorted_pair_node * | s, |
const ring | r | ||
) |
|
static |
|
static |
Definition at line 3983 of file tgb.cc.
|
static |
Definition at line 427 of file tgb.cc.
|
static |
Definition at line 2678 of file tgb.cc.
BOOLEAN good_has_t_rep | ( | int | i, |
int | j, | ||
slimgb_alg * | c | ||
) |
Definition at line 876 of file tgb.cc.
|
static |
Definition at line 3644 of file tgb.cc.
void init_with_mac_poly | ( | tgb_sparse_matrix * | mat, |
int | row, | ||
mac_poly | m | ||
) |
Definition at line 3049 of file tgb.cc.
Definition at line 1340 of file tgb.cc.
BOOLEAN is_valid_ro | ( | red_object & | ro | ) |
Definition at line 2021 of file tgb.cc.
wlen_type kEBucketLength | ( | kBucket * | b, |
poly | lm, | ||
slimgb_alg * | ca | ||
) |
Definition at line 494 of file tgb.cc.
int kFindDivisibleByInS_easy | ( | kStrategy | strat, |
const red_object & | obj | ||
) |
Definition at line 685 of file tgb.cc.
int kFindDivisibleByInS_easy | ( | kStrategy | strat, |
poly | p, | ||
long | sev | ||
) |
Definition at line 698 of file tgb.cc.
TODO CoefBuckets bercksichtigen.
Definition at line 221 of file tgb.cc.
|
static |
Definition at line 1005 of file tgb.cc.
|
static |
Definition at line 399 of file tgb.cc.
|
static |
Definition at line 1939 of file tgb.cc.
|
static |
Definition at line 1101 of file tgb.cc.
|
static |
Definition at line 2145 of file tgb.cc.
|
static |
Definition at line 89 of file tgb.cc.
|
static |
|
static |
|
static |
Definition at line 4896 of file tgb.cc.
|
static |
Definition at line 4640 of file tgb.cc.
|
static |
Definition at line 4531 of file tgb.cc.
|
static |
Definition at line 4457 of file tgb.cc.
|
static |
Definition at line 4127 of file tgb.cc.
void now_t_rep | ( | const int & | arg_i, |
const int & | arg_j, | ||
slimgb_alg * | c | ||
) |
Definition at line 3623 of file tgb.cc.
|
inlinestatic |
|
static |
Definition at line 3924 of file tgb.cc.
|
static |
Definition at line 1373 of file tgb.cc.
wlen_type pELength | ( | poly | p, |
slimgb_alg * | c, | ||
ring | |||
) |
|
inlinestatic |
Definition at line 535 of file tgb.cc.
|
inlinestatic |
Definition at line 4023 of file tgb.cc.
Definition at line 3084 of file tgb.cc.
|
static |
Definition at line 109 of file tgb.cc.
Definition at line 142 of file tgb.cc.
|
static |
Definition at line 711 of file tgb.cc.
|
inlinestatic |
Definition at line 544 of file tgb.cc.
|
inlinestatic |
Definition at line 197 of file tgb.cc.
|
inlinestatic |
|
inlinestatic |
sorted_pair_node* quick_pop_pair | ( | slimgb_alg * | c | ) |
Definition at line 665 of file tgb.cc.
|
static |
Definition at line 1837 of file tgb.cc.
Definition at line 2937 of file tgb.cc.
|
static |
Definition at line 1920 of file tgb.cc.
|
static |
Definition at line 1215 of file tgb.cc.
int search_red_object_pos | ( | red_object * | a, |
int | top, | ||
red_object * | key | ||
) |
Definition at line 4559 of file tgb.cc.
|
static |
Definition at line 3677 of file tgb.cc.
Definition at line 1308 of file tgb.cc.
|
static |
Definition at line 59 of file tgb.cc.
int slim_nsize | ( | number | n, |
ring | r | ||
) |
Definition at line 73 of file tgb.cc.
|
static |
Definition at line 4584 of file tgb.cc.
sorted_pair_node** spn_merge | ( | sorted_pair_node ** | p, |
int | pn, | ||
sorted_pair_node ** | q, | ||
int | qn, | ||
slimgb_alg * | c | ||
) |
Definition at line 751 of file tgb.cc.
|
static |
|
static |
Definition at line 3870 of file tgb.cc.
Definition at line 3520 of file tgb.cc.
Definition at line 2030 of file tgb.cc.
Definition at line 3951 of file tgb.cc.
Definition at line 680 of file tgb.cc.
sorted_pair_node* top_pair | ( | slimgb_alg * | c | ) |
Definition at line 3838 of file tgb.cc.
|
static |
Definition at line 800 of file tgb.cc.