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 17588-7fd783e) Lines: 2292 2440 93.9 %
Date: 2015-03-04 Functions: 284 296 95.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1173 1397 84.0 %

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 721213
Flc_to_ZC 3539970
Flm_to_FlxV 175195
Flm_to_FlxX 13652
Flm_to_ZM 351787
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_producttree 16266
Flv_roots_to_pol 125066
Flv_to_Flx 1167373
Flv_to_ZV 426
FlxC_to_ZXC 923
FlxM_Flx_add_shallow 84
FlxM_Flx_mul2 961
FlxM_mul2 748
FlxM_pack_ZM 257
FlxM_to_ZXM 385
FlxT_red 141538
FlxV_Flc_mul 12124
FlxV_red 0
FlxV_to_Flm 278127
FlxV_to_ZXV 82255
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 3974316
FlxX_shift 0
FlxX_sub 48123
FlxX_subspec 303498
FlxX_swap 9772
FlxX_to_Flm 8066
FlxX_to_FlxC 1828
FlxX_to_ZXX 664734
FlxX_triple 98
FlxY_Flx_div 4716
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 1946
FlxYqq_redswap 4886
FlxYqq_sqr 2926
Flx_Fl2_eval_pre 40803
Flx_Fl_add 777647
Flx_Fl_mul 15926118
Flx_Fl_mul_to_monic 1526389
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 16266
Flx_FlxM_qmul 745
Flx_FlxqV_eval 1447643
Flx_Flxq_eval 635262
Flx_Frobenius 2896214
Flx_add 15439982
Flx_addmulmul 1928
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 21655
Flx_deriv 4241689
Flx_div_by_X_x 2439487
Flx_divrem 58341863
Flx_divrem_Barrett_noGC 1326632
Flx_divrem_Barrettspec 1326789
Flx_divrem_basecase 20827940
Flx_double 1766798
Flx_equal 24433135
Flx_eval 8720158
Flx_eval2BILspec 901409
Flx_eval_powers_pre 1172775
Flx_eval_pre 8720158
Flx_eval_pre_i 8637489
Flx_extgcd 2956632
Flx_extgcd_basecase 2956632
Flx_extgcd_halfgcd 3
Flx_extresultant 145742
Flx_gcd 15648175
Flx_gcd_basecase 14967673
Flx_get_red 32296806
Flx_halfgcd 4463
Flx_halfgcd_basecase 3531
Flx_halfgcd_i 4463
Flx_halfgcd_split 932
Flx_inflate 24537
Flx_invBarrett 100714
Flx_invBarrett_Newton 1787
Flx_invBarrett_basecase 98911
Flx_is_l_pow 4781
Flx_is_smooth 88234
Flx_is_smooth_squarefree 93015
Flx_is_squarefree 3388801
Flx_lgrenormalizespec 2680690
Flx_matFrobenius 274319
Flx_mod_Xn1 19
Flx_mod_Xnm1 93186
Flx_mul 111865818
Flx_mullimb 161635678
Flx_mullimb_ok 432803420
Flx_mulspec 114552752
Flx_mulspec_basecase 82834582
Flx_mulspec_halfmulii 21355228
Flx_mulspec_mulii 1290095
Flx_mulspec_mulii_inflate 391305
Flx_multhreshold 32375196
Flx_neg 990164
Flx_neg_inplace 1838
Flx_negspec 990152
Flx_normalize 9752373
Flx_powu 4894
Flx_recip 0
Flx_recipspec 2655336
Flx_red 219526
Flx_rem 236540637
Flx_rem_basecase 207294059
Flx_renormalize 662264380
Flx_rescale 203
Flx_resultant 1433259
Flx_shift 1333904
Flx_shiftip 161388445
Flx_splitting 73098
Flx_sqr 55552945
Flx_sqrspec 55553076
Flx_sqrspec_basecase 24895471
Flx_sqrspec_halfsqri 16727554
Flx_sqrspec_sqri 13790618
Flx_sqrspec_sqri_inflate 106199
Flx_sub 44547314
Flx_subspec 1326779
Flx_to_Flv 3307424
Flx_to_FlxX 0
Flx_to_ZX 4986073
Flx_to_ZX_inplace 42649718
Flx_to_int_halfspec 59443789
Flx_triple 623387
Flx_val 372989
Flx_valrem 1884644
FlxqM_mul_Kronecker 142
FlxqV_dotproduct 56952
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 27293
FlxqX_divrem 498744
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 5075
FlxqX_red 199372
FlxqX_rem_Barrett 303498
FlxqX_safegcd 4298
FlxqX_sqr 213217
Flxq_autpow 321716
Flxq_autpow_mul 10939
Flxq_autpow_sqr 386383
Flxq_autsum 324181
Flxq_autsum_mul 605562
Flxq_autsum_sqr 374319
Flxq_charpoly 201
Flxq_conjvec 20
Flxq_div 1716576
Flxq_easylog 338838
Flxq_inv 2836537
Flxq_invsafe 2865031
Flxq_is2npower 140
Flxq_issquare 298055
Flxq_log 58519
Flxq_lroot 12488
Flxq_lroot_fast 56952
Flxq_matrix_pow 276181
Flxq_minpoly 174
Flxq_mul 68657870
Flxq_norm 311269
Flxq_order 12185
Flxq_pow 25400497
Flxq_pow_Frobenius 24928316
Flxq_powers 1002944
Flxq_powu 4009639
Flxq_sqr 55255812
Flxq_sqrt 143214
Flxq_sqrtn 150247
Flxq_trace 1623
Fly_to_FlxY 1662
Kronecker_to_FlxqX 1242382
RgX_to_Flx 126
Rg_to_F2 1431166
Rg_to_Fl 19509990
Rg_to_Flxq 888467
ZM_unpack_FlxqM 142
ZXT_to_FlxT 1060795
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 759055
ZX_to_Flx 107288702
Z_mod2BIL_Flx 497504
Z_mod2BIL_Flx_2 500389
Z_mod2BIL_Flx_3 4115
Z_to_Flx 1708246
_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 5096
_Flxq_add 7970013
_Flxq_cmul 9549045
_Flxq_equal0 60322
_Flxq_inv 2797
_Flxq_mul 60842632
_Flxq_neg 2874
_Flxq_one 5349279
_Flxq_pow 24911637
_Flxq_rand 292809
_Flxq_red 4940379
_Flxq_rmul 495204
_Flxq_s 11370
_Flxq_sqr 49989392
_Flxq_zero 32236
bounded_order 665862
gener_Flxq 8447
get_Flx_degree 30280665
get_Flx_mod 3844093
get_Flx_red 294882499
get_Flx_var 10718067
get_Flxq_field 587
get_Flxq_star 219103
int_to_Flx 15080716
int_to_Flx_half 38086943
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 193773447
mkF2 1343028
pol1_FlxX 145686
polx_FlxX 26821
random_Flx 677130
zxX_to_FlxX 78755
zxX_to_Kronecker 641007
zxX_to_Kronecker_spec 2271547
zx_to_Flx 257717

Generated by: LCOV version 1.9