[4ti2] fix ftbfs

Tom Callaway spot at fedoraproject.org
Mon Mar 5 19:49:40 UTC 2012


commit 3d04b28458c23937d77128cc9bfede1c5fa5dc14
Author: Tom Callaway <spot at fedoraproject.org>
Date:   Mon Mar 5 14:49:26 2012 -0500

    fix ftbfs

 4ti2-1.3.2-gcc47.patch |  631 ++++++++++++++++++++++++++++++++++++++++++++++++
 4ti2.spec              |    8 +-
 2 files changed, 637 insertions(+), 2 deletions(-)
---
diff --git a/4ti2-1.3.2-gcc47.patch b/4ti2-1.3.2-gcc47.patch
new file mode 100644
index 0000000..faedd2a
--- /dev/null
+++ b/4ti2-1.3.2-gcc47.patch
@@ -0,0 +1,631 @@
+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);
diff --git a/4ti2.spec b/4ti2.spec
index 863afd4..0b18fc0 100644
--- a/4ti2.spec
+++ b/4ti2.spec
@@ -1,6 +1,6 @@
 Name:           4ti2
 Version:        1.3.2
-Release:        10%{?dist}
+Release:        11%{?dist}
 Summary:        A software package for problems on linear spaces
 
 Group:          System Environment/Libraries
@@ -9,7 +9,7 @@ URL:            http://www.4ti2.de/
 Source0:        http://www.4ti2.de/version_%{version}/%{name}-%{version}.tar.gz
 Source1:        http://www.4ti2.de/4ti2_manual.pdf
 Source2:        4ti2.module.in
-
+Patch0:         4ti2-1.3.2-gcc47.patch
 Requires:       environment-modules
 BuildRequires:  gmp-devel
 BuildRequires:  glpk-devel
@@ -24,6 +24,7 @@ your PATH you will need to run module load %{name}-%{_arch}
 %prep
 %setup -q
 cp -p %{SOURCE1} .
+%patch0 -p1 -b .gcc47
 
 %build
 CXXFLAGS="%{optflags} -I%{_includedir}/glpk" \
@@ -77,6 +78,9 @@ make check
 %{_libdir}/%{name}/bin/zsolve
 
 %changelog
+* Mon Mar  5 2012 Tom Callaway <spot at fedoraproject.org> - 1.3.2-11
+- fix gcc47 issues
+
 * Tue Feb 28 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.3.2-10
 - Rebuilt for c++ ABI breakage
 


More information about the scm-commits mailing list