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 - headers - pariinl.h (source / functions) Hit Total Coverage
Test: PARI/GP v2.14.0 lcov report (development 27920-e0b3650d81) Lines: 1448 1592 91.0 %
Date: 2022-08-07 07:33:29 Functions: 641 712 90.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F3m_copy 0
F3m_set 0
FlxqX_div 0
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQ_add 0
FpXQ_sub 0
FqXQ_add 0
FqXQ_div 0
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_pow 0
FqXQ_sqr 0
FqXQ_sub 0
FqX_divrem 0
FqX_halfgcd 0
FqX_integ 0
FqXn_exp 0
FqXn_sqr 0
R_abs 0
RgX_isscalar 0
bid_get_gen_nocheck 0
bid_get_no 0
cbrtr 0
cbrtr_abs 0
closure_get_code 0
gabsz 0
gaddz 0
gchar_get_U 0
gchar_get_hnf 0
gchar_set_m0 0
gdiventz 0
gdivz 0
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulz 0
gnegz 0
gshiftz 0
gsubz 0
idealpseudomin_nonscalar 0
inv_content 0
is_qfb_t 0
mkcol4 0
mkcol4s 0
mkerr 0
mkmat4 0
mkmat5 0
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
pari_err_FILE 0
pari_err_MAXPRIME 0
pari_err_PACKAGE 0
polx_zx 0
truecoef 0
trunc_safe 0
vec_setconst 0
vecsmall_coincidence 0
zero_F2m 0
zero_zm 0
zero_zx 0
zm_copy 0
zm_row 0
zm_to_zxV 0
zx_shift 0
zx_to_zv 0
FqX_ddf 7
FqX_factor_squarefree 7
mkrfraccopy 7
pari_err_CONSTPOL 7
pari_err_BUG 14
vecsmall_indexmax 14
vecsmall_indexmin 14
znstar_get_no 14
RgM_gtomp 21
mkvec4s 21
pari_err_FILEDESC 36
F2v_ei 42
vecsmall_isin 42
RgV_gtofp 49
pari_err_ROOTS0 56
pari_err_IRREDPOL 63
bnr_get_gen_nocheck 70
ellnf_get_bnf 70
pari_err_PRIME 77
pari_err_COPRIME 84
pari_err_SQRTN 84
vecsmall_pack 84
gal_get_e 91
Z_ispower 98
pari_err_FLAG 98
mkcol5 101
rnf_get_index 105
mkvecs 126
RgX_to_RgV 140
pari_err_OVERFLOW 142
FqX_to_mod 175
rnf_get_disc 175
pari_err_COMPONENT 200
rowsplice 210
nbits2ndec 228
pari_err_PRIORITY 231
rnf_get_varn 231
pari_err_PREC 239
zm_transpose 266
err_get_compo 273
gchar_get_nfree 273
gchar_get_ntors 273
pari_err_VAR 280
pol_xnall 287
mkcol3s 294
polxn_Flx 308
ellQp_get_prec 315
pari_err_OP 378
sturm 378
get_F2xqX_mod 406
pari_err_IMPL 469
vecsmall_lengthen 469
gchar_get_r2 525
gchar_set_HUUi 532
gchar_set_nalg 532
gchar_set_nfree 532
gchar_set_ntors 532
pari_err_DIM 550
RgC_gtomp 574
bnf_get_reg 625
F2m_set 672
rnf_get_idealdisc 707
perm_sqr 728
Rg_to_Fq 756
pari_err_MODULUS 756
rnf_get_k 756
rnf_get_alpha 868
row_i 987
RgM_minor 1036
quad_disc 1071
gchar_set_prec 1118
ellQp_get_p 1134
locs_get_Lgenfil 1155
locs_get_famod 1155
rnf_get_invzk 1197
FqX_powu 1281
zero_F2x 1357
gchar_set_basis 1412
gchar_set_cyc 1412
vecsmall_min 1435
ellQp_get_zero 1484
powIs 1575
gchar_get_nm 1610
gchar_set_evalprec 1624
rnf_get_ramified_primes 1645
RgXQX_div 1792
nf_get_zk 1792
pari_realloc 1792
gchar_set_u0 1799
mkintmodu 1813
gchar_get_nalg 1818
gchar_get_sfu 1821
get_FpXQX_degree 2259
idealchineseinit 2310
vecreverse_inplace 2321
gchar_set_nf 2336
vecsmall_to_vec_inplace 2457
pari_err_DOMAIN 2610
gchar_set_nfprec 2939
vecsmall_reverse 2961
gchar_get_m0 3233
rnf_get_nfvarn 3332
pari_err_TYPE2 3402
rnf_get_zk 3591
gchar_get_evalprec 3934
FqX_normalize 3969
gchar_get_modP 3969
nf_get_r2 4007
rnf_get_nfzk 4018
F2v_copy 4074
identity_ZV 4242
FpXQX_div 4417
gchar_get_u0 4423
gval 4669
precdbl 4774
pari_stack_pushp 5557
FqX_div_by_X_x 5936
gal_get_p 5978
nf_get_diff 6034
FqX_get_red 6081
FqXn_expint 6610
is_extscalar_t 6841
gal_get_orders 6867
FqXn_inv 6916
FqX_roots 7147
submuliu 7693
bnr_get_gen 7847
get_FlxqX_mod 7956
gchar_get_mod 7959
locs_get_mod 7959
cgetalloc 8059
bnf_get_no 8162
znstar_get_gen 8264
ndec2nbits 8353
gal_get_gen 8869
RgV_isscalar 9357
prec2ndec 10152
zeropadic_shallow 10248
mkrfrac 10311
gchar_get_Ui 10458
vectrunc_append_batch 10864
vec_shorten 11464
closure_get_dbg 11654
mkcol6 11993
mkmat22s 12495
gchar_get_nfprec 12663
R_abs_shallow 12754
pari_err_TYPE 13557
idealred_elt 13754
zx_renormalize 14042
gener_Fq_local 14624
gchar_get_cyc 15433
mkmat3 16485
rnf_get_nfdegree 16772
gchar_get_r1 16884
ellR_get_sign 17246
Fp_muls 17290
FqX_mulu 17510
gchar_get_prec 17927
zerovec_block 18256
Qtoss 18501
RgM_fpnorml2 18616
FqX_halve 18774
vec_lengthen 18822
pari_err_INV 19970
FpXY_Fq_evaly 20006
ZX_equal1 21299
nf_get_Tr 22202
FqXQ_mul 22320
gtomp 22428
ZV_dvd 23240
gal_get_mod 23589
FqX_neg 24313
gequalgs 24976
FqX_red 25144
bnf_get_fu 25778
nfV_to_scalar_or_alg 26212
closure_get_text 27251
gal_get_den 27333
gal_get_invvdm 27334
mkcolcopy 29045
ndec2prec 30052
gchar_get_basis 30553
FqX_rem 31086
gal_get_roots 32178
F2xqX_div 33376
bid_get_arch 33579
matpascal 34124
get_FpXQX_var 34808
gchar_get_S 35069
gchar_get_ns 35069
gchar_get_nc 35265
mkveccopy 35854
gal_get_pol 36042
div_content 36356
mkcols 36589
ellR_get_prec 37562
ndec2nlong 38405
F2v_to_F2x 38871
FqX_div 38881
absfrac_shallow 43890
pari_calloc 43898
znstar_get_Ui 46788
gchar_get_loccyc 47746
locs_get_cyc 49179
bid_get_sarch 50736
bid_get_gen 52598
nf_get_ramified_primes 55263
err_get_num 57264
RgX_fpnorml2 57605
vecsmall_shorten 60047
FqX_degfact 63112
RgX_is_rational 63676
vecsmall_ei 66445
FqX_sub 66458
Fp_halve 67399
mkquad 69132
bid_get_ideal 69552
FqX_sqr 69678
quadnorm 69860
gal_get_group 79336
qfb_disc3 85022
mkcol3 85543
zeromat 91580
cyclic_perm 98483
Flx_constant 99230
Fq_to_FpXQ 101219
mkmoo 102739
gtou 102753
rnf_get_map 103544
zv_to_zx 104139
RgXQX_rem 104610
FqX_add 105343
RgV_isin 108892
RgV_isin_i 108892
RgV_is_QV 110267
mkmatcopy 118055
mkvec2copy 125024
zeroser 135569
idealred 135580
bnr_get_mod 137671
idealpseudomin 140096
get_FpXQX_mod 146583
znstar_get_U 148145
Q_abs_shallow 159367
FlxqX_div_pre 163869
rowslicepermute 167856
FqX_factor 169960
vecsmall_prepend 183126
gchar_get_DLdata 187845
rnf_get_nfpol 189378
locs_get_Lsprk 190792
F2m_copy 199289
mkoo 199447
get_F2xqX_degree 201481
rowcopy 204988
gchar_get_bnf 205933
locs_get_m_infty 205996
mkvec2s 211200
rnf_get_polabs 215008
affgr 216244
znstar_get_cyc 220700
zero_Flm_copy 222329
get_FlxqX_var 234992
gchar_get_nf 237479
affc_fixlg 245075
FqXn_mul 254926
FqX_gcd 260911
bnf_get_tuN 264406
vec_prepend 272216
gchar_get_zm 274565
cxtoreal 275453
nf_get_sign 283423
bnf_get_fu_nocheck 287527
bnf_get_tuU 289709
get_FlxqX_degree 290994
FqX_deriv 291893
bnr_get_no 311340
inf_get_sign 314332
ZM_hnfrem 319976
RgX_is_QX 333365
upr_norm 339009
RgX_renormalize 345537
coltrunc_init 348894
vecsplice 353913
FqX_mul 364872
addmuliu 369327
get_F2xqX_var 376187
bid_get_mod 387498
abgrp_get_no 387557
vecreverse 398643
FqX_Fq_mul 404753
perm_conj 418257
FqX_extgcd 426004
rnf_get_nf 442370
nf_get_disc 450558
row 474034
zv_to_ZV 486780
mkvec3s 488650
RgX_shift_inplace 490093
RgX_shift_inplace_init 490093
vecsmall_to_vec 491841
Z_issquare 523466
FqX_Fp_mul 546204
nf_get_G 547149
gcmpgs 551628
bnr_get_nf 565051
ZXQ_sqr 576778
RgM_gtofp 584090
prec2nbits_mul 586429
idealpseudominvec 594371
mkvecsmall5 604537
RgC_fpnorml2 615235
logint 635629
Flx_lead 658743
bnf_get_sunits 661641
powii 663683
idealpseudored 673048
FpXX_renormalize 676857
ellff_get_a4a6 683583
gdivsg 709453
modpr_get_p 725137
ellnf_get_nf 735260
vecsmall_max 752055
sstoQ 769223
rnf_get_absdegree 776489
cgetc 778682
Fp_invsafe 779319
gen_I 825642
nf_get_varn 829498
zero_F2m_copy 843249
zeropadic 850020
gmin_shallow 868423
ellinf 931334
bnr_get_bid 935279
gerepilemany 954225
bnf_get_gen 967086
bid_get_sprk 989035
guncloneNULL_deep 993862
polx_F2x 1010186
bid_get_fact2 1022833
F2x_equal1 1031887
abgrp_get_gen 1032205
ell_get_j 1044209
Flx_mulu 1053961
ell_get_b4 1058130
sqrtnr 1090523
Rg_col_ei 1149837
is_real_t 1180238
mkfracss 1205620
pr_norm 1213318
bid_get_archp 1214719
nf_get_roots 1234137
rnf_get_degree 1235910
F2x_div 1265949
zero_Flx 1273779
bid_get_fact 1310428
nf_get_roundG 1316349
mul_content 1318743
constant_coeff 1320329
bid_get_U 1376848
bnr_get_cyc 1388963
gsubgs 1401077
is_vec_t 1426885
ZXQ_mul 1429875
Fp_div 1462415
bnf_get_logfu 1479214
rnf_get_pol 1483486
ell_get_b8 1490531
cyc_get_expo 1495982
pari_realloc_ip 1564454
ellff_get_field 1571453
killblock 1575677
F2m_flip 1577512
F2v_flip 1577512
F2x_flip 1577512
bnr_get_bnf 1630631
ell_get_b6 1664176
vec_ei 1690661
bnr_get_clgp 1717634
Fp_divu 1718036
vecsmall_concat 1824103
bnf_get_cyc 1893323
get_F2x_mod 1904677
F3m_coeff 1919362
get_F2x_degree 1928636
Flx_div 1972904
ulogint 2009212
vecslicepermute 2072721
identity_perm 2077839
identity_zv 2102143
zv_copy 2140075
pol_xn 2157390
gerepilecoeffs 2195802
RgX_coeff 2243253
bid_get_cyc 2361343
Flv_copy 2364120
bid_get_grp 2414523
zero_Flm 2424440
nf_get_index 2460012
RgX_is_monomial 2466593
get_F2x_var 2473255
pol_x 2478208
ZM_lll 2514590
hash_str 2526261
Fq_red 2563422
mkpolmod 2581128
get_FpX_mod 2660820
perm_inv 2692615
mulsubii 2695929
mkcol2s 2761682
znstar_get_pe 2805163
bit_accuracy_mul 2866910
bnf_get_clgp 2868731
sqrfrac 2973816
RgC_gtofp 3122251
nf_get_zkprimpart 3133460
nf_get_zkden 3180151
znstar_get_conreygen 3202686
ell_get_a2 3209007
zero_F2v 3237952
pol1_F2x 3295979
F2x_equal 3380061
ell_get_b2 3390773
ZV_to_zv 3418307
vec_append 3419631
pol_1 3484744
is_rational_t 3685897
mkfraccopy 3720552
mkmat 3765682
pari_stack_delete 3811192
nf_get_M 3938591
vecsmall_append 3951655
ell_get_a4 3978608
ell_get_a3 4041767
pari_stack_init 4081314
nf_get_r1 4085433
vecsmall_copy 4101265
checkell_i 4140243
ell_get_a1 4215514
vec_to_vecsmall 4238868
isintm1 4347347
FpXQX_renormalize 4349932
mkmat22 4467280
col_ei 4528597
FpX_div 4574907
RgX_gtofp 4686318
ell_get_a6 4764771
zeromatcopy 4957243
sqrti 5001603
bnf_get_nf 5189655
mul_denom 5307128
get_FpX_degree 5328923
mkcol 5435334
ZX_is_monic 5721935
Flm_copy 5773136
pr_is_inert 5837233
abgrp_get_cyc 5880146
mkvec4 5943029
ell_get_c4 6094838
mkintmod 6569421
get_FpX_var 6806866
F2m_coeff 6875310
RgX_div 6909707
zc_to_ZC 6979966
vecsmall_to_col 6993781
vecsmall_lexcmp 7071883
Q_abs 7091787
znstar_get_faN 7102971
modpr_get_T 7118928
ell_get_c6 7292823
nf_get_invzk 7742949
znstar_get_conreycyc 7751678
Flx_equal1 7952889
closure_get_frame 8173722
ismpzero 8214496
is_intreal_t 8214590
pr_get_e 8675858
cxtofp 8806132
gisdouble 8926604
pr_get_gen 9044530
const_col 9133178
RgM_dimensions 9199960
ell_get_disc 9251886
matslice 9385619
ser_isexactzero 9733633
Flm_row 9877337
ell_get_type 9926513
ZC_hnfrem 9979726
rowpermute 10070706
Fp_addmul 10939418
vectrunc_init 11092462
gerepileall 11539505
vecpermute 11558025
RgX_is_ZX 11684015
pol0_F2x 11874223
Fp_center_i 12198407
F2x_clear 12354329
F2v_clear 12354336
nbits2nlong 12709322
gmax_shallow 13508498
vectrunc_append 13817653
normalize_frac 14345499
mkvecsmall4 14425809
mkvec5 14632809
zeropol 14649138
isint1 14790115
hash_str_len 15096874
const_vecsmall 16683447
mkqfb 16870231
modpr_get_pr 16980422
cxcompotor 17641822
RgM_shallowcopy 18061671
Fp_neg 18130095
shallowcopy 18186461
qfb_disc 18287093
Flx_div_pre 21412229
pr_get_f 24048726
get_Flx_mod 24627240
zerovec 24747007
RgX_equal_var 25077892
Fp_inv 26431675
const_vec 28083861
zero_zv 28192995
mkfrac 29390539
znstar_get_N 29869333
RgV_is_ZV 30222507
guncloneNULL 31846145
lincombii 32663405
ZV_isscalar 34671688
polx_Flx 34804328
pol_0 35098127
QV_isscalar 36350217
mkmat2 36916339
closure_is_variadic 37387497
absfrac 40763832
ell_is_inf 41144826
submulii 43298157
pr_get_tau 45534048
Fp_red 45986771
gmulgs 47106610
nf_get_degree 47302202
zero_Flv 52284616
pol1_Flx 52689568
mkcol2 53923856
gtodouble 55387698
qfb_is_qfi 56824658
F2x_copy 56974699
sqrtr 57505691
vecsmalltrunc_append 58776057
Fp_center 59227973
mkvec 60283654
dbllog2r 60356490
both_odd 62499354
rowslice 64515405
get_Flx_var 66755285
nf_get_pol 67497202
zerocol 67507480
Fp_sqr 67592446
pr_get_p 69509973
gc_all 71434664
mkcomplex 73485148
gtofp 74642491
gtos 75379884
vecsmallpermute 75690873
Fp_mulu 76203019
cxnorm 77051955
perm_mul 77885364
leading_coeff 81162099
nchar2nlong 83883401
get_Flx_degree 84118499
is_noncalc_t 84754277
mkvec3 85025791
mkvecsmall3 94805992
pol0_Flx 95106016
RgX_copy 96482179
F2v_set 97202409
bit_prec 99708874
FpX_renormalize 104381896
vecsmall_prefixcmp 108088071
Fp_add 110675761
cgiv 111144947
F2x_renormalize 113892463
mkvecsmall 120184478
F2x_set 122797648
ZX_renormalize 124777114
Fp_sub 124896460
gaddgs 128409926
nbrows 131669387
gmulgu 132229460
vecsmalltrunc_init 134226585
equalim1 137563157
gerepilecopy 141733664
addmuliu_inplace 144969221
submuliu_inplace 147907491
mkvec2 148808582
uutoQ 157848191
Flx_copy 168774353
Fp_mul 173055592
nbits2prec 179009585
mkvecsmall2 197560069
is_scalar_t 224516359
is_universal_constant 258005350
lgcols 284089705
lg_increase 290478337
closure_get_data 295642615
closure_get_oper 295666495
closure_codestr 295684124
nbits2lg 326410306
closure_arity 339547116
bin_copy 358813724
pari_free 370777887
leafcopy_avma 437763414
is_bigint 480919209
nbits2extraprec 513533417
F2v_coeff 534700241
pari_stack_new 535568079
F2x_coeff 541557235
vecslice 582325704
is_matvec_t 584964496
pari_malloc 597090043
pari_stack_alloc 623082023
pari_stack_base 626873922
GENbinbase 689166277
equali1 1017846211
gerepileuptoleaf 1018222147
gerepileupto 1466908362
odd 1833139722
bit_accuracy 1943298470
prec2nbits 2175136302
lgpol 2355335760
is_pm1 2465296568
isintzero 2510809920
gerepileuptoint 2912761809
is_const_t 3982643573
degpol 4618974630
remsBIL 5963476292
isonstack 6055884465
divsBIL 6068545978
icopy_avma 6567641586
is_recursive_t 6798313243

Generated by: LCOV version 1.13