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 20783-cec4728) Lines: 2793 3046 91.7 %
Date: 2017-06-28 05:59:20 Functions: 338 366 92.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 602431
Fl2_inv_pre 260574
Fl2_mul_pre 2596176
Fl2_norm_pre 100400
Fl2_pow_pre 892472
Fl2_sqr_pre 6608055
Fl2_sqrtn_pre 95658
Fl_Flxq_log 10974
Fl_to_Flx 8849784
Flc_to_ZC 19341940
Flm_to_FlxV 282414
Flm_to_FlxX 19712
Flm_to_ZM 8082960
FlvV_polint_tree 660635
Flv_Flm_polint 30510
Flv_inv 36837
Flv_invVandermonde 1867
Flv_inv_indir 25176
Flv_inv_inplace 0
Flv_inv_pre 7643
Flv_inv_pre_indir 317533
Flv_inv_pre_inplace 298230
Flv_polint 4462
Flv_prod 0
Flv_prod_pre 2023
Flv_producttree 36838
Flv_roots_to_pol 556827
Flv_to_Flx 798081
Flv_to_ZV 127589
FlxC_eval_powers_pre 39484
FlxC_neg 6948
FlxC_sub 227213
FlxC_to_ZXC 20494
FlxM_Flx_add_shallow 132
FlxM_Flx_mul2 2279
FlxM_eval_powers_pre 6429
FlxM_mul2 1694
FlxM_neg 2050
FlxM_pack_ZM 21822
FlxM_pack_ZM_bits 5869
FlxM_sub 27708
FlxM_to_ZXM 2581
FlxT_red 314704
FlxV_Flc_mul 0
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 301742
FlxV_to_ZXV 159466
FlxXC_to_ZXXC 868
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 530
FlxX_Fl_mul 205
FlxX_Flx_add 9904
FlxX_Flx_mul 622976
FlxX_add 510468
FlxX_deriv 59786
FlxX_double 205
FlxX_lgrenormalizespec 139208
FlxX_neg 1265
FlxX_recipspec 98485
FlxX_renormalize 7046248
FlxX_shift 0
FlxX_sub 104893
FlxX_subspec 47878
FlxX_swap 12964
FlxX_to_Flm 8416
FlxX_to_Flx 17365
FlxX_to_FlxC 13262
FlxX_to_ZXX 425816
FlxX_triple 0
FlxY_Flx_div 9147
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 118442
FlxY_Flxq_evalx 0
FlxY_degreex 916336
FlxY_eval_powers_pre 1763554
FlxY_evalx 191755
FlxY_evalx_powers_pre 2764690
FlxYqq_mul 2170
FlxYqq_pow 2646
FlxYqq_redswap 6482
FlxYqq_sqr 4312
Flx_Fl2_eval_pre 10108
Flx_Fl_add 7513066
Flx_Fl_mul 27959781
Flx_Fl_mul_to_monic 6755894
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 36836
Flx_FlxM_qmul 1691
Flx_FlxqV_eval 2753824
Flx_Flxq_eval 693176
Flx_Frobenius 3598828
Flx_add 43178721
Flx_addmulmul 4564
Flx_addshift 3670
Flx_addspec 7093
Flx_deflate 70622
Flx_deriv 4707775
Flx_diff1 9583
Flx_digits 0
Flx_div_by_X_x 27330697
Flx_divrem 59118577
Flx_divrem_Barrett_noGC 1780393
Flx_divrem_Barrettspec 1785810
Flx_divrem_basecase 21953033
Flx_double 1791604
Flx_equal 19379455
Flx_eval 2772419
Flx_eval2BILspec 37350759
Flx_eval_powers_pre 13386578
Flx_eval_pre 2776327
Flx_eval_pre_i 2700978
Flx_extgcd 3539488
Flx_extgcd_basecase 3539488
Flx_extgcd_halfgcd 3
Flx_extresultant 571
Flx_gcd 27937489
Flx_gcd_basecase 27353195
Flx_get_red 36708997
Flx_halfgcd 35662
Flx_halfgcd_basecase 33409
Flx_halfgcd_i 35662
Flx_halfgcd_split 2253
Flx_halve 12588
Flx_inflate 43920
Flx_invBarrett 75716
Flx_invBarrett_Newton 4316
Flx_invBarrett_basecase 71398
Flx_is_l_pow 5053
Flx_is_smooth 88703
Flx_is_smooth_squarefree 93750
Flx_is_squarefree 3447918
Flx_lgrenormalizespec 3635950
Flx_matFrobenius 292474
Flx_mod_Xn1 12
Flx_mod_Xnm1 4585064
Flx_mul 194048726
Flx_mullimb 522376560
Flx_mullimb_ok 652137528
Flx_mulspec 197740627
Flx_mulspec_basecase 135122844
Flx_mulspec_halfmulii 6937322
Flx_mulspec_mulii 5079967
Flx_mulspec_mulii_inflate 9176616
Flx_mulspec_quartmulii 31996189
Flx_multhreshold 36602543
Flx_neg 1109296
Flx_neg_inplace 1595
Flx_negspec 1109297
Flx_normalize 40640854
Flx_powu 9374
Flx_recip 0
Flx_recipspec 3754477
Flx_red 380938
Flx_rem 469654751
Flx_rem_basecase 409514078
Flx_renormalize 1196893477
Flx_rescale 633
Flx_resultant 909796
Flx_shift 2979870
Flx_shiftip 372211169
Flx_splitting 149487
Flx_sqr 184939872
Flx_sqrspec 185051229
Flx_sqrspec_basecase 99952157
Flx_sqrspec_halfsqri 14213336
Flx_sqrspec_quartsqri 10551379
Flx_sqrspec_sqri 41181600
Flx_sqrspec_sqri_inflate 19004312
Flx_sub 56148049
Flx_subspec 1785797
Flx_to_Flv 4886966
Flx_to_FlxX 24556
Flx_to_ZX 5570414
Flx_to_ZX_inplace 42775339
Flx_to_int_halfspec 28296729
Flx_to_int_quartspec 74543530
Flx_translate1 9583
Flx_triple 631272
Flx_val 1442292
Flx_valrem 21284941
Flxn_inv 203
Flxn_mul 138489
Flxn_red_shallow 1120
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 60671
FlxqXQV_autsum 10601
FlxqXQ_autpow_mul 923
FlxqXQ_autpow_sqr 61833
FlxqXQ_autsum_mul 27843
FlxqXQ_autsum_sqr 16857
FlxqXQ_div 0
FlxqXQ_inv 0
FlxqXQ_invsafe 0
FlxqXQ_matrix_pow 530
FlxqXQ_mul 310244
FlxqXQ_pow 0
FlxqXQ_powers 28373
FlxqXQ_powu 71543
FlxqXQ_sqr 184099
FlxqXV_prod 918
FlxqX_FlxqXM_qmul 363
FlxqX_FlxqXQV_eval 55686
FlxqX_FlxqXQ_eval 62756
FlxqX_Flxq_mul 8433
FlxqX_Flxq_mul_to_monic 193705
FlxqX_addmulmul 768
FlxqX_divrem 248631
FlxqX_divrem_Barrett_noGC 45292
FlxqX_divrem_Barrettspec 47878
FlxqX_divrem_basecase 1109014
FlxqX_extgcd 5901
FlxqX_extgcd_basecase 5901
FlxqX_extgcd_halfgcd 0
FlxqX_gcd 148144
FlxqX_gcd_basecase 144287
FlxqX_get_red 291295
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 358694
FlxqX_mulspec 126126
FlxqX_normalize 167545
FlxqX_powu 10227
FlxqX_red 957702
FlxqX_rem 1133167
FlxqX_safegcd 4829
FlxqX_sqr 198666
Flxq_autpow 303790
Flxq_autpow_mul 20474
Flxq_autpow_sqr 376721
Flxq_autsum 306363
Flxq_autsum_mul 609948
Flxq_autsum_sqr 363170
Flxq_auttrace 43132
Flxq_auttrace_mul 57338
Flxq_auttrace_sqr 45655
Flxq_charpoly 27
Flxq_conjvec 20
Flxq_div 1817012
Flxq_easylog 321152
Flxq_inv 3389630
Flxq_invsafe 3415790
Flxq_is2npower 280
Flxq_issquare 350669
Flxq_log 35167
Flxq_lroot 25032
Flxq_lroot_fast 113505
Flxq_matrix_pow 301742
Flxq_minpoly 25202
Flxq_mul 114269525
Flxq_norm 378365
Flxq_order 12296
Flxq_pow 18326453
Flxq_pow_Frobenius 17743831
Flxq_powers 2470710
Flxq_powu 10536424
Flxq_sqr 184514747
Flxq_sqrt 157311
Flxq_sqrtn 164678
Flxq_trace 3114
Flxq_transmul 151889
Flxq_transmul_init 59776
Fly_to_FlxY 2999
Kronecker_to_FlxqX 683486
RgX_to_Flx 22316
RgX_to_FlxqX 8909
Rg_to_F2 1656587
Rg_to_Fl 31710981
Rg_to_Flxq 1402472
ZM_unpack_FlxqM 10911
ZM_unpack_FlxqM_bits 2948
ZXT_to_FlxT 1332290
ZXV_to_FlxV 0
ZXXT_to_FlxXT 285
ZXXV_to_FlxXV 12
ZXX_to_FlxX 464851
ZX_to_Flx 103392136
Z_mod2BIL_Flx 28197930
Z_mod2BIL_Flx_2 28177642
Z_mod2BIL_Flx_3 13917
Z_to_Flx 1179680
_Fl2_mul 2568372
_Fl2_pow 892464
_Fl2_rand 144300
_Fl2_sqr 6607780
_Flx_add 16264566
_Flx_divrem 0
_Flx_mul 8645984
_Flx_sqr 0
_Flx_sub 0
_FlxqXQ_add 504534
_FlxqXQ_cmul 622976
_FlxqXQ_mul 281005
_FlxqXQ_one 351886
_FlxqXQ_red 340510
_FlxqXQ_sqr 183728
_FlxqXQ_sub 2338
_FlxqXQ_zero 170
_FlxqX_mul 2099
_FlxqX_sqr 10255
_Flxq_cmul 19496738
_Flxq_equal0 30961
_Flxq_inv 5600
_Flxq_mul 96322677
_Flxq_neg 5943
_Flxq_one 9041223
_Flxq_pow 17725268
_Flxq_rand 314637
_Flxq_red 7690513
_Flxq_rmul 64292
_Flxq_s 13165
_Flxq_sqr 178916786
_Flxq_zero 203012
bounded_order 660808
gener_Flxq 9196
get_Flx_degree 24808872
get_Flx_mod 5829906
get_Flx_red 528978937
get_Flx_var 15862197
get_FlxqXQ_algebra 205
get_FlxqX_degree 28771
get_FlxqX_mod 0
get_FlxqX_red 1381798
get_FlxqX_var 355557
get_Flxq_field 6269
get_Flxq_star 210328
int_to_Flx 46524839
int_to_Flx_half 21595021
int_to_Flx_quart 42547996
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 409365841
mkF2 9714234
monomial_Flx 32534
pol1_FlxX 862772
polx_FlxX 4297
random_Flx 757366
random_FlxqX 0
zero_FlxC 3627
zero_FlxM 3613
zxX_to_FlxX 741255
zxX_to_Kronecker 916054
zxX_to_Kronecker_spec 1168306
zx_to_Flx 2527223

Generated by: LCOV version 1.11