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 20916-a74d914) Lines: 2789 3040 91.7 %
Date: 2017-08-18 06:23:59 Functions: 333 360 92.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 673377
Fl2_inv_pre 290892
Fl2_mul_pre 2890713
Fl2_norm_pre 106939
Fl2_pow_pre 997959
Fl2_sqr_pre 7355232
Fl2_sqrtn_pre 107663
Fl_Flxq_log 10967
Fl_to_Flx 9108760
Flc_to_ZC 19353469
Flm_to_FlxV 282585
Flm_to_FlxX 19737
Flm_to_ZM 8083576
FlvV_polint_tree 719485
Flv_Flm_polint 33387
Flv_inv 48088
Flv_invVandermonde 2039
Flv_inv_indir 27686
Flv_inv_inplace 0
Flv_inv_pre 9721
Flv_inv_pre_indir 366816
Flv_inv_pre_inplace 336693
Flv_polint 12655
Flv_prod 0
Flv_prod_pre 2975
Flv_producttree 48083
Flv_roots_to_pol 597027
Flv_to_Flx 798990
Flv_to_ZV 127589
FlxC_eval_powers_pre 41416
FlxC_neg 6948
FlxC_sub 227213
FlxC_to_ZXC 21072
FlxM_Flx_add_shallow 132
FlxM_Flx_mul2 2224
FlxM_eval_powers_pre 6948
FlxM_mul2 1639
FlxM_neg 2050
FlxM_pack_ZM 21822
FlxM_pack_ZM_bits 5869
FlxM_sub 27708
FlxM_to_ZXM 2576
FlxT_red 317748
FlxV_Flc_mul 0
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 301913
FlxV_to_ZXV 160474
FlxXC_to_ZXXC 882
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 530
FlxX_Fl_mul 205
FlxX_Flx_add 9904
FlxX_Flx_mul 623291
FlxX_add 510678
FlxX_deriv 59786
FlxX_double 205
FlxX_lgrenormalizespec 139208
FlxX_neg 1265
FlxX_recipspec 98485
FlxX_renormalize 7484047
FlxX_shift 0
FlxX_sub 104998
FlxX_subspec 47878
FlxX_swap 12964
FlxX_to_Flm 8457
FlxX_to_Flx 30742
FlxX_to_FlxC 13262
FlxX_to_ZXX 425928
FlxX_triple 0
FlxY_Flx_div 9238
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 118547
FlxY_Flxq_evalx 0
FlxY_degreex 1012743
FlxY_eval_powers_pre 1934784
FlxY_evalx 261204
FlxY_evalx_powers_pre 3030603
FlxYqq_mul 2170
FlxYqq_pow 2646
FlxYqq_redswap 6482
FlxYqq_sqr 4312
Flx_Fl2_eval_pre 10108
Flx_Fl_add 8100013
Flx_Fl_mul 27862013
Flx_Fl_mul_to_monic 7277661
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 48090
Flx_FlxM_qmul 1636
Flx_FlxqV_eval 2757572
Flx_Flxq_eval 694701
Flx_Frobenius 3618747
Flx_add 42196793
Flx_addmulmul 4454
Flx_addshift 3670
Flx_addspec 7093
Flx_deflate 71116
Flx_deriv 4743022
Flx_diff1 9583
Flx_digits 0
Flx_div_by_X_x 28452275
Flx_divrem 59619109
Flx_divrem_Barrett_noGC 1804446
Flx_divrem_Barrettspec 1809860
Flx_divrem_basecase 22170960
Flx_double 1800086
Flx_equal 25030734
Flx_eval 3581870
Flx_eval2BILspec 37481483
Flx_eval_powers_pre 14570510
Flx_eval_pre 3587588
Flx_eval_pre_i 3517809
Flx_extgcd 3562170
Flx_extgcd_basecase 3562170
Flx_extgcd_halfgcd 3
Flx_extresultant 571
Flx_gcd 28662621
Flx_gcd_basecase 28074227
Flx_get_red 42667372
Flx_halfgcd 34936
Flx_halfgcd_basecase 32738
Flx_halfgcd_i 34936
Flx_halfgcd_split 2198
Flx_halve 12588
Flx_inflate 45830
Flx_invBarrett 77293
Flx_invBarrett_Newton 4338
Flx_invBarrett_basecase 72951
Flx_is_l_pow 5032
Flx_is_smooth 88816
Flx_is_smooth_squarefree 93849
Flx_is_squarefree 3471529
Flx_lgrenormalizespec 3684317
Flx_matFrobenius 292645
Flx_mod_Xn1 12
Flx_mod_Xnm1 4993292
Flx_mul 208518119
Flx_mullimb 584011353
Flx_mullimb_ok 735660910
Flx_mulspec 212247370
Flx_mulspec_basecase 149612548
Flx_mulspec_halfmulii 7191133
Flx_mulspec_mulii 5502839
Flx_mulspec_mulii_inflate 9246731
Flx_mulspec_quartmulii 31233650
Flx_multhreshold 42560275
Flx_neg 1111003
Flx_neg_inplace 1595
Flx_negspec 1111007
Flx_normalize 42566791
Flx_powu 9470
Flx_recip 0
Flx_recipspec 3802731
Flx_red 383726
Flx_rem 502608160
Flx_rem_basecase 440642879
Flx_renormalize 1264609381
Flx_rescale 580
Flx_resultant 981950
Flx_shift 2969020
Flx_shiftip 402129656
Flx_splitting 149823
Flx_sqr 200500126
Flx_sqrspec 200678730
Flx_sqrspec_basecase 106815715
Flx_sqrspec_halfsqri 15442111
Flx_sqrspec_quartsqri 10571177
Flx_sqrspec_sqri 48733195
Flx_sqrspec_sqri_inflate 19002152
Flx_sub 56067361
Flx_subspec 1809846
Flx_to_Flv 4890079
Flx_to_FlxX 25515
Flx_to_ZX 5585769
Flx_to_ZX_inplace 43252009
Flx_to_int_halfspec 30033106
Flx_to_int_quartspec 73038357
Flx_translate1 9583
Flx_triple 635520
Flx_val 1594396
Flx_valrem 22324328
Flxn_inv 210
Flxn_mul 139068
Flxn_red_shallow 1162
FlxqC_Flxq_mul 103786
FlxqM_Flxq_mul 14245
FlxqM_mul_Kronecker 13859
FlxqV_dotproduct 113505
FlxqV_roots_to_pol 906
FlxqXM_FlxqX_mul2 384
FlxqXM_mul2 363
FlxqXQV_autpow 60776
FlxqXQV_autsum 10601
FlxqXQ_autpow_mul 923
FlxqXQ_autpow_sqr 61938
FlxqXQ_autsum_mul 27843
FlxqXQ_autsum_sqr 16857
FlxqXQ_div 0
FlxqXQ_inv 0
FlxqXQ_invsafe 0
FlxqXQ_matrix_pow 530
FlxqXQ_mul 310615
FlxqXQ_pow 0
FlxqXQ_powers 28373
FlxqXQ_powu 71648
FlxqXQ_sqr 184652
FlxqXV_prod 918
FlxqX_FlxqXM_qmul 363
FlxqX_FlxqXQV_eval 55686
FlxqX_FlxqXQ_eval 62861
FlxqX_Flxq_mul 8433
FlxqX_Flxq_mul_to_monic 205206
FlxqX_addmulmul 768
FlxqX_divrem 248652
FlxqX_divrem_Barrett_noGC 45292
FlxqX_divrem_Barrettspec 47878
FlxqX_divrem_basecase 1120893
FlxqX_extgcd 5901
FlxqX_extgcd_basecase 5901
FlxqX_extgcd_halfgcd 0
FlxqX_gcd 148291
FlxqX_gcd_basecase 144371
FlxqX_get_red 291610
FlxqX_halfgcd 747
FlxqX_halfgcd_basecase 384
FlxqX_halfgcd_i 747
FlxqX_halfgcd_split 363
FlxqX_invBarrett 3404
FlxqX_invBarrett_Newton 2729
FlxqX_invBarrett_basecase 675
FlxqX_mul 420705
FlxqX_mulspec 126126
FlxqX_normalize 168147
FlxqX_powu 10227
FlxqX_red 959165
FlxqX_rem 1145186
FlxqX_safegcd 8504
FlxqX_sqr 200283
Flxq_autpow 303811
Flxq_autpow_mul 20472
Flxq_autpow_sqr 376735
Flxq_autsum 306396
Flxq_autsum_mul 610059
Flxq_autsum_sqr 363258
Flxq_auttrace 43320
Flxq_auttrace_mul 57480
Flxq_auttrace_sqr 45823
Flxq_charpoly 27
Flxq_conjvec 20
Flxq_div 1825663
Flxq_easylog 321152
Flxq_inv 3398508
Flxq_invsafe 3435567
Flxq_is2npower 280
Flxq_issquare 352195
Flxq_log 35167
Flxq_lroot 25032
Flxq_lroot_fast 113505
Flxq_matrix_pow 301913
Flxq_minpoly 25276
Flxq_mul 127663048
Flxq_norm 379952
Flxq_order 12296
Flxq_pow 23695777
Flxq_pow_Frobenius 23113243
Flxq_powers 2485129
Flxq_powu 11099671
Flxq_sqr 200084390
Flxq_sqrt 157311
Flxq_sqrtn 164713
Flxq_trace 3114
Flxq_transmul 152130
Flxq_transmul_init 59826
Fly_to_FlxY 3028
Kronecker_to_FlxqX 747114
RgX_to_Flx 60207
RgX_to_FlxqX 21684
Rg_to_F2 1656654
Rg_to_Fl 41619194
Rg_to_Flxq 1461118
ZM_unpack_FlxqM 10911
ZM_unpack_FlxqM_bits 2948
ZXT_to_FlxT 1335771
ZXV_to_FlxV 0
ZXXT_to_FlxXT 285
ZXXV_to_FlxXV 12
ZXX_to_FlxX 471531
ZX_to_Flx 104289007
Z_mod2BIL_Flx 28259105
Z_mod2BIL_Flx_2 28240959
Z_mod2BIL_Flx_3 13983
Z_to_Flx 1251265
_Fl2_mul 2862942
_Fl2_pow 997950
_Fl2_rand 162313
_Fl2_sqr 7354908
_Flx_add 16372596
_Flx_divrem 0
_Flx_mul 8957538
_Flx_sqr 0
_Flx_sub 0
_FlxqXQ_add 504744
_FlxqXQ_cmul 623291
_FlxqXQ_mul 281376
_FlxqXQ_one 352201
_FlxqXQ_red 340825
_FlxqXQ_sqr 184281
_FlxqXQ_sub 2338
_FlxqXQ_zero 170
_FlxqX_mul 2099
_FlxqX_sqr 10255
_Flxq_cmul 19610046
_Flxq_equal0 30961
_Flxq_inv 5600
_Flxq_mul 110732284
_Flxq_neg 5943
_Flxq_one 9067696
_Flxq_pow 23094642
_Flxq_rand 314636
_Flxq_red 7704452
_Flxq_rmul 64292
_Flxq_s 13165
_Flxq_sqr 194439662
_Flxq_zero 203012
bounded_order 660840
gener_Flxq 9196
get_Flx_red 562469261
get_FlxqXQ_algebra 205
get_FlxqX_red 1393838
get_Flxq_field 6269
get_Flxq_star 210363
int_to_Flx 54469781
int_to_Flx_half 23077569
int_to_Flx_quart 41805146
kron_pack_Flx_spec 29185
kron_pack_Flx_spec_2 1392
kron_pack_Flx_spec_3 0
kron_pack_Flx_spec_bits 226346
kron_pack_Flx_spec_half 624359
kron_unpack_Flx 19966
kron_unpack_Flx_2 961
kron_unpack_Flx_3 0
kron_unpack_Flx_bits_narrow 158358
kron_unpack_Flx_bits_wide 19696
matid2_FlxM 3
matid2_FlxXM 0
maxlengthcoeffpol 445396371
mkF2 10816746
monomial_Flx 32559
pol1_FlxX 863087
polx_FlxX 4507
random_Flx 757940
random_FlxqX 0
zero_FlxC 3627
zero_FlxM 3613
zxX_to_FlxX 837060
zxX_to_Kronecker 1041693
zxX_to_Kronecker_spec 1293945
zx_to_Flx 2853809

Generated by: LCOV version 1.11