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 19226-b907b8d) Lines: 1190 1340 88.8 %
Date: 2016-07-29 07:10:27 Functions: 503 568 88.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 12091579
F2m_copy 1631
F2m_flip 376271
F2m_set 1603119
F2v_clear 2203666
F2v_coeff 101012944
F2v_copy 0
F2v_ei 7
F2v_flip 376271
F2v_set 13733110
F2v_to_F2x 6713
F2x_clear 2203666
F2x_coeff 104532079
F2x_copy 35775890
F2x_div 1153467
F2x_equal 1273070
F2x_equal1 712977
F2x_flip 376271
F2x_renormalize 80394817
F2x_set 33615624
F2xqX_div 29631
Flm_copy 318871
Flm_row 23279
Flv_copy 1820613
Flx_copy 82971488
Flx_div 2771433
Flx_equal1 4652996
Flx_lead 418022
Flx_mulu 665202
FlxqX_div 32326
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 917
FpXQX_renormalize 1117874
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 949359
FpX_div 714830
FpX_renormalize 91632483
Fp_add 302589435
Fp_addmul 2144108
Fp_center 5762660
Fp_div 4593747
Fp_halve 19591
Fp_inv 7661265
Fp_invsafe 286002
Fp_mul 284792826
Fp_muls 0
Fp_mulu 52846058
Fp_neg 9962152
Fp_red 1210857
Fp_sqr 7052008
Fp_sub 46038388
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 531902
FqX_Fq_mul 553901
FqX_add 904275
FqX_deriv 266833
FqX_div 6244
FqX_div_by_X_x 5761
FqX_divrem 329
FqX_extgcd 40357
FqX_factor 70665
FqX_gcd 258510
FqX_get_red 5605
FqX_mul 83978
FqX_mulu 459861
FqX_neg 16438
FqX_normalize 12092
FqX_powu 1428
FqX_red 9541
FqX_rem 48310
FqX_roots 3500
FqX_sqr 4928
FqX_sub 2380
Fq_red 1360646
Fq_to_FpXQ 10955
GENbinbase 77491853
QV_isscalar 6778147
Q_abs 618081
Q_abs_shallow 38310
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 243642
RgC_gtofp 379995
RgC_gtomp 560
RgM_dimensions 116879
RgM_fpnorml2 1617
RgM_gtofp 19277
RgM_gtomp 14
RgM_inv 31538
RgM_minor 1008
RgM_shallowcopy 5729767
RgV_is_QV 147
RgV_is_ZV 2426475
RgV_isscalar 8196
RgXQX_div 7
RgXQX_rem 34853
RgXQ_mul 439057
RgXQ_sqr 212203
RgX_coeff 2219778
RgX_copy 62646594
RgX_div 6102770
RgX_equal_var 4395904
RgX_fpnorml2 11023
RgX_gtofp 480551
RgX_is_QX 159365
RgX_is_ZX 56959195
RgX_is_monomial 15103110
RgX_is_rational 2667
RgX_isscalar 0
RgX_rem 2706972
RgX_renormalize 310625
RgX_shift_inplace 578168
RgX_shift_inplace_init 578161
Rg_col_ei 3860873
ZC_hnfrem 885885
ZM_hnfrem 56957
ZM_lll 1351986
ZV_dvd 23198
ZV_isscalar 1476723
ZV_to_zv 219609
ZXQ_mul 114639
ZXQ_sqr 19789
ZX_ZXY_resultant 0
ZX_equal1 17711
ZX_renormalize 74678484
Z_ispower 14
Z_issquare 1975097
abgrp_get_cyc 1025829
abgrp_get_gen 272687
abgrp_get_no 10052
absfrac 1918422
absfrac_shallow 11473
addmuliu 7000
addmuliu_inplace 255443265
affc_fixlg 183569
affgr 180734
bid_get_U 420836
bid_get_arch 95680
bid_get_cyc 513142
bid_get_fact 140715
bid_get_gen 6125
bid_get_gen_nocheck 0
bid_get_grp 519785
bid_get_ideal 83385
bid_get_mod 366904
bid_get_no 0
bin_copy 38746909
bit_accuracy 1072391713
bit_accuracy_mul 450788
bit_prec 26177992
bnf_get_clgp 559185
bnf_get_cyc 292847
bnf_get_fu 7895
bnf_get_fu_nocheck 14034
bnf_get_gen 265197
bnf_get_logfu 426570
bnf_get_nf 1184166
bnf_get_no 987
bnf_get_reg 671
bnf_get_tuN 8519
bnf_get_tuU 6825
bnr_get_bid 198014
bnr_get_bnf 399626
bnr_get_clgp 230242
bnr_get_cyc 218545
bnr_get_gen 2562
bnr_get_gen_nocheck 70
bnr_get_mod 10990
bnr_get_nf 3955
bnr_get_no 9065
both_odd 15921948
cbrtr 11908
cgetalloc 4847
cgetc 193363
cgiv 27754964
closure_arity 185976637
closure_codestr 151477637
closure_get_code 0
closure_get_data 151378523
closure_get_dbg 16225
closure_get_frame 577346
closure_get_oper 151411529
closure_get_text 34417
closure_is_variadic 34381405
col_ei 1925399
const_col 23928
const_vec 9929571
const_vecsmall 5308044
constant_coeff 17547472
cxcompotor 2050386
cxnorm 7558150
cxtofp 1023509
cyclic_perm 0
dbllog2r 16520728
degpol 2587195445
divsBIL 3562971211
ellQp_get_p 469
ellQp_get_prec 140
ellQp_get_zero 616
ellR_get_prec 36512
ellR_get_sign 1318
ell_get_a1 4961611
ell_get_a2 3255472
ell_get_a3 4434938
ell_get_a4 4053913
ell_get_a6 4627115
ell_get_b2 3946152
ell_get_b4 1008232
ell_get_b6 1611611
ell_get_b8 1455972
ell_get_c4 6320362
ell_get_c6 8302294
ell_get_disc 9781980
ell_get_j 1173536
ell_get_type 7478637
ell_is_inf 31351391
ellff_get_a4a6 314063
ellff_get_field 795822
ellinf 625080
ellnf_get_bnf 28
ellnf_get_nf 520814
equali1 214986742
equalim1 23571185
err_get_compo 70
err_get_num 46662
gabsz 0
gaddgs 7309803
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 435676
gdivz 0
gen_I 425012
gener_Fq_local 511
gequalgs 22960
gerepileall 5007607
gerepilecoeffs 8
gerepilecopy 34489096
gerepilemany 68267
gerepileupto 627607044
gerepileuptoint 1091907735
gerepileuptoleaf 526848719
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 5747133
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 613862
gsubz 0
gtodouble 25094079
gtofp 19895380
gtomp 22400
gtos 64432743
gtou 83110
gval 2044
icopy_avma 3668948160
idealchineseinit 1197
idealpseudomin 168933
idealpseudomin_nonscalar 252473
idealpseudored 1316
idealred 166505
idealred_elt 336
identity_perm 67284
inf_get_sign 25761
is_bigint 129954492
is_const_t 892976047
is_extscalar_t 627757
is_intreal_t 817775
is_matvec_t 354379410
is_noncalc_t 52861488
is_pm1 1528471259
is_rational_t 579842
is_real_t 53431
is_recursive_t 2522287287
is_scalar_t 153877974
is_universal_constant 17318090
is_vec_t 400428
isint1 5952606
isintm1 301
isintzero 343464661
ismpzero 817698
isonstack 2274217126
killblock 1364294
leading_coeff 76496026
leafcopy_avma 91764356
lgcols 55489680
lgpol 1237903545
lincombii 18804174
matpascal 938
matslice 102389
mkcol 2122032
mkcol2 14760333
mkcol2s 1189972
mkcol3 41615
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 680
mkcolcopy 27078
mkcols 0
mkcomplex 2953422
mkerr 0
mkfrac 424930
mkfraccopy 2436862
mkintmod 336396
mkintmodu 3780
mkmat 218031
mkmat2 16634493
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7616
mkmoo 7301
mkoo 11701
mkpolmod 257971
mkqfi 158123
mkquad 42
mkrfrac 4984
mkrfraccopy 14
mkvec 3188371
mkvec2 20605319
mkvec2copy 258395
mkvec2s 11550
mkvec3 65087941
mkvec3s 492702
mkvec4 7280402
mkvec4s 7
mkvec5 11757689
mkveccopy 33187
mkvecs 7
mkvecsmall 47327627
mkvecsmall2 105278863
mkvecsmall3 65899603
mkvecsmall4 9496297
mkvecsmall5 611368
modpr_get_T 3438334
modpr_get_p 596379
modpr_get_pr 8156957
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 242944
mul_denom 168809
mulsubii 1677762
nbits2extraprec 268402541
nbits2lg 3373590
nbits2ndec 165
nbits2nlong 805642
nbits2prec 78870924
nbrows 14596796
nchar2nlong 6933713
ndec2nbits 443
ndec2nlong 22715
ndec2prec 22272
nf_get_G 42276
nf_get_M 966046
nf_get_Tr 798
nf_get_degree 5361109
nf_get_diff 812
nf_get_disc 22933
nf_get_index 742585
nf_get_invzk 1929802
nf_get_pol 10519789
nf_get_r1 1062417
nf_get_r2 1057
nf_get_ramified_primes 21
nf_get_roots 90966
nf_get_roundG 378162
nf_get_sign 5967
nf_get_varn 7363
nf_get_zk 8399485
normalize_frac 8784214
odd 1406907322
pari_calloc 28544
pari_err_BUG 14
pari_err_COMPONENT 224
pari_err_CONSTPOL 7
pari_err_COPRIME 70
pari_err_DIM 890
pari_err_DOMAIN 5089
pari_err_FILE 0
pari_err_FLAG 21
pari_err_IMPL 238
pari_err_INV 732
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 49
pari_err_PRIORITY 112
pari_err_ROOTS0 35
pari_err_SQRTN 77
pari_err_TYPE 24418
pari_err_TYPE2 3010
pari_err_VAR 490
pari_free 47074674
pari_malloc 184905007
pari_realloc 765821
pari_stack_alloc 328114256
pari_stack_base 330610193
pari_stack_delete 2424255
pari_stack_init 2818093
pari_stack_new 274340362
pari_stack_pushp 5452
perm_conj 35
perm_inv 3815
perm_mul 20491373
pol0_F2x 7231375
pol0_Flx 42555380
pol1_F2x 1789317
pol1_Flx 16117288
pol_0 13798518
pol_1 1173720
pol_x 669212
polx_F2x 282454
polx_Flx 16969680
polx_zx 0
powIs 819
powii 378532
pr_get_e 3036924
pr_get_f 5777267
pr_get_gen 2211860
pr_get_p 16448435
pr_get_tau 3973335
pr_is_inert 600160
pr_norm 356021
prec2nbits 1156742520
prec2nbits_mul 253990
prec2ndec 12001
precdbl 1679
qfb_disc 5919942
qfb_disc3 6011782
quad_disc 252
quadnorm 623
remsBIL 3493364467
resultant 25843
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 33474
rnf_get_nf 124271
rnf_get_nfdegree 14728
rnf_get_nfpol 106323
rnf_get_nfvarn 490
rnf_get_nfzk 1652
rnf_get_pol 462147
rnf_get_polabs 93905
rnf_get_varn 0
rnf_get_zk 2415
row 115618
row_i 2177
rowcopy 56
rowpermute 197875
rowslice 186994
rowslicepermute 32670
ser_isexactzero 3809584
shallowcopy 1496401
sqrfrac 1012251
sqrti 4209692
sqrtnr 35028
sqrtr 14713165
sturm 441
submulii 41252254
submuliu 7000
submuliu_inplace 256100714
truecoeff 0
trunc_safe 0
vec_append 56021
vec_ei 300931
vec_lengthen 10570
vec_setconst 1729
vec_shorten 0
vec_to_vecsmall 231691
vecpermute 4862766
vecreverse 4759630
vecreverse_inplace 232
vecslice 4302722
vecslicepermute 130350
vecsmall_append 356748
vecsmall_coincidence 0
vecsmall_concat 235116
vecsmall_copy 2054004
vecsmall_ei 9170
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 2763075
vecsmall_max 35725
vecsmall_min 133
vecsmall_pack 84
vecsmall_prefixcmp 47066978
vecsmall_prepend 1120
vecsmall_reverse 252
vecsmall_shorten 132486
vecsmall_to_col 1130738
vecsmall_to_vec 15218
vecsmallpermute 20074383
vecsmalltrunc_append 2552250
vecsmalltrunc_init 1299372
vecsplice 8610
vectrunc_append 43059079
vectrunc_append_batch 0
vectrunc_init 11522055
zc_to_ZC 1093183
zero_F2m 0
zero_F2m_copy 108774
zero_F2v 584279
zero_F2x 56
zero_Flm 175
zero_Flm_copy 103728
zero_Flv 27224184
zero_Flx 290813
zero_zm 0
zero_zv 13964254
zero_zx 0
zerocol 28622364
zeromat 6419
zeromatcopy 2443367
zeropadic 292257
zeropadic_shallow 329
zeropol 4416091
zeroser 12054
zerovec 7724984
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
zv_copy 1357704
zv_to_ZV 8407
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11