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 16624-25b9976) Lines: 2063 2219 93.0 %
Date: 2014-06-24 Functions: 257 268 95.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1082 1318 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 344412
Flc_to_ZC 795637
Flm_to_FlxV 147398
Flm_to_FlxX 8578
Flm_to_ZM 154094
FlvV_polint_tree 15469
Flv_FlvV_polint 0
Flv_inv 15469
Flv_polint 15469
Flv_producttree 15469
Flv_roots_to_pol 378
Flv_to_Flx 337172
Flv_to_ZV 219
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 205516
FlxV_to_ZXV 57729
FlxXV_to_FlxM 83
FlxX_Fl_mul 90
FlxX_Flx_add 120
FlxX_Flx_mul 82833
FlxX_add 73081
FlxX_double 150
FlxX_lgrenormalizespec 155579
FlxX_neg 90
FlxX_recipspec 87154
FlxX_renormalize 671602
FlxX_shift 0
FlxX_sub 24377
FlxX_subspec 37339
FlxX_swap 6996
FlxX_to_Flm 3956
FlxX_to_FlxC 762
FlxX_to_ZXX 69476
FlxX_triple 30
FlxY_Flx_div 945
FlxY_Flxq_evalx 8289
FlxY_evalx 571701
FlxYqq_mul 1404
FlxYqq_pow 1394
FlxYqq_redswap 3498
FlxYqq_sqr 2094
Flx_Fl_add 308571
Flx_Fl_mul 10631075
Flx_Fl_mul_to_monic 951396
Flx_Flv_eval 0
Flx_Flv_eval_tree 15469
Flx_FlxM_qmul 355
Flx_FlxqV_eval 941480
Flx_Flxq_eval 526231
Flx_Frobenius 153961
Flx_add 9275368
Flx_addmulmul 984
Flx_addshift 3424
Flx_addspec 6792
Flx_deflate 14823
Flx_deriv 2810970
Flx_div_by_X_x 6231
Flx_divrem 35464664
Flx_divrem_Barrett_noGC 5473
Flx_divrem_Barrettspec 5537
Flx_divrem_basecase 13277465
Flx_double 1247577
Flx_equal 3572422
Flx_eval 18374921
Flx_eval2BILspec 159038
Flx_extgcd 1901501
Flx_extgcd_basecase 1901501
Flx_extgcd_halfgcd 1
Flx_extresultant 102026
Flx_gcd 10585472
Flx_gcd_basecase 10185839
Flx_get_red 8973916
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 2398272
Flx_lgrenormalizespec 11224
Flx_mod_Xn1 13
Flx_mod_Xnm1 12258
Flx_mul 36292058
Flx_mullimb 29545507
Flx_mullimb_ok 80537664
Flx_mulspec 36306594
Flx_mulspec_basecase 22345722
Flx_mulspec_halfmulii 10716697
Flx_mulspec_mulii 694337
Flx_mulspec_mulii_inflate 51067
Flx_neg 513116
Flx_neg_inplace 1656
Flx_negspec 513116
Flx_normalize 5365663
Flx_powu 980
Flx_recip 0
Flx_recipspec 11084
Flx_red 79989
Flx_rem 125498894
Flx_rem_basecase 110604322
Flx_renormalize 317671483
Flx_rescale 5
Flx_resultant 2536853
Flx_shift 892866
Flx_shiftip 54468062
Flx_splitting 42550
Flx_sqr 20712825
Flx_sqrspec 20712937
Flx_sqrspec_basecase 10008201
Flx_sqrspec_halfsqri 10310078
Flx_sqrspec_sqri 283344
Flx_sqrspec_sqri_inflate 56904
Flx_sub 22158928
Flx_subspec 5537
Flx_to_Flv 2208168
Flx_to_FlxX 0
Flx_to_ZX 1356871
Flx_to_ZX_inplace 24552344
Flx_to_int_halfspec 31743472
Flx_triple 436223
Flx_val 988
Flx_valrem 267060
FlxqV_dotproduct 40480
FlxqV_roots_to_pol 234
FlxqXQV_autpow 755
FlxqXQV_autsum 1881
FlxqXQ_autpow_mul 388
FlxqXQ_autpow_sqr 1145
FlxqXQ_autsum_mul 3378
FlxqXQ_autsum_sqr 2787
FlxqXQ_div 520
FlxqXQ_inv 520
FlxqXQ_invsafe 520
FlxqXQ_matrix_pow 83
FlxqXQ_mul 4968
FlxqXQ_mul_mg 27370
FlxqXQ_pow 4517
FlxqXQ_powers 4023
FlxqXQ_sqr 460
FlxqXQ_sqr_mg 23548
FlxqXV_prod 234
FlxqX_FlxqXQV_eval 8219
FlxqX_FlxqXQ_eval 1533
FlxqX_Flxq_mul 4641
FlxqX_Flxq_mul_to_monic 10370
FlxqX_divrem 80924
FlxqX_extgcd 3975
FlxqX_gcd 2868
FlxqX_invBarrett 18176
FlxqX_invBarrett_Newton 12476
FlxqX_invBarrett_basecase 5615
FlxqX_mul 56202
FlxqX_mulspec 133843
FlxqX_normalize 0
FlxqX_pow 3615
FlxqX_red 32550
FlxqX_rem_Barrett 37339
FlxqX_safegcd 1400
FlxqX_sqr 29722
Flxq_autpow 228332
Flxq_autpow_mul 7281
Flxq_autpow_sqr 274378
Flxq_autsum 247064
Flxq_autsum_mul 470740
Flxq_autsum_sqr 283004
Flxq_charpoly 243
Flxq_conjvec 14
Flxq_div 1218906
Flxq_easylog 243981
Flxq_inv 1843241
Flxq_invsafe 1854131
Flxq_is2npower 100
Flxq_issquare 212183
Flxq_log 43199
Flxq_lroot 8910
Flxq_lroot_fast 40480
Flxq_matrix_pow 204122
Flxq_minpoly 224
Flxq_mul 18539541
Flxq_norm 10416
Flxq_order 8845
Flxq_pow 4417286
Flxq_pow_Frobenius 3991388
Flxq_powers 739007
Flxq_powu 2472865
Flxq_sqr 20630247
Flxq_sqrt 102225
Flxq_sqrtn 103173
Flxq_trace 1228
Fly_to_FlxY 400
Kronecker_to_FlxqX 219767
RgX_to_Flx 110
Rg_to_F2 980494
Rg_to_Fl 9020586
Rg_to_Flxq 544007
ZXT_to_FlxT 396188
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 87692
ZX_to_Flx 66071109
Z_mod2BIL_Flx 107971
Z_mod2BIL_Flx_2 107941
Z_mod2BIL_Flx_3 30
Z_to_Flx 506402
_Fl2_mul 120
_Fl2_pow 55
_Fl2_rand 15
_Fl2_sqr 355
_Flx_mul 2824
_FlxqXQ_add 73081
_FlxqXQ_cmul 82833
_FlxqXQ_mul 27370
_FlxqXQ_one 23213
_FlxqXQ_red 21180
_FlxqXQ_sqr 23548
_FlxqXQ_zero 0
_FlxqX_mul 898
_FlxqX_sqr 3620
_Flxq_add 5616409
_Flxq_cmul 6730114
_Flxq_equal0 43514
_Flxq_inv 2252
_Flxq_mul 13689549
_Flxq_neg 2302
_Flxq_one 3971781
_Flxq_pow 3979672
_Flxq_rand 200912
_Flxq_red 3633927
_Flxq_rmul 361187
_Flxq_s 25404
_Flxq_sqr 18274412
_Flxq_zero 12710
bounded_order 506457
gener_Flxq 4727
get_Flx_degree 6442894
get_Flx_mod 2025964
get_Flx_red 160963558
get_Flx_var 5017012
get_Flxq_field 303
int_to_Flx 977681
int_to_Flx_half 21026775
matid2_FlxM 6
maxlengthcoeffpol 54468062
mkF2 510
pol1_FlxX 27188
polx_FlxX 2661
random_Flx 460207
zxX_to_Kronecker 142126
zxX_to_Kronecker_spec 409812

Generated by: LCOV version 1.9