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 19619-c9e92b8) Lines: 1206 1360 88.7 %
Date: 2016-09-29 05:54:10 Functions: 511 577 88.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 12766067
F2m_copy 1631
F2m_flip 1341423
F2m_set 1613024
F2v_clear 3846177
F2v_coeff 104434958
F2v_copy 0
F2v_ei 7
F2v_flip 1341423
F2v_set 15219359
F2v_to_F2x 6762
F2x_clear 3846177
F2x_coeff 108261427
F2x_copy 46618006
F2x_div 1193623
F2x_equal 1703198
F2x_equal1 782481
F2x_flip 1341423
F2x_renormalize 103734093
F2x_set 36174846
F2xqX_div 29785
Flm_copy 339193
Flm_row 24668
Flv_copy 2609966
Flx_copy 77295520
Flx_div 3094947
Flx_equal1 4669466
Flx_lead 415556
Flx_mulu 665843
FlxqX_div 32535
Flxq_add 0
Flxq_sub 96
FpV_FpC_mul 0
FpXQX_div 940
FpXQX_renormalize 1058308
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 948782
FpX_div 754107
FpX_renormalize 91271372
Fp_add 359464591
Fp_addmul 1425935
Fp_center 5705665
Fp_div 4534103
Fp_halve 19788
Fp_inv 7875225
Fp_invsafe 286518
Fp_mul 342522989
Fp_muls 0
Fp_mulu 52701748
Fp_neg 9923415
Fp_red 1152371
Fp_sqr 6842585
Fp_sub 45286746
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 604460
FqX_Fq_mul 553995
FqX_add 903963
FqX_deriv 268982
FqX_div 2970
FqX_div_by_X_x 5957
FqX_divrem 329
FqX_extgcd 78358
FqX_factor 71498
FqX_gcd 254452
FqX_get_red 5605
FqX_halfgcd 0
FqX_mul 83525
FqX_mulu 459861
FqX_neg 16438
FqX_normalize 2016
FqX_powu 1428
FqX_red 27419
FqX_rem 47875
FqX_roots 5810
FqX_sqr 4760
FqX_sub 2380
Fq_red 1349075
Fq_to_FpXQ 10887
GENbinbase 79047953
QV_isscalar 7086639
Q_abs 608735
Q_abs_shallow 38303
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 259953
RgC_gtofp 393957
RgC_gtomp 560
RgM_dimensions 118911
RgM_fpnorml2 1738
RgM_gtofp 18943
RgM_gtomp 14
RgM_inv 31512
RgM_minor 756
RgM_shallowcopy 6527978
RgV_is_QV 147
RgV_is_ZV 2445299
RgV_isscalar 5307
RgXQX_div 7
RgXQX_rem 17248
RgXQ_mul 431371
RgXQ_sqr 211231
RgX_coeff 2219869
RgX_copy 61902659
RgX_div 6098011
RgX_equal_var 3798851
RgX_fpnorml2 6385
RgX_gtofp 485820
RgX_is_QX 161747
RgX_is_ZX 55010108
RgX_is_monomial 15106017
RgX_is_rational 2745
RgX_isscalar 0
RgX_rem 2464551
RgX_renormalize 310625
RgX_shift_inplace 582959
RgX_shift_inplace_init 582959
Rg_col_ei 4011819
ZC_hnfrem 825747
ZM_hnfrem 57825
ZM_lll 1373918
ZV_dvd 23198
ZV_isscalar 2029472
ZV_to_zv 224789
ZXQ_mul 116585
ZXQ_sqr 20517
ZX_ZXY_resultant 0
ZX_equal1 17992
ZX_renormalize 76158024
Z_ispower 14
Z_issquare 1975475
abgrp_get_cyc 1032715
abgrp_get_gen 275855
abgrp_get_no 10150
absfrac 1910154
absfrac_shallow 11421
addmuliu 7000
addmuliu_inplace 115140014
affc_fixlg 183809
affgr 180734
bid_get_U 423175
bid_get_arch 96033
bid_get_cyc 515288
bid_get_fact 362492
bid_get_gen 6188
bid_get_gen_nocheck 0
bid_get_grp 522071
bid_get_ideal 114412
bid_get_ind 118981
bid_get_mod 236560
bid_get_no 0
bid_get_sarch 239703
bid_get_sprk 215252
bin_copy 39524962
bit_accuracy 1059592152
bit_accuracy_mul 451310
bit_prec 24080976
bnf_get_clgp 565423
bnf_get_cyc 296029
bnf_get_fu 1799
bnf_get_fu_nocheck 3620
bnf_get_gen 268043
bnf_get_logfu 429509
bnf_get_nf 1185010
bnf_get_no 1029
bnf_get_reg 839
bnf_get_tuN 8603
bnf_get_tuU 2465
bnr_get_bid 198697
bnr_get_bnf 397254
bnr_get_clgp 231877
bnr_get_cyc 220075
bnr_get_gen 2611
bnr_get_gen_nocheck 70
bnr_get_mod 11018
bnr_get_nf 8197
bnr_get_no 9121
both_odd 8124712
cbrtr 12038
cgetalloc 4891
cgetc 200760
cgiv 26293758
closure_arity 186444123
closure_codestr 151845212
closure_get_code 0
closure_get_data 151752087
closure_get_dbg 16379
closure_get_frame 604998
closure_get_oper 151791785
closure_get_text 34634
closure_is_variadic 34463435
col_ei 2059104
const_col 25249
const_vec 11097821
const_vecsmall 5871757
constant_coeff 17559234
cxcompotor 2120126
cxnorm 8808754
cxtofp 1058354
cyclic_perm 0
dbllog2r 16986405
degpol 2533007158
divsBIL 2966608152
ellQp_get_p 623
ellQp_get_prec 287
ellQp_get_zero 917
ellR_get_prec 36946
ellR_get_sign 1325
ell_get_a1 5003811
ell_get_a2 3296444
ell_get_a3 4476615
ell_get_a4 4094199
ell_get_a6 4668031
ell_get_b2 3948612
ell_get_b4 1008988
ell_get_b6 1612780
ell_get_b8 1456980
ell_get_c4 6273906
ell_get_c6 8305223
ell_get_disc 9736879
ell_get_j 1174362
ell_get_type 8080621
ell_is_inf 34018420
ellff_get_a4a6 652415
ellff_get_field 1510108
ellinf 927157
ellnf_get_bnf 42
ellnf_get_nf 708337
equali1 214605224
equalim1 23575360
err_get_compo 70
err_get_num 46130
gabsz 0
gaddgs 7336622
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 2240
gal_get_roots 2191
gcmpgs 24114
gdiventz 0
gdivsg 443029
gdivz 0
gen_I 425245
gener_Fq_local 511
gequalgs 22953
gerepileall 4790723
gerepilecoeffs 8
gerepilecopy 35677612
gerepilemany 69958
gerepileupto 631404701
gerepileuptoint 1079704729
gerepileuptoleaf 524981003
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 5785279
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 614087
gsubz 0
gtodouble 25821122
gtofp 20089643
gtomp 22400
gtos 64431468
gtou 83089
gval 2037
icopy_avma 3641248343
idealchineseinit 1197
idealpseudomin 164660
idealpseudomin_nonscalar 251853
idealpseudored 1323
idealred 169695
idealred_elt 0
identity_perm 67009
inf_get_sign 25922
is_bigint 132634051
is_const_t 991961543
is_extscalar_t 376152
is_intreal_t 861732
is_matvec_t 349061782
is_noncalc_t 50923949
is_pm1 1527403681
is_rational_t 582218
is_real_t 53487
is_recursive_t 2524292256
is_scalar_t 152422779
is_universal_constant 17932624
is_vec_t 403019
isint1 6291487
isintm1 301
isintzero 363640409
ismpzero 861655
isonstack 2262495281
killblock 1370790
leading_coeff 76038644
leafcopy_avma 97497248
lgcols 61323201
lgpol 1256895893
lincombii 26937515
logint 397495
matpascal 938
matslice 102438
mkcol 2120677
mkcol2 14755086
mkcol2s 1189972
mkcol3 41615
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 687
mkcolcopy 27731
mkcols 6615
mkcomplex 2894030
mkerr 0
mkfrac 1757669
mkfraccopy 2429335
mkintmod 332071
mkintmodu 3780
mkmat 654672
mkmat2 14976599
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7096
mkmoo 7350
mkoo 11862
mkpolmod 247915
mkqfi 158123
mkquad 42
mkrfrac 5019
mkrfraccopy 14
mkvec 3561733
mkvec2 22961058
mkvec2copy 259295
mkvec2s 11774
mkvec3 65149432
mkvec3s 492702
mkvec4 7335414
mkvec4s 0
mkvec5 11767906
mkveccopy 33264
mkvecs 7
mkvecsmall 48876537
mkvecsmall2 106835168
mkvecsmall3 66061655
mkvecsmall4 9440690
mkvecsmall5 611369
modpr_get_T 1950020
modpr_get_p 602349
modpr_get_pr 6690703
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 234261
mul_denom 438770
mulsubii 2283943
nbits2extraprec 249785244
nbits2lg 4537058
nbits2ndec 165
nbits2nlong 1022336
nbits2prec 79270923
nbrows 16515943
nchar2nlong 7042234
ndec2nbits 443
ndec2nlong 22414
ndec2prec 21971
nf_get_G 45680
nf_get_M 987324
nf_get_Tr 826
nf_get_degree 4332592
nf_get_diff 1372
nf_get_disc 25976
nf_get_index 745058
nf_get_invzk 1307936
nf_get_pol 7981635
nf_get_r1 1103547
nf_get_r2 1057
nf_get_ramified_primes 35
nf_get_roots 101627
nf_get_roundG 380480
nf_get_sign 6104
nf_get_varn 7363
nf_get_zk 7825835
normalize_frac 7440797
odd 1299948627
pari_calloc 29111
pari_err_BUG 14
pari_err_COMPONENT 224
pari_err_CONSTPOL 7
pari_err_COPRIME 63
pari_err_DIM 918
pari_err_DOMAIN 5089
pari_err_FILE 0
pari_err_FLAG 21
pari_err_IMPL 252
pari_err_INV 578
pari_err_IRREDPOL 14
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 24180
pari_err_TYPE2 3010
pari_err_VAR 196
pari_free 48454073
pari_malloc 186162297
pari_realloc 777702
pari_stack_alloc 330926471
pari_stack_base 333470220
pari_stack_delete 2462701
pari_stack_init 2865191
pari_stack_new 277037021
pari_stack_pushp 5544
perm_conj 35
perm_inv 3815
perm_mul 20498898
pol0_F2x 9381290
pol0_Flx 44029356
pol1_F2x 2628812
pol1_Flx 17601032
pol_0 12987757
pol_1 1184652
pol_x 683618
pol_xn 2307134
pol_xnall 98
polx_F2x 464538
polx_Flx 17149083
polx_zx 0
powIs 847
powii 324870
pr_get_e 2475957
pr_get_f 6926009
pr_get_gen 2285399
pr_get_p 16057217
pr_get_tau 6035549
pr_is_inert 677324
pr_norm 336638
prec2nbits 1141491120
prec2nbits_mul 224402
prec2ndec 12001
precdbl 1707
qfb_disc 5919942
qfb_disc3 6011782
quad_disc 252
quadnorm 623
remsBIL 2899747020
resultant 35292
rnf_get_absdegree 156254
rnf_get_alpha 455
rnf_get_degree 310786
rnf_get_disc 63
rnf_get_idealdisc 427
rnf_get_index 105
rnf_get_invzk 1190
rnf_get_k 455
rnf_get_map 33950
rnf_get_nf 123438
rnf_get_nfdegree 14742
rnf_get_nfpol 106295
rnf_get_nfvarn 490
rnf_get_nfzk 1687
rnf_get_pol 462154
rnf_get_polabs 93450
rnf_get_varn 0
rnf_get_zk 2436
row 115695
row_i 2177
rowcopy 56
rowpermute 203366
rowslice 197837
rowslicepermute 34916
rowsplice 126
ser_isexactzero 3817881
shallowcopy 1515505
sqrfrac 1418427
sqrti 4643771
sqrtnr 34861
sqrtr 15161165
sturm 441
submulii 19036851
submuliu 7000
submuliu_inplace 116449596
truecoeff 0
trunc_safe 0
upr_norm 29358
vec_append 56021
vec_ei 302184
vec_lengthen 10584
vec_setconst 1736
vec_shorten 0
vec_to_vecsmall 235261
vecpermute 4981888
vecreverse 4759623
vecreverse_inplace 232
vecslice 4421894
vecslicepermute 139974
vecsmall_append 356748
vecsmall_coincidence 0
vecsmall_concat 235116
vecsmall_copy 2230144
vecsmall_ei 9226
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 2763075
vecsmall_max 35732
vecsmall_min 665
vecsmall_pack 84
vecsmall_prefixcmp 47066978
vecsmall_prepend 1225
vecsmall_reverse 252
vecsmall_shorten 136659
vecsmall_to_col 1133386
vecsmall_to_vec 15477
vecsmallpermute 20081691
vecsmalltrunc_append 2714989
vecsmalltrunc_init 1336600
vecsplice 8253
vectrunc_append 43060759
vectrunc_append_batch 0
vectrunc_init 11523069
zc_to_ZC 1095831
zero_F2m 0
zero_F2m_copy 277459
zero_F2v 763082
zero_F2x 56
zero_Flm 175
zero_Flm_copy 104012
zero_Flv 29555004
zero_Flx 759929
zero_zm 0
zero_zv 15895263
zero_zx 0
zerocol 28167162
zeromat 6636
zeromatcopy 2273331
zeropadic 302288
zeropadic_shallow 469
zeropol 4203636
zeroser 12082
zerovec 7997182
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
zv_copy 2147301
zv_to_ZV 8666
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11