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 - headers - pariinl.h (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 20777-d2a9243) Lines: 1237 1408 87.9 %
Date: 2017-06-25 05:59:24 Functions: 524 596 87.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 19319074
F2m_copy 302
F2m_flip 1360407
F2m_set 2352087
F2v_clear 4180182
F2v_coeff 162408278
F2v_copy 0
F2v_ei 7
F2v_flip 1360407
F2v_set 12560201
F2v_to_F2x 8158
F2x_clear 4180182
F2x_coeff 168840778
F2x_copy 64878097
F2x_div 2733876
F2x_equal 3291622
F2x_equal1 816737
F2x_flip 1360407
F2x_renormalize 125859886
F2x_set 37832706
F2xqX_div 30632
Flm_copy 1395178
Flm_row 4528559
Flv_copy 2303391
Flx_copy 76272911
Flx_div 3462962
Flx_equal1 4718021
Flx_lead 402858
Flx_mulu 681892
FlxqX_div 31785
Flxq_add 0
Flxq_sub 264
FpV_FpC_mul 0
FpXQX_div 961
FpXQX_renormalize 973385
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 949403
FpX_div 829039
FpX_renormalize 88135013
Fp_add 79155495
Fp_addmul 6332856
Fp_center 5688276
Fp_div 2295092
Fp_halve 19772
Fp_inv 8142053
Fp_invsafe 291856
Fp_mul 61391299
Fp_muls 0
Fp_mulu 60908835
Fp_neg 10851806
Fp_red 2020210
Fp_sqr 44162138
Fp_sub 66208172
FqXQ_add 0
FqXQ_div 0
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_mul 21018
FqXQ_pow 0
FqXQ_sqr 0
FqXQ_sub 0
FqX_Fp_mul 613294
FqX_Fq_mul 552476
FqX_add 903963
FqX_deriv 270081
FqX_div 5091
FqX_div_by_X_x 5957
FqX_divrem 329
FqX_extgcd 82971
FqX_factor 72849
FqX_gcd 257721
FqX_get_red 5605
FqX_halfgcd 0
FqX_mul 87459
FqX_mulu 459889
FqX_neg 16438
FqX_normalize 3031
FqX_powu 1428
FqX_red 27419
FqX_rem 47875
FqX_roots 5810
FqX_sqr 4760
FqX_sub 2380
Fq_red 2166408
Fq_to_FpXQ 10855
GENbinbase 84301608
QV_isscalar 17399419
Q_abs 487872
Q_abs_shallow 105964
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 154925
RgC_gtofp 289342
RgC_gtomp 560
RgM_dimensions 142950
RgM_fpnorml2 1836
RgM_gtofp 19139
RgM_gtomp 14
RgM_inv 35431
RgM_minor 756
RgM_shallowcopy 6618401
RgV_gtofp 42
RgV_is_QV 4130
RgV_is_ZV 18100615
RgV_isscalar 3864
RgXQX_div 7
RgXQX_rem 17766
RgXQ_mul 527759
RgXQ_sqr 273859
RgX_coeff 2220422
RgX_copy 88300732
RgX_div 6424582
RgX_equal_var 21770501
RgX_fpnorml2 7743
RgX_gtofp 595174
RgX_is_QX 115797
RgX_is_ZX 64181928
RgX_is_monomial 15306536
RgX_is_rational 3522
RgX_isscalar 0
RgX_rem 3658277
RgX_renormalize 315497
RgX_shift_inplace 662917
RgX_shift_inplace_init 662915
Rg_col_ei 1167578
ZC_hnfrem 840017
ZM_hnfrem 35478
ZM_lll 1163700
ZV_dvd 23198
ZV_isscalar 2128884
ZV_to_zv 316055
ZXQ_mul 141750
ZXQ_sqr 34797
ZX_ZXY_resultant 0
ZX_equal1 17512
ZX_renormalize 74313076
Z_ispower 14
Z_issquare 1980547
abgrp_get_cyc 1945257
abgrp_get_gen 398023
abgrp_get_no 49616
absfrac 1347718
absfrac_shallow 32308
addmuliu 7000
addmuliu_inplace 110943444
affc_fixlg 186840
affgr 190202
bid_get_U 658964
bid_get_arch 448
bid_get_archp 376032
bid_get_cyc 1036263
bid_get_fact 396668
bid_get_fact2 355396
bid_get_gen 27664
bid_get_gen_nocheck 0
bid_get_grp 1064522
bid_get_ideal 44954
bid_get_mod 303288
bid_get_no 0
bid_get_sarch 29771
bid_get_sprk 355466
bin_copy 42152071
bit_accuracy 1125422124
bit_accuracy_mul 448339
bit_prec 24850154
bnf_get_clgp 809633
bnf_get_cyc 435970
bnf_get_fu 1806
bnf_get_fu_nocheck 7134
bnf_get_gen 368798
bnf_get_logfu 482920
bnf_get_nf 2071544
bnf_get_no 4536
bnf_get_reg 860
bnf_get_tuN 24521
bnf_get_tuU 5867
bnr_get_bid 386210
bnr_get_bnf 750853
bnr_get_clgp 522234
bnr_get_cyc 465247
bnr_get_gen 11004
bnr_get_gen_nocheck 70
bnr_get_mod 18081
bnr_get_nf 27104
bnr_get_no 45080
both_odd 7324547
cbrtr 0
cbrtr_abs 0
cgetalloc 4193
cgetc 204387
cgiv 26309068
closure_arity 248225411
closure_codestr 213473652
closure_get_code 0
closure_get_data 213443070
closure_get_dbg 8329
closure_get_frame 468284
closure_get_oper 213444710
closure_get_text 20207
closure_is_variadic 34467250
col_ei 1389094
const_col 93216
const_vec 7104559
const_vecsmall 4479909
constant_coeff 17562963
cxcompotor 2537106
cxnorm 9530876
cxtofp 1261201
cyclic_perm 0
dbllog2r 17609002
degpol 2518412571
divsBIL 2995812044
ellQp_get_p 623
ellQp_get_prec 287
ellQp_get_zero 917
ellR_get_prec 36960
ellR_get_sign 8262
ell_get_a1 5284895
ell_get_a2 3093261
ell_get_a3 4513418
ell_get_a4 3886095
ell_get_a6 4702778
ell_get_b2 3964636
ell_get_b4 1018683
ell_get_b6 1624869
ell_get_b8 1464197
ell_get_c4 5897305
ell_get_c6 7929146
ell_get_disc 9362794
ell_get_j 1026081
ell_get_type 7906376
ell_is_inf 21396732
ellff_get_a4a6 678306
ellff_get_field 1561480
ellinf 787016
ellnf_get_bnf 49
ellnf_get_nf 500353
equali1 268657095
equalim1 51589638
err_get_compo 70
err_get_num 30274
gabsz 0
gaddgs 7480590
gaddz 23318
gal_get_den 15631
gal_get_e 63
gal_get_gen 3927
gal_get_group 61516
gal_get_invvdm 15631
gal_get_mod 15631
gal_get_orders 3577
gal_get_p 1225
gal_get_pol 19152
gal_get_roots 16009
gcmpgs 23890
gdiventz 0
gdivsg 462973
gdivz 0
gen_I 435528
gener_Fq_local 833
gequalgs 22841
gerepileall 5213793
gerepilecoeffs 8
gerepilecopy 40347210
gerepilemany 135779
gerepileupto 770567851
gerepileuptoint 1095093353
gerepileuptoleaf 524478313
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 13266465
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 558789
gsubz 0
gtodouble 16981819
gtofp 17761997
gtomp 22400
gtos 67153834
gtou 109786
gval 2408
icopy_avma 3940863878
idealchineseinit 1218
idealpseudomin 156901
idealpseudomin_nonscalar 301955
idealpseudored 13048
idealred 162603
idealred_elt 0
identity_perm 611099
inf_get_sign 47216
is_bigint 165685446
is_const_t 1089981739
is_extscalar_t 53101
is_intreal_t 1025152
is_matvec_t 377897653
is_noncalc_t 45069009
is_pm1 1733397853
is_rational_t 741510
is_real_t 277623
is_recursive_t 2771028590
is_scalar_t 167496573
is_universal_constant 16942445
is_vec_t 866977
isint1 11316239
isintm1 5005
isintzero 512610480
ismpzero 1025075
isonstack 2416807377
killblock 1112473
leading_coeff 73714863
leafcopy_avma 145572590
lg_increase 204525044
lgcols 95593293
lgpol 1307820519
lincombii 19298899
logint 211267
matpascal 1029
matslice 212430
mkcol 2203547
mkcol2 14939269
mkcol2s 1181376
mkcol3 41615
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 4208
mkcolcopy 28813
mkcols 728
mkcomplex 3092109
mkerr 0
mkfrac 2394399
mkfraccopy 3800781
mkintmod 1525593
mkintmodu 3794
mkmat 731140
mkmat2 15958390
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7404
mkmoo 13853
mkoo 24136
mkpolmod 263218
mkqfi 158123
mkquad 42
mkrfrac 7
mkrfraccopy 14
mkvec 3687391
mkvec2 68110817
mkvec2copy 109094
mkvec2s 19843
mkvec3 55396006
mkvec3s 492702
mkvec4 7428815
mkvec4s 0
mkvec5 11954198
mkveccopy 33460
mkvecs 7
mkvecsmall 54263524
mkvecsmall2 107544898
mkvecsmall3 59681274
mkvecsmall4 9372057
mkvecsmall5 665955
modpr_get_T 2520292
modpr_get_p 609928
modpr_get_pr 8122712
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 276263
mul_denom 1535249
mulsubii 1399371
nbits2extraprec 241634725
nbits2lg 4142535
nbits2ndec 179
nbits2nlong 1049191
nbits2prec 77961498
nbrows 20386912
nchar2nlong 8105981
ndec2nbits 464
ndec2nlong 24496
ndec2prec 24032
nf_get_G 60434
nf_get_M 1224792
nf_get_Tr 24339
nf_get_degree 21253237
nf_get_diff 2191
nf_get_disc 43827
nf_get_index 746046
nf_get_invzk 2170298
nf_get_pol 27071298
nf_get_r1 1282906
nf_get_r2 8197
nf_get_ramified_primes 28
nf_get_roots 152779
nf_get_roundG 441685
nf_get_sign 13734
nf_get_varn 4178
nf_get_zk 77
nf_get_zkden 220022
nf_get_zkprimpart 217425
normalize_frac 12469968
odd 1927009814
pari_calloc 32001
pari_err_BUG 14
pari_err_COMPONENT 245
pari_err_CONSTPOL 7
pari_err_COPRIME 63
pari_err_DIM 438
pari_err_DOMAIN 1667
pari_err_FILE 0
pari_err_FLAG 28
pari_err_IMPL 364
pari_err_INV 698
pari_err_IRREDPOL 21
pari_err_MAXPRIME 0
pari_err_MODULUS 735
pari_err_OP 287
pari_err_OVERFLOW 70
pari_err_PACKAGE 0
pari_err_PREC 219
pari_err_PRIME 56
pari_err_PRIORITY 126
pari_err_ROOTS0 42
pari_err_SQRTN 77
pari_err_TYPE 11334
pari_err_TYPE2 3045
pari_err_VAR 203
pari_free 50264168
pari_malloc 230626177
pari_realloc 231880
pari_stack_alloc 405721228
pari_stack_base 406208910
pari_stack_delete 388884
pari_stack_init 449623
pari_stack_new 338209399
pari_stack_pushp 4628
perm_conj 506639
perm_inv 603700
perm_mul 46545243
pol0_F2x 11145433
pol0_Flx 44463886
pol1_F2x 2765943
pol1_Flx 18200910
pol_0 17951143
pol_1 1199383
pol_x 710827
pol_xn 2473103
pol_xnall 42
polx_F2x 647929
polx_Flx 17130637
polx_zx 0
powIs 840
powii 231432
pr_get_e 2230748
pr_get_f 7795874
pr_get_gen 4855235
pr_get_p 18298255
pr_get_tau 5804348
pr_is_inert 2351971
pr_norm 204456
prec2nbits 1206238430
prec2nbits_mul 231036
prec2ndec 12148
precdbl 1651
qfb_disc 5953031
qfb_disc3 6033867
quad_disc 252
quadnorm 623
remsBIL 2930495129
resultant 36516
rnf_get_absdegree 156499
rnf_get_alpha 448
rnf_get_degree 311458
rnf_get_disc 63
rnf_get_idealdisc 434
rnf_get_index 105
rnf_get_invzk 1190
rnf_get_k 448
rnf_get_map 34559
rnf_get_nf 126028
rnf_get_nfdegree 15134
rnf_get_nfpol 106624
rnf_get_nfvarn 595
rnf_get_nfzk 2352
rnf_get_pol 463260
rnf_get_polabs 95830
rnf_get_varn 0
rnf_get_zk 2772
row 178608
row_i 2177
rowcopy 56
rowpermute 2878591
rowslice 20362145
rowslicepermute 34378
rowsplice 133
ser_isexactzero 3701676
shallowcopy 2636221
sqrfrac 1288991
sqrti 5154164
sqrtnr 281432
sqrtr 15813783
sturm 448
submulii 13175611
submuliu 7000
submuliu_inplace 112297838
truecoeff 0
trunc_safe 0
ulogint 2775826
upr_norm 40873
vec_append 59332
vec_ei 308512
vec_lengthen 10906
vec_setconst 0
vec_shorten 0
vec_to_vecsmall 333912
vecpermute 5422082
vecreverse 4829679
vecreverse_inplace 232
vecslice 202495092
vecslicepermute 737766
vecsmall_append 3723574
vecsmall_coincidence 0
vecsmall_concat 754903
vecsmall_copy 1756063
vecsmall_ei 69245
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 9453020
vecsmall_max 42799
vecsmall_min 0
vecsmall_pack 84
vecsmall_prefixcmp 47066978
vecsmall_prepend 12516
vecsmall_reverse 252
vecsmall_shorten 174978
vecsmall_to_col 1303914
vecsmall_to_vec 50561
vecsmall_to_vec_inplace 938
vecsmallpermute 44908141
vecsmalltrunc_append 3070438
vecsmalltrunc_init 57466089
vecsplice 48804
vectrunc_append 43711566
vectrunc_append_batch 0
vectrunc_init 11647024
zc_to_ZC 1284909
zero_F2m 0
zero_F2m_copy 279955
zero_F2v 788549
zero_F2x 35
zero_Flm 890510
zero_Flm_copy 87891
zero_Flv 31893059
zero_Flx 799266
zero_zm 0
zero_zv 17737374
zero_zx 0
zerocol 23662196
zeromat 15470
zeromatcopy 1787414
zeropadic 302288
zeropadic_shallow 532
zeropol 7016678
zeroser 14896
zerovec 18127604
zerovec_block 15799
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
znstar_get_N 2558829
znstar_get_U 7721
znstar_get_Ui 161
znstar_get_conreycyc 2763096
znstar_get_conreygen 1321019
znstar_get_cyc 6363
znstar_get_faN 2886359
znstar_get_gen 0
znstar_get_no 0
znstar_get_pe 1283982
zv_copy 1998879
zv_to_ZV 47397
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11