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 20459-9710128) Lines: 2703 3033 89.1 %
Date: 2017-04-28 05:33:48 Functions: 329 364 90.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 478859
Fl2_inv_pre 207296
Fl2_mul_pre 2046217
Fl2_norm_pre 82951
Fl2_pow_pre 709766
Fl2_sqr_pre 5184793
Fl2_sqrtn_pre 76405
Fl_Flxq_log 8557
Fl_to_Flx 7281782
Flc_to_ZC 4106952
Flm_to_FlxV 217772
Flm_to_FlxX 15539
Flm_to_ZM 772584
FlvV_polint_tree 551595
Flv_Flm_polint 25521
Flv_inv 29139
Flv_invVandermonde 0
Flv_inv_indir 24394
Flv_inv_inplace 0
Flv_inv_pre 6455
Flv_inv_pre_indir 247551
Flv_inv_pre_inplace 236355
Flv_polint 3618
Flv_prod 0
Flv_prod_pre 1614
Flv_producttree 29139
Flv_roots_to_pol 461481
Flv_to_Flx 530594
Flv_to_ZV 1386
FlxC_eval_powers_pre 0
FlxC_neg 2394
FlxC_sub 123948
FlxC_to_ZXC 19800
FlxM_Flx_add_shallow 114
FlxM_Flx_mul2 2209
FlxM_eval_powers_pre 0
FlxM_mul2 1666
FlxM_neg 402
FlxM_pack_ZM 9528
FlxM_pack_ZM_bits 3960
FlxM_sub 12720
FlxM_to_ZXM 522
FlxT_red 153294
FlxV_Flc_mul 0
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 234584
FlxV_to_ZXV 136428
FlxXC_to_ZXXC 330
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 384
FlxX_Fl_mul 180
FlxX_Flx_add 8489
FlxX_Flx_mul 531054
FlxX_add 435838
FlxX_deriv 50742
FlxX_double 180
FlxX_lgrenormalizespec 119004
FlxX_neg 1098
FlxX_recipspec 84294
FlxX_renormalize 5957883
FlxX_shift 0
FlxX_sub 91932
FlxX_subspec 41004
FlxX_swap 10512
FlxX_to_Flm 6256
FlxX_to_FlxC 10842
FlxX_to_ZXX 360108
FlxX_triple 0
FlxY_Flx_div 4439
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 100604
FlxY_Flxq_evalx 0
FlxY_degreex 737041
FlxY_eval_powers_pre 1307050
FlxY_evalx 154302
FlxY_evalx_powers_pre 2048725
FlxYqq_mul 1824
FlxYqq_pow 2148
FlxYqq_redswap 5256
FlxYqq_sqr 3432
Flx_Fl2_eval_pre 8664
Flx_Fl_add 5857836
Flx_Fl_mul 23741406
Flx_Fl_mul_to_monic 5273786
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 29139
Flx_FlxM_qmul 1663
Flx_FlxqV_eval 2322254
Flx_Flxq_eval 593654
Flx_Frobenius 2953969
Flx_add 36609837
Flx_addmulmul 4424
Flx_addshift 2160
Flx_addspec 4320
Flx_deflate 58820
Flx_deriv 3941493
Flx_diff1 8214
Flx_digits 0
Flx_div_by_X_x 21996657
Flx_divrem 54403954
Flx_divrem_Barrett_noGC 1610385
Flx_divrem_Barrettspec 1613652
Flx_divrem_basecase 18456132
Flx_double 1548922
Flx_equal 14847138
Flx_eval 2118987
Flx_eval2BILspec 37254136
Flx_eval_powers_pre 8933104
Flx_eval_pre 2122322
Flx_eval_pre_i 2056931
Flx_extgcd 3026215
Flx_extgcd_basecase 3026215
Flx_extgcd_halfgcd 3
Flx_extresultant 426
Flx_gcd 22761160
Flx_gcd_basecase 22254667
Flx_get_red 28331105
Flx_halfgcd 29977
Flx_halfgcd_basecase 27792
Flx_halfgcd_i 29977
Flx_halfgcd_split 2185
Flx_halve 10800
Flx_inflate 24455
Flx_invBarrett 69874
Flx_invBarrett_Newton 3897
Flx_invBarrett_basecase 65980
Flx_is_l_pow 4349
Flx_is_smooth 75778
Flx_is_smooth_squarefree 80130
Flx_is_squarefree 2928606
Flx_lgrenormalizespec 3287522
Flx_matFrobenius 226532
Flx_mod_Xn1 12
Flx_mod_Xnm1 3648489
Flx_mul 155587913
Flx_mullimb 152937892
Flx_mullimb_ok 558133227
Flx_mulspec 158931910
Flx_mulspec_basecase 103442207
Flx_mulspec_halfmulii 6004079
Flx_mulspec_mulii 4534155
Flx_mulspec_mulii_inflate 9133250
Flx_mulspec_quartmulii 28085466
Flx_multhreshold 28232326
Flx_neg 918446
Flx_neg_inplace 1080
Flx_negspec 918453
Flx_normalize 32216087
Flx_powu 4407
Flx_recip 0
Flx_recipspec 3379324
Flx_red 220483
Flx_rem 381432412
Flx_rem_basecase 331928785
Flx_renormalize 985731599
Flx_rescale 384
Flx_resultant 724637
Flx_shift 2508246
Flx_shiftip 296357367
Flx_splitting 115240
Flx_sqr 146158592
Flx_sqrspec 146301040
Flx_sqrspec_basecase 65172206
Flx_sqrspec_halfsqri 13490883
Flx_sqrspec_quartsqri 9379741
Flx_sqrspec_sqri 39120665
Flx_sqrspec_sqri_inflate 18998478
Flx_sub 46467462
Flx_subspec 1613646
Flx_to_Flv 3683217
Flx_to_FlxX 19338
Flx_to_ZX 4890390
Flx_to_ZX_inplace 40772492
Flx_to_int_halfspec 25680021
Flx_to_int_quartspec 65550726
Flx_translate1 8214
Flx_triple 547751
Flx_val 1099539
Flx_valrem 17048221
Flxn_inv 0
Flxn_mul 80298
Flxn_red_shallow 0
FlxqC_Flxq_mul 60966
FlxqM_Flxq_mul 7356
FlxqM_mul_Kronecker 6756
FlxqV_dotproduct 97338
FlxqV_roots_to_pol 810
FlxqXM_FlxqX_mul2 384
FlxqXM_mul2 363
FlxqXQV_autpow 51780
FlxqXQV_autsum 8873
FlxqXQ_autpow_mul 660
FlxqXQ_autpow_sqr 52638
FlxqXQ_autsum_mul 23653
FlxqXQ_autsum_sqr 14235
FlxqXQ_div 0
FlxqXQ_inv 0
FlxqXQ_invsafe 0
FlxqXQ_matrix_pow 384
FlxqXQ_mul 265670
FlxqXQ_pow 0
FlxqXQ_powers 24037
FlxqXQ_powu 60893
FlxqXQ_sqr 159269
FlxqXV_prod 822
FlxqX_FlxqXM_qmul 363
FlxqX_FlxqXQV_eval 47306
FlxqX_FlxqXQ_eval 53298
FlxqX_Flxq_mul 6642
FlxqX_Flxq_mul_to_monic 163740
FlxqX_addmulmul 768
FlxqX_divrem 212373
FlxqX_divrem_Barrett_noGC 38772
FlxqX_divrem_Barrettspec 41004
FlxqX_divrem_basecase 949525
FlxqX_extgcd 4962
FlxqX_extgcd_basecase 4962
FlxqX_extgcd_halfgcd 0
FlxqX_gcd 125591
FlxqX_gcd_basecase 122681
FlxqX_get_red 247855
FlxqX_halfgcd 747
FlxqX_halfgcd_basecase 384
FlxqX_halfgcd_i 747
FlxqX_halfgcd_split 363
FlxqX_invBarrett 2868
FlxqX_invBarrett_Newton 2286
FlxqX_invBarrett_basecase 582
FlxqX_mul 309857
FlxqX_mulspec 107778
FlxqX_normalize 142938
FlxqX_powu 8778
FlxqX_red 815182
FlxqX_rem 969980
FlxqX_safegcd 3378
FlxqX_sqr 171503
Flxq_autpow 260376
Flxq_autpow_mul 17549
Flxq_autpow_sqr 322907
Flxq_autsum 252397
Flxq_autsum_mul 512663
Flxq_autsum_sqr 301106
Flxq_auttrace 35765
Flxq_auttrace_mul 47539
Flxq_auttrace_sqr 37647
Flxq_charpoly 24
Flxq_conjvec 18
Flxq_div 1568903
Flxq_easylog 257798
Flxq_inv 2903929
Flxq_invsafe 2924731
Flxq_is2npower 240
Flxq_issquare 305054
Flxq_log 26478
Flxq_lroot 21468
Flxq_lroot_fast 97338
Flxq_matrix_pow 234584
Flxq_minpoly 20937
Flxq_mul 90350187
Flxq_norm 327453
Flxq_order 10542
Flxq_pow 13897877
Flxq_pow_Frobenius 13436007
Flxq_powers 1829228
Flxq_powu 8314744
Flxq_sqr 145807720
Flxq_sqrt 134855
Flxq_sqrtn 141059
Flxq_trace 2670
Flxq_transmul 127116
Flxq_transmul_init 49670
Fly_to_FlxY 1435
Kronecker_to_FlxqX 589138
RgX_to_Flx 2094
Rg_to_F2 1417694
Rg_to_Fl 25586886
Rg_to_Flxq 1122090
ZM_unpack_FlxqM 4764
ZM_unpack_FlxqM_bits 1992
ZXT_to_FlxT 1063764
ZXV_to_FlxV 0
ZXXT_to_FlxXT 252
ZXXV_to_FlxXV 12
ZXX_to_FlxX 391706
ZX_to_Flx 94938543
Z_mod2BIL_Flx 28147907
Z_mod2BIL_Flx_2 28137160
Z_mod2BIL_Flx_3 1797
Z_to_Flx 824403
_Fl2_mul 2022408
_Fl2_pow 709762
_Fl2_rand 114981
_Fl2_sqr 5184625
_Flx_add 13879189
_Flx_divrem 0
_Flx_mul 7070308
_Flx_sqr 0
_Flx_sub 0
_FlxqXQ_add 430450
_FlxqXQ_cmul 531054
_FlxqXQ_mul 240805
_FlxqXQ_one 299685
_FlxqXQ_red 290726
_FlxqXQ_sqr 159239
_FlxqXQ_sub 2022
_FlxqXQ_zero 150
_FlxqX_mul 2064
_FlxqX_sqr 8802
_Flxq_cmul 16616548
_Flxq_equal0 3240
_Flxq_inv 702
_Flxq_mul 74964714
_Flxq_neg 996
_Flxq_one 7409042
_Flxq_pow 13421405
_Flxq_rand 269676
_Flxq_red 6489861
_Flxq_rmul 32694
_Flxq_s 2094
_Flxq_sqr 140970367
_Flxq_zero 172247
bounded_order 548843
gener_Flxq 6012
get_Flx_degree 18914504
get_Flx_mod 4870661
get_Flx_red 436107523
get_Flx_var 12971788
get_FlxqXQ_algebra 180
get_FlxqX_degree 24307
get_FlxqX_mod 0
get_FlxqX_red 1182353
get_FlxqX_var 302637
get_Flxq_field 1410
get_Flxq_star 176525
int_to_Flx 43906247
int_to_Flx_half 19856099
int_to_Flx_quart 37465645
kron_pack_Flx_spec 8352
kron_pack_Flx_spec_2 0
kron_pack_Flx_spec_3 0
kron_pack_Flx_spec_bits 185586
kron_pack_Flx_spec_half 471264
kron_unpack_Flx 5766
kron_unpack_Flx_2 0
kron_unpack_Flx_3 0
kron_unpack_Flx_bits_narrow 139218
kron_unpack_Flx_bits_wide 17976
matid2_FlxM 3
matid2_FlxXM 0
maxlengthcoeffpol 325127475
mkF2 7637838
monomial_Flx 26983
pol1_FlxX 736935
polx_FlxX 3306
random_Flx 642473
random_FlxqX 0
zero_FlxC 2214
zero_FlxM 2202
zxX_to_FlxX 587365
zxX_to_Kronecker 791217
zxX_to_Kronecker_spec 1006773
zx_to_Flx 1998563

Generated by: LCOV version 1.11