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.10.0 lcov report (development 20924-e159ed0) Lines: 1252 1424 87.9 %
Date: 2017-08-21 06:23:16 Functions: 534 607 88.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 19320060
F2m_copy 362
F2m_flip 1360407
F2m_set 2352087
F2v_clear 4185658
F2v_coeff 162445700
F2v_copy 0
F2v_ei 7
F2v_flip 1360407
F2v_set 12564064
F2v_to_F2x 8758
F2x_clear 4185658
F2x_coeff 168942432
F2x_copy 69195867
F2x_div 2991896
F2x_equal 3549438
F2x_equal1 816816
F2x_flip 1360407
F2x_renormalize 130878790
F2x_set 38836322
F2xqX_div 30632
Flm_copy 1393770
Flm_row 4531114
Flv_copy 2345925
Flx_copy 78346276
Flx_div 3522857
Flx_equal1 4728483
Flx_lead 412717
Flx_mulu 682291
FlxqX_div 31785
Flxq_add 0
Flxq_sub 264
FpV_FpC_mul 0
FpXQX_div 961
FpXQX_renormalize 979125
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 952273
FpX_div 829254
FpX_renormalize 90476698
Fp_add 86249420
Fp_addmul 7877438
Fp_center 5851027
Fp_div 2296188
Fp_halve 19996
Fp_inv 8120238
Fp_invsafe 292442
Fp_mul 64352012
Fp_muls 0
Fp_mulu 80206349
Fp_neg 10856571
Fp_red 2440612
Fp_sqr 62133831
Fp_sub 75403924
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 617130
FqX_Fq_mul 552476
FqX_add 903963
FqX_deriv 270081
FqX_div 5161
FqX_div_by_X_x 5957
FqX_divrem 329
FqX_extgcd 85288
FqX_factor 72933
FqX_gcd 257861
FqX_get_red 5605
FqX_halfgcd 0
FqX_mul 87634
FqX_mulu 459889
FqX_neg 16438
FqX_normalize 3101
FqX_powu 1428
FqX_red 27419
FqX_rem 47875
FqX_roots 6391
FqX_sqr 4760
FqX_sub 2380
Fq_red 2166394
Fq_to_FpXQ 11443
GENbinbase 86571789
QV_isscalar 17398561
Q_abs 1386809
Q_abs_shallow 106013
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 155086
RgC_gtofp 292590
RgC_gtomp 560
RgM_dimensions 192146
RgM_fpnorml2 3194
RgM_gtofp 20539
RgM_gtomp 14
RgM_inv 43894
RgM_minor 756
RgM_shallowcopy 6793877
RgV_gtofp 42
RgV_is_QV 4200
RgV_is_ZV 18293861
RgV_isscalar 3864
RgXQX_div 0
RgXQX_rem 19103
RgXQ_mul 484266
RgXQ_sqr 278386
RgX_coeff 2224202
RgX_copy 95376639
RgX_div 6489875
RgX_equal_var 28795704
RgX_fpnorml2 8555
RgX_gtofp 634299
RgX_is_QX 123770
RgX_is_ZX 2830948
RgX_is_monomial 15526556
RgX_is_rational 5265
RgX_isscalar 0
RgX_rem 4723042
RgX_renormalize 315497
RgX_shift_inplace 467530
RgX_shift_inplace_init 467530
Rg_col_ei 1173353
ZC_hnfrem 840122
ZM_hnfrem 35604
ZM_lll 1162440
ZV_dvd 23198
ZV_isscalar 2129381
ZV_to_zv 392124
ZXQ_mul 141813
ZXQ_sqr 34965
ZX_equal1 17509
ZX_renormalize 75971010
Z_ispower 14
Z_issquare 2225428
abgrp_get_cyc 2033779
abgrp_get_gen 396469
abgrp_get_no 49616
absfrac 6666555
absfrac_shallow 32308
addmuliu 7371
addmuliu_inplace 110982149
affc_fixlg 186840
affgr 190202
bid_get_U 657396
bid_get_arch 448
bid_get_archp 375262
bid_get_cyc 1033043
bid_get_fact 395912
bid_get_fact2 354612
bid_get_gen 27692
bid_get_gen_nocheck 0
bid_get_grp 1061330
bid_get_ideal 44681
bid_get_mod 302504
bid_get_no 0
bid_get_sarch 29813
bid_get_sprk 354682
bin_copy 43289274
bit_accuracy 1169416930
bit_accuracy_mul 448453
bit_prec 25506249
bnf_get_clgp 806371
bnf_get_cyc 434290
bnf_get_fu 1806
bnf_get_fu_nocheck 7134
bnf_get_gen 367216
bnf_get_logfu 482157
bnf_get_nf 2064103
bnf_get_no 4536
bnf_get_reg 860
bnf_get_tuN 24535
bnf_get_tuU 5867
bnr_get_bid 384509
bnr_get_bnf 747465
bnr_get_clgp 520568
bnr_get_cyc 463560
bnr_get_gen 11025
bnr_get_gen_nocheck 70
bnr_get_mod 18102
bnr_get_nf 27104
bnr_get_no 45080
both_odd 7577086
cbrtr 0
cbrtr_abs 0
cgetalloc 4186
cgetc 204387
cgiv 26797624
closure_arity 247892348
closure_codestr 213159548
closure_get_code 0
closure_get_data 213097575
closure_get_dbg 8413
closure_get_frame 486828
closure_get_oper 213121793
closure_get_text 20375
closure_is_variadic 34489529
col_ei 1391278
const_col 93685
const_vec 7578617
const_vecsmall 4689872
constant_coeff 17565197
cxcompotor 2672092
cxnorm 9781252
cxtofp 1328604
cyclic_perm 0
dbllog2r 17890226
degpol 2678272656
divsBIL 3104271637
ellQp_get_p 623
ellQp_get_prec 287
ellQp_get_zero 917
ellR_get_prec 36960
ellR_get_sign 8262
ell_get_a1 5287713
ell_get_a2 3095172
ell_get_a3 4515900
ell_get_a4 3888006
ell_get_a6 4704353
ell_get_b2 3968891
ell_get_b4 1021637
ell_get_b6 1627613
ell_get_b8 1464204
ell_get_c4 5899338
ell_get_c6 7931180
ell_get_disc 9365459
ell_get_j 1027341
ell_get_type 7907943
ell_is_inf 21510957
ellff_get_a4a6 678312
ellff_get_field 1561501
ellinf 787430
ellnf_get_bnf 49
ellnf_get_nf 501578
equali1 284503842
equalim1 51604124
err_get_compo 70
err_get_num 30442
gabsz 0
gaddgs 7478759
gaddz 23318
gal_get_den 15631
gal_get_e 63
gal_get_gen 3927
gal_get_group 61516
gal_get_invvdm 15631
gal_get_mod 15631
gal_get_orders 3577
gal_get_p 1225
gal_get_pol 19152
gal_get_roots 16009
gcmpgs 23890
gdiventz 0
gdivsg 462973
gdivz 0
gen_I 436606
gener_Fq_local 833
gequalgs 24367
gerepileall 5358606
gerepilecoeffs 8
gerepilecopy 39476384
gerepilemany 136927
gerepileupto 794676258
gerepileuptoint 1220240426
gerepileuptoleaf 563606650
get_Flx_degree 30137452
get_Flx_mod 5985922
get_Flx_var 16072891
get_FlxqX_degree 28771
get_FlxqX_mod 0
get_FlxqX_var 355977
get_FpXQX_degree 1443
get_FpXQX_mod 142443
get_FpXQX_var 51040
get_FpX_degree 1537922
get_FpX_mod 399266
get_FpX_var 1485860
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 13275253
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 558327
gsubz 0
gtodouble 17274624
gtofp 18120880
gtomp 22400
gtos 67226975
gtou 136721
gval 2429
icopy_avma 3656055215
idealchineseinit 1274
idealpseudomin 156901
idealpseudomin_nonscalar 300359
idealpseudored 13104
idealred 162603
idealred_elt 0
identity_perm 611532
inf_get_sign 47587
is_bigint 581843927
is_const_t 1275667713
is_extscalar_t 53423
is_intreal_t 1023818
is_matvec_t 389623982
is_noncalc_t 50364287
is_pm1 1614626953
is_rational_t 765911
is_real_t 277777
is_recursive_t 3009724165
is_scalar_t 173845224
is_universal_constant 17437260
is_vec_t 862199
isint1 11713360
isintm1 5089
isintzero 521814697
ismpzero 1023741
isonstack 2605701206
killblock 1119773
leading_coeff 74377707
leafcopy_avma 157004511
lg_increase 507094412
lgcols 99017805
lgpol 1383803542
lincombii 41145583
logint 211281
matpascal 1029
matslice 212458
mkcol 2222280
mkcol2 14952388
mkcol2s 1181376
mkcol3 41615
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 4208
mkcolcopy 28820
mkcols 735
mkcomplex 3160502
mkerr 0
mkfrac 2396691
mkfraccopy 5436056
mkintmod 2063749
mkintmodu 3794
mkmat 730489
mkmat2 16241688
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7453
mkmoo 13923
mkoo 24339
mkpolmod 956718
mkqfi 158123
mkquad 42
mkrfrac 7
mkrfraccopy 7
mkvec 3739577
mkvec2 131922353
mkvec2copy 109248
mkvec2s 19997
mkvec3 73855444
mkvec3s 492702
mkvec4 7749989
mkvec4s 0
mkvec5 11957108
mkveccopy 33460
mkvecs 7
mkvecsmall 54813135
mkvecsmall2 110142823
mkvecsmall3 65047543
mkvecsmall4 23741543
mkvecsmall5 702726
modpr_get_T 2519934
modpr_get_p 609920
modpr_get_pr 8123123
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 279378
mul_denom 1535760
mulsubii 3698688
nbits2extraprec 241835203
nbits2lg 4160285
nbits2ndec 179
nbits2nlong 1123339
nbits2prec 79118323
nbrows 20942467
nchar2nlong 8217878
ndec2nbits 464
ndec2nlong 24496
ndec2prec 24032
nf_get_G 60462
nf_get_M 1221817
nf_get_Tr 24339
nf_get_degree 21256331
nf_get_diff 2191
nf_get_disc 46823
nf_get_index 752358
nf_get_invzk 2179940
nf_get_pol 27109476
nf_get_r1 1280572
nf_get_r2 8197
nf_get_ramified_primes 28
nf_get_roots 157574
nf_get_roundG 440145
nf_get_sign 13734
nf_get_varn 4185
nf_get_zk 77
nf_get_zkden 222143
nf_get_zkprimpart 219546
normalize_frac 17545256
odd 2102818353
pari_calloc 32400
pari_err_BUG 14
pari_err_COMPONENT 245
pari_err_CONSTPOL 7
pari_err_COPRIME 63
pari_err_DIM 438
pari_err_DOMAIN 1674
pari_err_FILE 0
pari_err_FLAG 28
pari_err_IMPL 371
pari_err_INV 712
pari_err_IRREDPOL 21
pari_err_MAXPRIME 0
pari_err_MODULUS 735
pari_err_OP 287
pari_err_OVERFLOW 84
pari_err_PACKAGE 0
pari_err_PREC 219
pari_err_PRIME 56
pari_err_PRIORITY 147
pari_err_ROOTS0 42
pari_err_SQRTN 77
pari_err_TYPE 11362
pari_err_TYPE2 3045
pari_err_VAR 203
pari_free 51469949
pari_malloc 232412931
pari_realloc 241569
pari_stack_alloc 405723632
pari_stack_base 406236941
pari_stack_delete 409101
pari_stack_init 474623
pari_stack_new 338161848
pari_stack_pushp 4649
perm_conj 506639
perm_inv 604070
perm_mul 46866982
pol0_F2x 11386043
pol0_Flx 44934175
pol1_F2x 2798944
pol1_Flx 18302220
pol_0 18285168
pol_1 1264103
pol_x 734795
pol_xn 2475405
pol_xnall 42
polx_F2x 672199
polx_Flx 18100728
polx_zx 0
powIs 840
powii 231628
pr_get_e 2233793
pr_get_f 7795290
pr_get_gen 4850682
pr_get_p 18301096
pr_get_tau 5804467
pr_is_inert 2347901
pr_norm 206850
prec2nbits 1251393973
prec2nbits_mul 231085
prec2ndec 12148
precdbl 1651
qfb_disc 6264528
qfb_disc3 6345364
quad_disc 252
quadnorm 623
remsBIL 3036956916
rnf_get_absdegree 763504
rnf_get_alpha 448
rnf_get_degree 944188
rnf_get_disc 63
rnf_get_idealdisc 455
rnf_get_index 105
rnf_get_invzk 1190
rnf_get_k 448
rnf_get_map 34965
rnf_get_nf 127666
rnf_get_nfdegree 15253
rnf_get_nfpol 107464
rnf_get_nfvarn 595
rnf_get_nfzk 2443
rnf_get_pol 1097551
rnf_get_polabs 96873
rnf_get_varn 0
rnf_get_zk 2835
row 178650
row_i 2177
rowcopy 56
rowpermute 2881050
rowslice 20398354
rowslicepermute 34476
rowsplice 133
ser_isexactzero 3702019
shallowcopy 2654960
sqrfrac 1248649
sqrti 5424910
sqrtnr 284810
sqrtr 16565398
sturm 455
submulii 13183106
submuliu 7371
submuliu_inplace 112337893
truecoeff 0
trunc_safe 0
ulogint 8269363
upr_norm 40873
vec_append 59332
vec_ei 336729
vec_lengthen 10906
vec_prepend 49
vec_setconst 0
vec_shorten 0
vec_to_vecsmall 410121
vecpermute 5437116
vecreverse 5491522
vecreverse_inplace 232
vecslice 202815181
vecslicepermute 738472
vecsmall_append 3765610
vecsmall_coincidence 0
vecsmall_concat 784662
vecsmall_copy 1658890
vecsmall_ei 69245
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 9456409
vecsmall_max 42799
vecsmall_min 0
vecsmall_pack 84
vecsmall_prefixcmp 47066978
vecsmall_prepend 12663
vecsmall_reverse 252
vecsmall_shorten 178489
vecsmall_to_col 1302465
vecsmall_to_vec 71232
vecsmall_to_vec_inplace 938
vecsmallpermute 45229643
vecsmalltrunc_append 25860128
vecsmalltrunc_init 168349608
vecsplice 45164
vectrunc_append 49284169
vectrunc_append_batch 0
vectrunc_init 12711271
zc_to_ZC 1283460
zero_F2m 0
zero_F2m_copy 280309
zero_F2v 790395
zero_F2x 1054
zero_Flm 891082
zero_Flm_copy 93237
zero_Flv 32304571
zero_Flx 792626
zero_zm 0
zero_zv 18070023
zero_zx 0
zerocol 28343738
zeromat 15470
zeromatcopy 2000878
zeropadic 303650
zeropadic_shallow 532
zeropol 7094556
zeroser 14959
zerovec 18210456
zerovec_block 16919
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
znstar_get_N 2519825
znstar_get_U 28322
znstar_get_Ui 40103
znstar_get_conreycyc 2735866
znstar_get_conreygen 1260686
znstar_get_cyc 101472
znstar_get_faN 2800280
znstar_get_gen 0
znstar_get_no 0
znstar_get_pe 1223516
zv_copy 2002577
zv_to_ZV 68075
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11