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.12.0 lcov report (development 23008-54b2e2f01) Lines: 1264 1433 88.2 %
Date: 2018-09-20 05:37:46 Functions: 561 639 87.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2v_copy 0
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQ_add 0
FpXQ_sub 0
Fp_muls 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_halve 0
FqX_integ 0
FqXn_exp 0
FqXn_inv 0
FqXn_mul 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
gdiventz 0
gdivz 0
get_F2x_mod 0
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulz 0
gnegz 0
gshiftz 0
gsubz 0
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkerr 0
mkmat4 0
mkmat5 0
mkvecs 0
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
pari_err_FILE 0
pari_err_FILEDESC 0
pari_err_MAXPRIME 0
pari_err_PACKAGE 0
polx_zx 0
rnf_get_varn 0
sturm 0
truecoef 0
trunc_safe 0
vec_setconst 0
vec_shorten 0
vecsmall_coincidence 0
vecsmall_isin 0
zero_F2m 0
zero_zm 0
zero_zx 0
zm_copy 0
zm_row 0
zm_to_zxV 0
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0
gerepilecoeffs 6
FqX_ddf 7
FqX_factor_squarefree 7
mkrfrac 7
mkrfraccopy 7
pari_err_CONSTPOL 7
znstar_get_gen 7
znstar_get_no 7
RgM_gtomp 14
Z_ispower 14
pari_err_BUG 14
vecsmall_indexmax 14
vecsmall_indexmin 14
mkvec4s 21
vecsmall_lengthen 21
coltrunc_init 28
pari_err_IRREDPOL 28
F2v_ei 42
FqX_degfact 42
RgV_gtofp 42
pari_err_FLAG 42
pari_err_ROOTS0 49
ellnf_get_bnf 56
pari_err_COPRIME 63
rnf_get_disc 63
bnr_get_gen_nocheck 70
pari_err_PRIME 70
err_get_compo 77
pari_err_SQRTN 77
gal_get_e 84
nf_get_ramified_primes 84
pari_err_OVERFLOW 84
vecsmall_pack 84
nf_get_zk 91
mkquad 105
rnf_get_index 105
rowsplice 133
pari_err_PRIORITY 175
nbits2ndec 193
FqX_to_mod 203
pari_err_COMPONENT 203
pari_err_VAR 203
zm_transpose 210
pari_err_PREC 218
vecsmall_reverse 252
vecreverse_inplace 260
mkcols 273
quad_disc 273
ellQp_get_prec 287
pol_xnall 287
F2m_copy 302
R_abs_shallow 322
pari_err_OP 350
get_F2xqX_mod 378
pari_err_IMPL 434
pari_err_DIM 487
ndec2nbits 491
bid_get_arch 518
RgC_gtomp 560
rnf_get_alpha 609
quadnorm 623
rnf_get_idealdisc 700
rnf_get_k 742
pari_err_MODULUS 749
Rg_to_Fq 756
idealred_elt 770
RgV_is_QV 798
RgM_minor 833
bnf_get_reg 846
gener_Fq_local 903
zeropadic_shallow 966
matpascal 1071
ellQp_get_p 1085
rnf_get_invzk 1197
powIs 1246
FqX_powu 1288
gal_get_p 1309
gal_get_orders 1365
ellQp_get_zero 1407
vecsmall_min 1421
zero_F2x 1474
vecsmall_to_vec_inplace 1617
nf_get_r2 1673
gal_get_gen 1715
precdbl 1771
bnf_get_fu 1778
vec_prepend 1785
RgXQX_div 1792
pari_err_DOMAIN 2003
idealchineseinit 2058
row_i 2177
get_FpXQX_degree 2187
get_FlxqX_mod 2258
nf_get_diff 2324
mkmat3 2331
pari_err_TYPE2 3073
rnf_get_nfzk 3087
FqX_normalize 3178
rnf_get_zk 3213
FqX_sub 3234
rnf_get_nfvarn 3325
RgM_fpnorml2 3804
mkintmodu 3948
FpXQX_div 4347
nf_get_varn 4528
bnf_get_no 4564
isintm1 4613
pari_stack_pushp 4794
is_extscalar_t 5437
FqX_div 5523
cgetalloc 5785
bnf_get_tuU 5868
inv_content 5901
RgX_is_rational 5909
FqX_div_by_X_x 5936
FqX_get_red 6095
FqX_sqr 6468
gval 7042
FqX_roots 7126
bnf_get_fu_nocheck 7170
RgV_isscalar 7501
addmuliu 7595
submuliu 7595
mkcol6 8716
RgX_fpnorml2 9150
closure_get_dbg 9386
vectrunc_append_batch 10416
mkmat22s 10661
bnr_get_gen 11032
ellR_get_sign 12106
Qtoss 12215
Flx_constant 12348
prec2ndec 12379
pari_err_TYPE 12496
vec_lengthen 13710
idealpseudored 14077
mkmoo 14098
vecsmall_prepend 14162
gal_get_den 15904
gal_get_invvdm 15904
gal_get_mod 15946
zeromat 16107
gal_get_roots 16324
rnf_get_nfdegree 16394
FqX_neg 17404
zerovec_block 17605
bnr_get_mod 18130
ZX_equal1 18205
pari_err_INV 19716
mkvec2s 19787
nf_get_sign 19819
gal_get_pol 19880
mkmatcopy 21998
FqXQ_mul 22348
gtomp 22400
closure_get_text 22510
ZV_dvd 23198
Fp_halve 23592
nf_get_Tr 24367
gequalgs 24570
bnf_get_tuN 24682
FqX_red 25431
bid_get_gen 27790
bnr_get_nf 27811
ndec2prec 28085
znstar_get_Ui 28518
ndec2nlong 28576
bid_get_sarch 29939
mkfracss 31822
F2v_to_F2x 32218
absfrac_shallow 32434
F2xqX_div 33278
FlxqX_div 34803
mkveccopy 35084
pari_calloc 35410
ZM_hnfrem 35594
ellR_get_prec 37156
rowslicepermute 38458
upr_norm 39487
gcmpgs 41894
mkcol3 42385
Fq_to_FpXQ 43439
bnr_get_no 45080
mkcolcopy 46031
bid_get_ideal 46361
nf_get_disc 49826
err_get_num 52170
FqX_rem 53108
abgrp_get_no 53411
get_FpXQX_var 57357
vec_append 61173
mkoo 62357
RgXQX_rem 65169
gal_get_group 66983
vecsmall_ei 71379
nf_get_G 73824
FqX_factor 74459
FqX_extgcd 87043
inf_get_sign 88709
mkvec2copy 91317
FqX_mul 96027
rnf_get_map 96775
cyclic_perm 98434
zero_Flm_copy 104211
idealred 109444
Q_abs_shallow 113706
znstar_get_U 118160
get_F2x_degree 121548
gtou 122986
idealpseudomin 127731
zv_to_ZV 131784
RgM_gtofp 133962
vecsmall_to_vec 135396
gerepilemany 136131
get_FpXQX_mod 142586
zeroser 143493
vecsmall_max 154033
get_FlxqX_degree 155787
mkqfi 158123
znstar_get_cyc 167545
RgC_fpnorml2 177877
rnf_get_nfpol 188580
get_F2xqX_degree 201684
rowcopy 204820
rnf_get_polabs 205170
logint 212480
affgr 216244
pr_norm 217505
nf_get_zkprimpart 247685
nf_get_zkden 248813
powii 251224
vecsplice 252938
affc_fixlg 259074
FqX_gcd 259098
RgX_is_QX 262241
FqX_deriv 272895
zero_F2m_copy 276546
ZXQ_sqr 277988
cxtoreal 289289
nf_get_roots 291043
cgetc 296268
idealpseudomin_nonscalar 297163
prec2nbits_mul 300131
bid_get_mod 301888
zeropadic 302747
mul_content 308688
Fp_invsafe 313889
vec_ei 326509
RgX_renormalize 353293
bid_get_fact2 354031
bid_get_sprk 354031
bnf_get_gen 367133
get_FlxqX_var 368931
bid_get_archp 374695
get_F2xqX_var 376495
rnf_get_nf 384706
bnr_get_bid 384712
nf_get_roundG 385499
gc_int 389563
row 390121
bid_get_fact 395527
abgrp_get_gen 396512
sqrtnr 412008
is_real_t 416587
perm_conj 416934
bnf_get_cyc 434249
ZV_to_zv 438842
get_F2x_var 448468
gen_I 448819
vec_to_vecsmall 457756
bnr_get_cyc 459598
mkvecsmall5 466226
RgX_shift_inplace 469122
RgX_shift_inplace_init 469122
Flx_lead 477582
bnf_get_logfu 481743
FqX_mulu 489744
mkvec3s 492724
bnr_get_clgp 516571
znstar_get_pe 521612
ZXQ_mul 556212
bit_accuracy_mul 563943
FqX_Fq_mul 587707
modpr_get_p 609516
pari_realloc 643861
FqX_Fp_mul 656080
bid_get_U 656129
Rg_col_ei 657808
gdivsg 678134
ellff_get_a4a6 683107
polx_F2x 683415
ellnf_get_nf 699475
identity_perm 721203
vecsmall_shorten 732326
RgX_gtofp 732480
bnr_get_bnf 746961
nf_get_index 765956
FpXX_renormalize 771228
rnf_get_absdegree 775698
vecsmall_concat 782113
zero_F2v 793137
vecslicepermute 805091
bnf_get_clgp 806275
ellinf 809800
F2x_equal1 812381
Flx_mulu 842951
ZC_hnfrem 843568
FpX_div 884960
znstar_get_conreygen 887698
zero_Flm 912954
zero_Flx 931179
FqX_add 957187
pol_x 972208
ell_get_b4 1024949
ell_get_j 1028909
bid_get_cyc 1031538
bid_get_grp 1059923
gc_NULL 1091097
is_rational_t 1131177
ismpzero 1137266
is_intreal_t 1137343
perm_inv 1155220
closure_get_frame 1171701
RgC_gtofp 1177203
is_vec_t 1187922
mulsubii 1188646
nbits2nlong 1188724
rnf_get_degree 1233638
FpXQX_renormalize 1237233
killblock 1274374
col_ei 1311334
Flm_copy 1313787
F2m_set 1362615
gsubgs 1368594
sqrfrac 1401796
ell_get_b8 1464001
rnf_get_pol 1479849
F2m_flip 1501266
F2v_flip 1501266
F2x_flip 1501266
pol_1 1502123
mkmat22 1533049
ellff_get_field 1570443
mul_denom 1603357
get_FpX_mod 1608436
ell_get_b6 1630617
pari_stack_delete 1658169
cxtofp 1662557
pari_stack_init 1710948
ulogint 1811262
vecsmall_copy 1863965
get_FpX_degree 1881824
zv_copy 1903341
bnf_get_nf 2062709
abgrp_get_cyc 2094351
mkcol2s 2176146
gc_double 2184593
znstar_get_faN 2239825
pr_get_e 2266368
Flv_copy 2273266
Z_issquare 2330804
nf_get_invzk 2337028
Fp_div 2366939
ZM_lll 2380881
mkcol 2417871
mkmat 2513300
modpr_get_T 2520376
mkpolmod 2541357
vecsmall_append 2552977
F2x_div 2592203
pol_xn 2699929
mkintmod 2740775
Fq_red 2798419
nf_get_M 2821420
pol1_F2x 2870626
znstar_get_conreycyc 2888921
get_FpX_var 2891082
RgX_coeff 2957130
rowpermute 2965301
pr_is_inert 3051848
ell_get_a2 3095807
F2x_equal 3103102
ell_get_b2 3318506
cxcompotor 3351805
matslice 3628010
Flm_row 3713523
ell_get_a3 3861693
ell_get_a4 3888753
ell_get_a1 3979741
nf_get_r1 4092354
RgX_is_ZX 4309169
Flx_div 4352693
RgX_equal_var 4502657
checkell_i 4625060
ZX_is_monic 4629621
gaddgs 4654827
ell_get_a6 4704932
F2v_clear 4710229
F2x_clear 4710229
zeromatcopy 4751956
Flx_equal1 4854499
ZV_isscalar 4976051
Fp_addmul 5039682
zc_to_ZC 5191030
vecsmall_to_col 5210063
RgM_dimensions 5649816
sqrti 5678643
ser_isexactzero 5743466
vecreverse 5830336
pr_get_tau 6141813
ell_get_c4 6167358
vecpermute 6215156
pr_get_gen 6273234
qfb_disc 6399785
qfb_disc3 6480663
mkfraccopy 6635608
RgX_div 6740160
isint1 7013077
mkvec4 7254946
ell_get_c6 7403838
get_Flx_mod 7447630
gerepileall 7487883
Q_abs 7547406
nbits2lg 7637799
vecsmall_lexcmp 8065780
modpr_get_pr 8126850
const_vecsmall 8242205
const_vec 8348856
nchar2nlong 8620809
const_col 8663072
pr_get_f 8716215
Fp_inv 8717473
mkcomplex 8944820
F2v_set 8950402
ell_get_disc 9654090
RgM_shallowcopy 9921948
pol0_F2x 11160926
ell_get_type 11456575
Fp_neg 11626280
F2m_coeff 11668657
mkvecsmall4 11933243
mkvec5 11968291
shallowcopy 12488417
cxnorm 12564524
vectrunc_init 12697857
gmulgs 13320314
submulii 13409985
zeropol 14102666
mkvec 14112498
pol1_Flx 14770810
Fp_center_i 14930478
gc_ulong 15129730
RgX_is_monomial 16160480
get_Flx_var 16390150
Fp_center 16429794
zero_zv 17151609
constant_coeff 17566877
polx_Flx 17653436
zerovec 18812254
gc_bool 18999248
QV_isscalar 19351568
pr_get_p 19370991
lincombii 20302930
znstar_get_N 21723009
sqrtr 21888701
absfrac 21962069
normalize_frac 21986742
rowslice 22007837
dbllog2r 22913012
mkfrac 22983997
mkcol2 23606275
is_universal_constant 24165981
nf_get_degree 24710976
RgV_is_ZV 27032587
mkmat2 28846038
both_odd 29064201
pol_0 29081756
nf_get_pol 30918871
cgiv 31508010
bit_prec 32093902
F2x_set 32768446
vecsmalltrunc_append 33040635
zero_Flv 33309626
nbrows 33483953
gtodouble 33616432
Fp_red 33685482
ell_is_inf 33935351
Fp_sqr 33992878
gtofp 35308486
closure_is_variadic 35447817
get_Flx_degree 35679207
zerocol 35992115
sstoQ 37068493
vecsmallpermute 44959980
perm_mul 46200162
gerepilecopy 47058962
pol0_Flx 48286071
ZX_renormalize 50606082
vectrunc_append 51301291
Fp_sub 56965263
bin_copy 57044486
mkvecsmall3 57700060
RgX_copy 57835862
F2x_copy 59290123
is_noncalc_t 60235141
equalim1 62133210
mkvecsmall 62423328
Fp_mulu 65137230
pari_free 65661855
FpX_renormalize 67228807
mkvec3 71856538
Fp_add 71923807
gtos 73016756
Flx_copy 73971055
leading_coeff 80736110
vecsmalltrunc_init 82748119
vecsmall_prefixcmp 85155511
Fp_mul 90823961
mkvec2 95714506
F2v_coeff 95878424
F2x_coeff 100597388
nbits2prec 108433186
F2x_renormalize 111349803
gc_long 112609455
mkvecsmall2 113060129
GENbinbase 114082152
addmuliu_inplace 119298819
lgcols 120098847
submuliu_inplace 120901232
leafcopy_avma 172972082
is_scalar_t 184769672
closure_get_data 192385867
closure_get_oper 192424480
closure_codestr 192468022
vecslice 198821827
closure_arity 228184052
is_bigint 238507116
lg_increase 253345297
pari_malloc 277513865
nbits2extraprec 312800365
pari_stack_new 325677677
is_matvec_t 396400806
pari_stack_alloc 403539098
pari_stack_base 405093934
gerepileuptoleaf 640654292
isintzero 641782506
equali1 694938035
gerepileupto 770073989
is_pm1 950884546
bit_accuracy 1036189169
prec2nbits 1148738912
gerepileuptoint 1224047752
is_const_t 1226082865
lgpol 1381147166
odd 2056234234
isonstack 2665996309
degpol 2785327040
is_recursive_t 2912309989
remsBIL 3363182846
divsBIL 3408576320
icopy_avma 3728081156

Generated by: LCOV version 1.13