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.8.0 lcov report (development 19374-ac31b96) Lines: 1192 1341 88.9 %
Date: 2016-08-30 06:11:37 Functions: 505 569 88.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 12073918
F2m_copy 1631
F2m_flip 356059
F2m_set 1603119
F2v_clear 2164299
F2v_coeff 100875761
F2v_copy 0
F2v_ei 7
F2v_flip 356059
F2v_set 13697829
F2v_to_F2x 6671
F2x_clear 2164299
F2x_coeff 104573237
F2x_copy 35758967
F2x_div 1148119
F2x_equal 1272537
F2x_equal1 712103
F2x_flip 356059
F2x_renormalize 80389428
F2x_set 33642477
F2xqX_div 29631
Flm_copy 319725
Flm_row 23740
Flv_copy 1820329
Flx_copy 83756078
Flx_div 2860732
Flx_equal1 4652974
Flx_lead 418001
Flx_mulu 665265
FlxqX_div 32326
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 917
FpXQX_renormalize 1112062
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 949431
FpX_div 714780
FpX_renormalize 91579186
Fp_add 359742886
Fp_addmul 2142266
Fp_center 5746117
Fp_div 4542874
Fp_halve 19591
Fp_inv 7612335
Fp_invsafe 285309
Fp_mul 341916503
Fp_muls 0
Fp_mulu 52711603
Fp_neg 9967180
Fp_red 1210260
Fp_sqr 6956670
Fp_sub 45956319
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 531048
FqX_Fq_mul 553861
FqX_add 904235
FqX_deriv 266868
FqX_div 6244
FqX_div_by_X_x 5957
FqX_divrem 329
FqX_extgcd 39748
FqX_factor 70665
FqX_gcd 258538
FqX_get_red 5605
FqX_mul 84034
FqX_mulu 459861
FqX_neg 16438
FqX_normalize 11427
FqX_powu 1428
FqX_red 9541
FqX_rem 48289
FqX_roots 3500
FqX_sqr 4928
FqX_sub 2380
Fq_red 1360646
Fq_to_FpXQ 10955
GENbinbase 76869173
QV_isscalar 8017538
Q_abs 594348
Q_abs_shallow 38283
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 248442
RgC_gtofp 382513
RgC_gtomp 560
RgM_dimensions 117417
RgM_fpnorml2 1645
RgM_gtofp 18871
RgM_gtomp 14
RgM_inv 30501
RgM_minor 756
RgM_shallowcopy 6411163
RgV_is_QV 147
RgV_is_ZV 2443154
RgV_isscalar 4573
RgXQX_div 7
RgXQX_rem 17248
RgXQ_mul 432345
RgXQ_sqr 212281
RgX_coeff 2219792
RgX_copy 61836338
RgX_div 6102217
RgX_equal_var 4044644
RgX_fpnorml2 6265
RgX_gtofp 476188
RgX_is_QX 161536
RgX_is_ZX 55130949
RgX_is_monomial 15102767
RgX_is_rational 2688
RgX_isscalar 0
RgX_rem 2462342
RgX_renormalize 310625
RgX_shift_inplace 577544
RgX_shift_inplace_init 577540
Rg_col_ei 3932827
ZC_hnfrem 822050
ZM_hnfrem 56957
ZM_lll 1355026
ZV_dvd 23198
ZV_isscalar 1927246
ZV_to_zv 224789
ZXQ_mul 114667
ZXQ_sqr 19824
ZX_ZXY_resultant 0
ZX_equal1 17711
ZX_renormalize 74557391
Z_ispower 14
Z_issquare 1975097
abgrp_get_cyc 1028311
abgrp_get_gen 273153
abgrp_get_no 10052
absfrac 1867572
absfrac_shallow 11480
addmuliu 7000
addmuliu_inplace 256353325
affc_fixlg 183802
affgr 180734
bid_get_U 421655
bid_get_arch 96037
bid_get_cyc 514318
bid_get_fact 140764
bid_get_gen 6125
bid_get_gen_nocheck 0
bid_get_grp 520961
bid_get_ideal 83742
bid_get_mod 367359
bid_get_no 0
bin_copy 38435570
bit_accuracy 1078658666
bit_accuracy_mul 450737
bit_prec 26484140
bnf_get_clgp 560117
bnf_get_cyc 293313
bnf_get_fu 1631
bnf_get_fu_nocheck 3437
bnf_get_gen 265663
bnf_get_logfu 429392
bnf_get_nf 1184319
bnf_get_no 987
bnf_get_reg 671
bnf_get_tuN 8519
bnf_get_tuU 2450
bnr_get_bid 198420
bnr_get_bnf 400886
bnr_get_clgp 231082
bnr_get_cyc 219385
bnr_get_gen 2562
bnr_get_gen_nocheck 70
bnr_get_mod 10990
bnr_get_nf 3955
bnr_get_no 9065
both_odd 14373203
cbrtr 11963
cgetalloc 4863
cgetc 193758
cgiv 28248152
closure_arity 185995320
closure_codestr 151381071
closure_get_code 0
closure_get_data 151335916
closure_get_dbg 16260
closure_get_frame 607474
closure_get_oper 151359470
closure_get_text 34473
closure_is_variadic 34410615
col_ei 2353825
const_col 24732
const_vec 10527184
const_vecsmall 5767198
constant_coeff 17547453
cxcompotor 2059180
cxnorm 8182008
cxtofp 1027895
cyclic_perm 0
dbllog2r 16921853
degpol 2585900875
divsBIL 3579944436
ellQp_get_p 483
ellQp_get_prec 147
ellQp_get_zero 637
ellR_get_prec 36512
ellR_get_sign 1318
ell_get_a1 4961624
ell_get_a2 3255495
ell_get_a3 4434952
ell_get_a4 4053936
ell_get_a6 4627138
ell_get_b2 3946159
ell_get_b4 1008239
ell_get_b6 1611611
ell_get_b8 1455972
ell_get_c4 6320350
ell_get_c6 8302282
ell_get_disc 9781969
ell_get_j 1173683
ell_get_type 7479044
ell_is_inf 31293116
ellff_get_a4a6 314079
ellff_get_field 795884
ellinf 625080
ellnf_get_bnf 28
ellnf_get_nf 521038
equali1 214226993
equalim1 23572537
err_get_compo 70
err_get_num 45997
gabsz 0
gaddgs 7315349
gaddz 23318
gal_get_den 1820
gal_get_e 56
gal_get_gen 1218
gal_get_group 3829
gal_get_invvdm 1820
gal_get_mod 1813
gal_get_orders 763
gal_get_p 980
gal_get_pol 973
gal_get_roots 2191
gcmpgs 24114
gdiventz 0
gdivsg 436034
gdivz 0
gen_I 425084
gener_Fq_local 511
gequalgs 22960
gerepileall 4831583
gerepilecoeffs 8
gerepilecopy 34536126
gerepilemany 68288
gerepileupto 623149279
gerepileuptoint 1101958794
gerepileuptoleaf 520722788
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 5766490
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 613982
gsubz 0
gtodouble 25451883
gtofp 19894993
gtomp 22400
gtos 64430966
gtou 83132
gval 2051
icopy_avma 3678336217
idealchineseinit 1197
idealpseudomin 162170
idealpseudomin_nonscalar 252067
idealpseudored 1316
idealred 166903
idealred_elt 238
identity_perm 66605
inf_get_sign 25824
is_bigint 131269588
is_const_t 919216284
is_extscalar_t 361952
is_intreal_t 826943
is_matvec_t 351076614
is_noncalc_t 51978117
is_pm1 1493515880
is_rational_t 580523
is_real_t 53431
is_recursive_t 2518522268
is_scalar_t 152160094
is_universal_constant 17573120
is_vec_t 399023
isint1 6070961
isintm1 301
isintzero 351152020
ismpzero 826866
isonstack 2274151457
killblock 1375861
leading_coeff 75714401
leafcopy_avma 91434981
lgcols 60130161
lgpol 1236790998
lincombii 25395825
logint 397250
matpascal 938
matslice 102389
mkcol 2142524
mkcol2 14751125
mkcol2s 1189972
mkcol3 41615
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 680
mkcolcopy 27149
mkcols 6202
mkcomplex 2970936
mkerr 0
mkfrac 1628559
mkfraccopy 2422544
mkintmod 330866
mkintmodu 3780
mkmat 651592
mkmat2 16633245
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 6020
mkmoo 7322
mkoo 11750
mkpolmod 247589
mkqfi 158123
mkquad 42
mkrfrac 4984
mkrfraccopy 14
mkvec 3203346
mkvec2 20911386
mkvec2copy 258479
mkvec2s 11564
mkvec3 65094185
mkvec3s 492702
mkvec4 7280598
mkvec4s 7
mkvec5 11755917
mkveccopy 33187
mkvecs 7
mkvecsmall 47663171
mkvecsmall2 105602834
mkvecsmall3 66027556
mkvecsmall4 9502507
mkvecsmall5 611369
modpr_get_T 1942355
modpr_get_p 602260
modpr_get_pr 6666691
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 232264
mul_denom 442042
mulsubii 2105610
nbits2extraprec 271876567
nbits2lg 3329316
nbits2ndec 165
nbits2nlong 798626
nbits2prec 80574710
nbrows 15728142
nchar2nlong 7004282
ndec2nbits 443
ndec2nlong 22316
ndec2prec 21873
nf_get_G 43943
nf_get_M 971322
nf_get_Tr 798
nf_get_degree 4192787
nf_get_diff 812
nf_get_disc 23620
nf_get_index 738883
nf_get_invzk 1770001
nf_get_pol 8839858
nf_get_r1 1074887
nf_get_r2 1057
nf_get_ramified_primes 21
nf_get_roots 97918
nf_get_roundG 377899
nf_get_sign 5988
nf_get_varn 7363
nf_get_zk 8525157
normalize_frac 8249672
odd 1411476369
pari_calloc 28712
pari_err_BUG 14
pari_err_COMPONENT 224
pari_err_CONSTPOL 7
pari_err_COPRIME 63
pari_err_DIM 890
pari_err_DOMAIN 5096
pari_err_FILE 0
pari_err_FLAG 21
pari_err_IMPL 238
pari_err_INV 571
pari_err_IRREDPOL 14
pari_err_MAXPRIME 0
pari_err_MODULUS 721
pari_err_OP 294
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 24159
pari_err_TYPE2 3010
pari_err_VAR 196
pari_free 47513581
pari_malloc 184863884
pari_realloc 798227
pari_stack_alloc 330354483
pari_stack_base 332982105
pari_stack_delete 2544093
pari_stack_init 2957343
pari_stack_new 276517028
pari_stack_pushp 5481
perm_conj 35
perm_inv 3815
perm_mul 20490839
pol0_F2x 7239775
pol0_Flx 42865488
pol1_F2x 1782428
pol1_Flx 16432590
pol_0 12946137
pol_1 1175817
pol_x 666384
polx_F2x 277720
polx_Flx 17083068
polx_zx 0
powIs 819
powii 326890
pr_get_e 3065902
pr_get_f 6493118
pr_get_gen 2196740
pr_get_p 16289680
pr_get_tau 5314535
pr_is_inert 665726
pr_norm 358233
prec2nbits 1164991895
prec2nbits_mul 224374
prec2ndec 12001
precdbl 1691
qfb_disc 5919942
qfb_disc3 6011782
quad_disc 252
quadnorm 623
remsBIL 3510262913
resultant 25486
rnf_get_absdegree 156254
rnf_get_alpha 455
rnf_get_degree 310751
rnf_get_disc 63
rnf_get_idealdisc 427
rnf_get_index 105
rnf_get_invzk 1190
rnf_get_k 455
rnf_get_map 33936
rnf_get_nf 123319
rnf_get_nfdegree 14728
rnf_get_nfpol 106295
rnf_get_nfvarn 490
rnf_get_nfzk 1652
rnf_get_pol 462119
rnf_get_polabs 93408
rnf_get_varn 0
rnf_get_zk 2415
row 115625
row_i 2177
rowcopy 56
rowpermute 198737
rowslice 187422
rowslicepermute 33462
ser_isexactzero 3809661
shallowcopy 1496902
sqrfrac 1006644
sqrti 4639563
sqrtnr 34404
sqrtr 14797854
sturm 441
submulii 41326573
submuliu 7000
submuliu_inplace 256966971
truecoeff 0
trunc_safe 0
vec_append 56021
vec_ei 300959
vec_lengthen 10584
vec_setconst 1729
vec_shorten 0
vec_to_vecsmall 235107
vecpermute 4901988
vecreverse 4759623
vecreverse_inplace 232
vecslice 4302708
vecslicepermute 133630
vecsmall_append 356748
vecsmall_coincidence 0
vecsmall_concat 235116
vecsmall_copy 2052005
vecsmall_ei 9170
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 2763075
vecsmall_max 35732
vecsmall_min 133
vecsmall_pack 84
vecsmall_prefixcmp 47066978
vecsmall_prepend 1127
vecsmall_reverse 252
vecsmall_shorten 132855
vecsmall_to_col 1127751
vecsmall_to_vec 15239
vecsmallpermute 20073807
vecsmalltrunc_append 2568437
vecsmalltrunc_init 1303481
vecsplice 7588
vectrunc_append 43058601
vectrunc_append_batch 0
vectrunc_init 11521906
zc_to_ZC 1090196
zero_F2m 0
zero_F2m_copy 103443
zero_F2v 577179
zero_F2x 56
zero_Flm 175
zero_Flm_copy 103744
zero_Flv 28400948
zero_Flx 290939
zero_zm 0
zero_zv 15001105
zero_zx 0
zerocol 27982791
zeromat 6419
zeromatcopy 2236400
zeropadic 292264
zeropadic_shallow 329
zeropol 4208659
zeroser 12075
zerovec 7896911
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
zv_copy 1357869
zv_to_ZV 8428
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11