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 16791-0d1274a) Lines: 2085 2246 92.8 %
Date: 2014-09-16 Functions: 259 271 95.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1086 1322 82.1 %

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 35
Fl2_inv_pre 10
Fl2_mul_pre 120
Fl2_norm_pre 0
Fl2_pow_pre 55
Fl2_sqr_pre 355
Fl2_sqrtn_pre 10
Fl_to_Flx 343832
Flc_to_ZC 780636
Flm_to_FlxV 103698
Flm_to_FlxX 8578
Flm_to_ZM 150350
FlvV_polint_tree 15482
Flv_FlvV_polint 0
Flv_inv 15482
Flv_polint 15482
Flv_producttree 15482
Flv_roots_to_pol 378
Flv_to_Flx 255248
Flv_to_ZV 215
FlxC_to_ZXC 495
FlxM_Flx_add_shallow 35
FlxM_Flx_mul2 551
FlxM_mul2 416
FlxM_to_ZXM 233
FlxT_red 21236
FlxV_Flc_mul 8660
FlxV_red 0
FlxV_to_Flm 161453
FlxV_to_ZXV 57757
FlxXV_to_FlxM 83
FlxX_Fl_mul 90
FlxX_Flx_add 120
FlxX_Flx_mul 81344
FlxX_add 71773
FlxX_double 150
FlxX_lgrenormalizespec 153803
FlxX_neg 90
FlxX_recipspec 86118
FlxX_renormalize 676709
FlxX_shift 0
FlxX_sub 24365
FlxX_subspec 37034
FlxX_swap 6980
FlxX_to_Flm 4078
FlxX_to_FlxC 762
FlxX_to_ZXX 79944
FlxX_triple 30
FlxY_Flx_div 1035
FlxY_FlxqV_evalx 8181
FlxY_Flxq_evalx 0
FlxY_evalx 580260
FlxYqq_mul 1400
FlxYqq_pow 1390
FlxYqq_redswap 3490
FlxYqq_sqr 2090
Flx_Fl_add 259523
Flx_Fl_mul 10279978
Flx_Fl_mul_to_monic 923817
Flx_Flv_eval 0
Flx_Flv_eval_tree 15482
Flx_FlxM_qmul 415
Flx_FlxqV_eval 916056
Flx_Flxq_eval 451144
Flx_Frobenius 1899391
Flx_add 8996817
Flx_addmulmul 1104
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 14825
Flx_deriv 2762328
Flx_div_by_X_x 6231
Flx_divrem 35879017
Flx_divrem_Barrett_noGC 6595
Flx_divrem_Barrettspec 6659
Flx_divrem_basecase 13721704
Flx_double 1285576
Flx_equal 3417382
Flx_eval 18482916
Flx_eval2BILspec 188562
Flx_extgcd 1919270
Flx_extgcd_basecase 1919270
Flx_extgcd_halfgcd 1
Flx_extresultant 101215
Flx_gcd 10472930
Flx_gcd_basecase 10075054
Flx_get_red 8513300
Flx_halfgcd 1496
Flx_halfgcd_basecase 960
Flx_halfgcd_i 1496
Flx_halfgcd_split 536
Flx_inflate 6967
Flx_invBarrett 56
Flx_invBarrett_Newton 10
Flx_invBarrett_basecase 36
Flx_is_l_pow 3305
Flx_is_smooth 60605
Flx_is_smooth_squarefree 63910
Flx_is_squarefree 2398235
Flx_lgrenormalizespec 13468
Flx_matFrobenius 159173
Flx_mod_Xn1 13
Flx_mod_Xnm1 12263
Flx_mul 35989627
Flx_mullimb 28028357
Flx_mullimb_ok 78414419
Flx_mulspec 36006771
Flx_mulspec_basecase 21614773
Flx_mulspec_halfmulii 11175700
Flx_mulspec_mulii 669793
Flx_mulspec_mulii_inflate 65851
Flx_neg 512733
Flx_neg_inplace 1838
Flx_negspec 512733
Flx_normalize 5252700
Flx_powu 1010
Flx_recip 0
Flx_recipspec 13328
Flx_red 84620
Flx_rem 121444534
Flx_rem_basecase 107012425
Flx_renormalize 331824839
Flx_rescale 5
Flx_resultant 2258451
Flx_shift 892157
Flx_shiftip 52772282
Flx_splitting 43142
Flx_sqr 19298414
Flx_sqrspec 19298526
Flx_sqrspec_basecase 9657329
Flx_sqrspec_halfsqri 9266284
Flx_sqrspec_sqri 263798
Flx_sqrspec_sqri_inflate 56860
Flx_sub 22817535
Flx_subspec 6659
Flx_to_Flv 2074659
Flx_to_FlxX 0
Flx_to_ZX 1310787
Flx_to_ZX_inplace 24456456
Flx_to_int_halfspec 31617684
Flx_triple 455924
Flx_val 988
Flx_valrem 223229
FlxqV_dotproduct 40480
FlxqV_roots_to_pol 234
FlxqXQV_autpow 703
FlxqXQV_autsum 1873
FlxqXQ_autpow_mul 388
FlxqXQ_autpow_sqr 1093
FlxqXQ_autsum_mul 3350
FlxqXQ_autsum_sqr 2771
FlxqXQ_div 520
FlxqXQ_inv 520
FlxqXQ_invsafe 520
FlxqXQ_matrix_pow 83
FlxqXQ_mul 4940
FlxqXQ_mul_mg 27093
FlxqXQ_pow 4449
FlxqXQ_powers 3953
FlxqXQ_sqr 460
FlxqXQ_sqr_mg 23218
FlxqXV_prod 234
FlxqX_FlxqXQV_eval 8090
FlxqX_FlxqXQ_eval 1481
FlxqX_Flxq_mul 4640
FlxqX_Flxq_mul_to_monic 11870
FlxqX_divrem 87505
FlxqX_extgcd 3975
FlxqX_gcd 2785
FlxqX_invBarrett 17848
FlxqX_invBarrett_Newton 12050
FlxqX_invBarrett_basecase 5713
FlxqX_mul 55891
FlxqX_mulspec 132266
FlxqX_normalize 0
FlxqX_pow 3615
FlxqX_red 31989
FlxqX_rem_Barrett 37034
FlxqX_safegcd 1525
FlxqX_sqr 29388
Flxq_autpow 228269
Flxq_autpow_mul 7268
Flxq_autpow_sqr 274405
Flxq_autsum 226298
Flxq_autsum_mul 426978
Flxq_autsum_sqr 262430
Flxq_charpoly 243
Flxq_conjvec 14
Flxq_div 1243115
Flxq_easylog 235496
Flxq_inv 1859588
Flxq_invsafe 1871978
Flxq_is2npower 100
Flxq_issquare 210746
Flxq_log 40198
Flxq_lroot 8910
Flxq_lroot_fast 40480
Flxq_matrix_pow 160063
Flxq_minpoly 224
Flxq_mul 17683087
Flxq_norm 10291
Flxq_order 8904
Flxq_pow 4247026
Flxq_pow_Frobenius 3833358
Flxq_powers 656049
Flxq_powu 2374482
Flxq_sqr 19216150
Flxq_sqrt 102557
Flxq_sqrtn 103506
Flxq_trace 1156
Fly_to_FlxY 410
Kronecker_to_FlxqX 217545
RgX_to_Flx 110
Rg_to_F2 1020515
Rg_to_Fl 8943011
Rg_to_Flxq 544137
ZXT_to_FlxT 387314
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 98183
ZX_to_Flx 65278527
Z_mod2BIL_Flx 122711
Z_mod2BIL_Flx_2 122681
Z_mod2BIL_Flx_3 30
Z_to_Flx 524219
_Fl2_mul 120
_Fl2_pow 55
_Fl2_rand 15
_Fl2_sqr 355
_Flx_mul 2824
_FlxqXQ_add 71773
_FlxqXQ_cmul 81344
_FlxqXQ_mul 27093
_FlxqXQ_one 22834
_FlxqXQ_red 20854
_FlxqXQ_sqr 23218
_FlxqXQ_zero 0
_FlxqX_mul 898
_FlxqX_sqr 3620
_Flxq_add 5338417
_Flxq_cmul 6351792
_Flxq_equal0 43514
_Flxq_inv 2252
_Flxq_mul 12820587
_Flxq_neg 2302
_Flxq_one 3634653
_Flxq_pow 3821703
_Flxq_rand 200185
_Flxq_red 3405311
_Flxq_rmul 361187
_Flxq_s 25404
_Flxq_sqr 16816463
_Flxq_zero 12529
bounded_order 455870
gener_Flxq 4754
get_Flx_degree 6279631
get_Flx_mod 2042673
get_Flx_red 157323551
get_Flx_var 6417853
get_Flxq_field 303
get_Flxq_star 151316
int_to_Flx 933591
int_to_Flx_half 20441984
matid2_FlxM 6
maxlengthcoeffpol 52772282
mkF2 510
pol1_FlxX 26809
polx_FlxX 2591
random_Flx 457922
zxX_to_Kronecker 141170
zxX_to_Kronecker_spec 405702

Generated by: LCOV version 1.9