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 17234-4181bc5) Lines: 2192 2334 93.9 %
Date: 2014-12-18 Functions: 272 284 95.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1131 1343 84.2 %

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 59413
Fl2_inv_pre 25300
Fl2_mul_pre 284880
Fl2_norm_pre 7193
Fl2_pow_pre 89507
Fl2_sqr_pre 745088
Fl2_sqrtn_pre 11274
Fl_to_Flx 692867
Flc_to_ZC 1905205
Flm_to_FlxV 174539
Flm_to_FlxX 12493
Flm_to_ZM 279526
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 51369
Flv_inv_pre_inplace 43088
Flv_polint 10498
Flv_producttree 16266
Flv_roots_to_pol 125066
Flv_to_Flx 1161734
Flv_to_ZV 433
FlxC_to_ZXC 855
FlxM_Flx_add_shallow 84
FlxM_Flx_mul2 859
FlxM_mul2 646
FlxM_to_ZXM 344
FlxT_red 29818
FlxV_Flc_mul 12124
FlxV_red 0
FlxV_to_Flm 272529
FlxV_to_ZXV 81949
FlxXV_to_FlxM 132
FlxX_Fl_mul 228
FlxX_Flx_add 326
FlxX_Flx_mul 293355
FlxX_add 231273
FlxX_double 424
FlxX_lgrenormalizespec 867775
FlxX_neg 228
FlxX_recipspec 703172
FlxX_renormalize 3653932
FlxX_shift 0
FlxX_sub 48123
FlxX_subspec 303580
FlxX_swap 9772
FlxX_to_Flm 6942
FlxX_to_FlxC 1828
FlxX_to_ZXX 348329
FlxX_triple 98
FlxY_Flx_div 1456
FlxY_FlxqV_evalx 45262
FlxY_Flxq_evalx 0
FlxY_eval_powers_pre 177340
FlxY_evalx 334828
FlxY_evalx_powers_pre 273132
FlxYqq_mul 1960
FlxYqq_pow 1946
FlxYqq_redswap 4886
FlxYqq_sqr 2926
Flx_Fl_add 775750
Flx_Fl_mul 15741930
Flx_Fl_mul_to_monic 1521636
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 16266
Flx_FlxM_qmul 643
Flx_FlxqV_eval 1468152
Flx_Flxq_eval 638890
Flx_Frobenius 2893580
Flx_add 15311029
Flx_addmulmul 1724
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 21924
Flx_deriv 4168500
Flx_div_by_X_x 2439426
Flx_divrem 54557502
Flx_divrem_Barrett_noGC 1386026
Flx_divrem_Barrettspec 1386174
Flx_divrem_basecase 19835425
Flx_double 1784214
Flx_equal 8119618
Flx_eval 8717953
Flx_eval2BILspec 835993
Flx_eval_powers_pre 1168298
Flx_eval_pre 8717953
Flx_eval_pre_i 8635284
Flx_extgcd 2884787
Flx_extgcd_basecase 2884787
Flx_extgcd_halfgcd 3
Flx_extresultant 145593
Flx_gcd 15398974
Flx_gcd_basecase 14744658
Flx_get_red 16435301
Flx_halfgcd 4017
Flx_halfgcd_basecase 3187
Flx_halfgcd_i 4017
Flx_halfgcd_split 830
Flx_inflate 12093
Flx_invBarrett 101342
Flx_invBarrett_Newton 1787
Flx_invBarrett_basecase 99539
Flx_is_l_pow 4809
Flx_is_smooth 88067
Flx_is_smooth_squarefree 92876
Flx_is_squarefree 3382711
Flx_lgrenormalizespec 2799487
Flx_matFrobenius 268791
Flx_mod_Xn1 19
Flx_mod_Xnm1 93147
Flx_mul 73030406
Flx_mullimb 100917777
Flx_mullimb_ok 141477405
Flx_mulspec 75826018
Flx_mulspec_basecase 46165561
Flx_mulspec_halfmulii 21875471
Flx_mulspec_mulii 1204145
Flx_mulspec_mulii_inflate 364897
Flx_multhreshold 16512992
Flx_neg 962779
Flx_neg_inplace 1838
Flx_negspec 962779
Flx_normalize 9599296
Flx_powu 1414
Flx_recip 0
Flx_recipspec 2774135
Flx_red 120927
Flx_rem 182638473
Flx_rem_basecase 153620335
Flx_renormalize 536366730
Flx_rescale 161
Flx_resultant 1131237
Flx_shift 1328198
Flx_shiftip 110060797
Flx_splitting 60680
Flx_sqr 40483571
Flx_sqrspec 40483683
Flx_sqrspec_basecase 20788250
Flx_sqrspec_halfsqri 18528806
Flx_sqrspec_sqri 1025574
Flx_sqrspec_sqri_inflate 106199
Flx_sub 39362049
Flx_subspec 1386174
Flx_to_Flv 3289447
Flx_to_FlxX 0
Flx_to_ZX 3282216
Flx_to_ZX_inplace 38364257
Flx_to_int_halfspec 62279748
Flx_triple 627748
Flx_val 372506
Flx_valrem 1884202
FlxqV_dotproduct 56952
FlxqV_roots_to_pol 346
FlxqXQV_autpow 14905
FlxqXQV_autsum 11612
FlxqXQ_autpow_mul 615
FlxqXQ_autpow_sqr 15871
FlxqXQ_autsum_mul 14388
FlxqXQ_autsum_sqr 13441
FlxqXQ_div 1201
FlxqXQ_inv 1201
FlxqXQ_invsafe 1201
FlxqXQ_matrix_pow 132
FlxqXQ_mul 18089
FlxqXQ_mul_mg 151028
FlxqXQ_pow 38129
FlxqXQ_powers 28764
FlxqXQ_sqr 1071
FlxqXQ_sqr_mg 204175
FlxqXV_prod 346
FlxqX_FlxqXQV_eval 45596
FlxqX_FlxqXQ_eval 16486
FlxqX_Flxq_mul 8730
FlxqX_Flxq_mul_to_monic 27188
FlxqX_divrem 340280
FlxqX_extgcd 7361
FlxqX_gcd 30874
FlxqX_invBarrett 128807
FlxqX_invBarrett_Newton 96012
FlxqX_invBarrett_basecase 32646
FlxqX_mul 213939
FlxqX_mulspec 815434
FlxqX_normalize 0
FlxqX_pow 5075
FlxqX_red 199041
FlxqX_rem_Barrett 303580
FlxqX_safegcd 4242
FlxqX_sqr 213268
Flxq_autpow 323302
Flxq_autpow_mul 10849
Flxq_autpow_sqr 388431
Flxq_autsum 328910
Flxq_autsum_mul 615784
Flxq_autsum_sqr 381534
Flxq_charpoly 201
Flxq_conjvec 20
Flxq_div 1735019
Flxq_easylog 344783
Flxq_inv 2769681
Flxq_invsafe 2798070
Flxq_is2npower 140
Flxq_issquare 299567
Flxq_log 58429
Flxq_lroot 12488
Flxq_lroot_fast 56952
Flxq_matrix_pow 270583
Flxq_minpoly 174
Flxq_mul 35929042
Flxq_norm 14882
Flxq_order 13113
Flxq_pow 9625245
Flxq_pow_Frobenius 8859792
Flxq_powers 1007450
Flxq_powu 3903747
Flxq_sqr 40196341
Flxq_sqrt 144380
Flxq_sqrtn 151330
Flxq_trace 1669
Fly_to_FlxY 574
Kronecker_to_FlxqX 1242641
RgX_to_Flx 126
Rg_to_F2 1428546
Rg_to_Fl 13424084
Rg_to_Flxq 888215
ZXT_to_FlxT 875141
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 441257
ZX_to_Flx 97693935
Z_mod2BIL_Flx 471096
Z_mod2BIL_Flx_2 470481
Z_mod2BIL_Flx_3 615
Z_to_Flx 1070436
_Fl2_mul 284880
_Fl2_pow 89507
_Fl2_rand 17005
_Fl2_sqr 745088
_Flx_mul 1108723
_FlxqXQ_add 231273
_FlxqXQ_cmul 293355
_FlxqXQ_mul 151028
_FlxqXQ_one 138364
_FlxqXQ_red 113887
_FlxqXQ_sqr 204175
_FlxqXQ_zero 0
_FlxqX_mul 1352
_FlxqX_sqr 5096
_Flxq_add 8064799
_Flxq_cmul 9667912
_Flxq_equal0 59965
_Flxq_inv 2734
_Flxq_mul 28215667
_Flxq_neg 2804
_Flxq_one 5398509
_Flxq_pow 8843277
_Flxq_rand 294383
_Flxq_red 4994074
_Flxq_rmul 495225
_Flxq_s 11209
_Flxq_sqr 34902196
_Flxq_zero 32236
bounded_order 674486
gener_Flxq 8350
get_Flx_degree 14148288
get_Flx_mod 3480930
get_Flx_red 237195975
get_Flx_var 10774561
get_Flxq_field 552
get_Flxq_star 221141
int_to_Flx 2229719
int_to_Flx_half 40404277
matid2_FlxM 10
maxlengthcoeffpol 126573789
mkF2 1083547
pol1_FlxX 145725
polx_FlxX 26824
random_Flx 677020
zxX_to_FlxX 78390
zxX_to_Kronecker 641146
zxX_to_Kronecker_spec 2272014
zx_to_Flx 256499

Generated by: LCOV version 1.9