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 20459-9710128) Lines: 1237 1409 87.8 %
Date: 2017-04-28 05:33:48 Functions: 523 595 87.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 11569213
F2m_copy 252
F2m_flip 1148226
F2m_set 1477482
F2v_clear 3041812
F2v_coeff 86072006
F2v_copy 0
F2v_ei 6
F2v_flip 1148226
F2v_set 8016738
F2v_to_F2x 5772
F2x_clear 3041812
F2x_coeff 89606872
F2x_copy 54868748
F2x_div 2308051
F2x_equal 2777255
F2x_equal1 677262
F2x_flip 1148226
F2x_renormalize 106291351
F2x_set 28683520
F2xqX_div 25530
Flm_copy 987402
Flm_row 2690325
Flv_copy 1994590
Flx_copy 62896884
Flx_div 2618865
Flx_equal1 3984803
Flx_lead 348724
Flx_mulu 570871
FlxqX_div 27000
Flxq_add 0
Flxq_sub 96
FpV_FpC_mul 0
FpXQX_div 822
FpXQX_renormalize 838359
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 811644
FpX_div 627628
FpX_renormalize 74004012
Fp_add 51493680
Fp_addmul 1293510
Fp_center 4848483
Fp_div 4110282
Fp_halve 16758
Fp_inv 8297823
Fp_invsafe 247964
Fp_mul 43144829
Fp_muls 0
Fp_mulu 38027485
Fp_neg 9166257
Fp_red 1445672
Fp_sqr 6017946
Fp_sub 38699772
FqXQ_add 0
FqXQ_div 0
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_mul 18000
FqXQ_pow 0
FqXQ_sqr 0
FqXQ_sub 0
FqX_Fp_mul 521442
FqX_Fq_mul 473175
FqX_add 774822
FqX_deriv 230274
FqX_div 2550
FqX_div_by_X_x 5106
FqX_divrem 282
FqX_extgcd 68328
FqX_factor 60984
FqX_gcd 217842
FqX_get_red 4800
FqX_halfgcd 0
FqX_mul 71922
FqX_mulu 394182
FqX_neg 14076
FqX_normalize 1710
FqX_powu 1224
FqX_red 23502
FqX_rem 41016
FqX_roots 4980
FqX_sqr 4080
FqX_sub 2040
Fq_red 1166640
Fq_to_FpXQ 9654
GENbinbase 64691796
QV_isscalar 4800909
Q_abs 346950
Q_abs_shallow 31572
R_abs 0
R_abs_shallow 276
RgC_fpnorml2 113676
RgC_gtofp 227034
RgC_gtomp 480
RgM_dimensions 92034
RgM_fpnorml2 1368
RgM_gtofp 16176
RgM_gtomp 12
RgM_inv 20958
RgM_minor 648
RgM_shallowcopy 5141786
RgV_gtofp 36
RgV_is_QV 126
RgV_is_ZV 2119792
RgV_isscalar 3162
RgXQX_div 6
RgXQX_rem 14736
RgXQ_mul 381602
RgXQ_sqr 200478
RgX_coeff 1912674
RgX_copy 53825478
RgX_div 4892310
RgX_equal_var 3410136
RgX_fpnorml2 6120
RgX_gtofp 418314
RgX_is_QX 91422
RgX_is_ZX 47757853
RgX_is_monomial 12538318
RgX_is_rational 2256
RgX_isscalar 0
RgX_rem 2158786
RgX_renormalize 270858
RgX_shift_inplace 444442
RgX_shift_inplace_init 444443
Rg_col_ei 930078
ZC_hnfrem 668400
ZM_hnfrem 20081
ZM_lll 901188
ZV_dvd 19884
ZV_isscalar 1690842
ZV_to_zv 191166
ZXQ_mul 101346
ZXQ_sqr 18168
ZX_ZXY_resultant 0
ZX_equal1 12808
ZX_renormalize 62631245
Z_ispower 12
Z_issquare 1677028
abgrp_get_cyc 992142
abgrp_get_gen 239154
abgrp_get_no 8166
absfrac 938898
absfrac_shallow 9480
addmuliu 6000
addmuliu_inplace 92289828
affc_fixlg 160014
affgr 154476
bid_get_U 366720
bid_get_arch 384
bid_get_archp 189720
bid_get_cyc 541776
bid_get_fact 192954
bid_get_fact2 186474
bid_get_gen 6348
bid_get_gen_nocheck 0
bid_get_grp 548634
bid_get_ideal 10146
bid_get_mod 180006
bid_get_no 0
bid_get_sarch 5532
bid_get_sprk 186534
bin_copy 32347127
bit_accuracy 925338265
bit_accuracy_mul 396057
bit_prec 19983718
bnf_get_clgp 484446
bnf_get_cyc 251724
bnf_get_fu 1548
bnf_get_fu_nocheck 3258
bnf_get_gen 231468
bnf_get_logfu 367308
bnf_get_nf 1302174
bnf_get_no 972
bnf_get_reg 738
bnf_get_tuN 6576
bnf_get_tuU 2172
bnr_get_bid 180822
bnr_get_bnf 359910
bnr_get_clgp 211002
bnr_get_cyc 196944
bnr_get_gen 6096
bnr_get_gen_nocheck 60
bnr_get_mod 15474
bnr_get_nf 11484
bnr_get_no 7194
both_odd 5484823
cbrtr 0
cbrtr_abs 0
cgetalloc 3355
cgetc 171591
cgiv 22544316
closure_arity 160295255
closure_codestr 130635178
closure_get_code 0
closure_get_data 130580894
closure_get_dbg 7250
closure_get_frame 321159
closure_get_oper 130591167
closure_get_text 17542
closure_is_variadic 29454271
col_ei 1055436
const_col 47856
const_vec 5222201
const_vecsmall 3038643
constant_coeff 15051967
cxcompotor 1824618
cxnorm 7388814
cxtofp 910704
cyclic_perm 0
dbllog2r 14282922
degpol 2058693018
divsBIL 2450261057
ellQp_get_p 534
ellQp_get_prec 246
ellQp_get_zero 786
ellR_get_prec 31680
ellR_get_sign 1530
ell_get_a1 4312117
ell_get_a2 2842664
ell_get_a3 3854898
ell_get_a4 3521210
ell_get_a6 4013186
ell_get_b2 3385889
ell_get_b4 865956
ell_get_b6 1383588
ell_get_b8 1249500
ell_get_c4 5229683
ell_get_c6 6971135
ell_get_disc 8196238
ell_get_j 1006944
ell_get_type 6769730
ell_is_inf 22154833
ellff_get_a4a6 580709
ellff_get_field 1337482
ellinf 703805
ellnf_get_bnf 42
ellnf_get_nf 475794
equali1 179070579
equalim1 20186436
err_get_compo 60
err_get_num 26136
gabsz 0
gaddgs 6434694
gaddz 20472
gal_get_den 1830
gal_get_e 54
gal_get_gen 1602
gal_get_group 6354
gal_get_invvdm 1830
gal_get_mod 1830
gal_get_orders 1212
gal_get_p 1050
gal_get_pol 2478
gal_get_roots 2154
gcmpgs 20454
gdiventz 0
gdivsg 384051
gdivz 0
gen_I 364338
gener_Fq_local 714
gequalgs 19566
gerepileall 4222758
gerepilecoeffs 6
gerepilecopy 28508431
gerepilemany 55434
gerepileupto 534432901
gerepileuptoint 758061197
gerepileuptoleaf 431350308
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 4965538
gmulz 10248
gnegz 0
gshiftz 0
gsubgs 475608
gsubz 0
gtodouble 14000297
gtofp 14421998
gtomp 19200
gtos 57024482
gtou 70275
gval 1890
icopy_avma 3097129449
idealchineseinit 1044
idealpseudomin 120594
idealpseudomin_nonscalar 228840
idealpseudored 4398
idealred 124968
idealred_elt 0
identity_perm 456978
inf_get_sign 25078
is_bigint 100603095
is_const_t 877598163
is_extscalar_t 38838
is_intreal_t 803856
is_matvec_t 281943372
is_noncalc_t 36811766
is_pm1 1362599975
is_rational_t 345420
is_real_t 256362
is_recursive_t 2120103417
is_scalar_t 130315310
is_universal_constant 14330981
is_vec_t 395894
isint1 5860494
isintm1 258
isintzero 305526710
ismpzero 803790
isonstack 1746448041
killblock 1018673
leading_coeff 61960090
leafcopy_avma 80910533
lgcols 71887618
lgpol 1068417717
lincombii 15846110
logint 173340
matpascal 864
matslice 98190
mkcol 1766060
mkcol2 12631069
mkcol2s 1012608
mkcol3 35670
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 774
mkcolcopy 20334
mkcols 624
mkcomplex 2451768
mkerr 0
mkfrac 1535778
mkfraccopy 2503746
mkintmod 281383
mkintmodu 3252
mkmat 551454
mkmat2 13434714
mkmat3 2016
mkmat4 0
mkmat5 0
mkmatcopy 5994
mkmoo 6750
mkoo 12254
mkpolmod 217140
mkqfi 135534
mkquad 36
mkrfrac 6
mkrfraccopy 12
mkvec 2579155
mkvec2 19357456
mkvec2copy 71274
mkvec2s 10374
mkvec3 44298217
mkvec3s 422316
mkvec4 6279842
mkvec4s 0
mkvec5 10057534
mkveccopy 28674
mkvecs 6
mkvecsmall 42119443
mkvecsmall2 92963277
mkvecsmall3 51553036
mkvecsmall4 7656510
mkvecsmall5 367638
modpr_get_T 1515918
modpr_get_p 516995
modpr_get_pr 5315447
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 173406
mul_denom 447744
mulsubii 1089868
nbits2extraprec 206172123
nbits2lg 2915198
nbits2ndec 154
nbits2nlong 780726
nbits2prec 63212156
nbrows 14129515
nchar2nlong 5647039
ndec2nbits 340
ndec2nlong 20110
ndec2prec 19770
nf_get_G 39096
nf_get_M 923856
nf_get_Tr 20862
nf_get_degree 7124016
nf_get_diff 1500
nf_get_disc 19632
nf_get_index 528388
nf_get_invzk 1405136
nf_get_pol 10492924
nf_get_r1 962694
nf_get_r2 1494
nf_get_ramified_primes 24
nf_get_roots 86016
nf_get_roundG 327438
nf_get_sign 5778
nf_get_varn 1806
nf_get_zk 66
nf_get_zkden 108366
nf_get_zkprimpart 106320
normalize_frac 7283940
odd 1568804893
pari_calloc 26295
pari_err_BUG 12
pari_err_COMPONENT 192
pari_err_CONSTPOL 6
pari_err_COPRIME 54
pari_err_DIM 360
pari_err_DOMAIN 1394
pari_err_FILE 0
pari_err_FLAG 24
pari_err_IMPL 300
pari_err_INV 562
pari_err_IRREDPOL 18
pari_err_MAXPRIME 0
pari_err_MODULUS 630
pari_err_OP 246
pari_err_OVERFLOW 60
pari_err_PACKAGE 0
pari_err_PREC 186
pari_err_PRIME 48
pari_err_PRIORITY 102
pari_err_ROOTS0 36
pari_err_SQRTN 66
pari_err_TYPE 9792
pari_err_TYPE2 2634
pari_err_VAR 174
pari_free 39188723
pari_malloc 156992688
pari_realloc 304318
pari_stack_alloc 283160003
pari_stack_base 284024140
pari_stack_delete 771310
pari_stack_init 894213
pari_stack_new 237342363
pari_stack_pushp 3805
perm_conj 175698
perm_inv 384234
perm_mul 34986768
pol0_F2x 9375044
pol0_Flx 36967255
pol1_F2x 2326114
pol1_Flx 15038439
pol_0 11352377
pol_1 1009942
pol_x 553446
pol_xn 1980782
pol_xnall 114
polx_F2x 548884
polx_Flx 13734332
polx_zx 0
powIs 720
powii 180436
pr_get_e 1789878
pr_get_f 6132588
pr_get_gen 3623160
pr_get_p 13599893
pr_get_tau 4746498
pr_is_inert 1717221
pr_norm 251238
prec2nbits 992159504
prec2nbits_mul 197200
prec2ndec 10408
precdbl 1410
qfb_disc 5059272
qfb_disc3 5128560
quad_disc 216
quadnorm 534
remsBIL 2394994075
resultant 29730
rnf_get_absdegree 134100
rnf_get_alpha 384
rnf_get_degree 266910
rnf_get_disc 54
rnf_get_idealdisc 372
rnf_get_index 90
rnf_get_invzk 1020
rnf_get_k 384
rnf_get_map 29148
rnf_get_nf 106086
rnf_get_nfdegree 12690
rnf_get_nfpol 91302
rnf_get_nfvarn 414
rnf_get_nfzk 1458
rnf_get_pol 396936
rnf_get_polabs 80292
rnf_get_varn 0
rnf_get_zk 2094
row 145380
row_i 1866
rowcopy 48
rowpermute 1889234
rowslice 13714100
rowslicepermute 30050
rowsplice 114
ser_isexactzero 3351582
shallowcopy 2241477
sqrfrac 1204722
sqrti 4039475
sqrtnr 249174
sqrtr 13320606
sturm 384
submulii 8934912
submuliu 6000
submuliu_inplace 93471456
truecoeff 0
trunc_safe 0
ulogint 7812
upr_norm 27666
vec_append 48294
vec_ei 261618
vec_lengthen 9336
vec_setconst 0
vec_shorten 0
vec_to_vecsmall 200562
vecpermute 4061052
vecreverse 4043868
vecreverse_inplace 198
vecslice 137970460
vecslicepermute 582984
vecsmall_append 318582
vecsmall_coincidence 0
vecsmall_concat 512545
vecsmall_copy 1359012
vecsmall_ei 52554
vecsmall_indexmax 12
vecsmall_indexmin 12
vecsmall_isin 0
vecsmall_lengthen 18
vecsmall_lexcmp 7035930
vecsmall_max 34846
vecsmall_min 0
vecsmall_pack 72
vecsmall_prefixcmp 40343124
vecsmall_prepend 1308
vecsmall_reverse 216
vecsmall_shorten 110842
vecsmall_to_col 1052130
vecsmall_to_vec 18366
vecsmall_to_vec_inplace 756
vecsmallpermute 33708216
vecsmalltrunc_append 2332554
vecsmalltrunc_init 1151864
vecsplice 7272
vectrunc_append 36151222
vectrunc_append_batch 0
vectrunc_init 9363735
zc_to_ZC 1035840
zero_F2m 0
zero_F2m_copy 229752
zero_F2v 558684
zero_F2x 30
zero_Flm 647970
zero_Flm_copy 63394
zero_Flv 25949381
zero_Flx 673163
zero_zm 0
zero_zv 14395535
zero_zx 0
zerocol 18382491
zeromat 4014
zeromatcopy 1365775
zeropadic 258030
zeropadic_shallow 438
zeropol 4071534
zeroser 12078
zerovec 6483055
zerovec_block 13518
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 144
znstar_get_N 17904
znstar_get_U 5916
znstar_get_Ui 138
znstar_get_conreycyc 16638
znstar_get_conreygen 12522
znstar_get_cyc 486
znstar_get_faN 32550
znstar_get_gen 0
znstar_get_no 0
znstar_get_pe 12498
zv_copy 1741906
zv_to_ZV 15666
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11