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 17774-15dbd24) Lines: 2293 2443 93.9 %
Date: 2015-04-26 Functions: 284 297 95.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1172 1397 83.9 %

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 721966
Flc_to_ZC 3539124
Flm_to_FlxV 175168
Flm_to_FlxX 13682
Flm_to_ZM 351595
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 1167358
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 144109
FlxV_Flc_mul 12124
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 278100
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 3975743
FlxX_shift 0
FlxX_sub 48123
FlxX_subspec 303498
FlxX_swap 9772
FlxX_to_Flm 8097
FlxX_to_FlxC 1828
FlxX_to_ZXX 666022
FlxX_triple 98
FlxY_Flx_div 4813
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 777547
Flx_Fl_mul 15458096
Flx_Fl_mul_to_monic 1526319
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 16266
Flx_FlxM_qmul 1577
Flx_FlxqV_eval 1367097
Flx_Flxq_eval 595522
Flx_Frobenius 2868075
Flx_add 15191083
Flx_addmulmul 3580
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 21655
Flx_deriv 4186340
Flx_div_by_X_x 2439487
Flx_divrem 58156329
Flx_divrem_Barrett_noGC 1334619
Flx_divrem_Barrettspec 1334783
Flx_divrem_basecase 20642341
Flx_double 1766798
Flx_equal 24433290
Flx_eval 8720158
Flx_eval2BILspec 904899
Flx_eval_powers_pre 1172775
Flx_eval_pre 8720158
Flx_eval_pre_i 8637489
Flx_extgcd 2926944
Flx_extgcd_basecase 2926944
Flx_extgcd_halfgcd 3
Flx_extresultant 145572
Flx_gcd 15441504
Flx_gcd_basecase 14790524
Flx_get_red 31912137
Flx_halfgcd 6121
Flx_halfgcd_basecase 4363
Flx_halfgcd_i 6121
Flx_halfgcd_split 1758
Flx_inflate 24803
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 3388801
Flx_lgrenormalizespec 2696710
Flx_matFrobenius 274292
Flx_mod_Xn1 19
Flx_mod_Xnm1 93186
Flx_mul 111229557
Flx_mullimb 161658590
Flx_mullimb_ok 428684409
Flx_mulspec 113936951
Flx_mulspec_basecase 82204595
Flx_mulspec_halfmulii 21420635
Flx_mulspec_mulii 1224402
Flx_mulspec_mulii_inflate 393044
Flx_multhreshold 31995949
Flx_neg 990815
Flx_neg_inplace 1838
Flx_negspec 990806
Flx_normalize 9655478
Flx_powu 4994
Flx_recip 0
Flx_recipspec 2671268
Flx_red 221796
Flx_rem 233974424
Flx_rem_basecase 205317733
Flx_renormalize 658171081
Flx_rescale 203
Flx_resultant 1436127
Flx_shift 1337220
Flx_shiftip 159525226
Flx_splitting 73384
Flx_sqr 54316760
Flx_sqrspec 54316886
Flx_sqrspec_basecase 24056599
Flx_sqrspec_halfsqri 16666553
Flx_sqrspec_sqri 13454269
Flx_sqrspec_sqri_inflate 106199
Flx_sub 44373889
Flx_subspec 1334760
Flx_to_Flv 3307395
Flx_to_FlxX 0
Flx_to_ZX 4986036
Flx_to_ZX_inplace 42654650
Flx_to_int_halfspec 59514469
Flx_triple 623387
Flx_val 372989
Flx_valrem 1884592
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 499388
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 4298
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 2835322
Flxq_is2npower 140
Flxq_issquare 298055
Flxq_log 30988
Flxq_lroot 12488
Flxq_lroot_fast 56952
Flxq_matrix_pow 276154
Flxq_minpoly 174
Flxq_mul 68084230
Flxq_norm 311299
Flxq_order 12185
Flxq_pow 25300746
Flxq_pow_Frobenius 24788200
Flxq_powers 962644
Flxq_powu 3885490
Flxq_sqr 54019331
Flxq_sqrt 143214
Flxq_sqrtn 149652
Flxq_trace 1623
Fly_to_FlxY 1688
Kronecker_to_FlxqX 1242382
RgX_to_Flx 126
Rg_to_F2 1431230
Rg_to_Fl 19504733
Rg_to_Flxq 888467
ZM_unpack_FlxqM 142
ZXT_to_FlxT 1034028
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 760373
ZX_to_Flx 107121128
Z_mod2BIL_Flx 499247
Z_mod2BIL_Flx_2 502131
Z_mod2BIL_Flx_3 4115
Z_to_Flx 1713200
_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 7706800
_Flxq_cmul 9165546
_Flxq_equal0 60322
_Flxq_inv 2797
_Flxq_mul 60243644
_Flxq_neg 2874
_Flxq_one 5112799
_Flxq_pow 24771445
_Flxq_rand 292788
_Flxq_red 4744332
_Flxq_rmul 495204
_Flxq_s 11370
_Flxq_sqr 48780652
_Flxq_zero 32236
bounded_order 625923
gener_Flxq 8461
get_Flx_degree 29985239
get_Flx_mod 3815009
get_Flx_red 292130749
get_Flx_var 10453407
get_Flxq_field 587
get_Flxq_star 190977
int_to_Flx 14678672
int_to_Flx_half 38091501
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 191533990
mkF2 1343028
pol1_FlxX 145686
polx_FlxX 26821
random_Flx 677149
zxX_to_FlxX 78755
zxX_to_Kronecker 641007
zxX_to_Kronecker_spec 2271547
zx_to_Flx 257717

Generated by: LCOV version 1.9