Closed saraedum closed 3 years ago
@videlec, let's discuss this later today.
The only interface change is a renf_elem_class::reset(renf_class)
method that sets the number field of an element. It's a somewhat weird operation that zeros the element but changes the field the element it is contained in.
Merging #180 (ac19a86) into master (462336f) will increase coverage by
2.13%
. The diff coverage is98.66%
.
@@ Coverage Diff @@
## master #180 +/- ##
==========================================
+ Coverage 90.21% 92.34% +2.13%
==========================================
Files 105 105
Lines 1951 2050 +99
==========================================
+ Hits 1760 1893 +133
+ Misses 191 157 -34
Impacted Files | Coverage Δ | |
---|---|---|
libeantic/e-antic/renf_class.hpp | 100.00% <ø> (ø) |
|
libeantic/e-antic/renf_elem_class.hpp | 100.00% <ø> (ø) |
|
libeantic/src/renf_elem/add_fmpq.c | 100.00% <ø> (ø) |
|
libeantic/src/renf_elem/clear.c | 100.00% <ø> (ø) |
|
libeantic/src/renf_elem/init.c | 100.00% <ø> (ø) |
|
libeantic/src/renf_elem/sub_fmpq.c | 100.00% <ø> (ø) |
|
libeantic/srcxx/renf_elem_class.cpp | 97.69% <98.21%> (+7.19%) |
:arrow_up: |
libeantic/e-antic/cereal.hpp | 100.00% <100.00%> (ø) |
|
libeantic/srcxx/renf_class.cpp | 91.17% <100.00%> (+0.17%) |
:arrow_up: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 462336f...ac19a86. Read the comment docs.
Sorted by ratio we have the very bads
TrivialDivision<int>/4 66.7 ns 120 ns 0.55
TrivialDivision<long>/4 66.7 ns 121 ns 0.55
TrivialDivision<long long>/4 84.5 ns 136 ns 0.62
and the very goods
TrivialReverseAddition/4 352 ns 172 ns 2.04
TrivialReverseSubtraction/4 345 ns 168 ns 2.05
TrivialAssignment<long long>/1 49.0 ns 23.4 ns 2.09
TrivialAssignment<mpz_class>/1 49.6 ns 21.4 ns 2.31
TrivialReverseMultiplication/2 314 ns 135 ns 2.32
TrivialReverseDivision/4 311 ns 130 ns 2.39
TrivialSubtraction<renf_elem_class>/4 335 ns 133 ns 2.51
TrivialAddition<renf_elem_class>/4 333 ns 128 ns 2.60
TrivialReverseSubtraction/2 288 ns 109 ns 2.64
TrivialAssignment<int>/1 41.3 ns 15.4 ns 2.68
TrivialReverseAddition/2 287 ns 104 ns 2.75
TrivialAssignment<long>/1 41.3 ns 14.4 ns 2.86
TrivialSubtraction<renf_elem_class>/2 281 ns 50.7 ns 5.54
TrivialAddition<renf_elem_class>/2 280 ns 49.6 ns 5.64
TrivialReverseDivision/2 313 ns 50.3 ns 6.22
TrivialMultiplication<renf_elem_class>/4 391 ns 60.4 ns 6.47
TrivialMultiplication<renf_elem_class>/2 323 ns 45.2 ns 7.14
TrivialDivision<renf_elem_class>/4 575 ns 73.4 ns 7.83
TrivialDivision<renf_elem_class>/2 984 ns 76.1 ns 12.93
As discussed on zoom it would be nice to open an issue for the suspicious ones such as ConstructGenerator
you mentioned.
I tried to improve the performance of some typical C++ operations.
Below are the timings. Unfortunately, there is a lot of noise in these measurements.