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 21188-db834f2) Lines: 1269 1443 87.9 %
Date: 2017-10-20 06:23:07 Functions: 542 616 88.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 19319584
F2m_copy 362
F2m_flip 1360764
F2m_set 2352087
F2v_clear 4164049
F2v_coeff 162254628
F2v_copy 0
F2v_ei 7
F2v_flip 1360764
F2v_set 12560683
F2v_to_F2x 8604
F2x_clear 4164049
F2x_coeff 168771396
F2x_copy 69992138
F2x_div 2990412
F2x_equal 3546971
F2x_equal1 819384
F2x_flip 1360764
F2x_renormalize 123306170
F2x_set 38840830
F2xqX_div 33124
Flm_copy 1351213
Flm_row 3872042
Flv_copy 2312441
Flx_copy 74909097
Flx_div 3629339
Flx_equal1 4752353
Flx_lead 411815
Flx_mulu 695528
FlxqX_div 35405
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 4350
FpXQX_renormalize 1146421
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 1031928
FpX_div 830457
FpX_renormalize 55865095
Fp_add 81250124
Fp_addmul 7851744
Fp_center 15552648
Fp_div 2312939
Fp_halve 20122
Fp_inv 8654566
Fp_invsafe 300740
Fp_mul 55031818
Fp_muls 0
Fp_mulu 80536378
Fp_neg 12335266
Fp_red 80023618
Fp_sqr 62031638
Fp_sub 72378899
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 616801
FqX_Fq_mul 556098
FqX_add 903749
FqX_deriv 269885
FqX_div 5012
FqX_div_by_X_x 5957
FqX_divrem 0
FqX_extgcd 85057
FqX_factor 72961
FqX_gcd 257621
FqX_get_red 5605
FqX_halfgcd 0
FqX_mul 87389
FqX_mulu 459889
FqX_neg 16438
FqX_normalize 2821
FqX_powu 1183
FqX_red 27419
FqX_rem 47767
FqX_roots 6391
FqX_sqr 4760
FqX_sub 2380
FqX_to_mod 175
Fq_red 2246095
Fq_to_FpXQ 11800
GENbinbase 94165401
QV_isscalar 17393196
Q_abs 1169497
Q_abs_shallow 106034
Qtoss 0
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 155156
RgC_gtofp 292709
RgC_gtomp 560
RgM_dimensions 9936438
RgM_fpnorml2 3201
RgM_gtofp 20553
RgM_gtomp 14
RgM_inv 36387
RgM_minor 756
RgM_shallowcopy 6851153
RgV_gtofp 42
RgV_is_QV 4200
RgV_is_ZV 18290641
RgV_isscalar 3864
RgXQX_div 1792
RgXQX_rem 52089
RgXQ_mul 432765
RgXQ_sqr 281363
RgX_coeff 2224202
RgX_copy 85041333
RgX_div 6488909
RgX_equal_var 23328964
RgX_fpnorml2 8317
RgX_gtofp 636176
RgX_is_QX 120869
RgX_is_ZX 3502426
RgX_is_monomial 15516975
RgX_is_rational 5293
RgX_isscalar 0
RgX_renormalize 315497
RgX_shift_inplace 485453
RgX_shift_inplace_init 485453
Rg_col_ei 1237442
ZC_hnfrem 840059
ZM_hnfrem 35604
ZM_lll 1206538
ZV_dvd 23198
ZV_isscalar 2123118
ZV_to_zv 392124
ZXQ_mul 143451
ZXQ_sqr 35161
ZX_equal1 18272
ZX_renormalize 43388034
Z_ispower 14
Z_issquare 2225428
abgrp_get_cyc 2033778
abgrp_get_gen 396461
abgrp_get_no 49616
absfrac 8887620
absfrac_shallow 32308
addmuliu 7371
addmuliu_inplace 112319517
affc_fixlg 185736
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 47086070
bit_accuracy 981351923
bit_accuracy_mul 448708
bit_prec 26357413
bnf_get_clgp 806355
bnf_get_cyc 434282
bnf_get_fu 1806
bnf_get_fu_nocheck 7134
bnf_get_gen 367208
bnf_get_logfu 482141
bnf_get_nf 2064067
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 28926499
cbrtr 0
cbrtr_abs 0
cgetalloc 4229
cgetc 203084
cgiv 27529623
closure_arity 253474351
closure_codestr 217507842
closure_get_code 0
closure_get_data 217441845
closure_get_dbg 8483
closure_get_frame 1375161
closure_get_oper 217463851
closure_get_text 20515
closure_is_variadic 35599985
col_ei 1268681
const_col 128500
const_vec 7610407
const_vecsmall 4803567
constant_coeff 17565176
cxcompotor 2680958
cxnorm 9741448
cxtofp 1333030
cyclic_perm 54523
dbllog2r 17881254
degpol 2790457855
divsBIL 3079896506
ellQp_get_p 623
ellQp_get_prec 287
ellQp_get_zero 917
ellR_get_prec 36960
ellR_get_sign 8262
ell_get_a1 5287716
ell_get_a2 3095170
ell_get_a3 4515903
ell_get_a4 3888004
ell_get_a6 4704351
ell_get_b2 3968895
ell_get_b4 1021644
ell_get_b6 1627620
ell_get_b8 1464204
ell_get_c4 5899336
ell_get_c6 7931177
ell_get_disc 9365462
ell_get_j 1027341
ell_get_type 7907942
ell_is_inf 21510783
ellff_get_a4a6 678306
ellff_get_field 1561491
ellinf 787451
ellnf_get_bnf 49
ellnf_get_nf 501578
equali1 316582265
equalim1 52401193
err_get_compo 70
err_get_num 49624
gabsz 0
gaddgs 7403535
gaddz 23318
gal_get_den 15631
gal_get_e 63
gal_get_gen 1701
gal_get_group 65254
gal_get_invvdm 15631
gal_get_mod 15631
gal_get_orders 1351
gal_get_p 1225
gal_get_pol 19152
gal_get_roots 16009
gcmpgs 23890
gdiventz 0
gdivsg 462774
gdivz 0
gen_I 435976
gener_Fq_local 833
gequalgs 24367
gerepileall 6799957
gerepilecoeffs 8
gerepilecopy 41202576
gerepilemany 136927
gerepileupto 716118923
gerepileuptoint 1142894167
gerepileuptoleaf 604365330
get_F2x_degree 121429
get_F2x_mod 0
get_F2x_var 447838
get_F2xqX_degree 201243
get_F2xqX_mod 280
get_F2xqX_var 376026
get_Flx_degree 30315548
get_Flx_mod 5985027
get_Flx_var 16122030
get_FlxqX_degree 90138
get_FlxqX_mod 1003
get_FlxqX_var 356046
get_FpXQX_degree 1848
get_FpXQX_mod 142588
get_FpXQX_var 51984
get_FpX_degree 1829103
get_FpX_mod 415190
get_FpX_var 1635063
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 13258293
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 558170
gsubz 0
gtodouble 17290146
gtofp 18136513
gtomp 22400
gtos 68155788
gtou 117364
gval 2429
icopy_avma 3528648674
idealchineseinit 1267
idealpseudomin 157002
idealpseudomin_nonscalar 300506
idealpseudored 13097
idealred 162736
idealred_elt 0
identity_perm 719326
inf_get_sign 47776
is_bigint 175656682
is_const_t 1042395190
is_extscalar_t 5283
is_intreal_t 1021108
is_matvec_t 379163102
is_noncalc_t 50614866
is_pm1 1337317958
is_rational_t 752779
is_real_t 276325
is_recursive_t 2661345952
is_scalar_t 170976582
is_universal_constant 23904324
is_vec_t 858601
isint1 10059670
isintm1 5103
isintzero 518773745
ismpzero 1021031
isonstack 2491300825
killblock 1297471
leading_coeff 79319992
leafcopy_avma 155984516
lg_increase 346452671
lgcols 103469280
lgpol 1375789666
lincombii 28337934
logint 211463
matpascal 1029
matslice 526932
mkcol 2222477
mkcol2 24325340
mkcol2s 1181376
mkcol3 41615
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 4208
mkcolcopy 28977
mkcols 735
mkcomplex 3163046
mkerr 0
mkfrac 2340982
mkfraccopy 4044670
mkfracss 336
mkintmod 2157954
mkintmodu 3794
mkmat 4978413
mkmat2 18804288
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7445
mkmoo 13979
mkoo 24416
mkpolmod 1438230
mkqfi 158123
mkquad 42
mkrfrac 7
mkrfraccopy 7
mkvec 16822737
mkvec2 111404246
mkvec2copy 108962
mkvec2s 20046
mkvec3 74688130
mkvec3s 492702
mkvec4 7770694
mkvec4s 0
mkvec5 11951361
mkveccopy 33460
mkvecs 7
mkvecsmall 55344473
mkvecsmall2 112986997
mkvecsmall3 65338051
mkvecsmall4 23736055
mkvecsmall5 706926
modpr_get_T 2519999
modpr_get_p 609912
modpr_get_pr 8123292
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 279631
mul_denom 1536074
mulsubii 2222177
nbits2extraprec 244285704
nbits2lg 6555685
nbits2ndec 179
nbits2nlong 1182585
nbits2prec 78766686
nbrows 31782760
nchar2nlong 8717762
ndec2nbits 482
ndec2nlong 24549
ndec2prec 24067
nf_get_G 60567
nf_get_M 1215467
nf_get_Tr 24339
nf_get_degree 21247127
nf_get_diff 2191
nf_get_disc 46762
nf_get_index 751901
nf_get_invzk 2175385
nf_get_pol 27089928
nf_get_r1 1274407
nf_get_r2 8197
nf_get_ramified_primes 28
nf_get_roots 156884
nf_get_roundG 440285
nf_get_sign 13734
nf_get_varn 4185
nf_get_zk 77
nf_get_zkden 221661
nf_get_zkprimpart 219064
normalize_frac 13139745
odd 2125002073
pari_calloc 33842
pari_err_BUG 14
pari_err_COMPONENT 245
pari_err_CONSTPOL 7
pari_err_COPRIME 63
pari_err_DIM 452
pari_err_DOMAIN 1772
pari_err_FILE 0
pari_err_FLAG 28
pari_err_IMPL 357
pari_err_INV 19619
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 11467
pari_err_TYPE2 3045
pari_err_VAR 203
pari_free 55793724
pari_malloc 238697312
pari_realloc 684189
pari_stack_alloc 415212785
pari_stack_base 416772015
pari_stack_delete 1468010
pari_stack_init 1696939
pari_stack_new 345806091
pari_stack_pushp 4776
perm_conj 402990
perm_inv 1153731
perm_mul 48364430
pol0_F2x 11509361
pol0_Flx 45053036
pol1_F2x 2826497
pol1_Flx 18554203
pol_0 18714378
pol_1 1279297
pol_x 736451
pol_xn 2489531
pol_xnall 42
polx_F2x 672291
polx_Flx 18098509
polx_zx 0
powIs 1477
powii 231672
pr_get_e 2226406
pr_get_f 7774778
pr_get_gen 4837975
pr_get_p 18283303
pr_get_tau 5792000
pr_is_inert 2344113
pr_norm 206850
prec2nbits 1064865291
prec2nbits_mul 229911
prec2ndec 12099
precdbl 1651
qfb_disc 6264528
qfb_disc3 6345364
quad_disc 252
quadnorm 623
remsBIL 3045382328
rnf_get_absdegree 459823
rnf_get_alpha 448
rnf_get_degree 627011
rnf_get_disc 63
rnf_get_idealdisc 462
rnf_get_index 105
rnf_get_invzk 1190
rnf_get_k 448
rnf_get_map 35133
rnf_get_nf 127197
rnf_get_nfdegree 15274
rnf_get_nfpol 107590
rnf_get_nfvarn 595
rnf_get_nfzk 2485
rnf_get_pol 780703
rnf_get_polabs 94780
rnf_get_varn 0
rnf_get_zk 2856
row 178650
row_i 2177
rowcopy 63
rowpermute 3071175
rowslice 24956654
rowslicepermute 34342
rowsplice 133
ser_isexactzero 3700017
shallowcopy 8250707
sqrfrac 1245065
sqrti 5423421
sqrtnr 283401
sqrtr 16558081
sstoQ 18067
sturm 455
submulii 13699761
submuliu 7371
submuliu_inplace 113611439
truecoeff 0
trunc_safe 0
ulogint 4462294
upr_norm 40873
vec_append 59332
vec_ei 323156
vec_lengthen 10969
vec_prepend 49
vec_setconst 0
vec_shorten 0
vec_to_vecsmall 410163
vecpermute 6836690
vecreverse 5491550
vecreverse_inplace 232
vecslice 249361972
vecslicepermute 891794
vecsmall_append 3765586
vecsmall_coincidence 0
vecsmall_concat 768860
vecsmall_copy 1659091
vecsmall_ei 68825
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 7284169
vecsmall_max 42799
vecsmall_min 0
vecsmall_pack 84
vecsmall_prefixcmp 47068252
vecsmall_prepend 12663
vecsmall_reverse 252
vecsmall_shorten 178889
vecsmall_to_col 1300081
vecsmall_to_vec 68376
vecsmall_to_vec_inplace 938
vecsmallpermute 47109620
vecsmalltrunc_append 25858660
vecsmalltrunc_init 112293789
vecsplice 45164
vectrunc_append 49284276
vectrunc_append_batch 0
vectrunc_init 12711413
zc_to_ZC 1281076
zero_F2m 0
zero_F2m_copy 280239
zero_F2v 788799
zero_F2x 1390
zero_Flm 1035450
zero_Flm_copy 99387
zero_Flv 32855030
zero_Flx 784395
zero_zm 0
zero_zv 18391257
zero_zx 0
zerocol 27113427
zeromat 15435
zeromatcopy 2259421
zeropadic 303174
zeropadic_shallow 532
zeropol 6399411
zeroser 14532
zerovec 18581628
zerovec_block 16919
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
znstar_get_N 2519832
znstar_get_U 28322
znstar_get_Ui 40103
znstar_get_conreycyc 2735887
znstar_get_conreygen 1260686
znstar_get_cyc 101479
znstar_get_faN 2800315
znstar_get_gen 0
znstar_get_no 0
znstar_get_pe 1223516
zv_copy 2002567
zv_to_ZV 65219
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11