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 19834-0e97742) Lines: 1207 1365 88.4 %
Date: 2016-12-09 05:49:11 Functions: 511 579 88.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 12583888
F2m_copy 1718
F2m_flip 1338546
F2m_set 1603119
F2v_clear 3548989
F2v_coeff 100256318
F2v_copy 0
F2v_ei 7
F2v_flip 1338546
F2v_set 14985237
F2v_to_F2x 7037
F2x_clear 3548989
F2x_coeff 104041668
F2x_copy 65397894
F2x_div 2807446
F2x_equal 3282632
F2x_equal1 791063
F2x_flip 1338546
F2x_renormalize 125236171
F2x_set 39295103
F2xqX_div 29785
Flm_copy 852334
Flm_row 25297
Flv_copy 2445940
Flx_copy 74773090
Flx_div 3091722
Flx_equal1 4642121
Flx_lead 406762
Flx_mulu 665878
FlxqX_div 31345
Flxq_add 0
Flxq_sub 110
FpV_FpC_mul 0
FpXQX_div 940
FpXQX_renormalize 984994
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 946830
FpX_div 739240
FpX_renormalize 86878233
Fp_add 359315020
Fp_addmul 1423835
Fp_center 5063795
Fp_div 4573563
Fp_halve 19785
Fp_inv 7553432
Fp_invsafe 285874
Fp_mul 342485546
Fp_muls 0
Fp_mulu 43350103
Fp_neg 10724216
Fp_red 1147091
Fp_sqr 6894947
Fp_sub 45018341
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 601520
FqX_Fq_mul 552441
FqX_add 903963
FqX_deriv 268604
FqX_div 2921
FqX_div_by_X_x 5957
FqX_divrem 329
FqX_extgcd 75978
FqX_factor 71106
FqX_gcd 254060
FqX_get_red 5605
FqX_halfgcd 0
FqX_mul 81348
FqX_mulu 459861
FqX_neg 16438
FqX_normalize 1974
FqX_powu 1428
FqX_red 27419
FqX_rem 47875
FqX_roots 5810
FqX_sqr 4760
FqX_sub 2380
Fq_red 1298260
Fq_to_FpXQ 10887
GENbinbase 75142040
QV_isscalar 6105912
Q_abs 531657
Q_abs_shallow 31694
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 132371
RgC_gtofp 264009
RgC_gtomp 560
RgM_dimensions 107286
RgM_fpnorml2 1374
RgM_gtofp 18649
RgM_gtomp 14
RgM_inv 22494
RgM_minor 756
RgM_shallowcopy 7892601
RgV_is_QV 147
RgV_is_ZV 2434651
RgV_isscalar 2884
RgXQX_div 7
RgXQX_rem 17192
RgXQ_mul 425445
RgXQ_sqr 210821
RgX_coeff 2235339
RgX_copy 61863196
RgX_div 6098206
RgX_equal_var 3787921
RgX_fpnorml2 6434
RgX_gtofp 487235
RgX_is_QX 161941
RgX_is_ZX 54688500
RgX_is_monomial 15106519
RgX_is_rational 2374
RgX_isscalar 0
RgX_rem 2416078
RgX_renormalize 310625
RgX_shift_inplace 585143
RgX_shift_inplace_init 585141
Rg_col_ei 2827975
ZC_hnfrem 775240
ZM_hnfrem 23391
ZM_lll 1223244
ZV_dvd 23198
ZV_isscalar 2018478
ZV_to_zv 225566
ZXQ_mul 117705
ZXQ_sqr 20867
ZX_ZXY_resultant 0
ZX_equal1 17993
ZX_renormalize 73563914
Z_ispower 14
Z_issquare 1964338
abgrp_get_cyc 1128462
abgrp_get_gen 280794
abgrp_get_no 9366
absfrac 1673152
absfrac_shallow 10895
addmuliu 7000
addmuliu_inplace 108231796
affc_fixlg 183809
affgr 180734
bid_get_U 411605
bid_get_arch 448
bid_get_archp 209684
bid_get_cyc 603362
bid_get_fact 213373
bid_get_fact2 205981
bid_get_gen 7238
bid_get_gen_nocheck 0
bid_get_grp 611195
bid_get_ideal 28553
bid_get_ind 0
bid_get_mod 234135
bid_get_no 0
bid_get_sarch 6335
bid_get_sprk 206051
bin_copy 37572303
bit_accuracy 1084474370
bit_accuracy_mul 451159
bit_prec 23438946
bnf_get_clgp 573656
bnf_get_cyc 300240
bnf_get_fu 1806
bnf_get_fu_nocheck 3767
bnf_get_gen 271995
bnf_get_logfu 432870
bnf_get_nf 1193650
bnf_get_no 1092
bnf_get_reg 853
bnf_get_tuN 7574
bnf_get_tuU 2493
bnr_get_bid 204924
bnr_get_bnf 401329
bnr_get_clgp 233708
bnr_get_cyc 223446
bnr_get_gen 1141
bnr_get_gen_nocheck 70
bnr_get_mod 11382
bnr_get_nf 13195
bnr_get_no 8274
both_odd 7402938
cbrtr 12019
cgetalloc 4905
cgetc 200662
cgiv 26785957
closure_arity 186068905
closure_codestr 151610679
closure_get_code 0
closure_get_data 151541071
closure_get_dbg 16407
closure_get_frame 431688
closure_get_oper 151572455
closure_get_text 34690
closure_is_variadic 34290064
col_ei 1202289
const_col 30736
const_vec 9258249
const_vecsmall 5031276
constant_coeff 17559303
cxcompotor 2067600
cxnorm 8746351
cxtofp 1032108
cyclic_perm 0
dbllog2r 17039058
degpol 2455219424
divsBIL 2878177936
ellQp_get_p 623
ellQp_get_prec 287
ellQp_get_zero 917
ellR_get_prec 36946
ellR_get_sign 1409
ell_get_a1 5004084
ell_get_a2 3296718
ell_get_a3 4476808
ell_get_a4 4094460
ell_get_a6 4668313
ell_get_b2 3948759
ell_get_b4 1009191
ell_get_b6 1613025
ell_get_b8 1457050
ell_get_c4 6278097
ell_get_c6 8309671
ell_get_disc 9738476
ell_get_j 1174558
ell_get_type 8080885
ell_is_inf 34056057
ellff_get_a4a6 652416
ellff_get_field 1510103
ellinf 927157
ellnf_get_bnf 42
ellnf_get_nf 708337
equali1 210817750
equalim1 23576568
err_get_compo 70
err_get_num 46186
gabsz 0
gaddgs 7346352
gaddz 23318
gal_get_den 1827
gal_get_e 63
gal_get_gen 1232
gal_get_group 3836
gal_get_invvdm 1827
gal_get_mod 1820
gal_get_orders 777
gal_get_p 994
gal_get_pol 2247
gal_get_roots 2198
gcmpgs 24114
gdiventz 0
gdivsg 445710
gdivz 0
gen_I 425681
gener_Fq_local 833
gequalgs 22855
gerepileall 4909012
gerepilecoeffs 8
gerepilecopy 33492546
gerepilemany 64491
gerepileupto 619520911
gerepileuptoint 876161766
gerepileuptoleaf 515312203
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 5779583
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 614535
gsubz 0
gtodouble 25877814
gtofp 18535058
gtomp 22400
gtos 64507708
gtou 82473
gval 2065
icopy_avma 3563951214
idealchineseinit 1197
idealpseudomin 170028
idealpseudomin_nonscalar 256785
idealpseudored 5068
idealred 175028
idealred_elt 0
identity_perm 68624
inf_get_sign 27132
is_bigint 126567850
is_const_t 984582023
is_extscalar_t 25185
is_intreal_t 863430
is_matvec_t 345851485
is_noncalc_t 50813157
is_pm1 1456148145
is_rational_t 574866
is_real_t 34440
is_recursive_t 2462086842
is_scalar_t 151536991
is_universal_constant 17284594
is_vec_t 405158
isint1 6272876
isintm1 301
isintzero 367120631
ismpzero 863353
isonstack 2037898404
killblock 1230399
leading_coeff 73365393
leafcopy_avma 98564731
lgcols 58622930
lgpol 1290142871
lincombii 26206215
logint 402688
matpascal 938
matslice 114359
mkcol 2039408
mkcol2 14735214
mkcol2s 1181376
mkcol3 41615
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 729
mkcolcopy 26049
mkcols 728
mkcomplex 2927066
mkerr 0
mkfrac 1758364
mkfraccopy 2438493
mkintmod 323188
mkintmodu 3780
mkmat 659771
mkmat2 15683797
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7110
mkmoo 7489
mkoo 12905
mkpolmod 248112
mkqfi 158123
mkquad 42
mkrfrac 5019
mkrfraccopy 14
mkvec 3220084
mkvec2 22592291
mkvec2copy 195346
mkvec2s 11858
mkvec3 50877479
mkvec3s 492702
mkvec4 7327476
mkvec4s 0
mkvec5 11734101
mkveccopy 33264
mkvecs 7
mkvecsmall 49398803
mkvecsmall2 114466530
mkvecsmall3 63952967
mkvecsmall4 9277497
mkvecsmall5 610865
modpr_get_T 1771247
modpr_get_p 602365
modpr_get_pr 6194061
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 225229
mul_denom 424857
mulsubii 2209638
nbits2extraprec 237472474
nbits2lg 3279847
nbits2ndec 165
nbits2nlong 974413
nbits2prec 74060519
nbrows 13907418
nchar2nlong 6903288
ndec2nbits 443
ndec2nlong 22505
ndec2prec 22062
nf_get_G 45385
nf_get_M 997013
nf_get_Tr 819
nf_get_degree 2974984
nf_get_diff 1729
nf_get_disc 22686
nf_get_index 621984
nf_get_invzk 1280582
nf_get_pol 6275057
nf_get_r1 1105087
nf_get_r2 1057
nf_get_ramified_primes 35
nf_get_roots 98917
nf_get_roundG 394526
nf_get_sign 6209
nf_get_varn 3002
nf_get_zk 6602914
normalize_frac 7483381
odd 1287214813
pari_calloc 29174
pari_err_BUG 14
pari_err_COMPONENT 224
pari_err_CONSTPOL 7
pari_err_COPRIME 63
pari_err_DIM 918
pari_err_DOMAIN 5096
pari_err_FILE 0
pari_err_FLAG 21
pari_err_IMPL 252
pari_err_INV 578
pari_err_IRREDPOL 21
pari_err_MAXPRIME 0
pari_err_MODULUS 728
pari_err_OP 287
pari_err_OVERFLOW 63
pari_err_PACKAGE 0
pari_err_PREC 225
pari_err_PRIME 56
pari_err_PRIORITY 119
pari_err_ROOTS0 35
pari_err_SQRTN 77
pari_err_TYPE 24194
pari_err_TYPE2 3010
pari_err_VAR 196
pari_free 45957993
pari_malloc 183318173
pari_realloc 312009
pari_stack_alloc 328797642
pari_stack_base 329655652
pari_stack_delete 777185
pari_stack_init 897512
pari_stack_new 275512571
pari_stack_pushp 5544
perm_conj 35
perm_inv 3801
perm_mul 20482100
pol0_F2x 10827827
pol0_Flx 43484564
pol1_F2x 2644317
pol1_Flx 17545635
pol_0 12775100
pol_1 1184845
pol_x 684970
pol_xn 2306989
pol_xnall 98
polx_F2x 650579
polx_Flx 17150527
polx_zx 0
powIs 840
powii 211193
pr_get_e 2052595
pr_get_f 6032562
pr_get_gen 2122430
pr_get_p 14741996
pr_get_tau 5783061
pr_is_inert 743622
pr_norm 309724
prec2nbits 1162177490
prec2nbits_mul 223954
prec2ndec 12001
precdbl 1741
qfb_disc 5905760
qfb_disc3 5997600
quad_disc 252
quadnorm 623
remsBIL 2814017454
resultant 34933
rnf_get_absdegree 156254
rnf_get_alpha 448
rnf_get_degree 310765
rnf_get_disc 63
rnf_get_idealdisc 427
rnf_get_index 105
rnf_get_invzk 1190
rnf_get_k 448
rnf_get_map 33943
rnf_get_nf 123410
rnf_get_nfdegree 14742
rnf_get_nfpol 106295
rnf_get_nfvarn 483
rnf_get_nfzk 1687
rnf_get_pol 462133
rnf_get_polabs 93443
rnf_get_varn 0
rnf_get_zk 2436
row 115790
row_i 2177
rowcopy 56
rowpermute 84450
rowslice 211601
rowslicepermute 35196
rowsplice 133
ser_isexactzero 3848029
shallowcopy 2258313
sqrfrac 1418063
sqrti 4637430
sqrtnr 34800
sqrtr 15176504
sturm 441
submulii 13425654
submuliu 7000
submuliu_inplace 109514067
truecoeff 0
trunc_safe 0
upr_norm 31731
vec_append 56042
vec_ei 303997
vec_lengthen 10577
vec_setconst 0
vec_shorten 0
vec_to_vecsmall 236129
vecpermute 4290795
vecreverse 4730006
vecreverse_inplace 232
vecslice 3715507
vecslicepermute 140600
vecsmall_append 364135
vecsmall_coincidence 0
vecsmall_concat 242944
vecsmall_copy 1611563
vecsmall_ei 3302
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 2763619
vecsmall_max 35970
vecsmall_min 133
vecsmall_pack 84
vecsmall_prefixcmp 47066978
vecsmall_prepend 1232
vecsmall_reverse 252
vecsmall_shorten 127569
vecsmall_to_col 1243090
vecsmall_to_vec 15603
vecsmallpermute 20064788
vecsmalltrunc_append 2754411
vecsmalltrunc_init 1355838
vecsplice 8274
vectrunc_append 42841095
vectrunc_append_batch 0
vectrunc_init 11510169
zc_to_ZC 1205647
zero_F2m 0
zero_F2m_copy 269594
zero_F2v 715484
zero_F2x 56
zero_Flm 287
zero_Flm_copy 103460
zero_Flv 29655752
zero_Flx 759920
zero_zm 0
zero_zv 16014413
zero_zx 0
zerocol 22680682
zeromat 4291
zeromatcopy 1956053
zeropadic 300881
zeropadic_shallow 504
zeropol 4167131
zeroser 12495
zerovec 7757244
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
zv_copy 2147195
zv_to_ZV 8785
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11