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 17862-bbf675f) Lines: 2293 2462 93.1 %
Date: 2015-05-30 Functions: 284 299 95.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1172 1411 83.1 %

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 721876
Flc_to_ZC 3539439
Flm_to_FlxV 175301
Flm_to_FlxX 13690
Flm_to_ZM 351693
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 1167729
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 145116
FlxV_Flc_mul 12124
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 278415
FlxV_to_ZXV 82276
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 3975796
FlxX_shift 0
FlxX_sub 48123
FlxX_subspec 303498
FlxX_swap 9772
FlxX_to_Flm 8107
FlxX_to_FlxC 1828
FlxX_to_ZXX 666022
FlxX_triple 98
FlxY_Flx_div 4835
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 778044
Flx_Fl_mul 15458580
Flx_Fl_mul_to_monic 1526788
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 16266
Flx_FlxM_qmul 1577
Flx_FlxqV_eval 1367097
Flx_Flxq_eval 595570
Flx_Frobenius 2868397
Flx_add 15192070
Flx_addmulmul 3580
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 21704
Flx_deriv 4187901
Flx_div_by_X_x 2439487
Flx_divrem 58157893
Flx_divrem_Barrett_noGC 1334925
Flx_divrem_Barrettspec 1335078
Flx_divrem_basecase 20643527
Flx_double 1766798
Flx_equal 24433290
Flx_eval 8720158
Flx_eval2BILspec 905016
Flx_eval_powers_pre 1172775
Flx_eval_pre 8720158
Flx_eval_pre_i 8637489
Flx_extgcd 2927000
Flx_extgcd_basecase 2927000
Flx_extgcd_halfgcd 3
Flx_extresultant 145572
Flx_gcd 15443737
Flx_gcd_basecase 14792652
Flx_get_red 31913646
Flx_halfgcd 6121
Flx_halfgcd_basecase 4363
Flx_halfgcd_i 6121
Flx_halfgcd_split 1758
Flx_inflate 24932
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 2697271
Flx_matFrobenius 274607
Flx_mod_Xn1 19
Flx_mod_Xnm1 93186
Flx_mul 111234279
Flx_mullimb 161658673
Flx_mullimb_ok 428694647
Flx_mulspec 113944448
Flx_mulspec_basecase 82204616
Flx_mulspec_halfmulii 21422577
Flx_mulspec_mulii 1224484
Flx_mulspec_mulii_inflate 393107
Flx_multhreshold 31997458
Flx_neg 991074
Flx_neg_inplace 1838
Flx_negspec 991077
Flx_normalize 9656409
Flx_powu 5027
Flx_recip 0
Flx_recipspec 2671899
Flx_red 222796
Flx_rem 233995236
Flx_rem_basecase 205336015
Flx_renormalize 658215116
Flx_rescale 203
Flx_resultant 1437774
Flx_shift 1337735
Flx_shiftip 159532854
Flx_splitting 73496
Flx_sqr 54320944
Flx_sqrspec 54321086
Flx_sqrspec_basecase 24058251
Flx_sqrspec_halfsqri 16669085
Flx_sqrspec_sqri 13454270
Flx_sqrspec_sqri_inflate 106199
Flx_sub 44375097
Flx_subspec 1335061
Flx_to_Flv 3309390
Flx_to_FlxX 0
Flx_to_ZX 4986540
Flx_to_ZX_inplace 42655814
Flx_to_int_halfspec 59520530
Flx_triple 623387
Flx_val 372989
Flx_valrem 1884879
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 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 5075
FlxqX_red 199386
FlxqX_rem_Barrett 303498
FlxqX_safegcd 4305
FlxqX_sqr 213217
Flxq_autpow 282041
Flxq_autpow_mul 10666
Flxq_autpow_sqr 346925
Flxq_autsum 283972
Flxq_autsum_mul 565289
Flxq_autsum_sqr 334306
Flxq_charpoly 201
Flxq_conjvec 20
Flxq_div 1716576
Flxq_easylog 291721
Flxq_inv 2806828
Flxq_invsafe 2835336
Flxq_is2npower 140
Flxq_issquare 298055
Flxq_log 30988
Flxq_lroot 12488
Flxq_lroot_fast 56952
Flxq_matrix_pow 276469
Flxq_minpoly 174
Flxq_mul 68086559
Flxq_norm 311299
Flxq_order 12185
Flxq_pow 25300893
Flxq_pow_Frobenius 24788200
Flxq_powers 962959
Flxq_powu 3886379
Flxq_sqr 54023460
Flxq_sqrt 143214
Flxq_sqrtn 149652
Flxq_trace 1623
Fly_to_FlxY 1699
Kronecker_to_FlxqX 1242382
RgX_to_Flx 126
Rg_to_F2 1431251
Rg_to_Fl 19504733
Rg_to_Flxq 888467
ZM_unpack_FlxqM 142
ZXT_to_FlxT 1034389
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 760396
ZX_to_Flx 107126481
Z_mod2BIL_Flx 499306
Z_mod2BIL_Flx_2 502190
Z_mod2BIL_Flx_3 4115
Z_to_Flx 1713227
_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 7706921
_Flxq_cmul 9165715
_Flxq_equal0 60322
_Flxq_inv 2797
_Flxq_mul 60245966
_Flxq_neg 2874
_Flxq_one 5113257
_Flxq_pow 24771445
_Flxq_rand 292788
_Flxq_red 4744454
_Flxq_rmul 495204
_Flxq_s 11370
_Flxq_sqr 48784417
_Flxq_zero 32236
bounded_order 625923
gener_Flxq 8461
get_Flx_degree 29985917
get_Flx_mod 3815023
get_Flx_red 292153125
get_Flx_var 10454201
get_Flxq_field 587
get_Flxq_star 190977
int_to_Flx 14678757
int_to_Flx_half 38096127
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 191544526
mkF2 1343028
pol1_FlxX 145686
polx_FlxX 26821
random_Flx 677289
zxX_to_FlxX 78755
zxX_to_Kronecker 641007
zxX_to_Kronecker_spec 2271547
zx_to_Flx 257717

Generated by: LCOV version 1.9