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 20291-5fbfea9) Lines: 2628 2985 88.0 %
Date: 2017-02-25 05:49:34 Functions: 317 356 89.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 598835
Fl2_inv_pre 258933
Fl2_mul_pre 2579631
Fl2_norm_pre 100652
Fl2_pow_pre 887048
Fl2_sqr_pre 6567796
Fl2_sqrtn_pre 95082
Fl_Flxq_log 9987
Fl_to_Flx 8758886
Flc_to_ZC 5063149
Flm_to_FlxV 254869
Flm_to_FlxX 17950
Flm_to_ZM 975051
FlvV_polint_tree 655072
Flv_Flm_polint 30083
Flv_inv 34594
Flv_invVandermonde 0
Flv_inv_indir 24818
Flv_inv_inplace 0
Flv_inv_pre 7540
Flv_inv_pre_indir 308099
Flv_inv_pre_inplace 290785
Flv_polint 4511
Flv_prod 0
Flv_prod_pre 1883
Flv_producttree 34593
Flv_roots_to_pol 549995
Flv_to_Flx 625083
Flv_to_ZV 1848
FlxC_eval_powers_pre 0
FlxC_to_ZXC 23087
FlxM_Flx_add_shallow 132
FlxM_Flx_mul2 2278
FlxM_eval_powers_pre 0
FlxM_mul2 1697
FlxM_pack_ZM 0
FlxM_pack_ZM_bits 257
FlxM_to_ZXM 605
FlxT_red 156701
FlxV_Flc_mul 14728
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 273588
FlxV_to_ZXV 159687
FlxXC_to_ZXXC 385
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 446
FlxX_Fl_mul 205
FlxX_Flx_add 9834
FlxX_Flx_mul 617502
FlxX_add 506186
FlxX_deriv 59198
FlxX_double 205
FlxX_lgrenormalizespec 139761
FlxX_neg 1265
FlxX_recipspec 99780
FlxX_renormalize 6976675
FlxX_shift 0
FlxX_sub 104210
FlxX_subspec 48578
FlxX_swap 12264
FlxX_to_Flm 7211
FlxX_to_FlxC 12611
FlxX_to_ZXX 421995
FlxX_triple 0
FlxY_Flx_div 4529
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 116776
FlxY_Flxq_evalx 0
FlxY_degreex 897418
FlxY_eval_powers_pre 1736688
FlxY_evalx 194769
FlxY_evalx_powers_pre 2723934
FlxYqq_mul 2128
FlxYqq_pow 2506
FlxYqq_redswap 6132
FlxYqq_sqr 4004
Flx_Fl2_eval_pre 10108
Flx_Fl_add 7251933
Flx_Fl_mul 27905024
Flx_Fl_mul_to_monic 6586278
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 34591
Flx_FlxM_qmul 1694
Flx_FlxqV_eval 2709431
Flx_Flxq_eval 691906
Flx_Frobenius 3446432
Flx_add 44392994
Flx_addmulmul 4562
Flx_addshift 3626
Flx_addspec 7005
Flx_deflate 68603
Flx_deriv 4631332
Flx_diff1 9583
Flx_digits 0
Flx_div_by_X_x 27109642
Flx_divrem 58252228
Flx_divrem_Barrett_noGC 1750563
Flx_divrem_Barrettspec 1755964
Flx_divrem_basecase 21475617
Flx_double 1805581
Flx_equal 17181861
Flx_eval 2674780
Flx_eval2BILspec 37273464
Flx_eval_powers_pre 11903625
Flx_eval_pre 2678701
Flx_eval_pre_i 2598838
Flx_extgcd 3525441
Flx_extgcd_basecase 3525441
Flx_extgcd_halfgcd 3
Flx_extresultant 570
Flx_gcd 27345626
Flx_gcd_basecase 26755575
Flx_get_red 33248203
Flx_halfgcd 37192
Flx_halfgcd_basecase 34940
Flx_halfgcd_i 37192
Flx_halfgcd_split 2252
Flx_halve 12567
Flx_inflate 26168
Flx_invBarrett 76206
Flx_invBarrett_Newton 4345
Flx_invBarrett_basecase 71860
Flx_is_l_pow 5271
Flx_is_smooth 91559
Flx_is_smooth_squarefree 96840
Flx_is_squarefree 3416292
Flx_lgrenormalizespec 3576875
Flx_matFrobenius 262808
Flx_mod_Xn1 12
Flx_mod_Xnm1 4548938
Flx_mul 187875588
Flx_mullimb 519698326
Flx_mullimb_ok 597102662
Flx_mulspec 191546521
Flx_mulspec_basecase 129506312
Flx_mulspec_halfmulii 6774494
Flx_mulspec_mulii 5060815
Flx_mulspec_mulii_inflate 9143637
Flx_mulspec_quartmulii 31832761
Flx_multhreshold 33144785
Flx_neg 1013992
Flx_neg_inplace 1573
Flx_negspec 1013990
Flx_normalize 39506934
Flx_powu 4450
Flx_recip 0
Flx_recipspec 3688820
Flx_red 237335
Flx_rem 456018634
Flx_rem_basecase 397324900
Flx_renormalize 1169843394
Flx_rescale 495
Flx_resultant 922253
Flx_shift 2962586
Flx_shiftip 360876041
Flx_splitting 131985
Flx_sqr 179835765
Flx_sqrspec 180033268
Flx_sqrspec_basecase 96831149
Flx_sqrspec_halfsqri 13738361
Flx_sqrspec_quartsqri 10180304
Flx_sqrspec_sqri 40121586
Flx_sqrspec_sqri_inflate 19003547
Flx_sub 54814264
Flx_subspec 1755955
Flx_to_Flv 4354008
Flx_to_FlxX 22575
Flx_to_ZX 5705829
Flx_to_ZX_inplace 42206251
Flx_to_int_halfspec 27287212
Flx_to_int_quartspec 73845666
Flx_translate1 9583
Flx_triple 638313
Flx_val 1419626
Flx_valrem 21076585
Flxn_inv 0
Flxn_mul 93968
Flxn_red_shallow 0
FlxqM_mul_Kronecker 142
FlxqV_dotproduct 113561
FlxqV_roots_to_pol 906
FlxqXM_FlxqX_mul2 399
FlxqXM_mul2 363
FlxqXQV_autpow 60398
FlxqXQV_autsum 10272
FlxqXQ_autpow_mul 769
FlxqXQ_autpow_sqr 61399
FlxqXQ_autsum_mul 27304
FlxqXQ_autsum_sqr 16430
FlxqXQ_div 0
FlxqXQ_inv 0
FlxqXQ_invsafe 0
FlxqXQ_matrix_pow 446
FlxqXQ_mul 309159
FlxqXQ_pow 0
FlxqXQ_powers 27750
FlxqXQ_powu 70941
FlxqXQ_sqr 184470
FlxqXV_prod 918
FlxqX_FlxqXM_qmul 363
FlxqX_FlxqXQV_eval 54608
FlxqX_FlxqXQ_eval 62168
FlxqX_Flxq_mul 6998
FlxqX_Flxq_mul_to_monic 191514
FlxqX_addmulmul 798
FlxqX_divrem 246029
FlxqX_divrem_Barrett_noGC 45978
FlxqX_divrem_Barrettspec 48578
FlxqX_divrem_basecase 1104279
FlxqX_extgcd 5789
FlxqX_extgcd_basecase 5789
FlxqX_extgcd_halfgcd 0
FlxqX_gcd 146429
FlxqX_gcd_basecase 143076
FlxqX_get_red 288110
FlxqX_halfgcd 762
FlxqX_halfgcd_basecase 387
FlxqX_halfgcd_i 762
FlxqX_halfgcd_split 375
FlxqX_invBarrett 3376
FlxqX_invBarrett_Newton 2624
FlxqX_invBarrett_basecase 752
FlxqX_mul 357259
FlxqX_mulspec 126847
FlxqX_normalize 166719
FlxqX_powu 10241
FlxqX_red 950114
FlxqX_rem 1130425
FlxqX_safegcd 4010
FlxqX_sqr 198743
Flxq_autpow 303817
Flxq_autpow_mul 20474
Flxq_autpow_sqr 376769
Flxq_autsum 294454
Flxq_autsum_mul 597847
Flxq_autsum_sqr 351279
Flxq_auttrace 41733
Flxq_auttrace_mul 55400
Flxq_auttrace_sqr 43845
Flxq_charpoly 27
Flxq_conjvec 20
Flxq_div 1828699
Flxq_easylog 301524
Flxq_inv 3381827
Flxq_invsafe 3406622
Flxq_is2npower 280
Flxq_issquare 355884
Flxq_log 31009
Flxq_lroot 25046
Flxq_lroot_fast 113561
Flxq_matrix_pow 271082
Flxq_minpoly 24380
Flxq_mul 108282271
Flxq_norm 382305
Flxq_order 12296
Flxq_pow 15982828
Flxq_pow_Frobenius 15429524
Flxq_powers 2132110
Flxq_powu 10121287
Flxq_sqr 179403456
Flxq_sqrt 157290
Flxq_sqrtn 163901
Flxq_trace 3114
Flxq_transmul 147877
Flxq_transmul_init 57820
Fly_to_FlxY 1459
Kronecker_to_FlxqX 682849
RgX_to_Flx 2443
Rg_to_F2 1653500
Rg_to_Fl 29660613
Rg_to_Flxq 1309069
ZM_unpack_FlxqM 0
ZM_unpack_FlxqM_bits 142
ZXT_to_FlxT 1240519
ZXV_to_FlxV 0
ZXXT_to_FlxXT 285
ZXXV_to_FlxXV 12
ZXX_to_FlxX 457289
ZX_to_Flx 100472001
Z_mod2BIL_Flx 28164011
Z_mod2BIL_Flx_2 28143810
Z_mod2BIL_Flx_3 10786
Z_to_Flx 966659
_Fl2_mul 2551824
_Fl2_pow 887043
_Fl2_rand 143111
_Fl2_sqr 6567510
_Flx_add 17480338
_Flx_divrem 0
_Flx_mul 8589389
_Flx_sqr 0
_Flx_sub 0
_FlxqXQ_add 500726
_FlxqXQ_cmul 617502
_FlxqXQ_mul 280459
_FlxqXQ_one 348694
_FlxqXQ_red 338655
_FlxqXQ_sqr 184435
_FlxqXQ_sub 2338
_FlxqXQ_zero 170
_FlxqX_mul 2225
_FlxqX_sqr 10269
_Flxq_cmul 19385013
_Flxq_equal0 549168
_Flxq_inv 5244
_Flxq_mul 90357455
_Flxq_neg 5587
_Flxq_one 8643814
_Flxq_pow 15412428
_Flxq_rand 314209
_Flxq_red 8217467
_Flxq_rmul 1387749
_Flxq_s 50371
_Flxq_sqr 173726521
_Flxq_zero 201096
bounded_order 640106
gener_Flxq 7012
get_Flx_degree 21816079
get_Flx_mod 5669093
get_Flx_red 514376301
get_Flx_var 15169317
get_FlxqXQ_algebra 205
get_FlxqX_degree 28064
get_FlxqX_mod 0
get_FlxqX_red 1376454
get_FlxqX_var 352092
get_Flxq_field 971
get_Flxq_star 205393
int_to_Flx 45390168
int_to_Flx_half 20512847
int_to_Flx_quart 42013414
kron_pack_Flx_spec 0
kron_pack_Flx_spec_2 0
kron_pack_Flx_spec_3 0
kron_pack_Flx_spec_bits 24426
kron_pack_Flx_spec_half 0
kron_unpack_Flx 0
kron_unpack_Flx_2 0
kron_unpack_Flx_3 0
kron_unpack_Flx_bits_narrow 6563
kron_unpack_Flx_bits_wide 7000
matid2_FlxM 3
matid2_FlxXM 0
maxlengthcoeffpol 394928458
mkF2 9654139
monomial_Flx 28910
pol1_FlxX 858169
polx_FlxX 3835
random_Flx 743004
random_FlxqX 0
zxX_to_FlxX 722855
zxX_to_Kronecker 913261
zxX_to_Kronecker_spec 1166955
zx_to_Flx 2462854

Generated by: LCOV version 1.11