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-bordeaux.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.10.0 lcov report (development 22303-eb3e11d) Lines: 2831 3075 92.1 %
Date: 2018-04-21 06:16:28 Functions: 344 373 92.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 376627
Fl2_inv_pre 165923
Fl2_mul_pre 1670294
Fl2_norm_pre 65852
Fl2_pow_pre 563502
Fl2_sqr_pre 4215584
Fl2_sqrtn_pre 64119
Fl_Flxq_log 10893
Fl_to_Flx 9676473
Flc_to_ZC 19340382
Flc_to_ZC_inplace 123364
Flm_to_FlxV 1288
Flm_to_FlxX 31014
Flm_to_ZM 8271900
Flm_to_ZM_inplace 56166
FlvV_polint_tree 739835
Flv_Flm_polint 35059
Flv_inv 49967
Flv_invVandermonde 2982
Flv_inv_indir 29052
Flv_inv_inplace 0
Flv_inv_pre 10710
Flv_inv_pre_indir 10243032
Flv_inv_pre_inplace 10211408
Flv_polint 11924
Flv_prod 0
Flv_prod_pre 2933
Flv_producttree 49967
Flv_roots_to_pol 614457
Flv_to_Flx 136335
Flv_to_ZV 128169
FlxC_eval_powers_pre 162999
FlxC_neg 6433
FlxC_sub 158802
FlxC_to_ZXC 40481
FlxM_Flx_add_shallow 0
FlxM_Flx_mul2 2845
FlxM_eval_powers_pre 12484
FlxM_mul2 1640
FlxM_neg 1813
FlxM_pack_ZM 21002
FlxM_pack_ZM_bits 3825
FlxM_sub 22470
FlxM_to_ZXM 4403
FlxT_red 318729
FlxV_Flc_mul 0
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 32865
FlxV_to_ZXV 161353
FlxXC_to_ZXXC 1372
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 0
FlxX_Fl_mul 212
FlxX_Flx_add 392
FlxX_Flx_mul 653292
FlxX_Flx_sub 10506
FlxX_add 537516
FlxX_deriv 62327
FlxX_double 212
FlxX_lgrenormalizespec 180641
FlxX_neg 1146
FlxX_recipspec 131400
FlxX_renormalize 8615586
FlxX_shift 0
FlxX_sub 108600
FlxX_subspec 63635
FlxX_swap 19096
FlxX_to_Flm 12140
FlxX_to_Flx 41082
FlxX_to_FlxC 0
FlxX_to_ZXX 417993
FlxX_triple 0
FlxY_Flx_div 9442
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 119840
FlxY_Flxq_evalx 0
FlxY_degreex 1816916
FlxY_eval_powers_pre 5302436
FlxY_evalx 249658
FlxY_evalx_powers_pre 7911322
FlxYqq_mul 2926
FlxYqq_pow 3570
FlxYqq_redswap 9548
FlxYqq_sqr 6622
Flx_Fl2_eval_pre 10108
Flx_Fl_add 7263257
Flx_Fl_mul 37310250
Flx_Fl_mul_to_monic 6556499
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 49964
Flx_FlxM_qmul 1637
Flx_FlxqV_eval 3531464
Flx_Flxq_eval 999132
Flx_Frobenius 3783835
Flx_add 51487739
Flx_addmulmul 5696
Flx_addshift 3542
Flx_addspec 6837
Flx_deflate 72478
Flx_deriv 5751385
Flx_diff1 11851
Flx_digits 0
Flx_div_by_X_x 28705997
Flx_divrem 63142437
Flx_divrem_Barrett_noGC 2067344
Flx_divrem_Barrettspec 2072744
Flx_divrem_basecase 26081328
Flx_double 1876789
Flx_equal 18947917
Flx_eval 3386571
Flx_eval2BILspec 39446883
Flx_eval_powers_pre 30077069
Flx_eval_pre 3392030
Flx_eval_pre_i 3318635
Flx_extgcd 3868312
Flx_extgcd_basecase 3868312
Flx_extgcd_halfgcd 3
Flx_extresultant 112797
Flx_gcd 29415173
Flx_gcd_basecase 28706482
Flx_get_red 39869922
Flx_halfgcd 180340
Flx_halfgcd_basecase 177521
Flx_halfgcd_i 180340
Flx_halfgcd_split 2819
Flx_halve 12972
Flx_inflate 44310
Flx_invBarrett 89524
Flx_invBarrett_Newton 4349
Flx_invBarrett_basecase 85174
Flx_is_l_pow 5013
Flx_is_smooth 87821
Flx_is_smooth_squarefree 92834
Flx_is_squarefree 3490804
Flx_lgrenormalizespec 4210184
Flx_matFrobenius 16856
Flx_mod_Xn1 4816
Flx_mod_Xnm1 4919261
Flx_mul 247618419
Flx_mullimb 678494880
Flx_mullimb_ok 663650599
Flx_mulspec 251894442
Flx_mulspec_basecase 174227824
Flx_mulspec_halfmulii 9024138
Flx_mulspec_mulii 5917456
Flx_mulspec_mulii_inflate 10217270
Flx_mulspec_quartmulii 34803419
Flx_multhreshold 39844033
Flx_neg 1104836
Flx_neg_inplace 1531
Flx_negspec 1104834
Flx_normalize 37843383
Flx_powu 9586
Flx_recip 0
Flx_recipspec 5196507
Flx_red 386141
Flx_rem 499363299
Flx_rem_basecase 434300578
Flx_renormalize 1384901732
Flx_rescale 701
Flx_resultant 1938075
Flx_shift 5190183
Flx_shiftip 415386043
Flx_splitting 149939
Flx_sqr 182386169
Flx_sqrspec 182497399
Flx_sqrspec_basecase 98556916
Flx_sqrspec_halfsqri 12169998
Flx_sqrspec_quartsqri 10461959
Flx_sqrspec_sqri 42077459
Flx_sqrspec_sqri_inflate 19026081
Flx_sub 70870420
Flx_subspec 2072741
Flx_to_Flv 3556622
Flx_to_FlxX 26404
Flx_to_ZX 43159400
Flx_to_ZX_inplace 43713710
Flx_to_int_halfspec 30401060
Flx_to_int_quartspec 80068543
Flx_translate1 11851
Flx_triple 672818
Flx_val 3112875
Flx_valrem 22161923
Flxn_inv 112
Flxn_mul 677336
Flxn_red_shallow 686
FlxqC_Flxq_mul 71239
FlxqM_Flxq_mul 11844
FlxqM_mul_Kronecker 12427
FlxqV_dotproduct 113505
FlxqV_roots_to_deg1 990
FlxqV_roots_to_pol 990
FlxqXM_FlxqX_mul2 384
FlxqXM_mul2 360
FlxqXQ_autpow 61266
FlxqXQ_autpow_mul 1084
FlxqXQ_autpow_sqr 62414
FlxqXQ_autsum 10791
FlxqXQ_autsum_mul 28171
FlxqXQ_autsum_sqr 16869
FlxqXQ_auttrace 314
FlxqXQ_auttrace_mul 20
FlxqXQ_auttrace_sqr 20
FlxqXQ_div 0
FlxqXQ_inv 14
FlxqXQ_invsafe 14
FlxqXQ_matrix_pow 0
FlxqXQ_minpoly 132
FlxqXQ_mul 310976
FlxqXQ_pow 42
FlxqXQ_powers 28942
FlxqXQ_powu 72488
FlxqXQ_sqr 190759
FlxqXQ_transmul 632
FlxqXQ_transmul_init 320
FlxqXV_prod 1002
FlxqX_FlxqXM_qmul 360
FlxqX_FlxqXQV_eval 57157
FlxqX_FlxqXQ_eval 63727
FlxqX_Flxq_mul 8064
FlxqX_Flxq_mul_to_monic 224477
FlxqX_addmulmul 768
FlxqX_divrem 248128
FlxqX_divrem_Barrett_noGC 53342
FlxqX_divrem_Barrettspec 63635
FlxqX_divrem_basecase 1206872
FlxqX_dotproduct 968
FlxqX_extgcd 5775
FlxqX_extgcd_basecase 5775
FlxqX_extgcd_halfgcd 0
FlxqX_gcd 154518
FlxqX_gcd_basecase 149918
FlxqX_get_red 297011
FlxqX_halfgcd 904
FlxqX_halfgcd_basecase 541
FlxqX_halfgcd_i 904
FlxqX_halfgcd_split 363
FlxqX_invBarrett 4160
FlxqX_invBarrett_Newton 3170
FlxqX_invBarrett_basecase 990
FlxqX_mul 425489
FlxqX_mulspec 163814
FlxqX_normalize 172285
FlxqX_powu 10227
FlxqX_red 982412
FlxqX_rem 1236974
FlxqX_safegcd 9491
FlxqX_sqr 208749
FlxqXn_mul 486
Flxq_autpow 304461
Flxq_autpow_mul 20534
Flxq_autpow_sqr 377721
Flxq_autsum 306048
Flxq_autsum_mul 612961
Flxq_autsum_sqr 364928
Flxq_auttrace 214379
Flxq_auttrace_mul 204672
Flxq_auttrace_sqr 161305
Flxq_charpoly 27
Flxq_conjvec 20
Flxq_div 1942980
Flxq_easylog 320389
Flxq_inv 3684365
Flxq_invsafe 3738257
Flxq_is2npower 280
Flxq_issquare 358983
Flxq_log 35090
Flxq_lroot 25032
Flxq_lroot_fast 113505
Flxq_matrix_pow 32865
Flxq_minpoly 160779
Flxq_mul 113862930
Flxq_norm 385640
Flxq_order 12580
Flxq_pow 17790511
Flxq_pow_Frobenius 17558913
Flxq_powers 3129409
Flxq_powu 10824708
Flxq_sqr 181757833
Flxq_sqrt 160874
Flxq_sqrtn 168787
Flxq_trace 3310
Flxq_transmul 886594
Flxq_transmul_init 349658
Fly_to_FlxY 3090
Kronecker_to_FlxqX 798052
RgX_to_Flx 1816250
RgX_to_FlxqX 30519
Rg_to_F2 1099256
Rg_to_Fl 41211569
Rg_to_Flxq 1803409
ZM_unpack_FlxqM 10501
ZM_unpack_FlxqM_bits 1926
ZXT_to_FlxT 1408607
ZXV_to_FlxV 0
ZXXT_to_FlxXT 313
ZXXV_to_FlxXV 12
ZXX_to_FlxX 477017
ZX_to_Flx 178467764
Z_mod2BIL_Flx 29256046
Z_mod2BIL_Flx_2 29236203
Z_mod2BIL_Flx_3 11236
Z_to_Flx 1068261
_Fl2_mul 1642484
_Fl2_pow 563495
_Fl2_rand 95659
_Fl2_sqr 4215288
_Flx_add 24100780
_Flx_divrem 0
_Flx_mul 9070229
_Flx_sqr 0
_Flx_sub 0
_FlxqXQ_add 532408
_FlxqXQ_cmul 653292
_FlxqXQ_mul 280470
_FlxqXQ_one 360922
_FlxqXQ_red 349342
_FlxqXQ_sqr 190360
_FlxqXQ_sub 2268
_FlxqXQ_zero 184
_FlxqX_mul 2484
_FlxqX_sqr 10255
_Flxq_cmul 28384871
_Flxq_equal0 42777
_Flxq_inv 6118
_Flxq_mul 96060672
_Flxq_neg 6517
_Flxq_one 12070066
_Flxq_pow 17540356
_Flxq_rand 317451
_Flxq_red 10341369
_Flxq_rmul 111125
_Flxq_s 12761
_Flxq_sqr 175909038
_Flxq_zero 193375
bounded_order 661913
gener_Flxq 9224
get_Flx_red 562997371
get_FlxqXQ_algebra 212
get_FlxqX_red 1485422
get_Flxq_field 6958
get_Flxq_star 213342
int_to_Flx 48227510
int_to_Flx_half 21399526
int_to_Flx_quart 45265923
kron_pack_Flx_spec 21790
kron_pack_Flx_spec_2 0
kron_pack_Flx_spec_3 0
kron_pack_Flx_spec_bits 98876
kron_pack_Flx_spec_half 356149
kron_unpack_Flx 14740
kron_unpack_Flx_2 0
kron_unpack_Flx_3 0
kron_unpack_Flx_bits_narrow 53174
kron_unpack_Flx_bits_wide 7000
matid2_FlxM 3
matid2_FlxXM 0
maxlengthcoeffpol 456007048
mkF2 6220554
monomial_Flx 183047
pol1_FlxX 873594
polx_FlxX 6555
polxn_FlxX 160
random_Flx 1083225
random_FlxqX 474
zero_FlxC 3031
zero_FlxM 3017
zxX_to_FlxX 1637255
zxX_to_Kronecker 1059727
zxX_to_Kronecker_spec 1387355
zx_to_Flx 3699673

Generated by: LCOV version 1.11