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 17931-6d987be) Lines: 1174 1317 89.1 %
Date: 2015-07-28 Functions: 485 551 88.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 518 620 83.5 %

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 11755410
F2m_copy 1449
F2m_flip 338487
F2m_set 1549002
F2v_clear 2115558
F2v_coeff 95744848
F2v_copy 0
F2v_ei 7
F2v_flip 338487
F2v_set 13121736
F2v_to_F2x 6013
F2x_clear 2115558
F2x_coeff 98400052
F2x_div 1134910
F2x_equal 1179874
F2x_equal1 150411
F2x_flip 338487
F2x_renormalize 56529318
F2x_set 32458360
Flm_copy 473861
Flm_row 28696
Flv_copy 1316243
Flx_copy 45410516
Flx_div 1403007
Flx_equal1 3783923
Flx_lead 401562
Flx_mulu 314413
FlxqX_div 6146
FlxqX_rem 161242
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 0
FpXQX_renormalize 857051
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 913179
FpX_div 518859
FpX_renormalize 93574509
Fp_add 174118554
Fp_addmul 2428304
Fp_center 3105433
Fp_div 4658229
Fp_halve 22608
Fp_inv 7841430
Fp_invsafe 351370
Fp_mul 148937691
Fp_muls 231
Fp_mulu 61090828
Fp_neg 9906374
Fp_red 3410949
Fp_sqr 6428830
Fp_sub 62718169
FqXQ_add 0
FqXQ_div 23432
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_mul 144787
FqXQ_pow 0
FqXQ_sqr 55020
FqXQ_sub 0
FqX_Fp_mul 539321
FqX_Fq_mul 554817
FqX_add 901895
FqX_div 9597
FqX_div_by_X_x 5831
FqX_divrem 0
FqX_extgcd 37212
FqX_gcd 40754
FqX_mul 101395
FqX_mulu 463210
FqX_neg 5848
FqX_powu 1554
FqX_red 10094
FqX_rem 38572
FqX_sqr 6510
FqX_sub 142484
Fq_red 1544042
Fq_to_FpXQ 5294
GENbinbase 54781958
QV_isscalar 5463450
Q_abs 312865
Q_abs_shallow 37855
RgC_fpnorml2 242522
RgC_gtofp 379589
RgC_gtomp 560
RgM_dimensions 115543
RgM_fpnorml2 1505
RgM_gtofp 18962
RgM_gtomp 14
RgM_inv 29923
RgM_minor 504
RgM_shallowcopy 4839903
RgV_is_QV 0
RgV_is_ZV 1265599
RgV_isscalar 6392
RgXQX_div 7
RgXQX_rem 31668
RgXQ_mul 401736
RgXQ_sqr 215979
RgX_coeff 360510
RgX_copy 62224075
RgX_div 6054301
RgX_equal_var 4074252
RgX_fpnorml2 10225
RgX_gtofp 448602
RgX_is_QX 109354
RgX_is_ZX 55886492
RgX_is_monomial 14651239
RgX_is_rational 2429
RgX_isscalar 0
RgX_rem 2607520
RgX_renormalize 307097
RgX_shift_inplace 537546
RgX_shift_inplace_init 537542
Rg_col_ei 3276350
ZC_hnfrem 801015
ZM_hnfrem 26145
ZM_lll 1132827
ZV_dvd 23198
ZV_isscalar 1566280
ZV_to_zv 193653
ZXQ_mul 104657
ZXQ_sqr 17654
ZX_ZXY_resultant 0
ZX_equal1 12939
ZX_renormalize 79671732
Z_ispower 14
Z_issquare 231455
abgrp_get_cyc 892447
abgrp_get_gen 227589
abgrp_get_no 8008
absfrac 1326197
absfrac_shallow 11564
addmuliu 7000
addmuliu_inplace 264441394
affc_fixlg 175414
affgr 176947
bid_get_arch 98487
bid_get_cyc 461405
bid_get_gen 4991
bid_get_gen_nocheck 0
bid_get_grp 466914
bid_get_ideal 72892
bid_get_mod 287300
bid_get_no 0
bin_copy 27391962
bit_accuracy 1121308250
bit_accuracy_mul 2501830
bit_prec 23928355
bnf_get_clgp 465258
bnf_get_cyc 242548
bnf_get_fu 6740
bnf_get_fu_nocheck 12074
bnf_get_gen 222010
bnf_get_logfu 347077
bnf_get_nf 927969
bnf_get_no 560
bnf_get_reg 601
bnf_get_tuN 7567
bnf_get_tuU 6034
bnr_get_bid 172107
bnr_get_bnf 346048
bnr_get_clgp 196894
bnr_get_cyc 187976
bnr_get_gen 1400
bnr_get_gen_nocheck 70
bnr_get_mod 9170
bnr_get_nf 2219
bnr_get_no 7448
both_odd 16137899
cbrtr 11355
cgetalloc 4737
cgetc 181551
cgiv 42529850
closure_arity 99164511
closure_codestr 86845607
closure_get_code 0
closure_get_data 86777551
closure_get_dbg 58148
closure_get_frame 82729
closure_get_oper 86816177
closure_get_text 118228
closure_is_variadic 12254278
col_ei 1167994
const_col 19787
const_vec 5719564
const_vecsmall 3229847
constant_term 17428083
cxcompotor 1611111
cxnorm 6686872
cxtofp 804440
cyclic_perm 0
dbllog2r 20797489
degpol 1543350137
divsBIL 3302268831
ellQp_get_p 245
ellQp_get_prec 84
ellQp_get_zero 336
ellR_get_prec 252
ellR_get_sign 688
ell_get_a1 1994547
ell_get_a2 1413527
ell_get_a3 2010353
ell_get_a4 2026335
ell_get_a6 2436241
ell_get_b2 2030008
ell_get_b4 444039
ell_get_b6 835409
ell_get_b8 688520
ell_get_c4 4723799
ell_get_c6 5083291
ell_get_disc 6408820
ell_get_j 946456
ell_get_type 6891616
ell_is_inf 18059048
ellff_get_a4a6 313282
ellff_get_field 794152
ellinf 406662
ellnf_get_nf 52885
equali1 170551180
equalim1 5765528
err_get_compo 77
err_get_num 130137
gabsz 0
gaddgs 7030404
gaddz 23318
gal_get_den 1631
gal_get_e 42
gal_get_gen 875
gal_get_group 840
gal_get_invvdm 1631
gal_get_mod 1617
gal_get_orders 413
gal_get_p 924
gal_get_pol 917
gal_get_roots 1974
gcmpgs 21104
gdiventz 0
gdivsg 150506
gdivz 0
gen_I 411264
gener_Fq_local 462
gequalgs 22435
gerepileall 4302286
gerepilecoeffs 8
gerepilecopy 19708043
gerepilemany 37063
gerepileupto 420517232
gerepileuptoint 1048603527
gerepileuptoleaf 307955308
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 4882479
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 398106
gsubz 0
gtodouble 24625154
gtofp 16326780
gtomp 22400
gtos 29924999
gtou 0
gval 441
icopy_avma 996409379
idealpseudomin 149487
idealpseudomin_nonscalar 230278
idealred 148704
idealred_elt 315
identity_perm 64470
inf_get_sign 20561
is_bigint 118646038
is_const_t 696342975
is_extscalar_t 591276
is_intreal_t 766364
is_matvec_t 303531306
is_noncalc_t 50405669
is_pm1 1326372840
is_rational_t 417687
is_recursive_t 2119511237
is_scalar_t 150502932
is_universal_constant 30874740
is_vec_t 282753
isint1 5001828
isintm1 301
isintzero 308802800
ismpzero 766287
isonstack 1819494811
killblock 993658
leading_term 64773971
leafcopy_avma 56789503
lgcols 24548871
lgpol 747092962
lincombii 17963482
matpascal 364
matslice 96789
mkcol 611763
mkcol2 12841189
mkcol2s 0
mkcol3 40453
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 351
mkcolcopy 27267
mkcols 0
mkcomplex 2615069
mkerr 0
mkfrac 43779
mkfraccopy 2478287
mkintmod 378999
mkintmodu 3675
mkmat 175621
mkmat2 9978644
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7203
mkmoo 5788
mkoo 9626
mkpolmod 238945
mkqfi 158123
mkquad 42
mkrfrac 7
mkrfraccopy 14
mkvec 2429897
mkvec2 11115857
mkvec2copy 167444
mkvec2s 10423
mkvec3 78714753
mkvec3s 492702
mkvec4 3652811
mkvec4s 7
mkvec5 11508075
mkveccopy 33180
mkvecs 7
mkvecsmall 29829198
mkvecsmall2 91979847
mkvecsmall3 35545150
mkvecsmall4 1482343
mkvecsmall5 104716
modpr_get_T 763417
modpr_get_p 2331
modpr_get_pr 1709096
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 238651
mul_denom 177071
mulsubii 1725107
nbits2extraprec 318348290
nbits2lg 2771492
nbits2nlong 714233
nbits2prec 71571782
nbrows 12694176
nchar2nlong 8749676
ndec2nlong 14221
ndec2prec 14221
nf_get_G 42238
nf_get_M 876973
nf_get_Tr 784
nf_get_degree 2590635
nf_get_diff 798
nf_get_disc 20567
nf_get_index 488081
nf_get_invzk 1084960
nf_get_pol 5688363
nf_get_r1 966855
nf_get_r2 1043
nf_get_ramified_primes 7
nf_get_roots 86071
nf_get_roundG 337627
nf_get_sign 3888
nf_get_varn 4325
nf_get_zk 5563371
normalize_frac 6291383
odd 267887833
pari_calloc 36229
pari_err_BUG 14
pari_err_COMPONENT 210
pari_err_CONSTPOL 7
pari_err_COPRIME 42
pari_err_DIM 827
pari_err_DOMAIN 5026
pari_err_FILE 0
pari_err_FLAG 21
pari_err_IMPL 224
pari_err_INV 697
pari_err_IRREDPOL 14
pari_err_MAXPRIME 0
pari_err_MODULUS 714
pari_err_OP 315
pari_err_OVERFLOW 63
pari_err_PACKAGE 0
pari_err_PREC 218
pari_err_PRIME 35
pari_err_PRIORITY 84
pari_err_ROOTS0 35
pari_err_SQRTN 77
pari_err_TYPE 36339
pari_err_TYPE2 2821
pari_err_VAR 490
pari_free 36187011
pari_malloc 110773678
pari_realloc 107288
pari_stack_alloc 234248089
pari_stack_base 234364392
pari_stack_delete 27723
pari_stack_init 57274
pari_stack_new 206435472
pari_stack_pushp 9292
perm_conj 35
perm_inv 98
perm_mul 18123735
pol0_F2x 2180911
pol0_Flx 27893880
pol1_F2x 632049
pol1_Flx 9915032
pol_0 14305309
pol_1 788297
pol_x 345146
polx_F2x 192715
polx_Flx 5922939
polx_zx 0
powIs 805
powii 313877
pr_get_e 1159408
pr_get_f 4648317
pr_get_gen 1732379
pr_get_p 8197263
pr_get_tau 4704519
pr_is_inert 491092
pr_norm 60964
prec2nbits 54993402
prec2nbits_mul 233112
prec2ndec 6134
precdbl 1667
qfb_disc 3716342
qfb_disc3 3786636
quad_disc 259
quadnorm 623
remsBIL 3227356190
resultant 25710
rnf_get_absdegree 155869
rnf_get_alpha 455
rnf_get_degree 310786
rnf_get_disc 63
rnf_get_idealdisc 420
rnf_get_index 98
rnf_get_invzk 1057
rnf_get_k 455
rnf_get_map 33929
rnf_get_nf 122577
rnf_get_nfdegree 15547
rnf_get_nfpol 107716
rnf_get_nfvarn 490
rnf_get_nfzk 6181
rnf_get_pol 461510
rnf_get_polabs 83013
rnf_get_varn 0
rnf_get_zk 3157
row 113560
row_i 2093
rowcopy 56
rowpermute 141902
rowslice 163069
rowslicepermute 19712
ser_isexactzero 1188919
shallowcopy 207091
sqrfrac 91036
sqrti 2452755
sqrtnr 32019
sqrtr 6537851
sturm 441
submulii 41124752
submuliu 7000
submuliu_inplace 264842739
truecoeff 0
trunc_safe 0
vec_append 55979
vec_ei 303899
vec_lengthen 7574
vec_setconst 1701
vec_shorten 0
vec_to_vecsmall 204342
vecpermute 4339920
vecreverse 50883
vecreverse_inplace 225
vecslice 3346468
vecslicepermute 86688
vecsmall_append 357089
vecsmall_coincidence 0
vecsmall_concat 230658
vecsmall_copy 25270480
vecsmall_ei 7210
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 111174
vecsmall_lengthen 0
vecsmall_lexcmp 2586374
vecsmall_max 3779
vecsmall_min 133
vecsmall_pack 84
vecsmall_prefixcmp 35286195
vecsmall_prepend 784
vecsmall_shorten 5796
vecsmall_to_col 446404
vecsmall_to_vec 7559
vecsmallpermute 17816183
vecsmalltrunc_append 2281494
vecsmalltrunc_init 1201852
vecsplice 4991
vectrunc_append 1154408
vectrunc_append_batch 0
vectrunc_init 703370
zc_to_ZC 427364
zero_F2m 0
zero_F2m_copy 96833
zero_F2v 682521
zero_F2x 77
zero_Flm 315
zero_Flm_copy 23532
zero_Flv 19331883
zero_Flx 100159
zero_zm 0
zero_zv 13409046
zero_zx 0
zerocol 23125774
zeromat 5600
zeromatcopy 2007386
zeropadic 275527
zeropadic_shallow 315
zeropol 4393046
zeroser 5250
zerovec 5800179
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 91
zv_copy 1019072
zv_to_ZV 6370
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.9