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.0 lcov report (development 21741-70cf009) Lines: 2836 3074 92.3 %
Date: 2018-01-21 06:18:30 Functions: 344 373 92.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 372972
Fl2_inv_pre 164078
Fl2_mul_pre 1655287
Fl2_norm_pre 65439
Fl2_pow_pre 557837
Fl2_sqr_pre 4177906
Fl2_sqrtn_pre 63470
Fl_Flxq_log 10998
Fl_to_Flx 9235250
Flc_to_ZC 19123275
Flc_to_ZC_inplace 123364
Flm_to_FlxV 282298
Flm_to_FlxX 19800
Flm_to_ZM 8226884
Flm_to_ZM_inplace 56166
FlvV_polint_tree 736648
Flv_Flm_polint 34549
Flv_inv 49124
Flv_invVandermonde 2603
Flv_inv_indir 28622
Flv_inv_inplace 0
Flv_inv_pre 10713
Flv_inv_pre_indir 10143079
Flv_inv_pre_inplace 10111866
Flv_polint 11969
Flv_prod 0
Flv_prod_pre 2975
Flv_producttree 49121
Flv_roots_to_pol 606813
Flv_to_Flx 762182
Flv_to_ZV 127959
FlxC_eval_powers_pre 73529
FlxC_neg 6174
FlxC_sub 156240
FlxC_to_ZXC 33840
FlxM_Flx_add_shallow 0
FlxM_Flx_mul2 2230
FlxM_eval_powers_pre 9749
FlxM_mul2 1635
FlxM_neg 1792
FlxM_pack_ZM 18214
FlxM_pack_ZM_bits 3225
FlxM_sub 21798
FlxM_to_ZXM 4182
FlxT_red 162254
FlxV_Flc_mul 0
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxV_to_Flm 301170
FlxV_to_ZXV 160505
FlxXC_to_ZXXC 959
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 0
FlxX_Fl_mul 212
FlxX_Flx_add 392
FlxX_Flx_mul 619672
FlxX_Flx_sub 10492
FlxX_add 505219
FlxX_deriv 60045
FlxX_double 212
FlxX_lgrenormalizespec 140489
FlxX_neg 1146
FlxX_recipspec 107684
FlxX_renormalize 8358115
FlxX_shift 0
FlxX_sub 108537
FlxX_subspec 52295
FlxX_swap 15008
FlxX_to_Flm 7349
FlxX_to_Flx 31148
FlxX_to_FlxC 0
FlxX_to_ZXX 426012
FlxX_triple 0
FlxY_Flx_div 4858
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 118517
FlxY_Flxq_evalx 0
FlxY_degreex 1789332
FlxY_eval_powers_pre 5299794
FlxY_evalx 257472
FlxY_evalx_powers_pre 7908092
FlxYqq_mul 2464
FlxYqq_pow 2912
FlxYqq_redswap 7504
FlxYqq_sqr 5040
Flx_Fl2_eval_pre 10108
Flx_Fl_add 7335153
Flx_Fl_mul 29469436
Flx_Fl_mul_to_monic 6283422
Flx_Flv_multieval 0
Flx_Flv_multieval_tree 49123
Flx_FlxM_qmul 1632
Flx_FlxqV_eval 2781840
Flx_Flxq_eval 688791
Flx_Frobenius 3640519
Flx_add 43681149
Flx_addmulmul 4466
Flx_addshift 3586
Flx_addspec 6925
Flx_deflate 71237
Flx_deriv 5695850
Flx_diff1 11851
Flx_digits 0
Flx_div_by_X_x 28630042
Flx_divrem 61823588
Flx_divrem_Barrett_noGC 1757214
Flx_divrem_Barrettspec 1762648
Flx_divrem_basecase 24720011
Flx_double 1872964
Flx_equal 23928227
Flx_eval 3489839
Flx_eval2BILspec 39420756
Flx_eval_powers_pre 26208346
Flx_eval_pre 3495282
Flx_eval_pre_i 3422569
Flx_extgcd 3626610
Flx_extgcd_basecase 3626610
Flx_extgcd_halfgcd 3
Flx_extresultant 112047
Flx_gcd 27966396
Flx_gcd_basecase 27371417
Flx_get_red 40811253
Flx_halfgcd 34927
Flx_halfgcd_basecase 32723
Flx_halfgcd_i 34927
Flx_halfgcd_split 2204
Flx_halve 12783
Flx_inflate 28524
Flx_invBarrett 81602
Flx_invBarrett_Newton 4347
Flx_invBarrett_basecase 77254
Flx_is_l_pow 5062
Flx_is_smooth 88790
Flx_is_smooth_squarefree 93847
Flx_is_squarefree 3467413
Flx_lgrenormalizespec 3590085
Flx_matFrobenius 291580
Flx_mod_Xn1 12
Flx_mod_Xnm1 4990926
Flx_mul 239575751
Flx_mullimb 719996004
Flx_mullimb_ok 711384421
Flx_mulspec 243266732
Flx_mulspec_basecase 177516664
Flx_mulspec_halfmulii 7475995
Flx_mulspec_mulii 5907849
Flx_mulspec_mulii_inflate 10202710
Flx_mulspec_quartmulii 33562684
Flx_multhreshold 40691796
Flx_neg 1016759
Flx_neg_inplace 1553
Flx_negspec 1016769
Flx_normalize 36926373
Flx_powu 4704
Flx_recip 0
Flx_recipspec 3709125
Flx_red 245685
Flx_rem 500543994
Flx_rem_basecase 444499495
Flx_renormalize 1375160298
Flx_rescale 701
Flx_resultant 1935247
Flx_shift 2946106
Flx_shiftip 421117291
Flx_splitting 132547
Flx_sqr 187702342
Flx_sqrspec 187897232
Flx_sqrspec_basecase 97579430
Flx_sqrspec_halfsqri 13570885
Flx_sqrspec_quartsqri 10675000
Flx_sqrspec_sqri 46881461
Flx_sqrspec_sqri_inflate 19033157
Flx_sub 58215481
Flx_subspec 1762622
Flx_to_Flv 4833449
Flx_to_FlxX 25473
Flx_to_ZX 41489478
Flx_to_ZX_inplace 43781796
Flx_to_int_halfspec 28690835
Flx_to_int_quartspec 77800633
Flx_translate1 11851
Flx_triple 670419
Flx_val 3107173
Flx_valrem 22475007
Flxn_inv 98
Flxn_mul 103106
Flxn_red_shallow 595
FlxqC_Flxq_mul 70343
FlxqM_Flxq_mul 11585
FlxqM_mul_Kronecker 10733
FlxqV_dotproduct 113505
FlxqV_roots_to_deg1 976
FlxqV_roots_to_pol 976
FlxqXM_FlxqX_mul2 384
FlxqXM_mul2 360
FlxqXQ_autpow 60559
FlxqXQ_autpow_mul 853
FlxqXQ_autpow_sqr 61350
FlxqXQ_autsum 10777
FlxqXQ_autsum_mul 28157
FlxqXQ_autsum_sqr 16855
FlxqXQ_auttrace 321
FlxqXQ_auttrace_mul 20
FlxqXQ_auttrace_sqr 20
FlxqXQ_div 0
FlxqXQ_inv 14
FlxqXQ_invsafe 14
FlxqXQ_matrix_pow 0
FlxqXQ_minpoly 139
FlxqXQ_mul 300792
FlxqXQ_pow 42
FlxqXQ_powers 28851
FlxqXQ_powu 71767
FlxqXQ_sqr 184058
FlxqXQ_transmul 639
FlxqXQ_transmul_init 320
FlxqXV_prod 988
FlxqX_FlxqXM_qmul 360
FlxqX_FlxqXQV_eval 57129
FlxqX_FlxqXQ_eval 62432
FlxqX_Flxq_mul 8113
FlxqX_Flxq_mul_to_monic 207724
FlxqX_addmulmul 768
FlxqX_divrem 252381
FlxqX_divrem_Barrett_noGC 42023
FlxqX_divrem_Barrettspec 52295
FlxqX_divrem_basecase 1139348
FlxqX_dotproduct 968
FlxqX_extgcd 5915
FlxqX_extgcd_basecase 5915
FlxqX_extgcd_halfgcd 0
FlxqX_gcd 151403
FlxqX_gcd_basecase 147354
FlxqX_get_red 294071
FlxqX_halfgcd 904
FlxqX_halfgcd_basecase 541
FlxqX_halfgcd_i 904
FlxqX_halfgcd_split 363
FlxqX_invBarrett 3159
FlxqX_invBarrett_Newton 2134
FlxqX_invBarrett_basecase 990
FlxqX_mul 417874
FlxqX_mulspec 129290
FlxqX_normalize 169188
FlxqX_powu 10227
FlxqX_red 959607
FlxqX_rem 1150026
FlxqX_safegcd 8721
FlxqX_sqr 200466
FlxqXn_mul 500
Flxq_autpow 304521
Flxq_autpow_mul 20533
Flxq_autpow_sqr 377772
Flxq_autsum 306993
Flxq_autsum_mul 613971
Flxq_autsum_sqr 365907
Flxq_auttrace 43048
Flxq_auttrace_mul 56950
Flxq_auttrace_sqr 45366
Flxq_charpoly 27
Flxq_conjvec 20
Flxq_div 1871370
Flxq_easylog 321285
Flxq_inv 3460884
Flxq_invsafe 3501120
Flxq_is2npower 280
Flxq_issquare 352575
Flxq_log 35069
Flxq_lroot 25032
Flxq_lroot_fast 113505
Flxq_matrix_pow 301170
Flxq_minpoly 25334
Flxq_mul 121310375
Flxq_norm 380324
Flxq_order 12335
Flxq_pow 22245237
Flxq_pow_Frobenius 22014717
Flxq_powers 2485222
Flxq_powu 10692179
Flxq_sqr 187127877
Flxq_sqrt 157784
Flxq_sqrtn 165361
Flxq_trace 3121
Flxq_transmul 152803
Flxq_transmul_init 60100
Fly_to_FlxY 1566
Kronecker_to_FlxqX 747630
RgX_to_Flx 2073892
RgX_to_FlxqX 21943
Rg_to_F2 1094455
Rg_to_Fl 34523716
Rg_to_Flxq 1462756
ZM_unpack_FlxqM 9107
ZM_unpack_FlxqM_bits 1626
ZXT_to_FlxT 1292002
ZXV_to_FlxV 0
ZXXT_to_FlxXT 313
ZXXV_to_FlxXV 12
ZXX_to_FlxX 478146
ZX_to_Flx 174908161
Z_mod2BIL_Flx 29249809
Z_mod2BIL_Flx_2 29227762
Z_mod2BIL_Flx_3 11153
Z_to_Flx 1316567
_Fl2_mul 1627465
_Fl2_pow 557824
_Fl2_rand 94573
_Fl2_sqr 4177614
_Flx_add 17730314
_Flx_divrem 0
_Flx_mul 9041074
_Flx_sqr 0
_Flx_sub 0
_FlxqXQ_add 500111
_FlxqXQ_cmul 619672
_FlxqXQ_mul 270293
_FlxqXQ_one 352275
_FlxqXQ_red 340931
_FlxqXQ_sqr 183687
_FlxqXQ_sub 2268
_FlxqXQ_zero 184
_FlxqX_mul 2358
_FlxqX_sqr 10255
_Flxq_cmul 21000326
_Flxq_equal0 30072
_Flxq_inv 5628
_Flxq_mul 104186397
_Flxq_neg 6027
_Flxq_one 9178528
_Flxq_pow 21996040
_Flxq_rand 315574
_Flxq_red 7843994
_Flxq_rmul 60669
_Flxq_s 12229
_Flxq_sqr 181406556
_Flxq_zero 190630
bounded_order 661786
gener_Flxq 9224
get_Flx_red 562583543
get_FlxqXQ_algebra 212
get_FlxqX_red 1402727
get_Flxq_field 6069
get_Flxq_star 210952
int_to_Flx 53027931
int_to_Flx_half 21243084
int_to_Flx_quart 44238258
kron_pack_Flx_spec 21407
kron_pack_Flx_spec_2 0
kron_pack_Flx_spec_3 0
kron_pack_Flx_spec_bits 90410
kron_pack_Flx_spec_half 339224
kron_unpack_Flx 14500
kron_unpack_Flx_2 0
kron_unpack_Flx_3 0
kron_unpack_Flx_bits_narrow 46370
kron_unpack_Flx_bits_wide 7000
matid2_FlxM 3
matid2_FlxXM 0
maxlengthcoeffpol 462697979
mkF2 6164768
monomial_Flx 32962
pol1_FlxX 864646
polx_FlxX 5071
polxn_FlxX 160
random_Flx 760648
random_FlxqX 481
zero_FlxC 2905
zero_FlxM 2898
zxX_to_FlxX 1613290
zxX_to_Kronecker 1036214
zxX_to_Kronecker_spec 1294794
zx_to_Flx 3648454

Generated by: LCOV version 1.11