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-bordeaux1.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.8.0 lcov report (development 17953-c39f2e6) Lines: 2314 2474 93.5 %
Date: 2015-08-29 Functions: 286 300 95.3 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1182 1423 83.1 %

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 122543
Fl2_inv_pre 52862
Fl2_mul_pre 717060
Fl2_norm_pre 52466
Fl2_pow_pre 182479
Fl2_sqr_pre 1272876
Fl2_sqrtn_pre 20545
Fl_Flxq_log 10304
Fl_to_Flx 1033892
Flc_to_ZC 3539859
Flm_to_FlxV 175343
Flm_to_FlxX 13814
Flm_to_ZM 351693
FlvV_polint_tree 295332
Flv_FlvV_polint 10952
Flv_inv 21444
Flv_inv_indir 11616
Flv_inv_inplace 0
Flv_inv_pre 1027
Flv_inv_pre_indir 96091
Flv_inv_pre_inplace 85236
Flv_polint 10492
Flv_prod 0
Flv_prod_pre 56
Flv_producttree 21444
Flv_roots_to_pol 235032
Flv_to_Flx 3779653
Flv_to_ZV 419
FlxC_to_ZXC 923
FlxM_Flx_add_shallow 84
FlxM_Flx_mul2 1787
FlxM_mul2 1580
FlxM_pack_ZM 257
FlxM_to_ZXM 385
FlxT_red 160733
FlxV_Flc_mul 12166
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 278471
FlxV_to_ZXV 154516
FlxXV_to_FlxM 132
FlxX_Fl_mul 228
FlxX_Flx_add 326
FlxX_Flx_mul 293243
FlxX_add 231247
FlxX_double 424
FlxX_lgrenormalizespec 867449
FlxX_neg 228
FlxX_recipspec 702846
FlxX_renormalize 4025883
FlxX_shift 0
FlxX_sub 48123
FlxX_subspec 303366
FlxX_swap 9828
FlxX_to_Flm 8210
FlxX_to_FlxC 1828
FlxX_to_ZXX 666044
FlxX_triple 98
FlxY_Flx_div 5001
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 45176
FlxY_Flxq_evalx 0
FlxY_eval_powers_pre 244430
FlxY_evalx 334726
FlxY_evalx_powers_pre 374805
FlxYqq_mul 1960
FlxYqq_pow 1960
FlxYqq_redswap 4914
FlxYqq_sqr 2954
Flx_Fl2_eval_pre 40803
Flx_Fl_add 1505436
Flx_Fl_mul 16165142
Flx_Fl_mul_to_monic 2097460
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 21444
Flx_FlxM_qmul 1577
Flx_FlxqV_eval 1373639
Flx_Flxq_eval 640376
Flx_Frobenius 3505059
Flx_add 18500455
Flx_addmulmul 3580
Flx_addshift 3936
Flx_addspec 7816
Flx_deflate 21900
Flx_deriv 4202644
Flx_div_by_X_x 8489999
Flx_divrem 58970324
Flx_divrem_Barrett_noGC 1369253
Flx_divrem_Barrettspec 1369404
Flx_divrem_basecase 20855551
Flx_double 1771668
Flx_equal 24436063
Flx_eval 8820221
Flx_eval2BILspec 15316253
Flx_eval_powers_pre 1607152
Flx_eval_pre 8820221
Flx_eval_pre_i 8737552
Flx_extgcd 3060273
Flx_extgcd_basecase 3060273
Flx_extgcd_halfgcd 3
Flx_extresultant 145572
Flx_gcd 17148484
Flx_gcd_basecase 16412624
Flx_get_red 33371298
Flx_halfgcd 6121
Flx_halfgcd_basecase 4363
Flx_halfgcd_i 6121
Flx_halfgcd_split 1758
Flx_inflate 27265
Flx_invBarrett 101811
Flx_invBarrett_Newton 2895
Flx_invBarrett_basecase 98900
Flx_is_l_pow 4781
Flx_is_smooth 88234
Flx_is_smooth_squarefree 93015
Flx_is_squarefree 3396515
Flx_lgrenormalizespec 2785145
Flx_matFrobenius 274649
Flx_mod_Xn1 19
Flx_mod_Xnm1 618332
Flx_mul 132818968
Flx_mullimb 369235614
Flx_mullimb_ok 475767025
Flx_mulspec 135604427
Flx_mulspec_basecase 96246102
Flx_mulspec_halfmulii 21668551
Flx_mulspec_mulii 1338515
Flx_mulspec_mulii_inflate 7545584
Flx_multhreshold 33460144
Flx_neg 1056403
Flx_neg_inplace 1912
Flx_negspec 1056402
Flx_normalize 14663200
Flx_powu 5273
Flx_recip 0
Flx_recipspec 2741673
Flx_red 238983
Flx_rem 287438553
Flx_rem_basecase 254447912
Flx_renormalize 775123463
Flx_rescale 203
Flx_resultant 1489970
Flx_shift 1340056
Flx_shiftip 214060736
Flx_splitting 131431
Flx_sqr 87322892
Flx_sqrspec 87323011
Flx_sqrspec_basecase 48342038
Flx_sqrspec_halfsqri 17953538
Flx_sqrspec_sqri 20754531
Flx_sqrspec_sqri_inflate 212484
Flx_sub 45246789
Flx_subspec 1369400
Flx_to_Flv 3312589
Flx_to_FlxX 0
Flx_to_ZX 5434239
Flx_to_ZX_inplace 43290423
Flx_to_int_halfspec 61296830
Flx_triple 626571
Flx_val 696553
Flx_valrem 5955946
FlxqM_mul_Kronecker 142
FlxqV_dotproduct 112560
FlxqV_roots_to_pol 346
FlxqXQV_autpow 14905
FlxqXQV_autsum 11603
FlxqXQ_autpow_mul 615
FlxqXQ_autpow_sqr 15871
FlxqXQ_autsum_mul 14345
FlxqXQ_autsum_sqr 13416
FlxqXQ_div 1201
FlxqXQ_inv 1201
FlxqXQ_invsafe 1201
FlxqXQ_matrix_pow 132
FlxqXQ_mul 18046
FlxqXQ_mul_mg 150943
FlxqXQ_pow 38111
FlxqXQ_powers 28721
FlxqXQ_sqr 1071
FlxqXQ_sqr_mg 204052
FlxqXV_prod 346
FlxqX_FlxqXQV_eval 45510
FlxqX_FlxqXQ_eval 16486
FlxqX_Flxq_mul 8730
FlxqX_Flxq_mul_to_monic 27307
FlxqX_divrem 499366
FlxqX_extgcd 7361
FlxqX_gcd 31035
FlxqX_invBarrett 128660
FlxqX_invBarrett_Newton 96114
FlxqX_invBarrett_basecase 32397
FlxqX_mul 213811
FlxqX_mulspec 815108
FlxqX_normalize 0
FlxqX_pow 10115
FlxqX_red 199354
FlxqX_rem_Barrett 303366
FlxqX_safegcd 4305
FlxqX_sqr 218213
Flxq_autpow 297536
Flxq_autpow_mul 20394
Flxq_autpow_sqr 370042
Flxq_autsum 285792
Flxq_autsum_mul 568605
Flxq_autsum_sqr 336555
Flxq_charpoly 341
Flxq_conjvec 20
Flxq_div 1784423
Flxq_easylog 293084
Flxq_inv 2939898
Flxq_invsafe 2968406
Flxq_is2npower 280
Flxq_issquare 338016
Flxq_log 30988
Flxq_lroot 24920
Flxq_lroot_fast 112560
Flxq_matrix_pow 276511
Flxq_minpoly 314
Flxq_mul 80233508
Flxq_norm 363461
Flxq_order 11977
Flxq_pow 25325212
Flxq_pow_Frobenius 24798088
Flxq_powers 1050959
Flxq_powu 5180195
Flxq_sqr 87020443
Flxq_sqrt 144388
Flxq_sqrtn 150826
Flxq_trace 3072
Fly_to_FlxY 1810
Kronecker_to_FlxqX 1247132
RgX_to_Flx 126
Rg_to_F2 1455777
Rg_to_Fl 19664571
Rg_to_Flxq 1299479
ZM_unpack_FlxqM 142
ZXT_to_FlxT 1209200
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 760360
ZX_to_Flx 108775959
Z_mod2BIL_Flx 7758068
Z_mod2BIL_Flx_2 7756339
Z_mod2BIL_Flx_3 8729
Z_to_Flx 1713178
_Fl2_mul 498597
_Fl2_pow 182479
_Fl2_rand 31024
_Fl2_sqr 1272876
_Flx_mul 4137310
_FlxqXQ_add 231247
_FlxqXQ_cmul 293243
_FlxqXQ_mul 150943
_FlxqXQ_one 138235
_FlxqXQ_red 113801
_FlxqXQ_sqr 204052
_FlxqXQ_zero 0
_FlxqX_mul 1352
_FlxqX_sqr 10136
_Flxq_add 7764088
_Flxq_cmul 9274230
_Flxq_equal0 60322
_Flxq_inv 2797
_Flxq_mul 72102380
_Flxq_neg 2874
_Flxq_one 5351045
_Flxq_pow 24781333
_Flxq_rand 292096
_Flxq_red 4889333
_Flxq_rmul 495204
_Flxq_s 11370
_Flxq_sqr 81627946
_Flxq_zero 32236
bounded_order 626656
gener_Flxq 8461
get_Flx_degree 30201496
get_Flx_mod 4031550
get_Flx_red 346408885
get_Flx_var 11345154
get_Flxq_field 587
get_Flxq_star 191761
int_to_Flx 22093048
int_to_Flx_half 39626472
kron_pack_Flx_spec 6300
kron_pack_Flx_spec_2 6300
kron_pack_Flx_spec_3 6300
kron_pack_Flx_spec_half 5526
kron_unpack_Flx 3500
kron_unpack_Flx_2 3500
kron_unpack_Flx_3 3500
matid2_FlxM 10
maxlengthcoeffpol 247533043
mkF2 2135170
pol1_FlxX 145596
polx_FlxX 26815
random_Flx 704064
zxX_to_FlxX 124495
zxX_to_Kronecker 645835
zxX_to_Kronecker_spec 2276051
zx_to_Flx 386921

Generated by: LCOV version 1.9