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 16358-a11f489) Lines: 1997 2147 93.0 %
Date: 2014-04-11 Functions: 245 255 96.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1060 1280 82.8 %

Function Name Sort by function name Hit count Sort by hit count
Fl_to_Flx 344577
Flc_to_ZC 722958
Flm_to_FlxV 155461
Flm_to_FlxX 8578
Flm_to_ZM 134346
FlvV_polint_tree 15481
Flv_FlvV_polint 0
Flv_inv 15481
Flv_polint 15481
Flv_producttree 15481
Flv_roots_to_pol 27538
Flv_to_Flx 363260
Flv_to_ZV 27504
FlxC_to_ZXC 487
FlxM_Flx_add_shallow 35
FlxM_Flx_mul2 491
FlxM_mul2 356
FlxM_to_ZXM 229
FlxT_red 15908
FlxV_Flc_mul 8668
FlxV_red 0
FlxV_to_Flm 211169
FlxV_to_ZXV 58393
FlxXV_to_FlxM 83
FlxX_Fl_mul 90
FlxX_Flx_add 120
FlxX_Flx_mul 82577
FlxX_add 72973
FlxX_double 150
FlxX_lgrenormalizespec 155510
FlxX_neg 90
FlxX_recipspec 87085
FlxX_renormalize 670208
FlxX_shift 0
FlxX_sub 24378
FlxX_subspec 37287
FlxX_swap 6996
FlxX_to_Flm 3956
FlxX_to_FlxC 762
FlxX_to_ZXX 69441
FlxX_triple 30
FlxY_Flx_div 945
FlxY_Flxq_evalx 8141
FlxY_evalx 571905
FlxYqq_mul 1404
FlxYqq_pow 1394
FlxYqq_redswap 3498
FlxYqq_sqr 2094
Flx_Fl_add 363876
Flx_Fl_mul 10620489
Flx_Fl_mul_to_monic 983872
Flx_Flv_eval 0
Flx_Flv_eval_tree 15481
Flx_FlxM_qmul 355
Flx_FlxqV_eval 939800
Flx_Flxq_eval 524590
Flx_Frobenius 153855
Flx_add 9252785
Flx_addmulmul 984
Flx_addshift 3424
Flx_addspec 6792
Flx_deflate 14738
Flx_deriv 2812485
Flx_div_by_X_x 6231
Flx_divrem 35016636
Flx_divrem_Barrett_noGC 3783
Flx_divrem_Barrettspec 3847
Flx_divrem_basecase 12825888
Flx_double 1247577
Flx_equal 3571433
Flx_eval 18376145
Flx_eval2BILspec 158118
Flx_extgcd 1917568
Flx_extgcd_basecase 1917568
Flx_extgcd_halfgcd 1
Flx_extresultant 102703
Flx_gcd 10663820
Flx_gcd_basecase 10256616
Flx_get_red 9065410
Flx_halfgcd 3929
Flx_halfgcd_basecase 3453
Flx_halfgcd_i 3929
Flx_halfgcd_split 476
Flx_inflate 6593
Flx_invBarrett 56
Flx_invBarrett_Newton 10
Flx_invBarrett_basecase 36
Flx_is_l_pow 3477
Flx_is_smooth 63637
Flx_is_smooth_squarefree 67114
Flx_is_squarefree 2392698
Flx_lgrenormalizespec 7844
Flx_mod_Xn1 56
Flx_mod_Xnm1 35195
Flx_mul 36873974
Flx_mullimb 29951402
Flx_mullimb_ok 83858580
Flx_mulspec 36885130
Flx_mulspec_basecase 22778848
Flx_mulspec_halfmulii 10800365
Flx_mulspec_mulii 703404
Flx_mulspec_mulii_inflate 50607
Flx_neg 513053
Flx_neg_inplace 1656
Flx_negspec 513053
Flx_normalize 5383998
Flx_pow 980
Flx_recip 0
Flx_recipspec 7704
Flx_red 79982
Flx_rem 128468392
Flx_rem_basecase 113410146
Flx_renormalize 320741453
Flx_resultant 2836868
Flx_shift 892726
Flx_shiftip 56313090
Flx_splitting 42550
Flx_sqr 22032452
Flx_sqrspec 22032564
Flx_sqrspec_basecase 10803617
Flx_sqrspec_halfsqri 10799531
Flx_sqrspec_sqri 318102
Flx_sqrspec_sqri_inflate 56904
Flx_sub 22286179
Flx_subspec 3847
Flx_to_Flv 2275289
Flx_to_FlxX 0
Flx_to_ZX 1399000
Flx_to_ZX_inplace 23367545
Flx_to_int_halfspec 32400261
Flx_triple 436213
Flx_val 988
Flx_valrem 286253
FlxqV_dotproduct 40480
FlxqV_roots_to_pol 234
FlxqXQV_autpow 755
FlxqXQV_autsum 1844
FlxqXQ_autpow_mul 388
FlxqXQ_autpow_sqr 1145
FlxqXQ_autsum_mul 3304
FlxqXQ_autsum_sqr 2713
FlxqXQ_div 520
FlxqXQ_inv 520
FlxqXQ_invsafe 520
FlxqXQ_matrix_pow 83
FlxqXQ_mul 4894
FlxqXQ_mul_mg 27341
FlxqXQ_pow 4443
FlxqXQ_powers 3949
FlxqXQ_sqr 460
FlxqXQ_sqr_mg 23521
FlxqXV_prod 234
FlxqX_FlxqXQV_eval 8071
FlxqX_FlxqXQ_eval 1533
FlxqX_Flxq_mul 4639
FlxqX_Flxq_mul_to_monic 10340
FlxqX_divrem 80823
FlxqX_extgcd 3975
FlxqX_gcd 2868
FlxqX_invBarrett 17917
FlxqX_invBarrett_Newton 12511
FlxqX_invBarrett_basecase 5321
FlxqX_mul 56100
FlxqX_mulspec 133774
FlxqX_normalize 0
FlxqX_pow 3615
FlxqX_red 32402
FlxqX_rem_Barrett 37287
FlxqX_safegcd 1385
FlxqX_sqr 29695
Flxq_autpow 228284
Flxq_autpow_mul 7289
Flxq_autpow_sqr 274331
Flxq_autsum 246203
Flxq_autsum_mul 469900
Flxq_autsum_sqr 282154
Flxq_charpoly 243
Flxq_conjvec 14
Flxq_div 1218866
Flxq_easylog 242356
Flxq_inv 1842928
Flxq_invsafe 1853788
Flxq_is2npower 100
Flxq_issquare 212148
Flxq_log 43123
Flxq_lroot 8910
Flxq_lroot_fast 40480
Flxq_matrix_pow 209775
Flxq_minpoly 224
Flxq_mul 19050039
Flxq_norm 10436
Flxq_order 8840
Flxq_pow 4384034
Flxq_pow_Frobenius 3986809
Flxq_powers 744519
Flxq_powu 2593662
Flxq_sqr 21949901
Flxq_sqrt 102190
Flxq_sqrtn 103138
Flxq_trace 1203
Fly_to_FlxY 400
Kronecker_to_FlxqX 219569
RgX_to_Flx 110
Rg_to_F2 979644
Rg_to_Fl 8902724
Rg_to_Flxq 543507
ZXT_to_FlxT 365294
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 87602
ZX_to_Flx 65411452
Z_mod2BIL_Flx 107511
Z_mod2BIL_Flx_2 107481
Z_mod2BIL_Flx_3 30
Z_to_Flx 506381
_Flx_mul 2869
_FlxqXQ_add 72973
_FlxqXQ_cmul 82577
_FlxqXQ_mul 27341
_FlxqXQ_one 22991
_FlxqXQ_red 21032
_FlxqXQ_sqr 23521
_FlxqXQ_zero 0
_FlxqX_mul 898
_FlxqX_sqr 3620
_Flxq_add 5597698
_Flxq_cmul 6708110
_Flxq_equal0 43514
_Flxq_inv 2252
_Flxq_mul 14201115
_Flxq_neg 2302
_Flxq_one 3968584
_Flxq_pow 3975155
_Flxq_rand 200912
_Flxq_red 3625371
_Flxq_rmul 361187
_Flxq_s 25404
_Flxq_sqr 19594628
_Flxq_zero 12682
bounded_order 505629
gener_Flxq 4711
get_Flx_degree 6441823
get_Flx_mod 2025385
get_Flx_red 163485028
get_Flx_var 5013446
get_Flxq_field 303
int_to_Flx 1021506
int_to_Flx_half 21599896
matid2_FlxM 6
maxlengthcoeffpol 56313090
pol1_FlxX 26966
polx_FlxX 2624
random_Flx 460242
zxX_to_Kronecker 141895
zxX_to_Kronecker_spec 409443

Generated by: LCOV version 1.9