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 17931-6d987be) Lines: 2293 2474 92.7 %
Date: 2015-07-29 Functions: 284 300 94.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1173 1423 82.4 %

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 59422
Fl2_inv_pre 25330
Fl2_mul_pre 503298
Fl2_norm_pre 45492
Fl2_pow_pre 89523
Fl2_sqr_pre 745307
Fl2_sqrtn_pre 11282
Fl_Flxq_log 10304
Fl_to_Flx 933348
Flc_to_ZC 3539467
Flm_to_FlxV 175350
Flm_to_FlxX 13816
Flm_to_ZM 351707
FlvV_polint_tree 121672
Flv_FlvV_polint 5768
Flv_inv 16266
Flv_inv_indir 7985
Flv_inv_inplace 0
Flv_inv_pre 0
Flv_inv_pre_indir 51515
Flv_inv_pre_inplace 43234
Flv_polint 10498
Flv_prod 0
Flv_prod_pre 0
Flv_producttree 16266
Flv_roots_to_pol 125066
Flv_to_Flx 1168178
Flv_to_ZV 426
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 161230
FlxV_Flc_mul 12166
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 278478
FlxV_to_ZXV 154537
FlxXV_to_FlxM 132
FlxX_Fl_mul 228
FlxX_Flx_add 326
FlxX_Flx_mul 293303
FlxX_add 231247
FlxX_double 424
FlxX_lgrenormalizespec 867611
FlxX_neg 228
FlxX_recipspec 703008
FlxX_renormalize 3981166
FlxX_shift 0
FlxX_sub 48123
FlxX_subspec 303498
FlxX_swap 9828
FlxX_to_Flm 8214
FlxX_to_FlxC 1828
FlxX_to_ZXX 666050
FlxX_triple 98
FlxY_Flx_div 5006
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 45236
FlxY_Flxq_evalx 0
FlxY_eval_powers_pre 177912
FlxY_evalx 334828
FlxY_evalx_powers_pre 274117
FlxYqq_mul 1960
FlxYqq_pow 1960
FlxYqq_redswap 4914
FlxYqq_sqr 2954
Flx_Fl2_eval_pre 40803
Flx_Fl_add 912542
Flx_Fl_mul 16250953
Flx_Fl_mul_to_monic 1526851
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 16266
Flx_FlxM_qmul 1577
Flx_FlxqV_eval 1377009
Flx_Flxq_eval 640461
Flx_Frobenius 2881816
Flx_add 15638770
Flx_addmulmul 3580
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 21809
Flx_deriv 4189791
Flx_div_by_X_x 2439487
Flx_divrem 59153610
Flx_divrem_Barrett_noGC 1334196
Flx_divrem_Barrettspec 1334356
Flx_divrem_basecase 21056773
Flx_double 1774428
Flx_equal 24436524
Flx_eval 8720298
Flx_eval2BILspec 904790
Flx_eval_powers_pre 1172775
Flx_eval_pre 8720298
Flx_eval_pre_i 8637629
Flx_extgcd 3061799
Flx_extgcd_basecase 3061799
Flx_extgcd_halfgcd 3
Flx_extresultant 145572
Flx_gcd 15444332
Flx_gcd_basecase 14793226
Flx_get_red 32161320
Flx_halfgcd 6121
Flx_halfgcd_basecase 4363
Flx_halfgcd_i 6121
Flx_halfgcd_split 1758
Flx_inflate 27305
Flx_invBarrett 101163
Flx_invBarrett_Newton 1787
Flx_invBarrett_basecase 99360
Flx_is_l_pow 4781
Flx_is_smooth 88234
Flx_is_smooth_squarefree 93015
Flx_is_squarefree 3389081
Flx_lgrenormalizespec 2695843
Flx_matFrobenius 274656
Flx_mod_Xn1 19
Flx_mod_Xnm1 93186
Flx_mul 112437006
Flx_mullimb 161658764
Flx_mullimb_ok 431874738
Flx_mulspec 115143494
Flx_mulspec_basecase 82986706
Flx_mulspec_halfmulii 21724138
Flx_mulspec_mulii 1224303
Flx_mulspec_mulii_inflate 392990
Flx_multhreshold 32245132
Flx_neg 1057402
Flx_neg_inplace 1838
Flx_negspec 1057385
Flx_normalize 9656822
Flx_powu 5280
Flx_recip 0
Flx_recipspec 2670446
Flx_red 239243
Flx_rem 236039768
Flx_rem_basecase 206939876
Flx_renormalize 665741523
Flx_rescale 203
Flx_resultant 1490176
Flx_shift 1339065
Flx_shiftip 161091962
Flx_splitting 131487
Flx_sqr 54821372
Flx_sqrspec 54821525
Flx_sqrspec_basecase 24200766
Flx_sqrspec_halfsqri 16997091
Flx_sqrspec_sqri 13457029
Flx_sqrspec_sqri_inflate 106199
Flx_sub 44857690
Flx_subspec 1334341
Flx_to_Flv 3311447
Flx_to_FlxX 0
Flx_to_ZX 5432632
Flx_to_ZX_inplace 43268845
Flx_to_int_halfspec 60452089
Flx_triple 627951
Flx_val 372989
Flx_valrem 1885061
FlxqM_mul_Kronecker 142
FlxqV_dotproduct 112560
FlxqV_roots_to_pol 346
FlxqXQV_autpow 14905
FlxqXQV_autsum 11609
FlxqXQ_autpow_mul 615
FlxqXQ_autpow_sqr 15871
FlxqXQ_autsum_mul 14375
FlxqXQ_autsum_sqr 13434
FlxqXQ_div 1201
FlxqXQ_inv 1201
FlxqXQ_invsafe 1201
FlxqXQ_matrix_pow 132
FlxqXQ_mul 18076
FlxqXQ_mul_mg 150997
FlxqXQ_pow 38123
FlxqXQ_powers 28751
FlxqXQ_sqr 1071
FlxqXQ_sqr_mg 204124
FlxqXV_prod 346
FlxqX_FlxqXQV_eval 45570
FlxqX_FlxqXQ_eval 16486
FlxqX_Flxq_mul 8730
FlxqX_Flxq_mul_to_monic 27307
FlxqX_divrem 499402
FlxqX_extgcd 7361
FlxqX_gcd 31035
FlxqX_invBarrett 128762
FlxqX_invBarrett_Newton 96012
FlxqX_invBarrett_basecase 32601
FlxqX_mul 213895
FlxqX_mulspec 815270
FlxqX_normalize 0
FlxqX_pow 10115
FlxqX_red 199414
FlxqX_rem_Barrett 303498
FlxqX_safegcd 4305
FlxqX_sqr 218285
Flxq_autpow 297630
Flxq_autpow_mul 20389
Flxq_autpow_sqr 370116
Flxq_autsum 286142
Flxq_autsum_mul 570245
Flxq_autsum_sqr 337680
Flxq_charpoly 341
Flxq_conjvec 20
Flxq_div 1786009
Flxq_easylog 293121
Flxq_inv 2941606
Flxq_invsafe 2970114
Flxq_is2npower 280
Flxq_issquare 338200
Flxq_log 30988
Flxq_lroot 24920
Flxq_lroot_fast 112560
Flxq_matrix_pow 276518
Flxq_minpoly 314
Flxq_mul 68648022
Flxq_norm 363645
Flxq_order 12031
Flxq_pow 25326457
Flxq_pow_Frobenius 24799988
Flxq_powers 1052657
Flxq_powu 3963813
Flxq_sqr 54518836
Flxq_sqrt 144481
Flxq_sqrtn 150926
Flxq_trace 3072
Fly_to_FlxY 1807
Kronecker_to_FlxqX 1247450
RgX_to_Flx 126
Rg_to_F2 1455794
Rg_to_Fl 19664571
Rg_to_Flxq 1299479
ZM_unpack_FlxqM 142
ZXT_to_FlxT 1208496
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 760370
ZX_to_Flx 108682581
Z_mod2BIL_Flx 499191
Z_mod2BIL_Flx_2 502075
Z_mod2BIL_Flx_3 4115
Z_to_Flx 1713195
_Fl2_mul 284835
_Fl2_pow 89523
_Fl2_rand 17008
_Fl2_sqr 745307
_Flx_mul 1108723
_FlxqXQ_add 231247
_FlxqXQ_cmul 293303
_FlxqXQ_mul 150997
_FlxqXQ_one 138325
_FlxqXQ_red 113861
_FlxqXQ_sqr 204124
_FlxqXQ_zero 0
_FlxqX_mul 1352
_FlxqX_sqr 10136
_Flxq_add 7848125
_Flxq_cmul 9361722
_Flxq_equal0 60322
_Flxq_inv 2797
_Flxq_mul 60494193
_Flxq_neg 2874
_Flxq_one 5364879
_Flxq_pow 24783233
_Flxq_rand 292487
_Flxq_red 4904005
_Flxq_rmul 495204
_Flxq_s 11370
_Flxq_sqr 49122006
_Flxq_zero 32236
bounded_order 627050
gener_Flxq 8461
get_Flx_degree 30206312
get_Flx_mod 4033682
get_Flx_red 295193381
get_Flx_var 10737190
get_Flxq_field 587
get_Flxq_star 191915
int_to_Flx 14681334
int_to_Flx_half 38725835
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 193338634
mkF2 1343028
pol1_FlxX 145686
polx_FlxX 26821
random_Flx 704645
zxX_to_FlxX 78755
zxX_to_Kronecker 646075
zxX_to_Kronecker_spec 2276615
zx_to_Flx 257717

Generated by: LCOV version 1.9