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 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.10.1 lcov report (development 22726-9e20c6a88) Lines: 2830 3076 92.0 %
Date: 2018-06-23 05:36:28 Functions: 346 375 92.3 %
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
_Flx_sub 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
Flx_rescale 701
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
FlxqXQ_autpow_mul 1126
Flm_to_FlxV 1288
FlxXC_to_ZXXC 1456
FlxqX_invBarrett_basecase 1522
Flx_neg_inplace 1531
Flx_FlxM_qmul 1668
FlxM_mul2 1671
FlxM_neg 1813
ZM_unpack_FlxqM_bits 1926
Fly_to_FlxY 1989
_FlxqXQ_sub 2121
_FlxqX_mul 2484
Flx_halfgcd_split 2850
FlxM_Flx_mul2 2876
FlxYqq_mul 2954
zero_FlxM 3017
zero_FlxC 3031
Flv_prod_pre 3073
Flv_invVandermonde 3115
FlxqX_invBarrett_Newton 3149
Flxq_trace 3310
Flx_addshift 3542
FlxYqq_pow 3584
FlxM_pack_ZM_bits 3825
Flx_invBarrett_Newton 4348
Flxq_pow_table 4401
FlxM_to_ZXM 4543
FlxqX_invBarrett 4671
Flx_mod_Xn1 4809
Flx_addmulmul 5758
FlxqX_extgcd 5880
FlxqX_extgcd_basecase 5880
Flx_powu 6053
_Flxq_inv 6118
FlxY_Flx_div 6134
FlxC_neg 6433
_Flxq_neg 6517
FlxYqq_sqr 6664
Flx_addspec 6837
get_Flxq_field 6958
kron_unpack_Flx_bits_wide 7000
polx_FlxX 7087
FlxqX_Flxq_mul 8176
Flx_is_l_pow 8996
gener_Flxq 9196
FlxYqq_redswap 9618
FlxqX_safegcd 9757
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 10921
FlxX_to_Flm 11073
Z_mod2BIL_Flx_3 11195
FlxqM_Flxq_mul 11844
Flx_diff1 11851
Flx_translate1 11851
Flv_polint 12020
FlxqM_mul_Kronecker 12427
Flxq_order 12580
_Flxq_s 12761
Flx_halve 13085
FlxM_eval_powers_pre 13520
kron_unpack_Flx 14740
FlxqXQ_autsum_sqr 16947
Flx_matFrobenius 16968
FlxX_swap 19236
Flxq_autpow_mul 20675
FlxM_pack_ZM 21002
kron_pack_Flx_spec 21790
FlxM_sub 22470
Flxq_lroot 25032
Flx_to_FlxX 26341
FlxqXQ_autsum_mul 28301
FlxqXQ_powers 29052
Flv_inv_indir 29185
Flm_to_FlxX 30038
RgX_to_FlxqX 31065
FlxV_to_Flm 33068
Flxq_matrix_pow 33068
Flv_Flm_polint 35285
Flxq_log 35741
FlxC_to_ZXC 41266
FlxX_to_Flx 41355
_Flxq_equal0 42777
Flx_inflate 47484
Flv_inv 50413
Flx_Flv_multieval_tree 50421
Flv_producttree 50423
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 64590
Fl2_norm_pre 66198
FlxqC_Flxq_mul 71239
FlxqXQ_powu 72827
Flx_deflate 74166
Flx_invBarrett_basecase 88996
Flx_invBarrett 93346
_Fl2_rand 96144
kron_pack_Flx_spec_bits 98876
FlxX_sub 107333
_Flxq_rmul 111125
FlxqV_dotproduct 113505
Flxq_lroot_fast 113505
FlxY_FlxqV_evalx 120658
Flx_extresultant 120993
Flc_to_ZC_inplace 123364
Flv_to_ZV 128169
Flx_is_smooth 128265
FlxX_recipspec 131953
Flv_to_Flx 133048
Flx_is_smooth_squarefree 137253
Flx_splitting 137326
FlxqX_gcd_basecase 149567
FlxqX_gcd 154327
FlxC_sub 158802
Flxq_sqrt 160944
FlxV_to_ZXV 161613
Flxq_minpoly 163641
FlxqX_mulspec 164150
Fl2_inv_pre 167303
Flxq_auttrace_sqr 167712
FlxC_eval_powers_pre 168800
Flxq_sqrtn 168962
FlxqX_normalize 172315
FlxX_lgrenormalizespec 180858
Flx_halfgcd_basecase 182032
Flx_halfgcd 184882
Flx_halfgcd_i 184882
monomial_Flx 186060
_FlxqXQ_sqr 192956
FlxqXQ_sqr 193355
_Flxq_zero 196641
FlxT_red 204929
FlxqX_sqr 211387
Flxq_auttrace_mul 213190
get_Flxq_star 214168
Flxq_auttrace 220552
FlxqX_Flxq_mul_to_monic 225123
FlxqX_divrem 249256
FlxY_evalx 251000
_FlxqXQ_mul 282683
Flx_red 285076
FlxqX_get_red 298570
Flxq_autpow 304562
Flxq_autsum 306716
FlxqXQ_mul 312379
_Flxq_rand 317717
Flxq_easylog 323290
_FlxqXQ_red 351844
Flxq_transmul_init 355670
kron_pack_Flx_spec_half 356149
Flxq_issquare 358969
_FlxqXQ_one 363716
Flxq_autsum_sqr 365742
Flxq_autpow_sqr 377937
Fl2_equal1 379441
Flxq_norm 385667
FlxX_to_ZXX 420287
FlxqX_mul 427354
ZXX_to_FlxX 479185
_FlxqXQ_add 535845
FlxX_add 540953
_Fl2_pow 567772
Fl2_pow_pre 567779
Flxq_autsum_mul 613907
Flv_roots_to_pol 616009
FlxX_Flx_mul 657466
_FlxqXQ_cmul 657466
bounded_order 664298
Flx_triple 670867
Flxn_mul 689499
FlvV_polint_tree 740438
Kronecker_to_FlxqX 802891
pol1_FlxX 876408
Flxq_transmul 901324
FlxqX_red 986066
Flx_Flxq_eval 1006020
zxX_to_Kronecker 1066095
Flx_negspec 1073897
Flx_neg 1073922
Z_to_Flx 1076072
random_Flx 1092456
Rg_to_F2 1098041
FlxqX_divrem_basecase 1206795
FlxqX_rem 1236983
ZXT_to_FlxT 1388406
zxX_to_Kronecker_spec 1394395
get_FlxqX_red 1486559
zxX_to_FlxX 1647720
_Fl2_mul 1653192
Fl2_mul_pre 1680951
Rg_to_Flxq 1807588
FlxY_degreex 1827402
Flx_double 1872936
Flxq_div 1940467
Flx_resultant 1968383
Flx_divrem_Barrett_noGC 2067356
Flx_subspec 2072760
Flx_divrem_Barrettspec 2072818
RgX_to_Flx 2724416
Flx_val 3133257
Flxq_powers 3164860
Flx_eval_pre_i 3322585
Flx_eval 3393057
Flx_eval_pre 3399183
Flx_is_squarefree 3501164
Flx_FlxqV_eval 3577317
Flx_to_Flv 3623823
Flxq_inv 3679213
zx_to_Flx 3723445
Flxq_invsafe 3733721
Flx_Frobenius 3802461
Flx_extgcd 3865652
Flx_extgcd_basecase 3865652
Flx_lgrenormalizespec 4210241
_Fl2_sqr 4239224
Fl2_sqr_pre 4239341
Flx_mod_Xnm1 4931589
Flx_recipspec 5214471
Flx_shift 5323796
FlxY_eval_powers_pre 5340256
Flx_mulspec_mulii 5790628
Flx_deriv 5814381
mkF2 6257710
Flx_Fl_mul_to_monic 6591162
Flx_Fl_add 7311468
FlxY_evalx_powers_pre 7965743
Flm_to_ZM 8330460
FlxX_renormalize 8645904
Flx_mulspec_halfmulii 8733375
_Flx_mul 9041655
Fl_to_Flx 9634625
Flx_mulspec_mulii_inflate 10177150
Flv_inv_pre_inplace 10265543
Flv_inv_pre_indir 10297511
_Flxq_red 10457526
Flx_sqrspec_quartsqri 10544384
Flxq_powu 11103844
_Flxq_one 12205993
Flx_sqrspec_halfsqri 12271454
Flx_sqrspec_sqri_inflate 18961896
Flc_to_ZC 20857846
int_to_Flx_half 21210282
Flx_valrem 22060782
_Flxq_pow 22407747
Flxq_pow_Frobenius 22426282
Flxq_pow 22657393
Flx_equal 24101832
_Flx_add 24360304
Flx_divrem_basecase 26471297
Flx_div_by_X_x 28608058
_Flxq_cmul 28693516
Flx_gcd_basecase 29089002
Z_mod2BIL_Flx_2 29202933
Z_mod2BIL_Flx 29232268
Flx_gcd 29801679
Flx_to_int_halfspec 29920917
Flx_eval_powers_pre 30279750
Flx_mulspec_quartmulii 34949679
Flx_Fl_mul 37690502
Flx_normalize 37992426
Flx_eval2BILspec 39288713
Flx_sqrspec_sqri 42988037
Flx_to_ZX 43172691
Flx_to_ZX_inplace 44364255
Flx_multhreshold 45143733
Flx_get_red 45165620
int_to_Flx_quart 45499627
int_to_Flx 49300332
Rg_to_Fl 50882552
Flx_add 51501147
Flx_divrem 63536192
Flx_sub 70828982
Flx_to_int_quartspec 80439976
Flx_sqrspec_basecase 101050900
_Flxq_mul 105662447
Flxq_mul 123489125
ZX_to_Flx 178810715
_Flxq_sqr 179455669
Flx_mulspec_basecase 182826429
Flxq_sqr 185148365
Flx_sqr 185743968
Flx_sqrspec 185808252
Flx_mul 255878932
Flx_mulspec 260126173
Flx_shiftip 427228941
Flx_rem_basecase 447306786
maxlengthcoeffpol 472042232
Flx_rem 513641247
get_Flx_red 577558703
Flx_mullimb_ok 676706790
Flx_mullimb 755627935
Flx_renormalize 1404786968

Generated by: LCOV version 1.13