Skip to content

Commit 78ddd1f

Browse files
committed
neatly organizing parameters in function signatures - part 1
1 parent 01e1872 commit 78ddd1f

22 files changed

Lines changed: 362 additions & 218 deletions

.vscode/settings.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"numbers": "c",
44
"omp.h": "c",
55
"polynomial_functions.h": "c",
6-
"limits": "c"
6+
"limits": "c",
7+
"stdbool.h": "c",
8+
"structures.h": "c",
9+
"random": "c"
710
}
811
}

include/build_matrix.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#include "structures.h"
55

6-
void build_sparse_matrix(dyn_array_classic* matrix, dyn_array relations, dyn_array_classic factor_base, unsigned long *nonzero_count, double *density, unsigned long *row_count, dyn_array_classic* rel_weight);
7-
void build_dense_matrix(dyn_array relations, dyn_array_classic factor_base, unsigned long relations_len, unsigned long base_size, mpz_t *dense_matrix);
6+
void build_sparse_matrix(dyn_array relations, dyn_array_classic* matrix, dyn_array_classic* rel_weight, dyn_array_classic factor_base, unsigned long *nonzero_count, unsigned long *row_count, double *density);
7+
void build_dense_matrix(dyn_array relations, dyn_array_classic factor_base, mpz_t *dense_matrix, unsigned long relations_len, unsigned long base_size);
88

99
#endif // BUILD_MATRIX_H

include/compute_sqrt.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66

77
#include "structures.h"
88

9-
void build_sqrt(mpz_t n, unsigned long dim, bool vector[dim], dyn_array_classic factor_base, mpz_t x, mpz_t y, dyn_array relations, dyn_array smooth);
9+
void build_sqrt(dyn_array relations, dyn_array smooth, dyn_array_classic factor_base, mpz_t n, mpz_t x, mpz_t y, unsigned long dim, bool vector[dim]);
1010

1111
#endif // COMPUTE_SQRT_H

include/gaussian_elimination.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
#include "structures.h"
77

8-
void gaussian_elimination(unsigned long relations_len, unsigned long base_size, mpz_t *dense_matrix, mpz_t *res);
9-
bool row_is_zero(unsigned long relations_len, unsigned long base_size, mpz_t *dense_matrix, size_t row_index);
8+
void gaussian_elimination(mpz_t *dense_matrix, mpz_t *res, unsigned long relations_len, unsigned long base_size);
9+
bool row_is_zero(mpz_t *dense_matrix, size_t row_index, unsigned long relations_len, unsigned long base_size);
1010

1111
#endif // GAUSSIAN_ELIMINATION_H

include/generate_primes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55

66
#include "structures.h"
77

8-
void smoothB(mpz_t B, dyn_array_classic* primes);
8+
void erasthotenes_sieve(dyn_array_classic* primes, mpz_t bound);
99

1010
#endif // GENERATE_PRIMES_H

include/mono_cpu_sieving.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
void mono_cpu_sieve(
1010
dyn_array* relations,
1111
dyn_array* smooth_numbers,
12-
dyn_array_classic primes,
1312
dyn_array a,
13+
dyn_array_classic primes,
1414
mpz_t n,
1515
mpz_t prod_primes,
1616
mpz_t cst,
@@ -20,6 +20,11 @@ void mono_cpu_sieve(
2020
mpf_t ln2,
2121
mpf_t ln10,
2222
mpf_t e,
23+
unsigned long* full_found,
24+
unsigned long* partial_found,
25+
unsigned long* indexp,
26+
unsigned long* bounds,
27+
unsigned long* logs,
2328
unsigned long best_mult,
2429
unsigned long time_seed,
2530
unsigned long sieve_len,
@@ -37,11 +42,6 @@ void mono_cpu_sieve(
3742
unsigned long time_diff,
3843
unsigned long objective,
3944
unsigned long seconds,
40-
unsigned long* full_found,
41-
unsigned long* partial_found,
42-
unsigned long* indexp,
43-
unsigned long* bounds,
44-
unsigned long* logs,
4545
int* need_append,
4646
int flag_batch_smooth,
4747
double nb_large,

include/parallel_sieving.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ void parallel_sieve(
1010
FILE *logfile,
1111
dyn_array* relations,
1212
dyn_array* smooth_numbers,
13-
dyn_array_classic primes,
1413
dyn_array a,
14+
dyn_array_classic primes,
1515
mpz_t n,
1616
mpz_t prod_primes,
1717
mpz_t cst,
@@ -21,6 +21,11 @@ void parallel_sieve(
2121
mpf_t ln2,
2222
mpf_t ln10,
2323
mpf_t e,
24+
unsigned long* full_found,
25+
unsigned long* partial_found,
26+
unsigned long* indexp,
27+
unsigned long* bounds,
28+
unsigned long* logs,
2429
unsigned long best_mult,
2530
unsigned long time_seed,
2631
unsigned long sieve_len,
@@ -38,11 +43,6 @@ void parallel_sieve(
3843
unsigned long time_diff,
3944
unsigned long objective,
4045
unsigned long seconds,
41-
unsigned long* full_found,
42-
unsigned long* partial_found,
43-
unsigned long* indexp,
44-
unsigned long* bounds,
45-
unsigned long* logs,
4646
int* need_append,
4747
int nb_cpu_sieve,
4848
int flag_batch_smooth,

include/polynomial_functions.h

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,26 @@
55

66
#include "structures.h"
77

8-
void create_polynomial(mpz_t a, dyn_array* sol_needed, dyn_array* second_part, dyn_array_classic* locations, mpz_t n, dyn_array_classic* primes, dyn_array* roots, unsigned long bounds[4], mpf_t target, mpf_t ln2, mpf_t ln10, dyn_array* inverse_a, dyn_array_classic* way_to_root, mpf_t best_bound, dyn_array_classic* tmp_where, mpf_t e, unsigned long mult);
9-
void CRT(mpz_t res, dyn_array* moduli, mpz_t a, dyn_array* second_part);
8+
void create_polynomial(
9+
dyn_array* sol_needed,
10+
dyn_array* second_part,
11+
dyn_array* roots,
12+
dyn_array* inverse_a,
13+
dyn_array_classic* locations,
14+
dyn_array_classic* primes,
15+
dyn_array_classic* way_to_root,
16+
dyn_array_classic* tmp_where,
17+
mpz_t a,
18+
mpz_t n,
19+
mpf_t target,
20+
mpf_t ln2,
21+
mpf_t ln10,
22+
mpf_t best_bound,
23+
mpf_t e,
24+
unsigned long bounds[4],
25+
unsigned long mult
26+
);
27+
28+
void CRT(dyn_array* moduli, dyn_array* second_part, mpz_t a, mpz_t res);
1029

1130
#endif // POLYNOMIAL_FUNCTIONS_H

include/reduce_matrix.h

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,44 @@
66
#include "structures.h"
77

88
void reduce_relations(dyn_array* relations, dyn_array* smooth, dyn_array_classic* primes, mpz_t n);
9-
void bubble_sort_down(dyn_array_classic weights, dyn_array_classic *sorted, unsigned long tmp3);
10-
void bubble_sort_up(dyn_array_classic weights, dyn_array_classic *sorted, unsigned long tmp3);
9+
void bubble_sort_down(dyn_array_classic *sorted, dyn_array_classic weights, unsigned long tmp3);
10+
void bubble_sort_up(dyn_array_classic *sorted, dyn_array_classic weights, unsigned long tmp3);
1111
size_t get_index(dyn_array_classic sorted, unsigned long line_index);
1212
bool delete_empty_row(dyn_array_classic *matrix, dyn_array_classic *weights, dyn_array_classic *sorted, size_t i, unsigned long row_index);
13-
void delete_singleton(dyn_array *relations, dyn_array *smooth, dyn_array_classic *matrix, dyn_array_classic *weights, dyn_array_classic *rel_weight, dyn_array_classic sorted, size_t i, unsigned long row_index, unsigned long row_delimiter);
14-
void delete_to_elements_row(dyn_array *relations, dyn_array *smooth, dyn_array_classic *matrix, dyn_array_classic *rel_weight, dyn_array_classic sorted, dyn_array_classic *weights, mpz_t n, size_t i, unsigned long row_index, unsigned long row_delimiter);
15-
void reduce_matrix(dyn_array_classic* matrix, dyn_array* relations, dyn_array* smooth, unsigned long limit, mpz_t n, dyn_array_classic* rel_weight, unsigned long merge_bound);
13+
14+
void delete_singleton(
15+
dyn_array *relations,
16+
dyn_array *smooth,
17+
dyn_array_classic *matrix,
18+
dyn_array_classic *weights,
19+
dyn_array_classic *rel_weight,
20+
dyn_array_classic sorted,
21+
size_t i,
22+
unsigned long row_index,
23+
unsigned long row_delimiter
24+
);
25+
26+
void delete_two_elements_row(
27+
dyn_array *relations,
28+
dyn_array *smooth,
29+
dyn_array_classic *matrix,
30+
dyn_array_classic *rel_weight,
31+
dyn_array_classic *weights,
32+
dyn_array_classic sorted,
33+
mpz_t n,
34+
size_t i,
35+
unsigned long row_index,
36+
unsigned long row_delimiter
37+
);
38+
39+
void reduce_matrix(
40+
dyn_array* relations,
41+
dyn_array* smooth,
42+
dyn_array_classic* matrix,
43+
dyn_array_classic* rel_weight,
44+
mpz_t n,
45+
unsigned long row_delimiter,
46+
unsigned long merge_bound
47+
);
1648

1749
#endif // REDUCE_MATRIX_H

include/relations.h

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,52 @@
55

66
#include "structures.h"
77

8-
bool DFS(Hashmap_graph graph, mpz_t small_p, mpz_t big_p, dyn_array *path, dyn_array_stack *stack);
9-
void find_path(Hashmap_graph graph, mpz_t small_p, mpz_t big_p, dyn_array *path, dyn_array_stack *stack);
10-
void combine_path(Hashmap_PartialRelation *partial_relations, dyn_array path, mpz_t x, mpz_t n, mpz_t res_x, mpz_t res_y, PartialRelation *to_combine_node);
8+
bool DFS(
9+
Hashmap_graph graph,
10+
dyn_array_stack *stack,
11+
dyn_array *path,
12+
mpz_t small_p,
13+
mpz_t big_p
14+
);
1115

12-
void handle_relations(
13-
dyn_array* relations,
14-
dyn_array* smooth_numbers,
15-
PartialRelation *tmp_array,
16+
void find_path(
17+
Hashmap_graph graph,
18+
dyn_array_stack *stack,
19+
dyn_array *path,
20+
mpz_t small_p, mpz_t big_p
21+
);
22+
23+
void combine_path(
1624
Hashmap_PartialRelation *partial_relations,
1725
PartialRelation *to_combine_node,
26+
dyn_array path,
27+
mpz_t x,
28+
mpz_t n,
29+
mpz_t res_x,
30+
mpz_t res_y
31+
);
32+
33+
void handle_relations(
34+
Hashmap_PartialRelation *partial_relations,
1835
Hashmap_graph *graph,
1936
Hashmap_1D *parent,
37+
PartialRelation *tmp_array,
38+
PartialRelation *to_combine_node,
2039
dyn_array_stack *stack,
40+
dyn_array* relations,
41+
dyn_array* smooth_numbers,
2142
dyn_array block,
2243
dyn_array coefficient,
2344
mpz_t n,
2445
mpz_t value,
2546
mpz_t tmp_bin,
47+
unsigned long* full_found,
48+
unsigned long* partial_found,
49+
unsigned long* indexp,
2650
unsigned long k,
2751
unsigned long tmp_a,
2852
unsigned long tmp_b,
2953
unsigned long tmplol,
30-
unsigned long* full_found,
31-
unsigned long* partial_found,
32-
unsigned long* indexp,
3354
int* need_append
3455
);
3556

0 commit comments

Comments
 (0)