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 18889-ac2cbba) Lines: 1200 1337 89.8 %
Date: 2016-05-01 Functions: 503 566 88.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 539 638 84.5 %

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 11835036
F2m_copy 1631
F2m_flip 358624
F2m_set 1566054
F2v_clear 2164348
F2v_coeff 96620986
F2v_copy 0
F2v_ei 7
F2v_flip 358624
F2v_set 13571384
F2v_to_F2x 5936
F2x_clear 2164348
F2x_coeff 99644627
F2x_copy 33305716
F2x_div 1139418
F2x_equal 1273056
F2x_equal1 807169
F2x_flip 358624
F2x_renormalize 70809080
F2x_set 33523973
F2xqX_div 139783
Flm_copy 484486
Flm_row 23182
Flv_copy 1590892
Flx_copy 62341832
Flx_div 3117158
Flx_equal1 5047203
Flx_lead 414500
Flx_mulu 761644
FlxqX_div 137062
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 60
FpXQX_renormalize 979830
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 951600
FpX_div 609572
FpX_renormalize 80473074
Fp_add 308420326
Fp_addmul 2442390
Fp_center 4603477
Fp_div 4710613
Fp_halve 18555
Fp_inv 7955229
Fp_invsafe 327417
Fp_mul 286186035
Fp_muls 231
Fp_mulu 56372279
Fp_neg 9599274
Fp_red 1210965
Fp_sqr 6924512
Fp_sub 43472112
FqXQ_add 0
FqXQ_div 21821
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_mul 134067
FqXQ_pow 0
FqXQ_sqr 49923
FqXQ_sub 0
FqX_Fp_mul 531552
FqX_Fq_mul 554627
FqX_add 904275
FqX_deriv 32662
FqX_div 6244
FqX_div_by_X_x 5761
FqX_divrem 329
FqX_extgcd 40217
FqX_factor 1603
FqX_gcd 24339
FqX_get_red 5539
FqX_mul 84300
FqX_mulu 462617
FqX_neg 5539
FqX_normalize 12022
FqX_powu 1428
FqX_red 9541
FqX_rem 34252
FqX_roots 3500
FqX_sqr 5068
FqX_sub 132517
Fq_red 980209
Fq_to_FpXQ 5621
GENbinbase 76929766
QV_isscalar 5885004
Q_abs 586875
Q_abs_shallow 38695
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 243642
RgC_gtofp 379785
RgC_gtomp 560
RgM_dimensions 116732
RgM_fpnorml2 1617
RgM_gtofp 19200
RgM_gtomp 14
RgM_inv 31433
RgM_minor 651
RgM_shallowcopy 5194048
RgV_is_QV 0
RgV_is_ZV 1491917
RgV_isscalar 8189
RgXQX_div 7
RgXQX_rem 34601
RgXQ_mul 439731
RgXQ_sqr 214292
RgX_coeff 2097516
RgX_copy 62634122
RgX_div 6112010
RgX_equal_var 4117717
RgX_fpnorml2 10820
RgX_gtofp 480775
RgX_is_QX 160233
RgX_is_ZX 57231317
RgX_is_monomial 15216816
RgX_is_rational 2667
RgX_isscalar 0
RgX_rem 2727934
RgX_renormalize 307237
RgX_shift_inplace 555980
RgX_shift_inplace_init 555981
Rg_col_ei 3363128
ZC_hnfrem 881968
ZM_hnfrem 53238
ZM_lll 1217229
ZV_dvd 23198
ZV_isscalar 1473517
ZV_to_zv 219609
ZXQ_mul 115815
ZXQ_sqr 20293
ZX_ZXY_resultant 0
ZX_equal1 12609
ZX_renormalize 73090741
Z_ispower 14
Z_issquare 719036
abgrp_get_cyc 1025668
abgrp_get_gen 272659
abgrp_get_no 10052
absfrac 1891912
absfrac_shallow 12019
addmuliu 7000
addmuliu_inplace 255449364
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 38465858
bit_accuracy 1032604960
bit_accuracy_mul 620007
bit_prec 24887699
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 1196941
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 16651952
cbrtr 11916
cgetalloc 6879
cgetc 193244
cgiv 26210858
closure_arity 185385741
closure_codestr 153611671
closure_get_code 0
closure_get_data 153549523
closure_get_dbg 58449
closure_get_frame 551059
closure_get_oper 153597952
closure_get_text 118872
closure_is_variadic 31614065
col_ei 1444621
const_col 24005
const_vec 7526414
const_vecsmall 4093974
constant_coeff 17479010
cxcompotor 2094461
cxnorm 7798207
cxtofp 1045508
cyclic_perm 0
dbllog2r 23225886
degpol 1887525283
divsBIL 3505326155
ellQp_get_p 245
ellQp_get_prec 84
ellQp_get_zero 336
ellR_get_prec 707
ellR_get_sign 1318
ell_get_a1 2049600
ell_get_a2 1420187
ell_get_a3 2064597
ell_get_a4 2034773
ell_get_a6 2444847
ell_get_b2 2083454
ell_get_b4 449408
ell_get_b6 841149
ell_get_b8 690032
ell_get_c4 5087538
ell_get_c6 5449762
ell_get_disc 6768112
ell_get_j 950530
ell_get_type 7049886
ell_is_inf 31828752
ellff_get_a4a6 357882
ellff_get_field 913803
ellinf 596210
ellnf_get_nf 97279
equali1 194025871
equalim1 21670152
err_get_compo 70
err_get_num 131236
gabsz 0
gaddgs 7308191
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 441273
gdivz 0
gen_I 425292
gener_Fq_local 511
gequalgs 23079
gerepileall 6901524
gerepilecoeffs 8
gerepilecopy 27108300
gerepilemany 64457
gerepileupto 544163446
gerepileuptoint 980179571
gerepileuptoleaf 410246026
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 5828680
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 613328
gsubz 0
gtodouble 34425130
gtofp 21668861
gtomp 22400
gtos 60892682
gtou 31746
gval 2100
icopy_avma 3465522674
idealchineseinit 1197
idealpseudomin 168828
idealpseudomin_nonscalar 252473
idealpseudored 1309
idealred 166400
idealred_elt 336
identity_perm 67270
inf_get_sign 25705
is_bigint 112553122
is_const_t 892040547
is_extscalar_t 625829
is_intreal_t 822079
is_matvec_t 345488192
is_noncalc_t 51486263
is_pm1 1407979081
is_rational_t 582047
is_real_t 53431
is_recursive_t 2326671183
is_scalar_t 154313638
is_universal_constant 30346000
is_vec_t 415051
isint1 5881869
isintm1 301
isintzero 338870994
ismpzero 822002
isonstack 1960749498
killblock 1075560
leading_coeff 70514783
leafcopy_avma 91031523
lgcols 41821287
lgpol 869554223
lincombii 17035835
matpascal 798
matslice 105875
mkcol 1630001
mkcol2 13906949
mkcol2s 1609412
mkcol3 41146
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 680
mkcolcopy 27057
mkcols 0
mkcomplex 2958211
mkerr 0
mkfrac 339085
mkfraccopy 3074576
mkintmod 332740
mkintmodu 3780
mkmat 217926
mkmat2 13466988
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7581
mkmoo 7252
mkoo 11624
mkpolmod 256557
mkqfi 158123
mkquad 42
mkrfrac 4984
mkrfraccopy 14
mkvec 3041718
mkvec2 14654426
mkvec2copy 163755
mkvec2s 11620
mkvec3 71218645
mkvec3s 492702
mkvec4 4190055
mkvec4s 7
mkvec5 11615897
mkveccopy 33187
mkvecs 7
mkvecsmall 47319226
mkvecsmall2 87314212
mkvecsmall3 44283989
mkvecsmall4 4638127
mkvecsmall5 400598
modpr_get_T 993598
modpr_get_p 2331
modpr_get_pr 2188715
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 256552
mul_denom 169957
mulsubii 1622255
nbits2extraprec 340192106
nbits2lg 3370466
nbits2ndec 1181
nbits2nlong 776776
nbits2prec 96818284
nbrows 13607022
nchar2nlong 10610781
ndec2nbits 1452
ndec2nlong 23647
ndec2prec 22195
nf_get_G 42220
nf_get_M 962952
nf_get_Tr 798
nf_get_degree 2882591
nf_get_diff 812
nf_get_disc 22723
nf_get_index 600548
nf_get_invzk 1357057
nf_get_pol 6552591
nf_get_r1 1059183
nf_get_r2 1057
nf_get_ramified_primes 21
nf_get_roots 89223
nf_get_roundG 378050
nf_get_sign 5946
nf_get_varn 7363
nf_get_zk 6083438
normalize_frac 9432747
odd 551406356
pari_calloc 38387
pari_err_BUG 14
pari_err_COMPONENT 224
pari_err_CONSTPOL 7
pari_err_COPRIME 70
pari_err_DIM 848
pari_err_DOMAIN 5068
pari_err_FILE 0
pari_err_FLAG 21
pari_err_IMPL 231
pari_err_INV 725
pari_err_IRREDPOL 14
pari_err_MAXPRIME 0
pari_err_MODULUS 721
pari_err_OP 315
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 36745
pari_err_TYPE2 3024
pari_err_VAR 490
pari_free 46883660
pari_malloc 177226335
pari_realloc 759825
pari_stack_alloc 348864091
pari_stack_base 348939298
pari_stack_delete 28563
pari_stack_init 2688839
pari_stack_new 298261518
pari_stack_pushp 9516
perm_conj 35
perm_inv 3801
perm_mul 18792494
pol0_F2x 6598376
pol0_Flx 43542479
pol1_F2x 1758643
pol1_Flx 17495288
pol_0 14367871
pol_1 983785
pol_x 530381
polx_F2x 259875
polx_Flx 9309319
polx_zx 0
powIs 819
powii 339003
pr_get_e 1179082
pr_get_f 4502245
pr_get_gen 1962548
pr_get_p 7616164
pr_get_tau 3495585
pr_is_inert 563347
pr_norm 84456
prec2nbits 1122112843
prec2nbits_mul 254117
prec2ndec 12884
precdbl 1687
qfb_disc 4222973
qfb_disc3 4314813
quad_disc 252
quadnorm 623
remsBIL 3437880886
resultant 25815
rnf_get_absdegree 156121
rnf_get_alpha 455
rnf_get_degree 311507
rnf_get_disc 63
rnf_get_idealdisc 427
rnf_get_index 98
rnf_get_invzk 1057
rnf_get_k 455
rnf_get_map 34048
rnf_get_nf 123130
rnf_get_nfdegree 15568
rnf_get_nfpol 108038
rnf_get_nfvarn 490
rnf_get_nfzk 6314
rnf_get_pol 462735
rnf_get_polabs 83580
rnf_get_varn 0
rnf_get_zk 3178
row 114778
row_i 2177
rowcopy 56
rowpermute 206747
rowslice 189265
rowslicepermute 32050
ser_isexactzero 3783079
shallowcopy 1097893
sqrfrac 160484
sqrti 2955773
sqrtnr 35455
sqrtr 12533438
sturm 441
submulii 41294414
submuliu 7000
submuliu_inplace 256091763
truecoeff 0
trunc_safe 0
vec_append 56021
vec_ei 301197
vec_lengthen 10570
vec_setconst 1729
vec_shorten 0
vec_to_vecsmall 231635
vecpermute 4867037
vecreverse 1323067
vecreverse_inplace 232
vecslice 3868639
vecslicepermute 128420
vecsmall_append 360358
vecsmall_coincidence 0
vecsmall_concat 235186
vecsmall_copy 2040660
vecsmall_ei 9177
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 2763075
vecsmall_max 49400
vecsmall_min 133
vecsmall_pack 84
vecsmall_prefixcmp 47066978
vecsmall_prepend 1120
vecsmall_shorten 112520
vecsmall_to_col 957496
vecsmall_to_vec 15084
vecsmallpermute 18363947
vecsmalltrunc_append 2510040
vecsmalltrunc_init 1298931
vecsplice 6412
vectrunc_append 10555930
vectrunc_append_batch 0
vectrunc_init 2160131
zc_to_ZC 919941
zero_F2m 0
zero_F2m_copy 106260
zero_F2v 576644
zero_F2x 77
zero_Flm 175
zero_Flm_copy 48787
zero_Flv 21780598
zero_Flx 319383
zero_zm 0
zero_zv 14466461
zero_zx 0
zerocol 24129951
zeromat 6405
zeromatcopy 2168480
zeropadic 279020
zeropadic_shallow 329
zeropol 4418371
zeroser 11837
zerovec 6261237
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
zv_copy 1272048
zv_to_ZV 8407
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.9