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 17097-9391e68) Lines: 2165 2314 93.6 %
Date: 2014-11-21 Functions: 271 283 95.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1112 1330 83.6 %

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 42415
Fl2_inv_pre 18064
Fl2_mul_pre 203406
Fl2_norm_pre 5143
Fl2_pow_pre 63903
Fl2_sqr_pre 531924
Fl2_sqrtn_pre 8048
Fl_to_Flx 497514
Flc_to_ZC 804317
Flm_to_FlxV 109143
Flm_to_FlxX 8858
Flm_to_ZM 152537
FlvV_polint_tree 97232
Flv_FlvV_polint 4120
Flv_inv 21942
Flv_inv_indir 21096
Flv_inv_inplace 0
Flv_inv_pre 0
Flv_inv_pre_indir 31566
Flv_inv_pre_inplace 30720
Flv_polint 17822
Flv_producttree 21942
Flv_roots_to_pol 89418
Flv_to_Flx 795511
Flv_to_ZV 302
FlxC_to_ZXC 242
FlxM_Flx_add_shallow 60
FlxM_Flx_mul2 551
FlxM_mul2 416
FlxM_to_ZXM 104
FlxT_red 21236
FlxV_Flc_mul 8660
FlxV_red 0
FlxV_to_Flm 174233
FlxV_to_ZXV 58187
FlxXV_to_FlxM 79
FlxX_Fl_mul 160
FlxX_Flx_add 228
FlxX_Flx_mul 206071
FlxX_add 162544
FlxX_double 296
FlxX_lgrenormalizespec 600861
FlxX_neg 160
FlxX_recipspec 486623
FlxX_renormalize 2542576
FlxX_shift 0
FlxX_sub 33359
FlxX_subspec 209540
FlxX_swap 6980
FlxX_to_Flm 4883
FlxX_to_FlxC 1254
FlxX_to_ZXX 237021
FlxX_triple 68
FlxY_Flx_div 1040
FlxY_FlxqV_evalx 31533
FlxY_Flxq_evalx 0
FlxY_eval_powers_pre 126420
FlxY_evalx 715091
FlxY_evalx_powers_pre 194704
FlxYqq_mul 1400
FlxYqq_pow 1390
FlxYqq_redswap 3490
FlxYqq_sqr 2090
Flx_Fl_add 524506
Flx_Fl_mul 11117521
Flx_Fl_mul_to_monic 1066994
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 21942
Flx_FlxM_qmul 415
Flx_FlxqV_eval 1029635
Flx_Flxq_eval 454113
Flx_Frobenius 2040592
Flx_add 11098964
Flx_addmulmul 1104
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 15145
Flx_deriv 3021872
Flx_div_by_X_x 1743488
Flx_divrem 37291840
Flx_divrem_Barrett_noGC 6593
Flx_divrem_Barrettspec 6645
Flx_divrem_basecase 14032392
Flx_double 1273620
Flx_equal 5670357
Flx_eval 20778345
Flx_eval2BILspec 192007
Flx_eval_powers_pre 893109
Flx_eval_pre 20778345
Flx_eval_pre_i 20658849
Flx_extgcd 2049803
Flx_extgcd_basecase 2049803
Flx_extgcd_halfgcd 1
Flx_extresultant 103245
Flx_gcd 10882765
Flx_gcd_basecase 10421373
Flx_get_red 11459766
Flx_halfgcd 2761
Flx_halfgcd_basecase 2225
Flx_halfgcd_i 2761
Flx_halfgcd_split 536
Flx_inflate 8637
Flx_invBarrett 54
Flx_invBarrett_Newton 10
Flx_invBarrett_basecase 34
Flx_is_l_pow 3435
Flx_is_smooth 62905
Flx_is_smooth_squarefree 66340
Flx_is_squarefree 2407370
Flx_lgrenormalizespec 13440
Flx_matFrobenius 171563
Flx_mod_Xn1 13
Flx_mod_Xnm1 66429
Flx_mul 51969266
Flx_mullimb 70064365
Flx_mullimb_ok 113682671
Flx_mulspec 51986382
Flx_mulspec_basecase 33208541
Flx_mulspec_halfmulii 13432945
Flx_mulspec_mulii 892844
Flx_mulspec_mulii_inflate 66205
Flx_neg 682425
Flx_neg_inplace 1838
Flx_negspec 682425
Flx_normalize 6795062
Flx_powu 1010
Flx_recip 0
Flx_recipspec 13300
Flx_red 85163
Flx_rem 141693711
Flx_rem_basecase 122338741
Flx_renormalize 386265431
Flx_rescale 115
Flx_resultant 1411723
Flx_shift 913256
Flx_shiftip 75521848
Flx_splitting 43342
Flx_sqr 27944141
Flx_sqrspec 27944253
Flx_sqrspec_basecase 14725573
Flx_sqrspec_halfsqri 12369707
Flx_sqrspec_sqri 764542
Flx_sqrspec_sqri_inflate 59597
Flx_sub 27786075
Flx_subspec 6645
Flx_to_Flv 2235833
Flx_to_FlxX 0
Flx_to_ZX 2248953
Flx_to_ZX_inplace 25747167
Flx_to_int_halfspec 39235597
Flx_triple 447894
Flx_val 265888
Flx_valrem 1327542
FlxqV_dotproduct 40680
FlxqV_roots_to_pol 234
FlxqXQV_autpow 10608
FlxqXQV_autsum 7914
FlxqXQ_autpow_mul 439
FlxqXQ_autpow_sqr 11298
FlxqXQ_autsum_mul 9898
FlxqXQ_autsum_sqr 9221
FlxqXQ_div 849
FlxqXQ_inv 849
FlxqXQ_invsafe 849
FlxqXQ_matrix_pow 79
FlxqXQ_mul 12513
FlxqXQ_mul_mg 105573
FlxqXQ_pow 26436
FlxqXQ_powers 20131
FlxqXQ_sqr 757
FlxqXQ_sqr_mg 139831
FlxqXV_prod 234
FlxqX_FlxqXQV_eval 31790
FlxqX_FlxqXQ_eval 11737
FlxqX_Flxq_mul 6008
FlxqX_Flxq_mul_to_monic 17365
FlxqX_divrem 233094
FlxqX_extgcd 5039
FlxqX_gcd 21501
FlxqX_invBarrett 89974
FlxqX_invBarrett_Newton 67543
FlxqX_invBarrett_basecase 22326
FlxqX_mul 149068
FlxqX_mulspec 564572
FlxqX_normalize 0
FlxqX_pow 3625
FlxqX_red 139616
FlxqX_rem_Barrett 209540
FlxqX_safegcd 2705
FlxqX_sqr 146318
Flxq_autpow 229964
Flxq_autpow_mul 7289
Flxq_autpow_sqr 276498
Flxq_autsum 228257
Flxq_autsum_mul 432246
Flxq_autsum_sqr 265635
Flxq_charpoly 143
Flxq_conjvec 14
Flxq_div 1238897
Flxq_easylog 237887
Flxq_inv 1971683
Flxq_invsafe 1989897
Flxq_is2npower 100
Flxq_issquare 214009
Flxq_log 40138
Flxq_lroot 8920
Flxq_lroot_fast 40680
Flxq_matrix_pow 172843
Flxq_minpoly 124
Flxq_mul 25043065
Flxq_norm 10227
Flxq_order 9349
Flxq_pow 6718581
Flxq_pow_Frobenius 6174708
Flxq_powers 690956
Flxq_powu 2713069
Flxq_sqr 27744977
Flxq_sqrt 103098
Flxq_sqrtn 108038
Flxq_trace 1189
Fly_to_FlxY 410
Kronecker_to_FlxqX 859958
RgX_to_Flx 90
Rg_to_F2 1020390
Rg_to_Fl 9015465
Rg_to_Flxq 634429
ZXT_to_FlxT 609894
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 311853
ZX_to_Flx 66486706
Z_mod2BIL_Flx 125802
Z_mod2BIL_Flx_2 125772
Z_mod2BIL_Flx_3 30
Z_to_Flx 969045
_Fl2_mul 203406
_Fl2_pow 63903
_Fl2_rand 12135
_Fl2_sqr 531924
_Flx_mul 792454
_FlxqXQ_add 162544
_FlxqXQ_cmul 206071
_FlxqXQ_mul 105573
_FlxqXQ_one 97273
_FlxqXQ_red 80069
_FlxqXQ_sqr 139831
_FlxqXQ_zero 0
_FlxqX_mul 908
_FlxqX_sqr 3640
_Flxq_add 5726160
_Flxq_cmul 6852953
_Flxq_equal0 33028
_Flxq_inv 1457
_Flxq_mul 19558876
_Flxq_neg 1507
_Flxq_one 3798293
_Flxq_pow 6163093
_Flxq_rand 210136
_Flxq_red 3524075
_Flxq_rmul 349692
_Flxq_s 5773
_Flxq_sqr 23969444
_Flxq_zero 22974
bounded_order 470148
gener_Flxq 4949
get_Flx_degree 9851269
get_Flx_mod 2463740
get_Flx_red 178985551
get_Flx_var 7569670
get_Flxq_field 199
get_Flxq_star 156288
int_to_Flx 1657386
int_to_Flx_half 25802652
matid2_FlxM 6
maxlengthcoeffpol 75521848
mkF2 773577
pol1_FlxX 102312
polx_FlxX 18741
random_Flx 480361
zxX_to_FlxX 55850
zxX_to_Kronecker 444454
zxX_to_Kronecker_spec 1573598
zx_to_Flx 182763

Generated by: LCOV version 1.9