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 23353-42c433a02) Lines: 2865 3117 91.9 %
Date: 2018-12-15 05:41:59 Functions: 349 379 92.1 %
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_integ 0
Flx_recip 0
Flxn_sqr 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
FlxqX_disc 14
FlxqXQ_auttrace_mul 20
FlxqXQ_auttrace_sqr 20
Flxq_conjvec 20
Flxq_charpoly 27
Flxq_pow_init 28
FlxqXQ_pow 42
FlxqX_resultant 56
FlxqXQ_minpoly 132
polxn_FlxX 160
Flxn_inv 189
_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
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 1470
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 2012
_FlxqXQ_sub 2121
_FlxqX_mul 2484
Flx_halfgcd_split 2856
FlxM_Flx_mul2 2882
FlxYqq_mul 2982
zero_FlxM 3017
zero_FlxC 3031
Flv_prod_pre 3073
FlxqX_invBarrett_Newton 3149
Flxq_trace 3352
Flx_addshift 3542
FlxYqq_pow 3696
FlxM_pack_ZM_bits 3825
Flx_invBarrett_Newton 4349
Flxq_pow_table 4397
Flv_invVandermonde 4575
FlxqX_invBarrett 4671
Flx_mod_Xn1 4951
FlxM_to_ZXM 5044
Flx_addmulmul 5770
Flx_powu 6100
_Flxq_inv 6118
FlxqX_extgcd 6153
FlxqX_extgcd_basecase 6153
FlxY_Flx_div 6175
FlxC_neg 6433
_Flxq_neg 6517
Flx_addspec 6837
FlxYqq_sqr 6902
get_Flxq_field 6958
kron_unpack_Flx_bits_wide 7000
polx_FlxX 7094
FlxqX_Flxq_mul 8498
Flx_is_l_pow 9000
FlxYqq_redswap 9884
Flx_Fl2_eval_pre 10108
FlxqX_powu 10227
_FlxqX_sqr 10255
ZM_unpack_FlxqM 10501
FlxX_Flx_sub 10525
Flv_inv_pre 10679
FlxqXQ_autsum 10817
Fl_Flxq_log 10926
Z_mod2BIL_Flx_3 11289
gener_Flxq 11289
FlxX_to_Flm 11714
Flx_diff1 11795
Flx_translate1 11795
FlxqM_Flxq_mul 11844
FlxqM_mul_Kronecker 12427
Flv_polint 12707
Flxq_order 12748
_Flxq_s 12761
FlxqX_safegcd 12942
Flx_halve 13092
kron_unpack_Flx 14740
FlxM_eval_powers_pre 16912
FlxqXQ_autsum_sqr 16947
Flx_matFrobenius 17080
FlxX_swap 19768
Flxq_autpow_mul 20655
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 29141
Flm_to_FlxX 30312
RgX_to_FlxqX 31457
FlxV_to_Flm 33243
Flxq_matrix_pow 33243
Flv_Flm_polint 35242
Flxq_log 37036
FlxX_to_Flx 41740
_Flxq_equal0 42777
FlxC_to_ZXC 45818
Flx_inflate 48296
Flv_inv_i 52518
Flv_inv 52519
Flv_producttree 52522
Flx_Flv_multieval_tree 52524
_Flx_add 53116
kron_unpack_Flx_bits_narrow 53174
FlxqX_divrem_Barrett 53629
Flm_to_ZM_inplace 56166
FlxqX_FlxqXQV_eval 57343
FlxqXQ_autpow 61572
FlxX_deriv 62864
FlxqXQ_autpow_sqr 62930
FlxX_subspec 63649
FlxqX_divrem_Barrettspec 63922
FlxqX_FlxqXQ_eval 64285
Fl2_sqrtn_pre 64321
Fl2_norm_pre 66163
FlxqC_Flxq_mul 71239
FlxqXQ_powu 72827
Flx_deflate 75739
Flx_invBarrett_basecase 91015
Flx_invBarrett 95367
_Fl2_rand 95839
kron_pack_Flx_spec_bits 98876
_Flxq_red 102529
FlxX_sub 108516
_Flxq_rmul 111125
FlxqV_dotproduct 113505
Flxq_lroot_fast 113505
FlxY_FlxqV_evalx 120658
Flc_to_ZC_inplace 123364
Flx_is_smooth 128643
FlxX_recipspec 131953
Flx_extresultant 135397
Flx_splitting 137365
Flx_is_smooth_squarefree 137702
FlxqX_gcd_basecase 151463
FlxqX_gcd 156223
FlxC_sub 158802
Flxq_sqrt 161126
FlxV_to_ZXV 162039
FlxqX_mulspec 163877
Fl2_inv_pre 166614
Flxq_minpoly 167488
Flxq_sqrtn 169200
Flxq_auttrace_sqr 170775
FlxqX_normalize 172329
FlxX_lgrenormalizespec 180858
Flx_halfgcd_basecase 186296
Flx_halfgcd_i 189167
Flx_halfgcd 189170
monomial_Flx 190559
_FlxqXQ_sqr 192935
FlxqXQ_sqr 193334
FlxC_eval_powers_pre 203428
FlxT_red 205204
FlxqX_sqr 211611
get_Flxq_star 215764
Flxq_auttrace_mul 217318
Flxq_auttrace 226230
FlxqX_Flxq_mul_to_monic 235126
FlxqX_divrem 252950
Flv_to_ZV 256647
FlxY_evalx 258204
_FlxqXQ_mul 282704
Flx_red 289709
FlxqX_get_red 298577
Flxq_autpow 304353
Flxq_autsum 308540
FlxqXQ_mul 312400
_Flxq_rand 319718
Flxq_easylog 330355
_FlxqXQ_red 351851
kron_pack_Flx_spec_half 356149
Flxq_issquare 356442
_FlxqXQ_one 363723
Flxq_transmul_init 364160
Flxq_autsum_sqr 367864
Flxq_autpow_sqr 377517
Fl2_equal1 378425
Flxq_norm 384511
FlxX_to_ZXX 426296
FlxqX_mul 429867
ZXX_to_FlxX 492147
_FlxqXQ_add 535852
FlxX_add 540960
_Fl2_pow 566041
Fl2_pow_pre 566046
Flv_roots_to_pol 615509
Flxq_autsum_mul 615841
FlxX_Flx_mul 657480
_FlxqXQ_cmul 657480
bounded_order 669335
Flx_triple 675223
Flxn_mul 707270
Flxn_red 708527
FlvV_polint_tree 740156
Kronecker_to_FlxqX 805355
pol1_FlxX 877484
Flxq_transmul 920661
Flx_Flxq_eval 1012916
FlxqX_red 1047342
zxX_to_Kronecker 1071345
Flx_neg 1078179
Flx_negspec 1078184
Rg_to_F2 1098537
Z_to_Flx 1098854
random_Flx 1106503
FlxqX_divrem_basecase 1221198
FlxqX_rem 1250380
zxX_to_Kronecker_spec 1399099
ZXT_to_FlxT 1399143
get_FlxqX_red 1503650
zxX_to_FlxX 1643610
_Fl2_mul 1648605
Fl2_mul_pre 1676359
Rg_to_Flxq 1813300
FlxY_degreex 1823502
Flx_double 1877679
RgX_to_Flx 1933283
Flxq_div 1943690
Flx_resultant 2020544
Flx_divrem_Barrett 2077024
Flx_subspec 2082411
Flx_divrem_Barrettspec 2082446
Flx_val 3128090
Flx_eval_pre_i 3371198
Flx_eval 3442107
Flx_eval_pre 3448303
Flx_is_squarefree 3517551
Flxq_inv 3695389
zx_to_Flx 3712336
Flxq_invsafe 3759886
Flx_extgcd 3894309
Flx_extgcd_basecase 3894309
Flx_Frobenius 3897956
_Fl2_sqr 4226721
Fl2_sqr_pre 4226792
Flx_lgrenormalizespec 4229565
Flxq_powers 4357058
_Flxq_one 4361362
FlxV_to_Flm_lg 4430998
Flx_blocks_Flm 4431100
Flx_FlxqV_eval 4627493
Flx_mod_Xnm1 4933499
Flx_recipspec 5259052
FlxY_eval_powers_pre 5333092
Flx_shift 5482631
Flx_mulspec_mulii 5865374
Flx_deriv 5898786
mkF2 6239839
Flx_Fl_add 7326715
Flx_Fl_mul_to_monic 7714341
FlxY_evalx_powers_pre 7953264
Flm_to_ZM 8385969
FlxX_renormalize 8689825
Flx_mulspec_halfmulii 8844019
_Flx_mul 9038917
Flx_Fl_mul 9161635
Flv_to_Flx 9298165
Fl_to_Flx 9661797
Flx_mulspec_mulii_inflate 10190714
Flv_inv_pre_inplace 10295855
Flv_inv_pre_indir 10329912
Flx_sqrspec_quartsqri 10608196
Flxq_powu 11219378
Flx_sqrspec_halfsqri 12299735
Flx_sqrspec_sqri_inflate 18962726
Flx_to_Flv 20447958
Flc_to_ZC 21007108
int_to_Flx_half 21357526
Flx_valrem 22082429
_Flxq_pow 22782462
Flxq_pow_Frobenius 22802498
Flxq_pow 23033897
Flx_equal 24445635
Flx_divrem_basecase 26904268
Flx_div_by_X_x 28628152
Z_mod2BIL_Flx_2 29228156
Z_mod2BIL_Flx 29259168
Flx_to_int_halfspec 30149632
Flx_eval_powers_pre 31193165
Flx_add 31996651
Flx_mulspec_quartmulii 35337236
Flx_gcd_basecase 35736497
Flx_gcd 36452471
Flx_normalize 38474654
Flx_eval2BILspec 39319730
Flx_to_ZX 43402736
Flx_get_red 43493773
Flx_sqrspec_sqri 43516045
Flx_multhreshold 43639967
Flx_to_ZX_inplace 44145601
int_to_Flx_quart 45945839
Rg_to_Fl 47061395
int_to_Flx 49880029
Flx_divrem 64017950
Flx_sub 71421269
Flx_to_int_quartspec 81265960
Flx_sqrspec_basecase 101261306
_Flxq_mul 102941306
Flxq_mul 125528200
_Flxq_sqr 180246455
Flx_mulspec_basecase 184743163
Flxq_sqr 186139250
Flx_sqr 186729246
Flx_sqrspec 186750852
ZX_to_Flx 192712635
Flx_mul 258490282
Flx_mulspec 262753178
Flx_shiftip 430752792
Flx_rem_basecase 456277552
maxlengthcoeffpol 474025594
Flx_rem 516951568
get_Flx_red 581330731
Flx_mullimb_ok 687285693
Flx_mullimb 755750057
Flx_renormalize 1392378709

Generated by: LCOV version 1.13