Compare commits

...
Sign in to create a new pull request.

43 commits

Author SHA1 Message Date
Fedora Release Engineering
bb518e950b Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 02:26:10 +00:00
Jerry James
6567405eec Reflow the description text
- More precise globbing in %files
2026-01-09 11:59:07 -07:00
Jerry James
03aed770dc Version 1.6.14 2025-11-26 11:12:00 -07:00
Jerry James
e03cc25c74 Version 1.6.13 2025-08-07 12:49:34 -06:00
Fedora Release Engineering
2f6a9773bd Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 15:39:51 +00:00
Jerry James
d57c2f3bce Version 1.6.12 2025-05-29 09:52:13 -06:00
Fedora Release Engineering
fa7a491418 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-20 07:17:34 +00:00
Fedora Release Engineering
eb022cb680 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 08:21:16 +00:00
Jerry James
77b21715cf Move configuration actions to %conf
- Clarify license of the devel and libs subpackages
2025-01-13 06:52:56 -07:00
Fedora Release Engineering
b59498fcc3 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 14:40:51 +00:00
Jerry James
9897981741 Fix VCS field 2024-07-16 11:03:27 -06:00
Jerry James
4d10bff2f3 Stop building for 32-bit x86
- Drop maxnorm patch which was only needed for i386
2024-03-21 10:15:13 -06:00
Jerry James
34a6d0f32e Convert to %autorelease and %autochangelog
[skip changelog]
2024-03-21 10:12:22 -06:00
Fedora Release Engineering
17a35ac5a6 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-29 10:43:26 +00:00
Fedora Release Engineering
e06ae2b363 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-22 20:40:29 +00:00
Fedora Release Engineering
35f35d3335 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 09:07:03 +00:00
Fedora Release Engineering
a895eaeb49 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-18 12:01:25 +00:00
Fedora Release Engineering
38ff7b03f2 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 10:55:00 +00:00
Jerry James
9ee1679a35 Drop unneeded "egrep is obsolescent" fix (fixed in 1.6.10) 2023-07-14 16:06:10 -06:00
Jerry James
d091c06447 Version 1.6.10
Drop upstreamed memleak & missing-include patches
2023-04-29 21:42:37 -06:00
Fedora Release Engineering
cc3f0aebf6 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-18 19:35:20 +00:00
Jerry James
04ec62f564 Add patch to fix a memory leak. 2023-01-10 09:20:18 -07:00
Jeff Law
d45354d909 Add missing #include for gcc-13. 2022-12-29 16:22:03 -05:00
Jerry James
5d3c0dc1d7 Silence "egrep is obsolescent" warnings from the scripts.
Update license to reflect embedded fonts in the PDF manual.
2022-11-16 10:53:32 -07:00
Jerry James
6fc3c1c216 Convert License tag to SPDX. 2022-08-11 09:14:14 -06:00
Fedora Release Engineering
82ab639287 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-20 18:23:54 +00:00
Jerry James
a9c3f446ef Add README.md. 2022-07-07 10:45:40 -06:00
Fedora Release Engineering
eaa4ecf79d - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-19 19:10:59 +00:00
Fedora Release Engineering
38d1d36c18 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 15:36:34 +00:00
Fedora Release Engineering
69b816a82c - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 10:42:08 +00:00
Fedora Release Engineering
797d063502 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-25 22:13:45 +00:00
Jerry James
48b8d1c2ef Explicitly BR make. 2020-11-09 10:44:37 -07:00
Fedora Release Engineering
203e2bd7df - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 10:10:47 +00:00
Tom Stellard
a316cf324a Use make macros
https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
2020-07-13 15:52:36 +00:00
Fedora Release Engineering
1fe6592c04 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 09:08:40 +00:00
Jerry James
d200b0c144 Fix the location of the module file (bz 1773348).
Do not build the empty fiber library.
2019-12-09 21:36:30 -07:00
Fedora Release Engineering
4a16956eba - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-24 15:37:26 +00:00
Fedora Release Engineering
bbb0358219 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 11:20:04 +00:00
Jerry James
14988d794f Update to 1.6.9 after splitting back out of latte-integrale. 2018-10-13 10:13:08 -06:00
Mohan Boddu
73905c17b3 Revert "package is dead, see latte-integrale"
Unretiring for https://pagure.io/releng/issue/7860

This reverts commit 59be5bf9ef.

Signed-off-by: Mohan Boddu <mboddu@bhujji.com>
2018-10-11 14:38:46 -04:00
Kevin Fenzi
94c4216170 Test, please ignore 2014-05-16 11:37:27 -06:00
Peter Robinson
59be5bf9ef package is dead, see latte-integrale 2013-05-31 10:33:39 +01:00
Kevin Fenzi
bfb3429ef3 Rebuild for broken deps in rawhide 2013-02-03 11:52:34 -07:00
7 changed files with 447 additions and 736 deletions

3
.gitignore vendored
View file

@ -1,2 +1 @@
4ti2-1.3.2.tar.gz 4ti2-*.tar.gz
4ti2_manual.pdf

View file

@ -1,631 +0,0 @@
diff -up 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp
--- 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp.gcc47 2012-03-05 14:25:16.459407811 -0500
+++ 4ti2-1.3.2/src/groebner/CircuitMatrixAlgorithm.tpp 2012-03-05 14:32:14.090831152 -0500
@@ -152,23 +152,23 @@ CircuitMatrixAlgorithm<IndexSet>::comput
)
// Find the next column.
- Index next_col = next_column(vs, remaining);
+ Index next_col = this->next_column(vs, remaining);
int start = 0; int end = vs.get_number(); int middle;
// We sort the vectors into nonzeros and then zeros.
- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle);
+ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle);
int nonzero_start = start, nonzero_end = middle;
//int zero_start = middle, zero_end = end;
// We sort the nonzeros into rays and circuits.
- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle);
+ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle);
int ray_start = nonzero_start, ray_end = middle;
int cir_start = middle, cir_end = nonzero_end;
// We sort the rays into positives and then negatives.
- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle);
+ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle);
int pos_ray_start = ray_start, pos_ray_end = middle;
int neg_ray_start = middle, neg_ray_end = ray_end;
// We sort the circuits into positives and then negatives.
- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle);
+ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle);
int pos_cir_start = cir_start, pos_cir_end = middle;
int neg_cir_start = middle, neg_cir_end = cir_end;
@@ -185,8 +185,8 @@ CircuitMatrixAlgorithm<IndexSet>::comput
// Switch the positive and negative supports, so that it is as if all
// vectors have a positive entry in the next column.
- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
matrix = orig_matrix;
int remaining_row = upper_triangle(matrix, remaining, 0);
@@ -212,15 +212,15 @@ CircuitMatrixAlgorithm<IndexSet>::comput
rays.insert(rays.end(), vs.get_number()-previous_size, false);
// Switch back the positive and negative supports.
- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
// Update the supp vectors for the next_col.
- update_supports(supps, next_col, nonzero_start, nonzero_end);
- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end);
- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end);
- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end);
- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end);
+ this->update_supports(supps, next_col, nonzero_start, nonzero_end);
+ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end);
+ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end);
+ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end);
+ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end);
*out << "\r";
*out << " Left = " << std::setw(3) << num_remaining;
diff -up 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp
--- 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp.gcc47 2012-03-05 14:21:20.103997937 -0500
+++ 4ti2-1.3.2/src/groebner/CircuitSupportAlgorithm.tpp 2012-03-05 14:31:39.629208802 -0500
@@ -188,23 +188,23 @@ CircuitSupportAlgorithm<IndexSet>::compu
)
// Find the next column.
- Index next_col = next_column(vs, remaining);
+ Index next_col = this->next_column(vs, remaining);
int start = 0; int end = vs.get_number(); int middle;
// We sort the vectors into nonzeros and then zeros.
- sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle);
+ this->sort_nonzeros(vs, start, end, rays, supps, pos_supps, neg_supps, next_col, middle);
int nonzero_start = start, nonzero_end = middle;
//int zero_start = middle, zero_end = end;
// We sort the nonzeros into rays and circuits.
- sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle);
+ this->sort_rays(vs, nonzero_start, nonzero_end, rays, supps, pos_supps, neg_supps, middle);
int ray_start = nonzero_start, ray_end = middle;
int cir_start = middle, cir_end = nonzero_end;
// We sort the rays into positives and then negatives.
- sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle);
+ this->sort_positives(vs, ray_start, ray_end, supps, pos_supps, neg_supps, next_col, middle);
int pos_ray_start = ray_start, pos_ray_end = middle;
int neg_ray_start = middle, neg_ray_end = ray_end;
// We sort the circuits into positives and the negatives.
- sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle);
+ this->sort_positives(vs, cir_start, cir_end, supps, pos_supps, neg_supps, next_col, middle);
int pos_cir_start = cir_start, pos_cir_end = middle;
int neg_cir_start = middle, neg_cir_end = cir_end;
@@ -233,8 +233,8 @@ CircuitSupportAlgorithm<IndexSet>::compu
// Switch the positive and negative supports, so that it is as if all
// vectors have a positive entry in the next column.
- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
//DEBUG_4ti2(*out << "Remaining row " << remaining_row << "\n";)
int previous_size = vs.get_number();
@@ -258,19 +258,19 @@ CircuitSupportAlgorithm<IndexSet>::compu
rays.insert(rays.end(), vs.get_number()-previous_size, false);
// Switch back the positive and negative supports.
- switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
- switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
+ this->switch_supports(neg_ray_start, neg_ray_end, pos_supps, neg_supps);
+ this->switch_supports(neg_cir_start, neg_cir_end, pos_supps, neg_supps);
// Update the supp vectors for the next_col.
- update_supports(supps, next_col, nonzero_start, nonzero_end);
- update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end);
- update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end);
- update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end);
- update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end);
- update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end);
- update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end);
- update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end);
- update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end);
+ this->update_supports(supps, next_col, nonzero_start, nonzero_end);
+ this->update_supports(pos_supps, next_col, pos_ray_start, pos_ray_end);
+ this->update_supports(pos_supps, next_col, pos_cir_start, pos_cir_end);
+ this->update_supports(pos_supps, col_map[next_col], neg_ray_start, neg_ray_end);
+ this->update_supports(pos_supps, col_map[next_col], neg_cir_start, neg_cir_end);
+ this->update_supports(neg_supps, next_col, neg_ray_start, neg_ray_end);
+ this->update_supports(neg_supps, next_col, neg_cir_start, neg_cir_end);
+ this->update_supports(neg_supps, col_map[next_col], pos_ray_start, pos_ray_end);
+ this->update_supports(neg_supps, col_map[next_col], pos_cir_start, pos_cir_end);
*out << "\r";
*out << " Left = " << std::setw(3) << num_remaining;
diff -up 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp
--- 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp.gcc47 2008-11-14 21:08:37.000000000 -0500
+++ 4ti2-1.3.2/src/groebner/RayMatrixAlgorithm.tpp 2012-03-05 14:28:04.450566861 -0500
@@ -146,7 +146,7 @@ RayMatrixAlgorithm<IndexSet>::compute1(
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -161,7 +161,7 @@ RayMatrixAlgorithm<IndexSet>::compute1(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, next_col, next_zero_count, next_positive_count,
next_negative_count);
matrix = orig_matrix;
@@ -218,7 +218,7 @@ RayMatrixAlgorithm<IndexSet>::compute1(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff2);
if (temp_diff2.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
continue;
@@ -226,14 +226,14 @@ RayMatrixAlgorithm<IndexSet>::compute1(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff2);
if (temp_diff2.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
continue;
}
if (rank_check(matrix, temp_matrix, temp_diff, r1_rows))
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -351,7 +351,7 @@ RayMatrixAlgorithm<IndexSet>::compute0(
{
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -366,7 +366,7 @@ RayMatrixAlgorithm<IndexSet>::compute0(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, next_col, next_zero_count, next_positive_count,
next_negative_count);
matrix = orig_matrix;
@@ -416,7 +416,7 @@ RayMatrixAlgorithm<IndexSet>::compute0(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -442,7 +442,7 @@ RayMatrixAlgorithm<IndexSet>::compute0(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff2);
if (temp_diff2.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_one_diff_added;
@@ -452,7 +452,7 @@ RayMatrixAlgorithm<IndexSet>::compute0(
if (rank_check(matrix, temp_matrix, temp_diff, r1_rows))
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -468,7 +468,7 @@ RayMatrixAlgorithm<IndexSet>::compute0(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -600,7 +600,7 @@ RayMatrixAlgorithm<IndexSet>::compute2(
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -615,7 +615,7 @@ RayMatrixAlgorithm<IndexSet>::compute2(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, fathers, zeros, next_col, next_zero_count, next_positive_count,
next_negative_count);
matrix = orig_matrix;
@@ -665,7 +665,7 @@ RayMatrixAlgorithm<IndexSet>::compute2(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, fathers, r1, r2, next_col,
+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -689,7 +689,7 @@ RayMatrixAlgorithm<IndexSet>::compute2(
{
if (fathers[r1] == r2 || fathers[r2] == r1)
{
- create_new_vector(vs, supports, fathers, r1, r2, next_col,
+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
//++num_fathers;
@@ -705,7 +705,7 @@ RayMatrixAlgorithm<IndexSet>::compute2(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff2);
if (temp_diff2.power_of_2())
{
- create_new_vector(vs, supports, fathers, r1, r2, next_col,
+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
//++num_one_diff_added;
@@ -714,7 +714,7 @@ RayMatrixAlgorithm<IndexSet>::compute2(
#endif
if (rank_check(matrix, temp_matrix, temp_diff, r1_rows))
{
- create_new_vector(vs, supports, fathers, r1, r2, next_col,
+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -730,7 +730,7 @@ RayMatrixAlgorithm<IndexSet>::compute2(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, fathers, r1, r2, next_col,
+ this->create_new_vector(vs, supports, fathers, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -865,7 +865,7 @@ RayMatrixAlgorithm<IndexSet>::compute3(
DEBUG_4ti2(unsigned long long int num_checks = 0;)
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -880,7 +880,7 @@ RayMatrixAlgorithm<IndexSet>::compute3(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, next_col, next_zero_count, next_positive_count,
next_negative_count);
DEBUG_4ti2(*out << "Rays:\n" << vs << "\n";)
@@ -944,7 +944,7 @@ RayMatrixAlgorithm<IndexSet>::compute3(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_one_diff_added;)
@@ -959,7 +959,7 @@ RayMatrixAlgorithm<IndexSet>::compute3(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_one_diff_added;)
@@ -984,7 +984,7 @@ RayMatrixAlgorithm<IndexSet>::compute3(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff2);
if (temp_diff2.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_one_diff_added;)
@@ -996,7 +996,7 @@ RayMatrixAlgorithm<IndexSet>::compute3(
DEBUG_4ti2(++num_checks;)
if (rank_check(matrix, temp_matrix, temp_diff, r1_rows))
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_added;)
@@ -1012,7 +1012,7 @@ RayMatrixAlgorithm<IndexSet>::compute3(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_one_diff_added;)
diff -up 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp
--- 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp.gcc47 2012-03-05 14:23:20.076683203 -0500
+++ 4ti2-1.3.2/src/groebner/RaySupportAlgorithm.tpp 2012-03-05 14:28:38.437194415 -0500
@@ -138,7 +138,7 @@ RaySupportAlgorithm<IndexSet>::compute0(
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -153,7 +153,7 @@ RaySupportAlgorithm<IndexSet>::compute0(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, next_col, next_zero_count, next_positive_count,
next_negative_count);
// Note that the tree needs the ordering of the current vectors to be
@@ -206,7 +206,7 @@ RaySupportAlgorithm<IndexSet>::compute0(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -226,7 +226,7 @@ RaySupportAlgorithm<IndexSet>::compute0(
++num_support_checks;
if (!tree.dominated(temp_supp, r1, r2))
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -337,7 +337,7 @@ RaySupportAlgorithm<IndexSet>::compute1(
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -352,7 +352,7 @@ RaySupportAlgorithm<IndexSet>::compute1(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, next_col, next_zero_count, next_positive_count,
next_negative_count);
// Note that the tree needs the ordering of the current vectors to be
@@ -404,7 +404,7 @@ RaySupportAlgorithm<IndexSet>::compute1(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -424,7 +424,7 @@ RaySupportAlgorithm<IndexSet>::compute1(
zero_supp.set_union(supports[index]);
if (index >= r2_start && index < r2_finish)
{
- create_new_vector(vs, supports, r1, index, next_col,
+ this->create_new_vector(vs, supports, r1, index, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -443,7 +443,7 @@ RaySupportAlgorithm<IndexSet>::compute1(
++num_support_checks;
if (!tree.dominated(temp_supp, r1, r2))
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -550,7 +550,7 @@ RaySupportAlgorithm<IndexSet>::compute2(
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -565,7 +565,7 @@ RaySupportAlgorithm<IndexSet>::compute2(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, next_col, next_zero_count, next_positive_count,
next_negative_count);
// Note that the tree needs the ordering of the current vectors to be
@@ -619,7 +619,7 @@ RaySupportAlgorithm<IndexSet>::compute2(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -638,7 +638,7 @@ RaySupportAlgorithm<IndexSet>::compute2(
zero_supp.set_union(supports[index]);
if (index >= r2_start && index < r2_finish)
{
- create_new_vector(vs, supports, r1, index, next_col,
+ this->create_new_vector(vs, supports, r1, index, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -661,7 +661,7 @@ RaySupportAlgorithm<IndexSet>::compute2(
++num_support_checks;
if (!tree.dominated(temp_supp, r1, r2))
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -773,7 +773,7 @@ RaySupportAlgorithm<IndexSet>::compute3(
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -788,7 +788,7 @@ RaySupportAlgorithm<IndexSet>::compute3(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, next_col, next_zero_count, next_positive_count,
next_negative_count);
int original_size = vs.get_number();
@@ -852,7 +852,7 @@ RaySupportAlgorithm<IndexSet>::compute3(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_added;)
@@ -866,7 +866,7 @@ RaySupportAlgorithm<IndexSet>::compute3(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_one_diff_added;)
@@ -885,7 +885,7 @@ RaySupportAlgorithm<IndexSet>::compute3(
zero_supp.set_union(supports[index]);
if (index >= r2_index && index < r2_finish)
{
- create_new_vector(vs, supports, r1, index, next_col,
+ this->create_new_vector(vs, supports, r1, index, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_added;)
@@ -905,7 +905,7 @@ RaySupportAlgorithm<IndexSet>::compute3(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff2);
if (temp_diff2.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_one_diff_added;)
@@ -918,7 +918,7 @@ RaySupportAlgorithm<IndexSet>::compute3(
DEBUG_4ti2(++num_checks;)
if (!tree.dominated(temp_supp, r1, r2))
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_added;)
@@ -1030,7 +1030,7 @@ RaySupportAlgorithm<IndexSet>::compute4(
// Find the next column.
int next_positive_count, next_negative_count, next_zero_count;
- Index next_col = next_column(vs, remaining,
+ Index next_col = this->next_column(vs, remaining,
next_positive_count,
next_negative_count,
next_zero_count);
@@ -1045,7 +1045,7 @@ RaySupportAlgorithm<IndexSet>::compute4(
)
// We sort the vectors into zeros, positives, then negatives.
- sort(vs, supports, next_col, next_zero_count, next_positive_count,
+ RayImplementation<IndexSet>::sort(vs, supports, next_col, next_zero_count, next_positive_count,
next_negative_count);
int original_size = vs.get_number();
@@ -1114,7 +1114,7 @@ RaySupportAlgorithm<IndexSet>::compute4(
IndexSet::set_difference(supports[r2], r1_supp, temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -1134,7 +1134,7 @@ RaySupportAlgorithm<IndexSet>::compute4(
zero_supp.set_union(supports[index]);
if (index >= r2_start && index < r2_finish)
{
- create_new_vector(vs, supports, r1, index, next_col,
+ this->create_new_vector(vs, supports, r1, index, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
++num_added;
@@ -1148,7 +1148,7 @@ RaySupportAlgorithm<IndexSet>::compute4(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff);
if (temp_diff.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_one_diff_added;)
@@ -1168,7 +1168,7 @@ RaySupportAlgorithm<IndexSet>::compute4(
IndexSet::set_difference(r1_supp, supports[r2], temp_diff2);
if (temp_diff2.power_of_2())
{
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
DEBUG_4ti2(++num_one_diff_added;)
@@ -1183,7 +1183,7 @@ RaySupportAlgorithm<IndexSet>::compute4(
int count = temp_supp.count();
next_supports[count].push_back(temp_supp);
next_indices[count].push_back(std::pair<int,int>(r1,r2));
- //create_new_vector(vs, supports, r1, r2, next_col,
+ //this->create_new_vector(vs, supports, r1, r2, next_col,
// next_positive_count, next_negative_count,
// temp, temp_supp);
//++num_added;
@@ -1216,7 +1216,7 @@ RaySupportAlgorithm<IndexSet>::compute4(
{
int r1 = next_indices[i][j].first;
int r2 = next_indices[i][j].second;
- create_new_vector(vs, supports, r1, r2, next_col,
+ this->create_new_vector(vs, supports, r1, r2, next_col,
next_positive_count, next_negative_count,
temp, temp_supp);
next_tree.insert(next_supports[i][j], vs.get_number()-1);

232
4ti2.spec
View file

@ -1,124 +1,154 @@
Name: 4ti2 %global giturl https://github.com/4ti2/4ti2
Version: 1.3.2
Release: 12%{?dist}
Summary: A software package for problems on linear spaces
Group: System Environment/Libraries Name: 4ti2
License: GPLv2+ Version: 1.6.14
URL: http://www.4ti2.de/ Release: %autorelease
Source0: http://www.4ti2.de/version_%{version}/%{name}-%{version}.tar.gz Summary: Algebraic, geometric and combinatorial problems on linear spaces
Source1: http://www.4ti2.de/4ti2_manual.pdf
Source2: 4ti2.module.in %global relver %(tr . _ <<< %{version})
Patch0: 4ti2-1.3.2-gcc47.patch
Requires: environment-modules # The content is GPL-2.0-or-later. The remaining licenses cover the various
BuildRequires: gmp-devel # fonts embedded in the PDF manual.
# AMS: OFL-1.1-RFN
# CM: Knuth-CTAN
# CM-Super: GPL-1.0-or-later
License: GPL-2.0-or-later AND OFL-1.1-RFN AND Knuth-CTAN AND GPL-1.0-or-later
# Source files under licenses other than GPL-2.0-or-later:
# GPL-2.0-or-later WITH Autoconf-exception-macro: compile,
# m4/ax_cflags_warn_all.m4
# GPL-2.0-or-later WITH Libtool-exception: configure, ltmain.sh
# GPL-2.0-or-later OR MIT: ltmain.sh
# GPL-3.0-or-later: lib/*.{c,h} (not compiled into the binary)
# GPL-3.0-or-later WITH Autoconf-exception-generic: lib/Makefile.am,
# m4/onceonly.m4
# GPL-3.0-or-later WITH Autoconf-exception-macro: config.guess,
# m4/ax_check_compile_flag.m4
# FSFUL: configure, m4/libtool.m4
# FSFULLR: aclocal.m4, m4/00gnulib.m4, m4/libtool.m4
# FSFULLRWD: aclocal.m4, Makefile.in
# X11: install-sh
# LicenseRef-Fedora-Public-Domain: install-sh
SourceLicense: GPL-2.0-or-later AND GPL-2.0-or-later WITH Autoconf-exception-macro AND GPL-2.0-or-later WITH Libtool-exception AND (GPL-2.0-or-later OR MIT) AND GPL-3.0-or-later AND GPL-3.0-or-later WITH Autoconf-exception-generic AND GPL-3.0-or-later WITH Autoconf-exception-macro AND FSFUL AND FSFULLR AND FSFULLRWD AND X11 AND LicenseRef-Fedora-Public-Domain
URL: https://4ti2.github.io/
VCS: git:%{giturl}.git
Source0: %{giturl}/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz
Source1: 4ti2.module.in
# Do not discard const qualifiers
Patch: %{giturl}/pull/58.patch
# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
BuildRequires: environment(modules)
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: glpk-devel BuildRequires: glpk-devel
BuildRequires: gmp-devel
BuildRequires: make
BuildRequires: tex(latex)
BuildRequires: tex(epic.sty)
# 4ti2 contains a copy of gnulib, which has been granted a bundling exception:
# https://fedoraproject.org/wiki/Bundled_Libraries_Virtual_Provides
Provides: bundled(gnulib)
Requires: 4ti2-libs%{?_isa} = %{version}-%{release}
Requires: environment(modules)
%description %description
A software package for algebraic, geometric and combinatorial A software package for algebraic, geometric and combinatorial problems on
problems on linear spaces. linear spaces.
This package uses Environment Modules, to load the binaries onto This package uses Environment Modules. Prior to invoking the binaries, you
your PATH you will need to run module load %{name}-%{_arch} must run "module load 4ti2-%{_arch}" to modify your PATH.
%package devel
Summary: Headers needed to develop software that uses 4ti2
License: GPL-2.0-or-later
Requires: 4ti2-libs%{?_isa} = %{version}-%{release}
Requires: gmp-devel%{?_isa}
%description devel
Headers and library files needed to develop software that uses 4ti2.
%package libs
Summary: Library for problems on linear spaces
License: GPL-2.0-or-later
%description libs
A library for algebraic, geometric and combinatorial problems on linear
spaces.
%prep %prep
%setup -q %autosetup -p1
cp -p %{SOURCE1} .
%patch0 -p1 -b .gcc47 %conf
# Fix encodings
iconv -f ISO8859-1 -t UTF-8 NEWS > NEWS.utf8
touch -r NEWS NEWS.utf8
mv -f NEWS.utf8 NEWS
%configure --enable-shared --disable-static
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
# -Wl,--as-needed after all the libraries.
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
-e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \
-i libtool
%build %build
CXXFLAGS="%{optflags} -I%{_includedir}/glpk" \ %make_build
CFLAGS="%{optflags} -I%{_includedir}/glpk" \
./configure --disable-shared --disable-static \
--prefix=%{_libdir}/%{name} \
--libdir=%{_libdir}/%{name}/lib/ \
--bindir=%{_libdir}/%{name}/bin/
perl -pi -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=\"-L\\\$libdir\"|g;' libtool
make %{?_smp_mflags} # Build the manual
export LD_LIBRARY_PATH=$PWD/src/4ti2/.libs:$PWD/src/fiber/.libs:$PWD/src/groebner/.libs:$PWD/src/ppi/.libs:$PWD/src/util/.libs:$PWD/src/zsolve/.libs
cd doc
make update-manual
bibtex 4ti2_manual
pdflatex 4ti2_manual
pdflatex 4ti2_manual
cd -
%install %install
make install-exec DESTDIR=%{buildroot} %make_install
# Move the include files into a private directory
mkdir -p %{buildroot}%{_includedir}/tmp
mv %{buildroot}%{_includedir}/{4ti2,groebner,util,zsolve} \
%{buildroot}%{_includedir}/tmp
mv %{buildroot}%{_includedir}/tmp %{buildroot}%{_includedir}/4ti2
# Move the 4ti2 binaries
mkdir -p %{buildroot}%{_libdir}/4ti2
mv %{buildroot}%{_bindir} %{buildroot}%{_libdir}/4ti2
# Make the environment-modules file # Make the environment-modules file
mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles/ mkdir -p %{buildroot}%{_modulesdir}
# Since we're doing our own substitution here, use our own definitions. # Since we're doing our own substitution here, use our own definitions.
sed 's#@LIBDIR@#'%{_libdir}/%{name}'#g;' < %SOURCE2 >%{buildroot}%{_datadir}/Modules/modulefiles/%{name}-%{_arch} sed 's#@LIBDIR@#'%{_libdir}/4ti2'#g;' < %SOURCE1 >%{buildroot}%{_modulesdir}/4ti2-%{_arch}
# The libraries are not really fit for use outside the package. # We don't want documentation in _datadir
rm -rf %{buildroot}/%{_libdir}/%{name}/lib* rm -fr %{buildroot}%{_datadir}/4ti2/doc
%check %check
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
make check make check
%files %files
%defattr(-,root,root,-) %doc doc/4ti2_manual.pdf
%doc COPYING TODO 4ti2_manual.pdf %{_libdir}/4ti2/
%dir %{_libdir}/%{name}/bin %{_modulesdir}/4ti2-%{_arch}
%dir %{_libdir}/%{name}
%{_datadir}/Modules/modulefiles/%{name}-%{_arch} %files devel
%{_libdir}/%{name}/bin/output %{_includedir}/4ti2/
%{_libdir}/%{name}/bin/4ti2gmp %{_libdir}/lib4ti2*.so
%{_libdir}/%{name}/bin/4ti2int32 %{_libdir}/libzsolve.so
%{_libdir}/%{name}/bin/4ti2int64
%{_libdir}/%{name}/bin/circuits %files libs
%{_libdir}/%{name}/bin/genmodel %doc AUTHORS NEWS README.md THANKS
%{_libdir}/%{name}/bin/gensymm %license COPYING
%{_libdir}/%{name}/bin/graver %{_libdir}/lib4ti2*.so.0{,.*}
%{_libdir}/%{name}/bin/groebner %{_libdir}/libzsolve.so.0{,.*}
%{_libdir}/%{name}/bin/hilbert
%{_libdir}/%{name}/bin/markov
%{_libdir}/%{name}/bin/minimize
%{_libdir}/%{name}/bin/normalform
%{_libdir}/%{name}/bin/ppi
%{_libdir}/%{name}/bin/qsolve
%{_libdir}/%{name}/bin/rays
%{_libdir}/%{name}/bin/walk
%{_libdir}/%{name}/bin/zbasis
%{_libdir}/%{name}/bin/zsolve
%changelog %changelog
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.2-12 %autochangelog
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Mon Mar 5 2012 Tom Callaway <spot@fedoraproject.org> - 1.3.2-11
- fix gcc47 issues
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.2-10
- Rebuilt for c++ ABI breakage
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Nov 16 2011 Peter Robinson <pbrobinson@fedoraproject.org> - 1.3.2-8
- Rebuild for new gmp
* Wed Sep 21 2011 Peter Schiffer <pschiffe@redhat.com> - 1.3.2-7.1
- rebuild with new gmp
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Fri May 21 2010 Mark Chappell <tremble@fedoraproject.org> - 1.3.2-6
- Take ownership of 2 directories we created
* Tue Mar 02 2010 Mark Chappell <tremble@fedoraproject.org> - 1.3.2-5
- Add note to description about environment modules
* Tue Mar 02 2010 Mark Chappell <tremble@fedoraproject.org> - 1.3.2-4
- Switch to using modules
- Tag with the correct licence (GPLv2+)
* Thu Feb 25 2010 Mark Chappell <tremble@fedoraproject.org> - 1.3.2-3
- Preserve time stamp on 4ti2_manual.pdf
- Whitespace cleanup
- Remove obsolete post and portun calls
- Manually specify binaries
* Thu Feb 25 2010 Mark Chappell <tremble@fedoraproject.org> - 1.3.2-2
- Tidy up inconsistant use of macros
- Remove empty devel package
- Include 4ti2 manual
* Wed Feb 17 2010 M D Chappell <tremble@tremble.org.uk> - 1.3.2-1
- Initial build

238
58.patch Normal file
View file

@ -0,0 +1,238 @@
From c64563088b224a778a236c1e1495f0a4edd2c9df Mon Sep 17 00:00:00 2001
From: Jerry James <loganjerry@gmail.com>
Date: Wed, 26 Nov 2025 11:02:23 -0700
Subject: [PATCH] Do not discard const qualifiers
---
src/util/output.c | 2 +-
src/util/output.h | 2 +-
src/util/print.c | 40 ++++++++++++++++++++++------------------
src/util/print.h | 36 ++++++++++++++++++++----------------
4 files changed, 44 insertions(+), 36 deletions(-)
diff --git a/src/util/output.c b/src/util/output.c
index 8623d01..a0f4f62 100644
--- a/src/util/output.c
+++ b/src/util/output.c
@@ -37,7 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "banner.h"
/* ----------------------------------------------------------------- */
-listVector* readListVector(int *numOfVars, char *fileName) {
+listVector* readListVector(int *numOfVars, const char *fileName) {
int numOfVectors;
listVector *basis, *endBasis;
vector b;
diff --git a/src/util/output.h b/src/util/output.h
index 93bece5..bbcff84 100644
--- a/src/util/output.h
+++ b/src/util/output.h
@@ -1,3 +1,3 @@
int output_main(int, char**);
-listVector* readListVector(int*, char*);
+listVector* readListVector(int*, const char*);
listVector* extractNonDominatedVectors(listVector*, listVector*, int);
diff --git a/src/util/print.c b/src/util/print.c
index 157200a..eca5b82 100644
--- a/src/util/print.c
+++ b/src/util/print.c
@@ -82,7 +82,8 @@ void printVectorToFile(FILE *out, vector v, int numOfVars) {
return ;
}
/* ----------------------------------------------------------------- */
-void printListVectorToFile(char* fileName, listVector* basis, int numOfVars) {
+void printListVectorToFile(const char* fileName, listVector* basis,
+ int numOfVars) {
int len;
FILE* out;
@@ -106,8 +107,8 @@ void printListVectorToFile(char* fileName, listVector* basis, int numOfVars) {
fclose(out);
return ;
}
-/* ----------------------------------------------------------------- */
-void printSubsetOfListVectorToFile(char* fileName, listVector* basis,
+/* ------------------------------------------------------------------------ */
+void printSubsetOfListVectorToFile(const char* fileName, listVector* basis,
vector ind, int numOfVars) {
int len,len2,j;
FILE* out;
@@ -147,7 +148,8 @@ void printVectorWithoutColumnToFile(FILE *out, vector v, int ind,
return ;
}
/* ----------------------------------------------------------------- */
-void printListVectorWithoutColumnToFile(char* fileName, listVector* basis,
+void printListVectorWithoutColumnToFile(const char* fileName,
+ listVector* basis,
int ind, int numOfVars) {
int len;
FILE* out;
@@ -185,7 +187,7 @@ void printVectorWithAddtionalColumnToFile(FILE *out, vector v, int ind,
return ;
}
/* ----------------------------------------------------------------- */
-void printListVectorWithAdditionalColumnToFile(char* fileName,
+void printListVectorWithAdditionalColumnToFile(const char* fileName,
listVector* basis,
int ind, int val,
int numOfVars) {
@@ -214,7 +216,7 @@ void printListVectorWithAdditionalColumnToFile(char* fileName,
return ;
}
/* ----------------------------------------------------------------- */
-void printTransposedListVectorToFile(char* fileName, listVector* basis,
+void printTransposedListVectorToFile(const char* fileName, listVector* basis,
int numOfVars) {
int i,len;
listVector *tmp;
@@ -318,7 +320,7 @@ void printBinomialToFile(FILE *out, vector v, int numOfVars, char** labels) {
return ;
}
/* ----------------------------------------------------------------- */
-void printListBinomialsToFile(char* fileName, listVector* basis,
+void printListBinomialsToFile(const char* fileName, listVector* basis,
int numOfVars, char** labels) {
FILE* out;
@@ -377,7 +379,8 @@ void printMonomialToFile(FILE *out, vector v, int numOfVars, char** labels) {
return ;
}
/* ----------------------------------------------------------------- */
-void printListMonomialsAndBinomialsToFile(char* fileName, listVector* basis,
+void printListMonomialsAndBinomialsToFile(const char* fileName,
+ listVector* basis,
int numOfVars, char** labels) {
FILE* out;
@@ -455,7 +458,8 @@ void printVectorToFileMacaulay2(FILE *out, vector v, int numOfVars) {
return ;
}
/* ----------------------------------------------------------------- */
-void printListVectorMaple(char* fileName, listVector* basis, int numOfVars) {
+void printListVectorMaple(const char* fileName, listVector* basis,
+ int numOfVars) {
FILE* out;
if (!(out = fopen(fileName,"w"))) {
@@ -480,7 +484,7 @@ void printListVectorMaple(char* fileName, listVector* basis, int numOfVars) {
return ;
}
/* ----------------------------------------------------------------- */
-void printListVectorMacaulay2(char* fileName, listVector* basis,
+void printListVectorMacaulay2(const char* fileName, listVector* basis,
int numOfVars) {
FILE* out;
@@ -506,8 +510,8 @@ void printListVectorMacaulay2(char* fileName, listVector* basis,
return ;
}
/* ----------------------------------------------------------------- */
-void print3wayTables(char* fileName, listVector* basis, int x, int y,
- int z, int numOfVars) {
+void print3wayTables(const char* fileName, listVector* basis, int x,
+ int y, int z, int numOfVars) {
int i,j,k;
vector v;
FILE* out;
@@ -583,7 +587,7 @@ void printL1NormOfListVector(listVector *basis, int numOfVars) {
return;
}
/* ----------------------------------------------------------------- */
-void printListVectorWithGivenDegreesToFile(char *outFileName,
+void printListVectorWithGivenDegreesToFile(const char *outFileName,
listVector *basis, int numOfVars,
int lowdegree, int highdegree){
int i,s,len;
@@ -647,7 +651,7 @@ void printSupportsOfListVector(listVector *basis, int numOfVars) {
return;
}
/* ----------------------------------------------------------------- */
-void printListVectorWithGivenSupportsToFile(char *outFileName,
+void printListVectorWithGivenSupportsToFile(const char *outFileName,
listVector *basis, int numOfVars,
int lowdegree, int highdegree){
int i,s,len;
@@ -724,7 +728,7 @@ void printTypesOfListVector(listVector *basis, int sizeOfLayer,
return;
}
/* ----------------------------------------------------------------- */
-void printListVectorWithGivenNonzeroEntryToFile(char *outFileName,
+void printListVectorWithGivenNonzeroEntryToFile(const char *outFileName,
listVector *basis,
int numOfVars,
int coord){
@@ -760,8 +764,8 @@ void printListVectorWithGivenNonzeroEntryToFile(char *outFileName,
return;
}
/* ----------------------------------------------------------------- */
-void writeResult(listVector *basis, int numOfVars, char *fileName,
- char *basisType, int infoLevel) {
+void writeResult(listVector *basis, int numOfVars, const char *fileName,
+ const char *basisType, int infoLevel) {
const char *infoMessage="undefined";
const char *outExtension="";
char *outFileName=NULL;
@@ -803,7 +807,7 @@ void writeResult(listVector *basis, int numOfVars, char *fileName,
return;
}
/* ----------------------------------------------------------------- */
-void printListRepresentativesToFile(char* fileName, listOrbit* basis,
+void printListRepresentativesToFile(const char* fileName, listOrbit* basis,
int numOfVars) {
int len;
FILE* out;
diff --git a/src/util/print.h b/src/util/print.h
index 3789562..2d07334 100644
--- a/src/util/print.h
+++ b/src/util/print.h
@@ -24,30 +24,34 @@ void printVersionInfo();
void printVector(vector, int);
void printListVector(listVector*, int);
void printVectorToFile(FILE*, vector, int);
-void printListVectorToFile(char*, listVector*, int);
-void printSubsetOfListVectorToFile(char*, listVector*, vector, int);
-void printListVectorWithoutColumnToFile(char*, listVector*, int, int);
-void printListVectorWithAdditionalColumnToFile(char*, listVector*, int, int,
- int);
-void printTransposedListVectorToFile(char*, listVector*, int);
+void printListVectorToFile(const char*, listVector*, int);
+void printSubsetOfListVectorToFile(const char*, listVector*, vector, int);
+void printListVectorWithoutColumnToFile(const char*, listVector*, int, int);
+void printListVectorWithAdditionalColumnToFile(const char*, listVector*, int,
+ int, int);
+void printTransposedListVectorToFile(const char*, listVector*, int);
void printVectorToFileWithBrackets(FILE*, vector, int);
void printBinomialToFile(FILE*, vector, int, char**);
-void printListBinomialsToFile(char*, listVector*, int, char**);
+void printListBinomialsToFile(const char*, listVector*, int, char**);
void printMonomialToFile(FILE*, vector, int, char**);
-void printListMonomialsAndBinomialsToFile(char*, listVector*, int, char**);
+void printListMonomialsAndBinomialsToFile(const char*, listVector*, int,
+ char**);
void printMatrix(vector, int, int);
void printVectorToFileMaple(FILE*, vector, int);
-void printListVectorMaple(char*, listVector*, int);
-void printListVectorMacaulay2(char*, listVector*, int);
-void print3wayTables(char*, listVector*, int, int, int, int);
+void printListVectorMaple(const char*, listVector*, int);
+void printListVectorMacaulay2(const char*, listVector*, int);
+void print3wayTables(const char*, listVector*, int, int, int, int);
void printL1NormOfListVector(listVector*, int);
-void printListVectorWithGivenDegreesToFile(char*, listVector*, int, int, int);
+void printListVectorWithGivenDegreesToFile(const char*, listVector*, int,
+ int, int);
void printSupportsOfListVector(listVector*, int);
void printTypesOfListVector(listVector*, int, int);
-void printListVectorWithGivenSupportsToFile(char*, listVector*, int, int, int);
-void printListVectorWithGivenNonzeroEntryToFile(char*, listVector*, int, int);
-void writeResult(listVector*, int, char*, char*, int);
-void printListRepresentativesToFile(char*, listOrbit*, int);
+void printListVectorWithGivenSupportsToFile(const char*, listVector*, int,
+ int, int);
+void printListVectorWithGivenNonzeroEntryToFile(const char*, listVector*, int,
+ int);
+void writeResult(listVector*, int, const char*, const char*, int);
+void printListRepresentativesToFile(const char*, listOrbit*, int);
void printRationalVector(rationalVector*, int);
void printRationalVectorToFileWithoutBrackets(FILE*, rationalVector*, int);

4
README.md Normal file
View file

@ -0,0 +1,4 @@
# 4ti2
[4ti2](https://4ti2.github.io/) is a software package for algebraic, geometric
and combinatorial problems on linear spaces.

72
changelog Normal file
View file

@ -0,0 +1,72 @@
* Mon Jan 29 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jul 14 2023 Jerry James <loganjerry@gmail.com> - 1.6.10-1
- Drop unneeded "egrep is obsolescent" fix (fixed in 1.6.10)
* Sat Apr 29 2023 Jerry James <loganjerry@gmail.com> - 1.6.10-1
- Version 1.6.10
- Drop upstreamed memleak & missing-include patches
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Jan 10 2023 Jerry James <loganjerry@gmail.com> - 1.6.9-14
- Add patch to fix a memory leak
* Thu Dec 29 2022 Jeff Law <jlaw@ventanamicro.com> - 1.6.9-13
- Add missing #include for gcc-13
* Wed Nov 16 2022 Jerry James <loganjerry@gmail.com> - 1.6.9-12
- Silence "egrep is obsolescent" warnings from the scripts
- Update license to reflect embedded fonts in the PDF manual
* Thu Aug 11 2022 Jerry James <loganjerry@gmail.com> - 1.6.9-11
- Convert License tag to SPDX
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 1.6.9-6
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Dec 9 2019 Jerry James <loganjerry@gmail.com> - 1.6.9-4
- Fix the location of the module file (bz 1773348)
- Do not build the empty fiber library
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Sep 29 2018 Jerry James <loganjerry@gmail.com> - 1.6.9-1
- Split back out of latte-integrale

View file

@ -1,2 +1 @@
93367e63944d8bb18192c4984544ed0d 4ti2-1.3.2.tar.gz SHA512 (4ti2-1.6.14.tar.gz) = 87b990de9c6dbe564bd700c6548c422ada52e0e3a0b3457f84c103124bee4fce05c49d7ee3c6ead145bbbd51e11969639dc75fe8f5b337457a3f3590af5315c3
1b6fb847fc0eacddfaaef3d00c8bb7ba 4ti2_manual.pdf