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.16.1 lcov report (development 28676-df828f1c94) Lines: 1440 1583 91.0 %
Date: 2023-08-26 07:54:43 Functions: 645 716 90.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2xX_shift 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
gdiventz 0
gdivz 0
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulz 0
gnegz 0
gshiftz 0
gsubz 0
inv_content 0
is_qfb_t 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
random_Fq 0
truecoef 0
trunc_safe 0
vec_setconst 0
vecmodii 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_BUG 14
vecsmall_indexmax 14
vecsmall_indexmin 14
znstar_get_no 14
RgM_gtomp 21
mkvec4s 21
pari_err_CONSTPOL 21
pari_err_FILEDESC 36
F2v_ei 42
RgV_gtofp 56
pari_err_ROOTS0 56
pari_err_IRREDPOL 63
bnr_get_gen_nocheck 70
pari_err_COPRIME 84
pari_err_PRIME 84
pari_err_SQRTN 84
vecsmall_isin 84
vecsmall_pack 84
gal_get_e 91
mkcol5 93
Z_ispower 98
pari_err_FLAG 98
rnf_get_index 105
ellnf_get_bnf 119
RgX_to_RgV 140
pari_err_OVERFLOW 149
mkvecs 161
FqX_to_mod 175
pari_err_COMPONENT 200
rowsplice 210
nbits2ndec 228
pari_err_PRIORITY 231
rnf_get_varn 231
rnf_get_disc 238
pari_err_PREC 239
zm_transpose 266
err_get_compo 273
pari_err_VAR 287
pol_xnall 294
mkcol3s 301
ellQp_get_prec 315
gchar_get_nfree 322
gchar_get_ntors 322
polxn_Flx 371
pari_err_OP 385
sturm 385
get_F2xqX_mod 434
pari_err_IMPL 476
vecsmall_lengthen 490
RgC_gtomp 574
gchar_get_r2 623
gchar_set_HUUi 623
gchar_set_nalg 623
gchar_set_nfree 623
gchar_set_ntors 623
pari_err_DIM 648
F2m_set 672
bnf_get_reg 674
perm_sqr 728
rnf_get_idealdisc 749
Rg_to_Fq 756
pari_err_MODULUS 756
rnf_get_k 819
rnf_get_alpha 924
gchar_set_m0 969
row_i 987
RgM_minor 1036
quad_disc 1078
ellQp_get_p 1134
rnf_get_invzk 1197
gchar_copy_precs 1235
gchar_set_prec 1235
locs_get_Lgenfil 1260
locs_get_famod 1260
FqX_powu 1295
zero_F2x 1350
vecsmall_min 1442
ellQp_get_zero 1484
powIs 1575
gchar_set_basis 1592
gchar_set_cyc 1592
gchar_set_evalprec 1757
rnf_get_ramified_primes 1785
pari_realloc 1799
mkintmodu 1806
nf_get_zk 1813
gchar_get_nm 1841
RgXQX_div 1904
gchar_get_sfu 1982
gchar_get_nalg 2061
gchar_set_u0 2093
idealchineseinit 2413
vecsmall_to_vec_inplace 2464
gchar_set_nf 2489
vecreverse_inplace 2549
pari_err_DOMAIN 2638
vecsmall_reverse 3003
gchar_set_nfprec 3217
rnf_get_nfvarn 3367
pari_err_TYPE2 3493
gchar_get_m0 3574
get_FpXQX_degree 3686
rnf_get_zk 3731
gchar_get_evalprec 4004
gchar_get_modP 4025
F2v_copy 4074
nf_get_r2 4139
rnf_get_nfzk 4242
identity_ZV 4249
FqX_normalize 4382
FpXQX_div 4546
nf_get_diff 4564
gchar_get_u0 4761
precdbl 4945
gval 4977
pari_stack_pushp 5578
gal_get_p 6006
RgV_isscalar 6017
FqX_get_red 6090
FqXn_expint 6590
gal_get_orders 6944
is_extscalar_t 7000
FqXn_inv 7126
FqX_roots 7273
submuliu 7693
bnr_get_gen 7847
get_FlxqX_mod 7998
cgetalloc 8031
gchar_get_mod 8071
locs_get_mod 8071
ndec2nbits 8235
bnf_get_no 8352
gal_get_gen 8946
prec2ndec 9508
zeropadic_shallow 10219
gchar_get_Ui 10731
vectrunc_append_batch 10864
vec_shorten 11555
closure_get_dbg 12585
mkcol6 12586
gchar_get_nfprec 13153
R_abs_shallow 13531
zx_renormalize 14042
pari_err_TYPE 14145
ZX_equal1 14172
gener_Fq_local 14624
gchar_get_cyc 15872
znstar_get_gen 16150
mkmat3 16772
rnf_get_nfdegree 16989
gchar_get_r1 17185
Fp_muls 17780
ellR_get_sign 18139
gchar_get_prec 18459
Qtoss 18501
vec_lengthen 18892
FqX_halve 19411
pari_err_INV 19991
FpXY_Fq_evaly 20587
RgM_fpnorml2 21461
FqX_mulu 21942
nf_get_Tr 22203
gtomp 22428
FqXQ_mul 22766
ZV_dvd 23240
gal_get_mod 23631
zerovec_block 24072
FqX_neg 24956
FqX_red 25354
bnf_get_fu 25904
nfV_to_scalar_or_alg 26338
gequalgs 26838
gal_get_den 27429
gal_get_invvdm 27429
mkcolcopy 28958
closure_get_text 29113
ndec2prec 31991
gchar_get_basis 32126
gal_get_roots 32287
F2xqX_div 33460
matpascal 34166
bid_get_arch 34944
gal_get_pol 35815
mkveccopy 35889
gchar_get_S 36488
gchar_get_ns 36488
gchar_get_nc 36754
div_content 37024
FqX_rem 37743
F2v_to_F2x 38160
ellR_get_prec 38878
FqX_div 39639
ndec2nlong 40226
mkcols 40411
pari_calloc 44619
absfrac_shallow 46540
znstar_get_Ui 46788
gchar_get_loccyc 49704
vecmoduu 49784
vecsmall_ei 50568
bid_get_sarch 51016
locs_get_cyc 51335
get_FpXQX_var 51837
bid_get_gen 53086
nf_get_ramified_primes 57093
err_get_num 59115
RgX_fpnorml2 59732
FqX_degfact 63140
RgX_is_rational 66516
FqX_sub 68607
mkquad 69132
quadnorm 69860
bid_get_ideal 71183
vecsmall_shorten 71497
FqX_sqr 71855
FqX_div_by_X_x 71939
gal_get_group 79431
qfb_disc3 85183
mkcol3 86407
FqX_factor 87149
zeromat 92088
cyclic_perm 98483
mkcol4 102935
mkmoo 103171
zv_to_zx 104139
rnf_get_map 105732
gtou 106378
RgXQX_rem 106621
RgV_isin 109067
RgV_isin_i 109067
Fq_to_FpXQ 110255
RgV_is_QV 110692
mkmatcopy 110923
mkvec2copy 121404
FqX_add 127694
mkmat22s 130830
zeroser 136360
idealred 137689
Flx_constant 137778
bnr_get_mod 140000
get_FpXQX_mod 146583
rowslicepermute 151054
znstar_get_U 156031
FlxqX_div_pre 164956
Q_abs_shallow 168432
vecsmall_prepend 183693
gchar_get_DLdata 188440
locs_get_Lsprk 191667
rnf_get_nfpol 194152
F2m_copy 196917
mkoo 200329
get_F2xqX_degree 201859
gchar_get_bnf 202797
rowcopy 204988
locs_get_m_infty 206976
mkvec2s 213357
affgr 216244
rnf_get_polabs 221164
znstar_get_cyc 228586
zero_Flm_copy 229361
gchar_get_nf 241186
affc_fixlg 245322
Fp_halve 252463
get_FlxqX_var 262451
FqX_gcd 262941
FqXn_mul 263403
bnf_get_tuN 264750
vec_prepend 272428
cxtoreal 275774
gchar_get_zm 278135
nf_get_sign 285804
bnf_get_fu_nocheck 287713
bnf_get_tuU 290076
FqX_deriv 294238
bnr_get_no 313900
get_FlxqX_degree 315660
inf_get_sign 315698
ZM_hnfrem 326267
upr_norm 343937
RgX_renormalize 347497
coltrunc_init 348914
vecsplice 354248
RgX_is_QX 358376
FqX_mul 367600
get_F2xqX_var 377195
abgrp_get_no 391194
vecreverse 397607
addmuliu 406231
perm_conj 418299
FqX_Fq_mul 427078
FqX_extgcd 435595
nf_get_G 442124
rnf_get_nf 449560
nf_get_disc 451735
Z_issquare 458439
row 474585
mkvec3s 488650
RgX_shift_inplace 491489
RgX_shift_inplace_init 491489
zv_to_ZV 494489
vecsmall_to_vec 499571
ZM_ZV_mod 535585
FqX_Fp_mul 559076
gcmpgs 581906
RgM_gtofp 590423
prec2nbits_mul 613997
RgC_fpnorml2 616391
ZXQ_sqr 626351
mkvecsmall5 664358
logint 678646
ellff_get_a4a6 688170
mkrfrac 697634
modpr_get_p 728584
ellnf_get_nf 752674
Flx_lead 761277
rnf_get_absdegree 763616
sstoQ 769734
gen_I 833181
nf_get_varn 838946
zero_F2m_copy 839939
zeropadic 847316
gdivsg 850689
FpXX_renormalize 853132
gmin_shallow 872375
cgetc 915091
vecsmall_max 916913
ellinf 964355
gerepilemany 971383
polx_F2x 1006350
ell_get_j 1047312
ell_get_b4 1063415
Flx_mulu 1081585
pr_norm 1156877
Fp_invsafe 1182742
mkfracss 1205620
Rg_col_ei 1207915
rnf_get_degree 1213133
nf_get_roots 1229843
bnr_get_nf 1257680
F2x_div 1260521
bnf_get_sunits 1276395
guncloneNULL_deep 1284862
zero_Flx 1330102
mul_content 1333426
constant_coeff 1373182
bid_get_mod 1382783
gsubgs 1405812
Fp_div 1461980
rnf_get_pol 1468010
vecsmall_concat 1479282
ell_get_b8 1492297
is_vec_t 1535016
F2m_flip 1562565
F2v_flip 1562565
F2x_flip 1562565
bnf_get_gen 1577424
ellff_get_field 1608749
abgrp_get_gen 1650933
ell_get_b6 1670126
ZXQ_mul 1684015
vec_ei 1691963
killblock 1725971
Fp_divu 1754716
F3m_coeff 1804876
nf_get_roundG 1822655
sqrtnr 1911249
vecslicepermute 1917376
bnr_get_bid 1932458
get_F2x_degree 1933019
ulogint 1954872
Flx_div 1984062
bid_get_sprk 1986770
identity_perm 1990550
identity_zv 2014879
pari_realloc_ip 2016744
bid_get_fact2 2020566
zero_Flm 2095448
zv_copy 2148452
pol_xn 2165984
bid_get_archp 2212610
gerepilecoeffs 2226178
bid_get_fact 2308716
perm_inv 2375799
Flv_copy 2376004
bnr_get_cyc 2390216
RgX_coeff 2434150
get_F2x_var 2474115
cyc_get_expo 2510833
get_F2x_mod 2516681
hash_str 2546832
pol_x 2569733
mkpolmod 2608490
bnf_get_logfu 2697996
bnr_get_clgp 2721657
znstar_get_pe 2813049
F2x_equal1 2866900
bit_accuracy_mul 2873003
RgX_is_monomial 2997623
mkcol2s 2998352
sqrfrac 3108642
RgC_gtofp 3153054
nf_get_index 3170244
ZV_to_zv 3195784
znstar_get_conreygen 3210579
ell_get_a2 3215877
Fq_red 3341601
bid_get_U 3369884
ell_get_b2 3401452
vec_append 3422395
zero_F2v 3460376
get_FpX_mod 3470435
bnf_get_cyc 3502464
bnr_get_bnf 3623301
ZM_lll 3631011
nf_get_zkprimpart 3694539
nf_get_zkden 3741268
mulsubii 3827021
is_rational_t 3854801
mkfraccopy 3900110
pol1_F2x 3913232
vecsmall_copy 3975510
ell_get_a4 3985241
vecsmall_append 3992710
vec_to_vecsmall 4016884
ell_get_a3 4051369
checkell_i 4127629
veclast 4220763
ell_get_a1 4226342
mkmat 4408982
pol_1 4446963
isintm1 4591379
F2x_equal 4605784
FpXQX_renormalize 4713139
RgX_gtofp 4738908
ell_get_a6 4772296
pari_stack_delete 4953477
col_ei 5078025
bnf_get_clgp 5088397
FpX_div 5130512
bid_get_cyc 5348871
pari_stack_init 5372645
bid_get_grp 5402540
nf_get_M 5675571
nf_get_r1 5719603
get_FpX_degree 5798804
sqrti 5975332
mul_denom 5981936
zeromatcopy 5991063
Flm_copy 5992788
ZX_is_monic 6028922
mkvec4 6035700
ell_get_c4 6115512
gisdouble 6147151
mkintmod 6523801
F2m_coeff 6757456
RgX_div 6916897
get_FpX_var 6972347
vecsmall_lexcmp 7071986
znstar_get_faN 7119835
Q_abs 7302506
ZV_ZV_mod 7303667
ell_get_c6 7308423
zc_to_ZC 7619798
vecsmall_to_col 7633620
znstar_get_conreycyc 7759956
Flm_row 8026012
ismpzero 8165166
is_intreal_t 8165258
pr_is_inert 8350321
modpr_get_T 8637808
pr_get_e 8693178
mkcol 8756819
rowpermute 8759138
matslice 8899955
nf_get_invzk 9037019
const_col 9134699
RgM_dimensions 9231946
ell_get_disc 9268252
cxtofp 9333130
bnf_get_nf 9406598
Flx_equal1 9925688
ser_isexactzero 9971714
ell_get_type 9982398
closure_get_frame 10259871
pr_get_gen 10565555
Fp_addmul 11087098
ZC_hnfrem 11159591
vectrunc_init 11252019
abgrp_get_cyc 11486001
F2x_clear 11729412
F2v_clear 11729419
gerepileall 11760464
nbits2nlong 11912692
vecpermute 12438341
pol0_F2x 13117067
Fp_center_i 13149087
RgX_is_ZX 13175192
gmax_shallow 13509242
vectrunc_append 14101298
zeropol 14742496
isint1 15031506
mkvecsmall4 15152369
normalize_frac 15227499
hash_str_len 15588665
mkvec5 15644908
RgM_shallowcopy 16139863
mkqfb 16393306
const_vecsmall 17469671
qfb_disc 18335584
cxcompotor 18697377
shallowcopy 19170537
Fp_double 19745662
pr_get_f 19790716
modpr_get_pr 20687733
ZV_isscalar 20797503
Flx_div_pre 21112809
mkmat22 22788766
zerovec 24706975
Fp_inv 24857748
get_Flx_mod 25430053
RgX_equal_var 25527593
mkmat2 26153323
Fp_neg 27259954
pr_get_tau 29045723
const_vec 29337212
zero_zv 30828504
RgV_is_ZV 30998066
mkfrac 31169509
znstar_get_N 33684422
pol_0 34804496
polx_Flx 35592162
powii 37946583
lincombii 39239718
closure_is_variadic 39420782
QV_isscalar 41802257
submulii 41862642
absfrac 42486105
ell_is_inf 43760571
gmulgs 44391342
guncloneNULL 45248715
Fp_red 46085208
zero_Flv 53295653
nf_get_degree 53976235
pol1_Flx 54822040
pr_get_p 56051777
gtodouble 57493691
qfb_is_qfi 58923662
rowslice 58981003
F2x_copy 59946506
Fp_center 61074113
Fp_sqr 62059900
is_real_t 62082024
mkvec 62479906
vecsmalltrunc_append 62575689
sqrtr 64060406
Fp_mulu 64123473
dbllog2r 65999717
both_odd 66439044
get_Flx_var 66833357
vecsmallpermute 66911796
perm_mul 68905760
zerocol 71998426
gc_all 72837126
cxnorm 75008868
mkcomplex 76543675
nf_get_pol 77274398
gtofp 77518142
mkcol2 82232374
get_Flx_degree 83829176
gtos 85674223
is_noncalc_t 88744770
bit_prec 89561573
mkvec3 92217933
mkvecsmall3 93775628
RgX_copy 97966019
pol0_Flx 98052530
nchar2nlong 99577209
F2v_set 100195681
cgiv 101151940
vecsmall_prefixcmp 108088071
addmuliu_inplace 114972898
submuliu_inplace 116066101
F2x_renormalize 119230714
mkvecsmall 124750177
F2x_set 126952247
gaddgs 130040212
gmulgu 133622442
equalim1 137825136
nbrows 138663915
vecsmalltrunc_init 140063259
FpX_renormalize 142103069
ZX_renormalize 144627680
gerepilecopy 151370165
mkvec2 153323541
Fp_sub 155967454
uutoQ 157863960
leading_coeff 160458765
Fp_add 168207439
Flx_copy 169854916
Fp_mul 172377596
nbits2prec 183220645
mkvecsmall2 201590256
lgcols 261925482
is_universal_constant 284800121
nbits2lg 285029214
is_scalar_t 300962155
lg_increase 302267917
closure_get_data 309794279
closure_get_oper 309819786
closure_codestr 309842414
closure_arity 355782082
bin_copy 371107728
pari_free 383837730
leafcopy_avma 434393650
is_bigint 516528326
nbits2extraprec 550952278
vecslice 551166642
pari_stack_new 554757290
is_matvec_t 588395762
pari_malloc 610231085
F2v_coeff 642744505
pari_stack_alloc 644686484
F2x_coeff 649589041
pari_stack_base 649629928
GENbinbase 715846940
gerepileuptoleaf 1009074098
equali1 1077657604
gerepileupto 1488486508
odd 1923300563
bit_accuracy 2150730729
is_pm1 2170005888
prec2nbits 2389852012
lgpol 2424316410
isintzero 2552815795
gerepileuptoint 3043831988
is_const_t 3844118369
degpol 4742739753
remsBIL 6481269069
divsBIL 6571652933
isonstack 6645573847
icopy_avma 6847627694
is_recursive_t 7348547346

Generated by: LCOV version 1.14