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-bordeaux1.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.8.0 lcov report (development 17404-c89e0b8) Lines: 1173 1315 89.2 %
Date: 2015-01-29 Functions: 484 550 88.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 513 620 82.7 %

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 8761348
F2m_copy 1428
F2m_flip 335847
F2m_set 1214232
F2v_clear 1812656
F2v_coeff 63622003
F2v_copy 0
F2v_ei 7
F2v_flip 335847
F2v_set 11457835
F2v_to_F2x 6027
F2x_clear 1812656
F2x_coeff 64219813
F2x_div 934836
F2x_equal 906563
F2x_equal1 1488
F2x_flip 335847
F2x_renormalize 51085177
F2x_set 28973490
Flm_copy 471556
Flv_copy 982573
Flx_copy 45365759
Flx_div 1390852
Flx_equal1 3072438
Flx_lead 52764
Flx_mulu 200026
FlxqX_div 6146
FlxqX_rem 161038
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 0
FpXQX_renormalize 621854
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 467398
FpX_div 518659
FpX_renormalize 82694127
Fp_add 45814337
Fp_addmul 2373529
Fp_center 3081428
Fp_div 2365781
Fp_halve 15925
Fp_inv 5142137
Fp_invsafe 324697
Fp_mul 33638433
Fp_muls 231
Fp_mulu 23472199
Fp_neg 9278357
Fp_red 2882523
Fp_sqr 2852967
Fp_sub 53698635
FqXQ_add 0
FqXQ_div 16670
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_mul 105783
FqXQ_pow 0
FqXQ_sqr 38976
FqXQ_sub 0
FqX_Fp_mul 448958
FqX_Fq_mul 464629
FqX_add 763767
FqX_div 9520
FqX_div_by_X_x 5831
FqX_divrem 0
FqX_extgcd 37114
FqX_gcd 38010
FqX_mul 81879
FqX_mulu 386502
FqX_neg 3972
FqX_powu 973
FqX_red 7665
FqX_rem 25139
FqX_sqr 4179
FqX_sub 103039
Fq_red 1327560
Fq_to_FpXQ 3572
GENbinbase 53024332
QV_isscalar 5460706
Q_abs 305151
Q_abs_shallow 37547
RgC_fpnorml2 242466
RgC_gtofp 376803
RgC_gtomp 560
RgM_dimensions 115445
RgM_fpnorml2 1484
RgM_gtofp 18640
RgM_gtomp 14
RgM_inv 29748
RgM_minor 504
RgM_shallowcopy 4831779
RgV_is_QV 0
RgV_is_ZV 1272151
RgV_isscalar 6385
RgXQX_div 7
RgXQX_rem 28077
RgXQ_mul 366757
RgXQ_sqr 177920
RgX_coeff 5425
RgX_copy 61927781
RgX_div 6053181
RgX_equal_var 3944227
RgX_fpnorml2 10169
RgX_gtofp 419980
RgX_is_QX 86289
RgX_is_ZX 54483139
RgX_is_monomial 14640662
RgX_is_rational 2198
RgX_isscalar 0
RgX_rem 2124085
RgX_renormalize 171017
RgX_shift_inplace 484052
RgX_shift_inplace_init 484052
Rg_col_ei 3267152
ZC_hnfrem 801848
ZM_hnfrem 26145
ZM_lll 1131185
ZV_dvd 23198
ZV_isscalar 1566154
ZV_to_zv 192862
ZXQ_mul 104573
ZXQ_sqr 17423
ZX_ZXY_resultant 0
ZX_equal1 12669
ZX_renormalize 70747773
Z_ispower 14
Z_issquare 231300
abgrp_get_cyc 892608
abgrp_get_gen 227568
abgrp_get_no 7994
absfrac 1301613
absfrac_shallow 11564
addmuliu 7000
addmuliu_inplace 263757722
affc_fixlg 26558
affgr 3172046
bid_get_arch 98487
bid_get_cyc 461587
bid_get_gen 4984
bid_get_gen_nocheck 0
bid_get_grp 467089
bid_get_ideal 72892
bid_get_mod 287496
bid_get_no 0
bin_copy 26513142
bit_accuracy 1037157085
bit_accuracy_mul 3287726
bit_prec 23559425
bnf_get_clgp 465237
bnf_get_cyc 242548
bnf_get_fu 6733
bnf_get_fu_nocheck 12067
bnf_get_gen 221996
bnf_get_logfu 347063
bnf_get_nf 927955
bnf_get_no 553
bnf_get_reg 601
bnf_get_tuN 7560
bnf_get_tuU 6034
bnr_get_bid 172107
bnr_get_bnf 346027
bnr_get_clgp 196866
bnr_get_cyc 187955
bnr_get_gen 1400
bnr_get_gen_nocheck 70
bnr_get_mod 9149
bnr_get_nf 2219
bnr_get_no 7441
both_odd 15061239
cbrtr 11313
cgetalloc 2647
cgetc 47633
cgiv 46813200
closure_arity 91977911
closure_codestr 80206248
closure_get_code 0
closure_get_data 80199697
closure_get_dbg 6654
closure_get_frame 4774
closure_get_oper 80206248
closure_get_text 15016
closure_is_variadic 11767483
col_ei 1151908
const_col 18842
const_vec 5703891
const_vecsmall 3223701
constant_term 17427314
cxcompotor 1369037
cxnorm 6963267
cxtofp 683501
cyclic_perm 0
dbllog2r 13126236
degpol 1271372142
divsBIL 3031876654
ellQp_get_p 245
ellQp_get_prec 84
ellQp_get_zero 336
ellR_get_prec 245
ellR_get_sign 660
ell_get_a1 1966508
ell_get_a2 1409476
ell_get_a3 1982286
ell_get_a4 2022242
ell_get_a6 2432071
ell_get_b2 2005858
ell_get_b4 433574
ell_get_b6 824916
ell_get_b8 688457
ell_get_c4 4710178
ell_get_c6 5069670
ell_get_disc 6276599
ell_get_j 897393
ell_get_type 6738688
ell_is_inf 16122720
ellff_get_a4a6 258307
ellff_get_field 602735
ellinf 405519
ellnf_get_nf 52864
equali1 162105879
equalim1 62130
err_get_compo 77
err_get_num 27435
gabsz 0
gaddgs 1400550
gaddz 23318
gal_get_den 1526
gal_get_e 42
gal_get_gen 875
gal_get_group 798
gal_get_invvdm 1526
gal_get_mod 1512
gal_get_orders 413
gal_get_p 924
gal_get_pol 875
gal_get_roots 1869
gcmpgs 23750
gdiventz 0
gdivsg 98061
gdivz 0
gen_I 165221
gener_Fq_local 462
gequalgs 22435
gerepileall 4085670
gerepilecoeffs 8
gerepilecopy 19208495
gerepilemany 37056
gerepileupto 393909133
gerepileuptoint 945871490
gerepileuptoleaf 242374788
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 2684881
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 396404
gsubz 0
gtodouble 6168216
gtofp 8618584
gtomp 22400
gtos 29720257
gtou 0
gval 406
icopy_avma 897046156
idealpseudomin 149487
idealpseudomin_nonscalar 230278
idealred 148704
idealred_elt 315
identity_perm 64260
inf_get_sign 15283
is_bigint 119240585
is_const_t 671359922
is_extscalar_t 589050
is_intreal_t 515952
is_matvec_t 297994493
is_noncalc_t 50211427
is_pm1 1077457615
is_rational_t 349017
is_recursive_t 1900387109
is_scalar_t 150502215
is_universal_constant 18191898
is_vec_t 257552
isint1 4980852
isintm1 245
isintzero 256290528
ismpzero 515875
isonstack 1628977678
killblock 956217
leading_term 58746466
leafcopy_avma 46250088
lgcols 23015897
lgpol 609831944
lincombii 17830344
matpascal 273
mkcol 624494
mkcol2 11591391
mkcol2s 0
mkcol3 40369
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 337
mkcolcopy 27141
mkcols 0
mkcomplex 2980003
mkerr 0
mkfrac 43293
mkfraccopy 1544117
mkintmod 380578
mkintmodu 3675
mkmat 186534
mkmat2 9310380
mkmat3 2345
mkmat4 0
mkmat5 0
mkmatcopy 6979
mkmoo 4759
mkoo 7918
mkpolmod 208159
mkqfi 158109
mkquad 42
mkrfrac 7
mkrfraccopy 14
mkvec 2404814
mkvec2 10312927
mkvec2copy 167325
mkvec2s 9926
mkvec3 30007546
mkvec3s 492702
mkvec4 3587179
mkvec4s 7
mkvec5 11478570
mkveccopy 35756
mkvecs 7
mkvecsmall 25515975
mkvecsmall2 95199134
mkvecsmall3 35277527
mkvecsmall4 1480915
mkvecsmall5 104709
modpr_get_T 762808
modpr_get_p 2317
modpr_get_pr 1707458
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 233303
mul_denom 176868
mulsubii 1718114
nbits2extraprec 232323022
nbits2lg 2519557
nbits2nlong 664689
nbits2prec 73895049
nbrows 12273246
nchar2nlong 8080979
ndec2nlong 13013
ndec2prec 13013
nf_get_G 42210
nf_get_M 877526
nf_get_Tr 784
nf_get_degree 2573842
nf_get_diff 798
nf_get_disc 20413
nf_get_index 478933
nf_get_invzk 1074187
nf_get_pol 5616635
nf_get_r1 964839
nf_get_r2 301
nf_get_ramified_primes 7
nf_get_roots 45800
nf_get_roundG 337494
nf_get_sign 3888
nf_get_varn 4017
nf_get_zk 5560260
normalize_frac 5409221
odd 200375537
pari_calloc 24751
pari_err_BUG 14
pari_err_COMPONENT 203
pari_err_CONSTPOL 7
pari_err_COPRIME 42
pari_err_DIM 191
pari_err_DOMAIN 1318
pari_err_FILE 0
pari_err_FLAG 14
pari_err_IMPL 175
pari_err_INV 658
pari_err_IRREDPOL 14
pari_err_MAXPRIME 0
pari_err_MODULUS 714
pari_err_OP 308
pari_err_OVERFLOW 56
pari_err_PACKAGE 0
pari_err_PREC 218
pari_err_PRIME 35
pari_err_PRIORITY 77
pari_err_ROOTS0 35
pari_err_SQRTN 77
pari_err_TYPE 10707
pari_err_TYPE2 2793
pari_err_VAR 490
pari_free 34623798
pari_malloc 104940625
pari_realloc 61940
pari_stack_alloc 216470352
pari_stack_base 216496434
pari_stack_delete 19727
pari_stack_init 24867
pari_stack_new 189207982
pari_stack_pushp 6355
perm_conj 35
perm_inv 98
perm_mul 17938638
pol0_F2x 1715686
pol0_Flx 23699464
pol1_F2x 514682
pol1_Flx 9652756
pol_0 11220135
pol_1 636436
pol_x 314300
polx_F2x 170192
polx_Flx 5915923
polx_zx 0
powIs 805
powii 312987
pr_get_e 1205048
pr_get_f 5285316
pr_get_gen 2338904
pr_get_p 8239046
pr_get_tau 4704141
pr_is_inert 489419
pr_norm 60887
prec2nbits 46478866
prec2nbits_mul 48006
prec2ndec 3653
precdbl 1667
qfb_disc 3716181
qfb_disc3 3786475
quad_disc 175
quadnorm 623
remsBIL 2959542092
resultant 25668
rnf_get_absdegree 27321
rnf_get_alpha 413
rnf_get_degree 79996
rnf_get_disc 63
rnf_get_idealdisc 301
rnf_get_index 98
rnf_get_invzk 1057
rnf_get_k 413
rnf_get_map 25795
rnf_get_nf 82033
rnf_get_nfdegree 14399
rnf_get_nfpol 87010
rnf_get_nfvarn 448
rnf_get_nfzk 4200
rnf_get_pol 199892
rnf_get_polabs 63980
rnf_get_varn 0
rnf_get_zk 2590
row 113231
row_Flm 23761
row_i 2093
row_zm 0
rowcopy 21
rowpermute 141104
rowslice 101994
rowslicepermute 19698
ser_isexactzero 607310
shallowcopy 200964
sqrfrac 135024
sqrti 2448183
sqrtnr 31549
sqrtr 6674248
sturm 322
submulii 41114077
submuliu 7000
submuliu_inplace 264326297
truecoeff 0
trunc_safe 0
vec_append 54894
vec_ei 305040
vec_lengthen 7574
vec_setconst 1750
vec_shorten 0
vec_to_vecsmall 203460
vecpermute 4338163
vecreverse 49966
vecreverse_inplace 218
vecslice 1694461
vecslicepermute 86632
vecsmall_append 355369
vecsmall_coincidence 0
vecsmall_concat 192388
vecsmall_copy 21149169
vecsmall_ei 7224
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 111174
vecsmall_lengthen 448
vecsmall_lexcmp 2586374
vecsmall_max 2499
vecsmall_min 0
vecsmall_pack 84
vecsmall_prefixcmp 35286195
vecsmall_prepend 784
vecsmall_shorten 4508
vecsmall_to_col 445592
vecsmall_to_vec 7391
vecsmallpermute 17631429
vecsmalltrunc_append 2279797
vecsmalltrunc_init 1201773
vecsplice 4984
vectrunc_append 1110678
vectrunc_append_batch 0
vectrunc_init 700278
zc_to_ZC 426552
zero_F2m 0
zero_F2m_copy 95843
zero_F2v 658204
zero_F2x 77
zero_Flm 315
zero_Flm_copy 23532
zero_Flv 19012193
zero_Flx 77341
zero_zm 0
zero_zv 13113884
zero_zx 0
zerocol 21605610
zeromat 5579
zeromatcopy 1948498
zeropadic 10787
zeropadic_shallow 315
zeropol 4206927
zeroser 4704
zerovec 5735257
zm_copy 0
zm_to_zxV 0
zm_transpose 91
zv_copy 727608
zv_to_ZV 6202
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.9