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-bordeaux.fr machine (x86_64 architecture), and agregate them in the final report:

The target is to exceed 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.12.0 lcov report (development 23008-54b2e2f01) Lines: 2852 3096 92.1 %
Date: 2018-09-20 05:37:46 Functions: 346 374 92.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Flv_inv_inplace 0
Flv_prod 0
FlxM_Flx_add_shallow 0
FlxV_Flc_mul 0
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 0
FlxX_shift 0
FlxX_to_FlxC 0
FlxX_triple 0
FlxY_Flx_translate 0
FlxY_Flxq_evalx 0
Flx_Flv_multieval 0
Flx_digits 0
Flx_recip 0
FlxqXQ_div 0
FlxqXQ_matrix_pow 0
FlxqX_extgcd_halfgcd 0
ZXV_to_FlxV 0
_Flx_divrem 0
_Flx_sqr 0
kron_pack_Flx_spec_2 0
kron_pack_Flx_spec_3 0
kron_unpack_Flx_2 0
kron_unpack_Flx_3 0
matid2_FlxXM 0
Flx_extgcd_halfgcd 3
matid2_FlxM 3
ZXXV_to_FlxXV 12
FlxqXQ_inv 14
FlxqXQ_invsafe 14
FlxqXQ_auttrace_mul 20
FlxqXQ_auttrace_sqr 20
Flxq_conjvec 20
Flxq_charpoly 27
Flxq_pow_init 28
FlxqXQ_pow 42
Flxn_inv 112
FlxqXQ_minpoly 132
polxn_FlxX 160
_FlxqXQ_zero 191
FlxX_Fl_mul 219
FlxX_double 219
get_FlxqXQ_algebra 219
Flxq_is2npower 280
FlxqXQ_auttrace 314
FlxqXQ_transmul_init 320
ZXXT_to_FlxXT 320
FlxqXM_mul2 360
FlxqX_FlxqXM_qmul 360
FlxqX_halfgcd_split 363
FlxqXM_FlxqX_mul2 384
FlxX_Flx_add 392
random_FlxqX 474
FlxqXn_mul 486
FlxqX_halfgcd_basecase 541
FlxqXQ_transmul 632
Flxn_red_shallow 686
FlxqX_addmulmul 768
FlxqX_halfgcd 904
FlxqX_halfgcd_i 904
FlxqX_dotproduct 968
FlxqV_roots_to_deg1 990
FlxqV_roots_to_pol 990
FlxqXV_prod 1002
FlxX_neg 1013
Flx_rescale 1086
FlxqXQ_autpow_mul 1126
FlxXC_to_ZXXC 1456
FlxqX_invBarrett_basecase 1522
Flx_neg_inplace 1531
Flm_to_FlxV 1596
Flx_FlxM_qmul 1671
FlxM_mul2 1674
FlxM_neg 1813
ZM_unpack_FlxqM_bits 1926
Fly_to_FlxY 2044
_FlxqXQ_sub 2121
_FlxqX_mul 2484
Flx_halfgcd_split 2853
FlxM_Flx_mul2 2879
FlxYqq_mul 2954
zero_FlxM 3017
zero_FlxC 3031
Flv_prod_pre 3073
Flv_invVandermonde 3130
FlxqX_invBarrett_Newton 3149
Flxq_trace 3352
Flx_addshift 3542
FlxYqq_pow 3584
FlxM_pack_ZM_bits 3825
Flx_invBarrett_Newton 4348
Flxq_pow_table 4401
FlxM_to_ZXM 4558
FlxqX_invBarrett 4671
Flx_mod_Xn1 4809
Flx_addmulmul 5764
FlxqX_extgcd 5880
FlxqX_extgcd_basecase 5880
_Flxq_inv 6118
Flx_powu 6233
FlxY_Flx_div 6295
FlxC_neg 6433
_Flxq_neg 6517
FlxYqq_sqr 6664
Flx_addspec 6837
get_Flxq_field 6958
kron_unpack_Flx_bits_wide 7000
polx_FlxX 7094
FlxqX_Flxq_mul 8176
Flx_is_l_pow 9014
gener_Flxq 9196
FlxYqq_redswap 9618
FlxqX_safegcd 9771
Flx_Fl2_eval_pre 10108
FlxqX_powu 10227
_FlxqX_sqr 10255
ZM_unpack_FlxqM 10501
FlxX_Flx_sub 10525
Flv_inv_pre 10739
FlxqXQ_autsum 10817
Fl_Flxq_log 10920
FlxX_to_Flm 11124
Z_mod2BIL_Flx_3 11195
FlxqM_Flxq_mul 11844
Flx_diff1 11851
Flx_translate1 11851
Flv_polint 12019
FlxqM_mul_Kronecker 12427
Flxq_order 12748
_Flxq_s 12761
Flx_halve 13085
FlxM_eval_powers_pre 13700
kron_unpack_Flx 14740
FlxqXQ_autsum_sqr 16947
Flx_matFrobenius 16968
FlxX_swap 19236
Flxq_autpow_mul 20653
FlxM_pack_ZM 21002
kron_pack_Flx_spec 21790
FlxM_sub 22470
Flxq_lroot 25032
Flx_to_FlxX 26369
FlxqXQ_autsum_mul 28301
FlxqXQ_powers 29052
Flv_inv_indir 29188
Flm_to_FlxX 30091
RgX_to_FlxqX 31100
FlxV_to_Flm 33068
Flxq_matrix_pow 33068
Flv_Flm_polint 35297
Flxq_log 35741
FlxC_to_ZXC 41383
FlxX_to_Flx 41390
_Flxq_equal0 42777
Flx_inflate 48924
Flv_inv 50444
Flx_Flv_multieval_tree 50447
Flv_producttree 50450
_Flx_add 53116
kron_unpack_Flx_bits_narrow 53174
FlxqX_divrem_Barrett_noGC 53629
Flm_to_ZM_inplace 56166
FlxqX_FlxqXQV_eval 57336
FlxqXQ_autpow 61572
FlxX_deriv 62633
FlxqXQ_autpow_sqr 62930
FlxX_subspec 63922
FlxqX_divrem_Barrettspec 63922
FlxqX_FlxqXQ_eval 64285
Fl2_sqrtn_pre 64592
Fl2_norm_pre 66198
FlxqC_Flxq_mul 71239
FlxqXQ_powu 72827
Flx_deflate 74204
Flx_invBarrett_basecase 90107
Flx_invBarrett 94458
_Fl2_rand 96135
kron_pack_Flx_spec_bits 98876
_Flxq_red 102529
FlxX_sub 107333
_Flxq_rmul 111125
FlxqV_dotproduct 113505
Flxq_lroot_fast 113505
FlxY_FlxqV_evalx 120658
Flc_to_ZC_inplace 123364
Flv_to_ZV 128169
Flx_is_smooth 128801
FlxX_recipspec 131953
Flx_extresultant 132194
Flx_is_smooth_squarefree 137846
Flx_splitting 137907
FlxqX_gcd_basecase 149567
FlxqX_gcd 154327
FlxC_sub 158802
Flxq_sqrt 161119
FlxV_to_ZXV 161641
Flxq_minpoly 163549
FlxqX_mulspec 164150
Fl2_inv_pre 167283
Flxq_auttrace_sqr 167679
Flxq_sqrtn 169137
FlxC_eval_powers_pre 170234
FlxqX_normalize 172315
FlxX_lgrenormalizespec 180858
Flx_halfgcd_basecase 182035
Flx_halfgcd 184888
Flx_halfgcd_i 184888
monomial_Flx 185997
_FlxqXQ_sqr 192935
FlxqXQ_sqr 193334
FlxT_red 210119
FlxqX_sqr 211366
Flxq_auttrace_mul 213094
get_Flxq_star 214406
Flxq_auttrace 220679
FlxqX_Flxq_mul_to_monic 225165
FlxqX_divrem 249256
FlxY_evalx 250851
_FlxqXQ_mul 282704
Flx_red 289903
FlxqX_get_red 298570
Flxq_autpow 304348
Flxq_autsum 306267
FlxqXQ_mul 312400
_Flxq_rand 319650
Flxq_easylog 325264
_FlxqXQ_red 351844
Flxq_transmul_init 355544
kron_pack_Flx_spec_half 356149
Flxq_issquare 356442
_FlxqXQ_one 363716
Flxq_autsum_sqr 365583
Flxq_autpow_sqr 377510
Fl2_equal1 379396
Flxq_norm 383034
FlxX_to_ZXX 420287
FlxqX_mul 427396
ZXX_to_FlxX 479285
_FlxqXQ_add 535845
FlxX_add 540953
_Fl2_pow 567724
Fl2_pow_pre 567727
Flxq_autsum_mul 613556
Flv_roots_to_pol 615970
FlxX_Flx_mul 657466
_FlxqXQ_cmul 657466
bounded_order 665855
Flx_triple 675179
Flxn_mul 690819
FlvV_polint_tree 740704
Kronecker_to_FlxqX 802912
pol1_FlxX 877197
Flxq_transmul 901221
FlxqX_red 986045
Flx_Flxq_eval 1004564
zxX_to_Kronecker 1066158
Flx_negspec 1075513
Flx_neg 1075535
Z_to_Flx 1075976
random_Flx 1091826
Rg_to_F2 1098584
FlxqX_divrem_basecase 1206823
FlxqX_rem 1236990
ZXT_to_FlxT 1389787
zxX_to_Kronecker_spec 1394458
get_FlxqX_red 1486566
zxX_to_FlxX 1647720
_Fl2_mul 1652959
Fl2_mul_pre 1680711
Rg_to_Flxq 1807693
FlxY_degreex 1827402
Flx_double 1877591
Flxq_div 1941944
Flx_resultant 1967083
Flx_divrem_Barrett_noGC 2069304
Flx_subspec 2074730
Flx_divrem_Barrettspec 2074766
RgX_to_Flx 2724486
Flx_val 3133275
Flx_eval_pre_i 3322488
Flx_eval 3391693
Flx_eval_pre 3398257
Flx_is_squarefree 3501465
Flxq_inv 3685045
zx_to_Flx 3723445
Flxq_invsafe 3739595
Flx_Frobenius 3805861
Flx_extgcd 3871589
Flx_extgcd_basecase 3871589
Flxq_powers 4168867
_Flxq_one 4173265
Flx_lgrenormalizespec 4214164
_Fl2_sqr 4238544
Fl2_sqr_pre 4238693
FlxV_to_Flm_lg 4384713
Flx_blocks_Flm 4384719
Flx_FlxqV_eval 4581274
Flx_mod_Xnm1 4931267
Flx_recipspec 5218066
Flx_shift 5334695
FlxY_eval_powers_pre 5340256
Flx_deriv 5816732
Flx_mulspec_mulii 5817359
mkF2 6256962
Flx_Fl_mul_to_monic 6591827
Flx_Fl_add 7312324
FlxY_evalx_powers_pre 7965743
Flm_to_ZM 8331277
FlxX_renormalize 8648407
Flx_mulspec_halfmulii 8802069
_Flx_mul 9041418
Flx_Fl_mul 9114667
Flv_to_Flx 9214808
Fl_to_Flx 9654055
Flx_mulspec_mulii_inflate 10179633
Flv_inv_pre_inplace 10265543
Flv_inv_pre_indir 10297537
Flx_sqrspec_quartsqri 10565722
Flxq_powu 11110374
Flx_sqrspec_halfsqri 12269897
Flx_sqrspec_sqri_inflate 18978547
Flx_to_Flv 20154736
Flc_to_ZC 20867573
int_to_Flx_half 21277432
Flx_valrem 22042877
_Flxq_pow 22053149
Flxq_pow_Frobenius 22071681
Flxq_pow 22303157
Flx_equal 23713716
Flx_divrem_basecase 26594001
Flx_div_by_X_x 28581398
Flx_gcd_basecase 29186882
Z_mod2BIL_Flx_2 29222009
Z_mod2BIL_Flx 29251396
Flx_gcd 29900501
Flx_to_int_halfspec 30056601
Flx_eval_powers_pre 30292216
Flx_add 31967299
Flx_mulspec_quartmulii 35260622
Flx_normalize 37978306
Flx_eval2BILspec 39300380
Flx_get_red 42238056
Flx_multhreshold 42380030
Flx_sqrspec_sqri 42930717
Flx_to_ZX 43174787
Flx_to_ZX_inplace 44365315
int_to_Flx_quart 45828715
int_to_Flx 49261546
Rg_to_Fl 50881348
Flx_divrem 63658975
Flx_sub 70965995
Flx_to_int_quartspec 81075538
Flx_sqrspec_basecase 100835905
_Flxq_mul 101292251
Flxq_mul 123820318
ZX_to_Flx 179013197
_Flxq_sqr 179262457
Flx_mulspec_basecase 182867763
Flxq_sqr 185087643
Flx_sqr 185643106
Flx_sqrspec 185727501
Flx_mul 256457280
Flx_mulspec 260690802
Flx_shiftip 427501374
Flx_rem_basecase 446481796
maxlengthcoeffpol 469856033
Flx_rem 503827286
get_Flx_red 567703615
Flx_mullimb_ok 671306664
Flx_mullimb 755250020
Flx_renormalize 1374249014

Generated by: LCOV version 1.13