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 19041-b30db16) Lines: 1199 1335 89.8 %
Date: 2016-06-24 Functions: 502 566 88.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 538 636 84.6 %

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 12089948
F2m_copy 1631
F2m_flip 370699
F2m_set 1603119
F2v_clear 2193730
F2v_coeff 100990302
F2v_copy 0
F2v_ei 7
F2v_flip 370699
F2v_set 13724009
F2v_to_F2x 5978
F2x_clear 2193730
F2x_coeff 104545092
F2x_copy 36480862
F2x_div 1139600
F2x_equal 1273056
F2x_equal1 823864
F2x_flip 370699
F2x_renormalize 81255805
F2x_set 33771952
F2xqX_div 140700
Flm_copy 318883
Flm_row 23365
Flv_copy 1592395
Flx_copy 69061745
Flx_div 3051243
Flx_equal1 5050690
Flx_lead 416873
Flx_mulu 791946
FlxqX_div 141506
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 917
FpXQX_renormalize 1121276
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 714964
FpX_div 613953
FpX_renormalize 90441148
Fp_add 301962216
Fp_addmul 2143534
Fp_center 4621028
Fp_div 4528585
Fp_halve 19591
Fp_inv 7583429
Fp_invsafe 287842
Fp_mul 284473944
Fp_muls 217
Fp_mulu 54518475
Fp_neg 9646979
Fp_red 1210490
Fp_sqr 6807805
Fp_sub 45863888
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 531832
FqX_Fq_mul 553901
FqX_add 904275
FqX_deriv 32662
FqX_div 6244
FqX_div_by_X_x 5761
FqX_divrem 329
FqX_extgcd 40364
FqX_factor 1603
FqX_gcd 24339
FqX_get_red 5605
FqX_mul 83971
FqX_mulu 459861
FqX_neg 16438
FqX_normalize 12106
FqX_powu 1428
FqX_red 9541
FqX_rem 48310
FqX_roots 3500
FqX_sqr 4928
FqX_sub 2380
Fq_red 1360646
Fq_to_FpXQ 7021
GENbinbase 78282998
QV_isscalar 5901510
Q_abs 618046
Q_abs_shallow 38261
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 243642
RgC_gtofp 379148
RgC_gtomp 560
RgM_dimensions 116830
RgM_fpnorml2 1617
RgM_gtofp 19088
RgM_gtomp 14
RgM_inv 31510
RgM_minor 1008
RgM_shallowcopy 5035718
RgV_is_QV 14
RgV_is_ZV 1487773
RgV_isscalar 8196
RgXQX_div 7
RgXQX_rem 34818
RgXQ_mul 438821
RgXQ_sqr 215587
RgX_coeff 2132313
RgX_copy 62609641
RgX_div 6112465
RgX_equal_var 4117423
RgX_fpnorml2 10988
RgX_gtofp 481042
RgX_is_QX 159260
RgX_is_ZX 57250805
RgX_is_monomial 15233392
RgX_is_rational 2667
RgX_isscalar 0
RgX_rem 2716957
RgX_renormalize 309617
RgX_shift_inplace 578173
RgX_shift_inplace_init 578171
Rg_col_ei 3369755
ZC_hnfrem 881968
ZM_hnfrem 53238
ZM_lll 1217383
ZV_dvd 23198
ZV_isscalar 1473636
ZV_to_zv 219609
ZXQ_mul 114625
ZXQ_sqr 19726
ZX_ZXY_resultant 0
ZX_equal1 18035
ZX_renormalize 73899110
Z_ispower 14
Z_issquare 719043
abgrp_get_cyc 1025668
abgrp_get_gen 272659
abgrp_get_no 10052
absfrac 1916986
absfrac_shallow 11466
addmuliu 7000
addmuliu_inplace 255456906
affc_fixlg 183422
affgr 181238
bid_get_U 420836
bid_get_arch 95673
bid_get_cyc 513135
bid_get_fact 139987
bid_get_gen 6125
bid_get_gen_nocheck 0
bid_get_grp 519778
bid_get_ideal 82846
bid_get_mod 366113
bid_get_no 0
bin_copy 39142485
bit_accuracy 1066328898
bit_accuracy_mul 450695
bit_prec 24886366
bnf_get_clgp 559129
bnf_get_cyc 292819
bnf_get_fu 7895
bnf_get_fu_nocheck 14034
bnf_get_gen 265169
bnf_get_logfu 426514
bnf_get_nf 1242413
bnf_get_no 987
bnf_get_reg 671
bnf_get_tuN 8519
bnf_get_tuU 6825
bnr_get_bid 198014
bnr_get_bnf 399878
bnr_get_clgp 229990
bnr_get_cyc 218419
bnr_get_gen 2436
bnr_get_gen_nocheck 70
bnr_get_mod 10990
bnr_get_nf 3703
bnr_get_no 9065
both_odd 15599243
cbrtr 11901
cgetalloc 6879
cgetc 193244
cgiv 25826333
closure_arity 185628838
closure_codestr 153862052
closure_get_code 0
closure_get_data 153775895
closure_get_dbg 58463
closure_get_frame 555671
closure_get_oper 153836225
closure_get_text 118900
closure_is_variadic 31614677
col_ei 1448837
const_col 23851
const_vec 7556260
const_vecsmall 4700444
constant_coeff 17482576
cxcompotor 2108055
cxnorm 7833900
cxtofp 1052305
cyclic_perm 0
dbllog2r 23258529
degpol 1956543328
divsBIL 3541245105
ellQp_get_p 238
ellQp_get_prec 84
ellQp_get_zero 329
ellR_get_prec 700
ellR_get_sign 1318
ell_get_a1 2056489
ell_get_a2 1420119
ell_get_a3 2071462
ell_get_a4 2034705
ell_get_a6 2444786
ell_get_b2 2090209
ell_get_b4 449345
ell_get_b6 841079
ell_get_b8 689976
ell_get_c4 5095387
ell_get_c6 5457609
ell_get_disc 6773576
ell_get_j 950530
ell_get_type 7070451
ell_is_inf 31813000
ellff_get_a4a6 364766
ellff_get_field 932433
ellinf 596433
ellnf_get_nf 104090
equali1 200906156
equalim1 21680925
err_get_compo 70
err_get_num 131124
gabsz 0
gaddgs 7308688
gaddz 23318
gal_get_den 1799
gal_get_e 56
gal_get_gen 1211
gal_get_group 3829
gal_get_invvdm 1799
gal_get_mod 1806
gal_get_orders 763
gal_get_p 980
gal_get_pol 973
gal_get_roots 2170
gcmpgs 24114
gdiventz 0
gdivsg 447237
gdivz 0
gen_I 425285
gener_Fq_local 511
gequalgs 23079
gerepileall 6918585
gerepilecoeffs 8
gerepilecopy 27777346
gerepilemany 64457
gerepileupto 581983969
gerepileuptoint 1026336349
gerepileuptoleaf 402766135
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 5834651
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 613769
gsubz 0
gtodouble 34541365
gtofp 21718710
gtomp 22400
gtos 60925076
gtou 31770
gval 2100
icopy_avma 3566018166
idealchineseinit 1197
idealpseudomin 168828
idealpseudomin_nonscalar 252473
idealpseudored 1309
idealred 166400
idealred_elt 336
identity_perm 67284
inf_get_sign 25614
is_bigint 111984927
is_const_t 895028732
is_extscalar_t 626277
is_intreal_t 822331
is_matvec_t 345436646
is_noncalc_t 51546750
is_pm1 1411372059
is_rational_t 579212
is_real_t 53431
is_recursive_t 2452283735
is_scalar_t 154014440
is_universal_constant 27992594
is_vec_t 415660
isint1 5973297
isintm1 301
isintzero 340212569
ismpzero 822254
isonstack 2036893333
killblock 1400652
leading_coeff 75584319
leafcopy_avma 92770719
lgcols 46283959
lgpol 1012494400
lincombii 17035677
matpascal 938
matslice 102389
mkcol 2042304
mkcol2 14724263
mkcol2s 1189972
mkcol3 41615
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 680
mkcolcopy 27057
mkcols 0
mkcomplex 2964722
mkerr 0
mkfrac 327488
mkfraccopy 2958928
mkintmod 332738
mkintmodu 3780
mkmat 218017
mkmat2 14501869
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7588
mkmoo 7287
mkoo 11568
mkpolmod 256872
mkqfi 158123
mkquad 42
mkrfrac 4984
mkrfraccopy 14
mkvec 3045941
mkvec2 14837624
mkvec2copy 164553
mkvec2s 11522
mkvec3 68364745
mkvec3s 492702
mkvec4 4194465
mkvec4s 7
mkvec5 11623429
mkveccopy 33187
mkvecs 7
mkvecsmall 51222684
mkvecsmall2 88089733
mkvecsmall3 44325076
mkvecsmall4 4636428
mkvecsmall5 401361
modpr_get_T 1014031
modpr_get_p 2331
modpr_get_pr 2236392
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 242573
mul_denom 168214
mulsubii 1621992
nbits2extraprec 340554848
nbits2lg 3312855
nbits2ndec 1181
nbits2nlong 802142
nbits2prec 96896614
nbrows 13515643
nchar2nlong 6978153
ndec2nbits 1452
ndec2nlong 23563
ndec2prec 22111
nf_get_G 42248
nf_get_M 963015
nf_get_Tr 798
nf_get_degree 2890585
nf_get_diff 812
nf_get_disc 22730
nf_get_index 607345
nf_get_invzk 1376195
nf_get_pol 6599295
nf_get_r1 1059260
nf_get_r2 1057
nf_get_ramified_primes 21
nf_get_roots 90770
nf_get_roundG 378050
nf_get_sign 5960
nf_get_varn 7363
nf_get_zk 6101365
normalize_frac 9445976
odd 651660012
pari_calloc 38604
pari_err_BUG 14
pari_err_COMPONENT 224
pari_err_CONSTPOL 7
pari_err_COPRIME 70
pari_err_DIM 890
pari_err_DOMAIN 5068
pari_err_FILE 0
pari_err_FLAG 21
pari_err_IMPL 238
pari_err_INV 725
pari_err_IRREDPOL 14
pari_err_MAXPRIME 0
pari_err_MODULUS 721
pari_err_OP 308
pari_err_OVERFLOW 63
pari_err_PACKAGE 0
pari_err_PREC 225
pari_err_PRIME 35
pari_err_PRIORITY 112
pari_err_ROOTS0 35
pari_err_SQRTN 77
pari_err_TYPE 36612
pari_err_TYPE2 2989
pari_err_VAR 490
pari_free 47564910
pari_malloc 177790071
pari_realloc 761381
pari_stack_alloc 328741895
pari_stack_base 331183090
pari_stack_delete 2338261
pari_stack_init 2656560
pari_stack_new 278217515
pari_stack_pushp 9516
perm_conj 35
perm_inv 3801
perm_mul 18792496
pol0_F2x 7505367
pol0_Flx 46773896
pol1_F2x 1831255
pol1_Flx 18023431
pol_0 13872701
pol_1 1115431
pol_x 512599
polx_F2x 260456
polx_Flx 9310618
polx_zx 0
powIs 819
powii 339003
pr_get_e 1178536
pr_get_f 4515097
pr_get_gen 1968666
pr_get_p 7677148
pr_get_tau 3495564
pr_is_inert 560694
pr_norm 84505
prec2nbits 1155891418
prec2nbits_mul 254397
prec2ndec 12884
precdbl 1687
qfb_disc 4222973
qfb_disc3 4314813
quad_disc 252
quadnorm 623
remsBIL 3471236466
resultant 25829
rnf_get_absdegree 156247
rnf_get_alpha 455
rnf_get_degree 310737
rnf_get_disc 63
rnf_get_idealdisc 427
rnf_get_index 105
rnf_get_invzk 1162
rnf_get_k 455
rnf_get_map 33404
rnf_get_nf 124026
rnf_get_nfdegree 14693
rnf_get_nfpol 106225
rnf_get_nfvarn 490
rnf_get_nfzk 1617
rnf_get_pol 461937
rnf_get_polabs 93863
rnf_get_varn 0
rnf_get_zk 2324
row 114778
row_i 2177
rowcopy 56
rowpermute 212242
rowslice 186290
rowslicepermute 32050
ser_isexactzero 3839967
shallowcopy 1515675
sqrfrac 164299
sqrti 2956182
sqrtnr 35008
sqrtr 12601779
sturm 441
submulii 41294558
submuliu 7000
submuliu_inplace 256106228
truecoeff 0
trunc_safe 0
vec_append 56021
vec_ei 300861
vec_lengthen 10570
vec_setconst 1729
vec_shorten 0
vec_to_vecsmall 231663
vecpermute 4851413
vecreverse 1378290
vecreverse_inplace 232
vecslice 3727915
vecslicepermute 128420
vecsmall_append 360360
vecsmall_coincidence 0
vecsmall_concat 235200
vecsmall_copy 2051874
vecsmall_ei 9177
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 2763075
vecsmall_max 49883
vecsmall_min 133
vecsmall_pack 84
vecsmall_prefixcmp 47066978
vecsmall_prepend 1120
vecsmall_shorten 112470
vecsmall_to_col 1129514
vecsmall_to_vec 15064
vecsmallpermute 18363949
vecsmalltrunc_append 2552390
vecsmalltrunc_init 1299309
vecsplice 8610
vectrunc_append 10558296
vectrunc_append_batch 0
vectrunc_init 2160292
zc_to_ZC 1091959
zero_F2m 0
zero_F2m_copy 106828
zero_F2v 581003
zero_F2x 77
zero_Flm 175
zero_Flm_copy 48816
zero_Flv 26238265
zero_Flx 290819
zero_zm 0
zero_zv 13929171
zero_zx 0
zerocol 24145164
zeromat 6419
zeromatcopy 2168340
zeropadic 292145
zeropadic_shallow 329
zeropol 4417903
zeroser 11837
zerovec 6908043
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
zv_copy 1273535
zv_to_ZV 8407
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.9