Code coverage tests

This page documents the degree to which the PARI/GP source code is tested by our public test suite, distributed with the source distribution in directory src/test/. This is measured by the gcov utility; we then process gcov output using the lcov frond-end.

We test a few variants depending on Configure flags on the pari.math.u-bordeaux1.fr machine (x86_64 architecture), and agregate them in the final report:

The target is 90% coverage for all mathematical modules (given that branches depending on DEBUGLEVEL or DEBUGMEM are not covered). This script is run to produce the results below.

LCOV - code coverage report
Current view: top level - basemath - Flx.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 17713-366b110) Lines: 2293 2443 93.9 %
Date: 2015-04-01 Functions: 284 297 95.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1173 1397 84.0 %

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 59422
Fl2_inv_pre 25330
Fl2_mul_pre 503298
Fl2_norm_pre 45492
Fl2_pow_pre 89523
Fl2_sqr_pre 745307
Fl2_sqrtn_pre 11282
Fl_Flxq_log 10304
Fl_to_Flx 720649
Flc_to_ZC 3539886
Flm_to_FlxV 175153
Flm_to_FlxX 13666
Flm_to_ZM 351773
FlvV_polint_tree 121672
Flv_FlvV_polint 5768
Flv_inv 16266
Flv_inv_indir 7985
Flv_inv_inplace 0
Flv_inv_pre 0
Flv_inv_pre_indir 51515
Flv_inv_pre_inplace 43234
Flv_polint 10498
Flv_producttree 16266
Flv_roots_to_pol 125051
Flv_to_Flx 1167209
Flv_to_ZV 426
FlxC_to_ZXC 923
FlxM_Flx_add_shallow 84
FlxM_Flx_mul2 1787
FlxM_mul2 1580
FlxM_pack_ZM 257
FlxM_to_ZXM 385
FlxT_red 143075
FlxV_Flc_mul 12124
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 278085
FlxV_to_ZXV 82255
FlxXV_to_FlxM 132
FlxX_Fl_mul 228
FlxX_Flx_add 326
FlxX_Flx_mul 293303
FlxX_add 231247
FlxX_double 424
FlxX_lgrenormalizespec 867611
FlxX_neg 228
FlxX_recipspec 703008
FlxX_renormalize 3974323
FlxX_shift 0
FlxX_sub 48123
FlxX_subspec 303498
FlxX_swap 9772
FlxX_to_Flm 8078
FlxX_to_FlxC 1828
FlxX_to_ZXX 664734
FlxX_triple 98
FlxY_Flx_div 4766
FlxY_FlxqV_evalx 45236
FlxY_Flxq_evalx 0
FlxY_eval_powers_pre 177912
FlxY_evalx 334828
FlxY_evalx_powers_pre 274117
FlxYqq_mul 1960
FlxYqq_pow 1946
FlxYqq_redswap 4886
FlxYqq_sqr 2926
Flx_Fl2_eval_pre 40803
Flx_Fl_add 777500
Flx_Fl_mul 15509735
Flx_Fl_mul_to_monic 1526270
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 16266
Flx_FlxM_qmul 1577
Flx_FlxqV_eval 1367105
Flx_Flxq_eval 595497
Flx_Frobenius 2868046
Flx_add 15187602
Flx_addmulmul 3580
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 21634
Flx_deriv 4241570
Flx_div_by_X_x 2438662
Flx_divrem 58251363
Flx_divrem_Barrett_noGC 1334361
Flx_divrem_Barrettspec 1334514
Flx_divrem_basecase 20737441
Flx_double 1766798
Flx_equal 24433261
Flx_eval 8714341
Flx_eval2BILspec 904395
Flx_eval_powers_pre 1171950
Flx_eval_pre 8714341
Flx_eval_pre_i 8632497
Flx_extgcd 2926895
Flx_extgcd_basecase 2926895
Flx_extgcd_halfgcd 3
Flx_extresultant 144692
Flx_gcd 15647853
Flx_gcd_basecase 14967351
Flx_get_red 32007907
Flx_halfgcd 6121
Flx_halfgcd_basecase 4363
Flx_halfgcd_i 6121
Flx_halfgcd_split 1758
Flx_inflate 24705
Flx_invBarrett 101163
Flx_invBarrett_Newton 1787
Flx_invBarrett_basecase 99360
Flx_is_l_pow 4781
Flx_is_smooth 88234
Flx_is_smooth_squarefree 93015
Flx_is_squarefree 3388794
Flx_lgrenormalizespec 2696154
Flx_matFrobenius 274277
Flx_mod_Xn1 19
Flx_mod_Xnm1 93186
Flx_mul 111679065
Flx_mullimb 161646788
Flx_mullimb_ok 431994674
Flx_mulspec 114384784
Flx_mulspec_basecase 82593792
Flx_mulspec_halfmulii 21418253
Flx_mulspec_mulii 1288236
Flx_mulspec_mulii_inflate 392797
Flx_multhreshold 32091719
Flx_neg 990554
Flx_neg_inplace 1838
Flx_negspec 990550
Flx_normalize 9752121
Flx_powu 4950
Flx_recip 0
Flx_recipspec 2670777
Flx_red 220894
Flx_rem 236111311
Flx_rem_basecase 207101527
Flx_renormalize 661636188
Flx_rescale 203
Flx_resultant 1432963
Flx_shift 1337220
Flx_shiftip 161097709
Flx_splitting 73266
Flx_sqr 55437409
Flx_sqrspec 55437551
Flx_sqrspec_basecase 24841128
Flx_sqrspec_halfsqri 16666389
Flx_sqrspec_sqri 13790513
Flx_sqrspec_sqri_inflate 106199
Flx_sub 44462725
Flx_subspec 1334510
Flx_to_Flv 3307233
Flx_to_FlxX 0
Flx_to_ZX 4985753
Flx_to_ZX_inplace 42648921
Flx_to_int_halfspec 59509261
Flx_triple 623387
Flx_val 372989
Flx_valrem 1884560
FlxqM_mul_Kronecker 142
FlxqV_dotproduct 56952
FlxqV_roots_to_pol 346
FlxqXQV_autpow 14905
FlxqXQV_autsum 11609
FlxqXQ_autpow_mul 615
FlxqXQ_autpow_sqr 15871
FlxqXQ_autsum_mul 14375
FlxqXQ_autsum_sqr 13434
FlxqXQ_div 1201
FlxqXQ_inv 1201
FlxqXQ_invsafe 1201
FlxqXQ_matrix_pow 132
FlxqXQ_mul 18076
FlxqXQ_mul_mg 150997
FlxqXQ_pow 38123
FlxqXQ_powers 28751
FlxqXQ_sqr 1071
FlxqXQ_sqr_mg 204124
FlxqXV_prod 346
FlxqX_FlxqXQV_eval 45570
FlxqX_FlxqXQ_eval 16486
FlxqX_Flxq_mul 8730
FlxqX_Flxq_mul_to_monic 27279
FlxqX_divrem 498730
FlxqX_extgcd 7361
FlxqX_gcd 31035
FlxqX_invBarrett 128762
FlxqX_invBarrett_Newton 96012
FlxqX_invBarrett_basecase 32601
FlxqX_mul 213895
FlxqX_mulspec 815270
FlxqX_normalize 0
FlxqX_pow 5075
FlxqX_red 199372
FlxqX_rem_Barrett 303498
FlxqX_safegcd 4291
FlxqX_sqr 213217
Flxq_autpow 282042
Flxq_autpow_mul 10666
Flxq_autpow_sqr 346926
Flxq_autsum 283975
Flxq_autsum_mul 565293
Flxq_autsum_sqr 334309
Flxq_charpoly 201
Flxq_conjvec 20
Flxq_div 1716576
Flxq_easylog 291719
Flxq_inv 2806814
Flxq_invsafe 2835294
Flxq_is2npower 140
Flxq_issquare 298055
Flxq_log 30988
Flxq_lroot 12488
Flxq_lroot_fast 56952
Flxq_matrix_pow 276139
Flxq_minpoly 174
Flxq_mul 68544787
Flxq_norm 311311
Flxq_order 12185
Flxq_pow 25300656
Flxq_pow_Frobenius 24788121
Flxq_powers 962633
Flxq_powu 3981331
Flxq_sqr 55140103
Flxq_sqrt 143214
Flxq_sqrtn 149638
Flxq_trace 1623
Fly_to_FlxY 1675
Kronecker_to_FlxqX 1242382
RgX_to_Flx 126
Rg_to_F2 1431205
Rg_to_Fl 19504558
Rg_to_Flxq 888467
ZM_unpack_FlxqM 142
ZXT_to_FlxT 1033052
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 759039
ZX_to_Flx 107201824
Z_mod2BIL_Flx 498997
Z_mod2BIL_Flx_2 501883
Z_mod2BIL_Flx_3 4115
Z_to_Flx 1708054
_Fl2_mul 284835
_Fl2_pow 89523
_Fl2_rand 17008
_Fl2_sqr 745307
_Flx_mul 1108318
_FlxqXQ_add 231247
_FlxqXQ_cmul 293303
_FlxqXQ_mul 150997
_FlxqXQ_one 138325
_FlxqXQ_red 113861
_FlxqXQ_sqr 204124
_FlxqXQ_zero 0
_FlxqX_mul 1352
_FlxqX_sqr 5096
_Flxq_add 7706809
_Flxq_cmul 9165538
_Flxq_equal0 60322
_Flxq_inv 2797
_Flxq_mul 60704251
_Flxq_neg 2874
_Flxq_one 5112740
_Flxq_pow 24771365
_Flxq_rand 292767
_Flxq_red 4744298
_Flxq_rmul 495204
_Flxq_s 11370
_Flxq_sqr 49901422
_Flxq_zero 32236
bounded_order 625901
gener_Flxq 8461
get_Flx_degree 29985072
get_Flx_mod 3814993
get_Flx_red 294362671
get_Flx_var 10453269
get_Flxq_field 587
get_Flxq_star 190963
int_to_Flx 15078752
int_to_Flx_half 38088960
kron_pack_Flx_spec 6300
kron_pack_Flx_spec_2 6300
kron_pack_Flx_spec_3 6300
kron_pack_Flx_spec_half 5526
kron_unpack_Flx 3500
kron_unpack_Flx_2 3500
kron_unpack_Flx_3 3500
matid2_FlxM 10
maxlengthcoeffpol 193200134
mkF2 1343028
pol1_FlxX 145686
polx_FlxX 26821
random_Flx 677137
zxX_to_FlxX 78755
zxX_to_Kronecker 641007
zxX_to_Kronecker_spec 2271547
zx_to_Flx 257717

Generated by: LCOV version 1.9