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 21196-f12677d) Lines: 2887 3138 92.0 %
Date: 2017-10-22 06:23:24 Functions: 341 370 92.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 673345
Fl2_inv_pre 290861
Fl2_mul_pre 2890722
Fl2_norm_pre 106939
Fl2_pow_pre 997908
Fl2_sqr_pre 7355434
Fl2_sqrtn_pre 107664
Fl_Flxq_log 10958
Fl_to_Flx 9215860
Flc_to_ZC 19409627
Flm_to_FlxV 281569
Flm_to_FlxX 21197
Flm_to_ZM 8222550
FlvV_polint_tree 719279
Flv_Flm_polint 33390
Flv_inv 48090
Flv_invVandermonde 2039
Flv_inv_indir 27682
Flv_inv_inplace 0
Flv_inv_pre 9720
Flv_inv_pre_indir 366817
Flv_inv_pre_inplace 336693
Flv_polint 12664
Flv_prod 0
Flv_prod_pre 2975
Flv_producttree 48091
Flv_roots_to_pol 596953
Flv_to_Flx 804861
Flv_to_ZV 127589
FlxC_eval_powers_pre 41416
FlxC_neg 5481
FlxC_sub 148505
FlxC_to_ZXC 21072
FlxM_Flx_add_shallow 0
FlxM_Flx_mul2 2221
FlxM_eval_powers_pre 6948
FlxM_mul2 1632
FlxM_neg 1750
FlxM_pack_ZM 17808
FlxM_pack_ZM_bits 1797
FlxM_sub 20048
FlxM_to_ZXM 2576
FlxT_red 319282
FlxV_Flc_mul 0
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 301351
FlxV_to_ZXV 160488
FlxXC_to_ZXXC 938
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 0
FlxX_Fl_mul 205
FlxX_Flx_add 392
FlxX_Flx_mul 618383
FlxX_Flx_sub 10504
FlxX_add 503957
FlxX_deriv 60031
FlxX_double 205
FlxX_lgrenormalizespec 137801
FlxX_neg 1265
FlxX_recipspec 105192
FlxX_renormalize 7574461
FlxX_shift 0
FlxX_sub 108586
FlxX_subspec 51056
FlxX_swap 14756
FlxX_to_Flm 8899
FlxX_to_Flx 30910
FlxX_to_FlxC 0
FlxX_to_ZXX 425690
FlxX_triple 0
FlxY_Flx_div 9439
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 118504
FlxY_Flxq_evalx 0
FlxY_degreex 1013016
FlxY_eval_powers_pre 1934784
FlxY_evalx 261482
FlxY_evalx_powers_pre 3030603
FlxYqq_mul 2422
FlxYqq_pow 2870
FlxYqq_redswap 7378
FlxYqq_sqr 4956
Flx_Fl2_eval_pre 10108
Flx_Fl_add 8085045
Flx_Fl_mul 29056809
Flx_Fl_mul_to_monic 7278344
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 48095
Flx_FlxM_qmul 1629
Flx_FlxqV_eval 2774515
Flx_Flxq_eval 695257
Flx_Frobenius 3629981
Flx_add 43347583
Flx_addmulmul 4448
Flx_addshift 3682
Flx_addspec 7117
Flx_deflate 71234
Flx_deriv 5698920
Flx_diff1 9583
Flx_digits 0
Flx_div_by_X_x 28452423
Flx_divrem 60080915
Flx_divrem_Barrett_noGC 1736703
Flx_divrem_Barrettspec 1742125
Flx_divrem_basecase 22877296
Flx_double 1800086
Flx_equal 24020421
Flx_eval 3587915
Flx_eval2BILspec 39324469
Flx_eval_powers_pre 14571813
Flx_eval_pre 3593061
Flx_eval_pre_i 3526523
Flx_extgcd 3568222
Flx_extgcd_basecase 3568222
Flx_extgcd_halfgcd 3
Flx_extresultant 109136
Flx_gcd 28676825
Flx_gcd_basecase 28085079
Flx_get_red 41518959
Flx_halfgcd 34947
Flx_halfgcd_basecase 32752
Flx_halfgcd_i 34947
Flx_halfgcd_split 2195
Flx_halve 12784
Flx_inflate 45801
Flx_invBarrett 77909
Flx_invBarrett_Newton 4348
Flx_invBarrett_basecase 73559
Flx_is_l_pow 5072
Flx_is_smooth 88779
Flx_is_smooth_squarefree 93858
Flx_is_squarefree 3470318
Flx_lgrenormalizespec 3549007
Flx_matFrobenius 291887
Flx_mod_Xn1 12
Flx_mod_Xnm1 4992976
Flx_mul 242555419
Flx_mullimb 737657398
Flx_mullimb_ok 738372711
Flx_mulspec 246195415
Flx_mulspec_basecase 181530185
Flx_mulspec_halfmulii 7561659
Flx_mulspec_mulii 6002342
Flx_mulspec_mulii_inflate 10160609
Flx_mulspec_quartmulii 32123557
Flx_multhreshold 41406671
Flx_neg 1051182
Flx_neg_inplace 1601
Flx_negspec 1051184
Flx_normalize 42610033
Flx_powu 9587
Flx_recip 0
Flx_recipspec 3667415
Flx_red 385159
Flx_rem 517903962
Flx_rem_basecase 458556681
Flx_renormalize 1386549846
Flx_rescale 580
Flx_resultant 1939480
Flx_shift 2948279
Flx_shiftip 435715906
Flx_splitting 149998
Flx_sqr 199453355
Flx_sqrspec 199616134
Flx_sqrspec_basecase 106450507
Flx_sqrspec_halfsqri 15454933
Flx_sqrspec_quartsqri 10599740
Flx_sqrspec_sqri 47964827
Flx_sqrspec_sqri_inflate 19017135
Flx_sub 56204114
Flx_subspec 1742105
Flx_to_Flv 4881308
Flx_to_FlxX 25291
Flx_to_ZX 41466149
Flx_to_ZX_inplace 43605434
Flx_to_int_halfspec 30740505
Flx_to_int_quartspec 74846877
Flx_translate1 9583
Flx_triple 635520
Flx_val 1594185
Flx_valrem 22324753
Flxn_inv 210
Flxn_mul 139558
Flxn_red_shallow 1162
FlxqC_Flxq_mul 67725
FlxqM_Flxq_mul 10689
FlxqM_mul_Kronecker 9816
FlxqV_dotproduct 113505
FlxqV_roots_to_pol 962
FlxqXM_FlxqX_mul2 384
FlxqXM_mul2 360
FlxqXQ_autpow 60566
FlxqXQ_autpow_mul 853
FlxqXQ_autpow_sqr 61357
FlxqXQ_autsum 10775
FlxqXQ_autsum_mul 28147
FlxqXQ_autsum_sqr 16842
FlxqXQ_auttrace 321
FlxqXQ_auttrace_mul 20
FlxqXQ_auttrace_sqr 20
FlxqXQ_div 0
FlxqXQ_inv 14
FlxqXQ_invsafe 14
FlxqXQ_matrix_pow 0
FlxqXQ_minpoly 139
FlxqXQ_mul 300791
FlxqXQ_pow 42
FlxqXQ_powers 28841
FlxqXQ_powu 71758
FlxqXQ_sqr 183983
FlxqXQ_transmul 639
FlxqXQ_transmul_init 320
FlxqXV_prod 974
FlxqX_FlxqXM_qmul 360
FlxqX_FlxqXQV_eval 57095
FlxqX_FlxqXQ_eval 62439
FlxqX_Flxq_mul 8071
FlxqX_Flxq_mul_to_monic 208150
FlxqX_addmulmul 768
FlxqX_divrem 252352
FlxqX_divrem_Barrett_noGC 40749
FlxqX_divrem_Barrettspec 51056
FlxqX_divrem_basecase 1140593
FlxqX_dotproduct 968
FlxqX_extgcd 5915
FlxqX_extgcd_basecase 5915
FlxqX_extgcd_halfgcd 0
FlxqX_gcd 151380
FlxqX_gcd_basecase 147318
FlxqX_get_red 294015
FlxqX_halfgcd 904
FlxqX_halfgcd_basecase 541
FlxqX_halfgcd_i 904
FlxqX_halfgcd_split 363
FlxqX_invBarrett 3131
FlxqX_invBarrett_Newton 2120
FlxqX_invBarrett_basecase 997
FlxqX_mul 417705
FlxqX_mulspec 126672
FlxqX_normalize 169054
FlxqX_powu 10227
FlxqX_red 958902
FlxqX_rem 1149863
FlxqX_safegcd 9029
FlxqX_sqr 200300
FlxqXn_mul 500
Flxq_autpow 304024
Flxq_autpow_mul 20497
Flxq_autpow_sqr 377007
Flxq_autsum 306594
Flxq_autsum_mul 610834
Flxq_autsum_sqr 363861
Flxq_auttrace 43258
Flxq_auttrace_mul 57390
Flxq_auttrace_sqr 45807
Flxq_charpoly 27
Flxq_conjvec 20
Flxq_div 1823521
Flxq_easylog 321467
Flxq_inv 3404196
Flxq_invsafe 3443327
Flxq_is2npower 280
Flxq_issquare 352195
Flxq_log 35174
Flxq_lroot 25032
Flxq_lroot_fast 113505
Flxq_matrix_pow 301351
Flxq_minpoly 25290
Flxq_mul 125269223
Flxq_norm 379855
Flxq_order 12296
Flxq_pow 22194243
Flxq_pow_Frobenius 21963681
Flxq_powers 2493094
Flxq_powu 11428756
Flxq_sqr 198870912
Flxq_sqrt 157528
Flxq_sqrtn 165014
Flxq_trace 3114
Flxq_transmul 152449
Flxq_transmul_init 59882
Fly_to_FlxY 3091
Kronecker_to_FlxqX 744677
RgX_to_Flx 1268444
RgX_to_FlxqX 21817
Rg_to_F2 1657143
Rg_to_Fl 30781885
Rg_to_Flxq 1462014
ZM_unpack_FlxqM 8904
ZM_unpack_FlxqM_bits 912
ZXT_to_FlxT 1335397
ZXV_to_FlxV 0
ZXXT_to_FlxXT 285
ZXXV_to_FlxXV 12
ZXX_to_FlxX 480339
ZX_to_Flx 175669848
Z_mod2BIL_Flx 29192395
Z_mod2BIL_Flx_2 29167306
Z_mod2BIL_Flx_3 14082
Z_to_Flx 1268486
_Fl2_mul 2862956
_Fl2_pow 997902
_Fl2_rand 162313
_Fl2_sqr 7355250
_Flx_add 17437297
_Flx_divrem 0
_Flx_mul 8955308
_Flx_sqr 0
_Flx_sub 0
_FlxqXQ_add 498849
_FlxqXQ_cmul 618383
_FlxqXQ_mul 270225
_FlxqXQ_one 351937
_FlxqXQ_red 340666
_FlxqXQ_sqr 183612
_FlxqXQ_sub 2338
_FlxqXQ_zero 170
_FlxqX_mul 2330
_FlxqX_sqr 10255
_Flxq_cmul 20704811
_Flxq_equal0 29778
_Flxq_inv 5544
_Flxq_mul 108476601
_Flxq_neg 5887
_Flxq_one 9175077
_Flxq_pow 21945102
_Flxq_rand 315189
_Flxq_red 7817991
_Flxq_rmul 56833
_Flxq_s 11935
_Flxq_sqr 193239227
_Flxq_zero 190553
bounded_order 661280
gener_Flxq 9196
get_Flx_red 578588427
get_FlxqXQ_algebra 205
get_FlxqX_red 1402535
get_Flxq_field 5796
get_Flxq_star 210671
int_to_Flx 54223839
int_to_Flx_half 23205969
int_to_Flx_quart 42723642
kron_pack_Flx_spec 20833
kron_pack_Flx_spec_2 0
kron_pack_Flx_spec_3 0
kron_pack_Flx_spec_bits 48380
kron_pack_Flx_spec_half 328775
kron_unpack_Flx 14200
kron_unpack_Flx_2 0
kron_unpack_Flx_3 0
kron_unpack_Flx_bits_narrow 15992
kron_unpack_Flx_bits_wide 7000
matid2_FlxM 3
matid2_FlxXM 0
maxlengthcoeffpol 477756966
mkF2 10816656
monomial_Flx 32811
pol1_FlxX 864728
polx_FlxX 5071
polxn_FlxX 160
random_Flx 759583
random_FlxqX 481
zero_FlxC 2590
zero_FlxM 2576
zxX_to_FlxX 837060
zxX_to_Kronecker 1035710
zxX_to_Kronecker_spec 1289054
zx_to_Flx 2853809

Generated by: LCOV version 1.11