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 18946-c0ba5ba) Lines: 1199 1335 89.8 %
Date: 2016-05-26 Functions: 502 566 88.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 538 636 84.6 %

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 12391619
F2m_copy 1631
F2m_flip 370699
F2m_set 1660726
F2v_clear 2200940
F2v_coeff 102090255
F2v_copy 0
F2v_ei 7
F2v_flip 370699
F2v_set 13897655
F2v_to_F2x 5978
F2x_clear 2200940
F2x_coeff 105800455
F2x_copy 36488198
F2x_div 1139600
F2x_equal 1273056
F2x_equal1 823864
F2x_flip 370699
F2x_renormalize 81292497
F2x_set 34017148
F2xqX_div 140700
Flm_copy 484398
Flm_row 23721
Flv_copy 1591038
Flx_copy 68733596
Flx_div 3113548
Flx_equal1 5146488
Flx_lead 414491
Flx_mulu 772640
FlxqX_div 141506
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 917
FpXQX_renormalize 1233576
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 999326
FpX_div 609411
FpX_renormalize 94574300
Fp_add 313026459
Fp_addmul 2141427
Fp_center 4604839
Fp_div 4687862
Fp_halve 19591
Fp_inv 7736740
Fp_invsafe 307473
Fp_mul 285861959
Fp_muls 231
Fp_mulu 54366012
Fp_neg 10073452
Fp_red 1210535
Fp_sqr 6721368
Fp_sub 47479433
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 531552
FqX_Fq_mul 554167
FqX_add 904275
FqX_deriv 32662
FqX_div 6244
FqX_div_by_X_x 5761
FqX_divrem 329
FqX_extgcd 40224
FqX_factor 1603
FqX_gcd 24339
FqX_get_red 5605
FqX_mul 83908
FqX_mulu 459861
FqX_neg 16438
FqX_normalize 12029
FqX_powu 1428
FqX_red 9541
FqX_rem 48310
FqX_roots 3500
FqX_sqr 4928
FqX_sub 2380
Fq_red 1679084
Fq_to_FpXQ 7021
GENbinbase 76710313
QV_isscalar 5890114
Q_abs 584740
Q_abs_shallow 38261
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 243642
RgC_gtofp 379134
RgC_gtomp 560
RgM_dimensions 116816
RgM_fpnorml2 1617
RgM_gtofp 19088
RgM_gtomp 14
RgM_inv 31447
RgM_minor 651
RgM_shallowcopy 5195598
RgV_is_QV 14
RgV_is_ZV 1487759
RgV_isscalar 8196
RgXQX_div 7
RgXQX_rem 34818
RgXQ_mul 439948
RgXQ_sqr 214292
RgX_coeff 2097516
RgX_copy 62605744
RgX_div 6112031
RgX_equal_var 4117577
RgX_fpnorml2 10834
RgX_gtofp 480566
RgX_is_QX 159260
RgX_is_ZX 57227531
RgX_is_monomial 15216942
RgX_is_rational 2667
RgX_isscalar 0
RgX_rem 2715491
RgX_renormalize 307237
RgX_shift_inplace 576693
RgX_shift_inplace_init 576689
Rg_col_ei 3365464
ZC_hnfrem 881968
ZM_hnfrem 53238
ZM_lll 1217341
ZV_dvd 23198
ZV_isscalar 1473587
ZV_to_zv 219609
ZXQ_mul 114625
ZXQ_sqr 19712
ZX_ZXY_resultant 0
ZX_equal1 18035
ZX_renormalize 77704885
Z_ispower 14
Z_issquare 719036
abgrp_get_cyc 1025668
abgrp_get_gen 272659
abgrp_get_no 10052
absfrac 1883701
absfrac_shallow 11466
addmuliu 7000
addmuliu_inplace 255452300
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 38356132
bit_accuracy 1080597359
bit_accuracy_mul 623400
bit_prec 24880028
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 1196948
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 16652697
cbrtr 11916
cgetalloc 6879
cgetc 193244
cgiv 26221438
closure_arity 185408604
closure_codestr 153586043
closure_get_code 0
closure_get_data 153580757
closure_get_dbg 58449
closure_get_frame 551056
closure_get_oper 153609587
closure_get_text 118872
closure_is_variadic 31614187
col_ei 1444154
const_col 23788
const_vec 7545543
const_vecsmall 4095517
constant_coeff 17482275
cxcompotor 2094461
cxnorm 7789954
cxtofp 1045508
cyclic_perm 0
dbllog2r 23224754
degpol 1987373497
divsBIL 3542488326
ellQp_get_p 245
ellQp_get_prec 84
ellQp_get_zero 336
ellR_get_prec 707
ellR_get_sign 1318
ell_get_a1 2049617
ell_get_a2 1420206
ell_get_a3 2064612
ell_get_a4 2034791
ell_get_a6 2444866
ell_get_b2 2083453
ell_get_b4 449408
ell_get_b6 841149
ell_get_b8 690032
ell_get_c4 5087535
ell_get_c6 5449756
ell_get_disc 6768108
ell_get_j 950530
ell_get_type 7049918
ell_is_inf 31748074
ellff_get_a4a6 357893
ellff_get_field 913855
ellinf 596223
ellnf_get_nf 97279
equali1 202011731
equalim1 21679952
err_get_compo 70
err_get_num 131096
gabsz 0
gaddgs 7308247
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 6898843
gerepilecoeffs 8
gerepilecopy 27028056
gerepilemany 64457
gerepileupto 554966726
gerepileuptoint 1003609036
gerepileuptoleaf 402933077
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 5834252
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 613370
gsubz 0
gtodouble 34425200
gtofp 21664460
gtomp 22400
gtos 60902574
gtou 31760
gval 2100
icopy_avma 3490152956
idealchineseinit 1197
idealpseudomin 168828
idealpseudomin_nonscalar 252473
idealpseudored 1309
idealred 166400
idealred_elt 336
identity_perm 67277
inf_get_sign 25565
is_bigint 112493325
is_const_t 892147546
is_extscalar_t 626123
is_intreal_t 822079
is_matvec_t 345519478
is_noncalc_t 51463667
is_pm1 1408801711
is_rational_t 579016
is_real_t 53431
is_recursive_t 2454735417
is_scalar_t 154350220
is_universal_constant 28105698
is_vec_t 415009
isint1 5892342
isintm1 301
isintzero 339631689
ismpzero 822002
isonstack 1987691214
killblock 1200083
leading_coeff 78835862
leafcopy_avma 91170113
lgcols 41835578
lgpol 1022535295
lincombii 17038617
matpascal 798
matslice 105875
mkcol 1632692
mkcol2 13912543
mkcol2s 1609412
mkcol3 41146
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 680
mkcolcopy 27057
mkcols 0
mkcomplex 2958037
mkerr 0
mkfrac 339085
mkfraccopy 3066238
mkintmod 332738
mkintmodu 3780
mkmat 217968
mkmat2 13466184
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7588
mkmoo 7266
mkoo 11540
mkpolmod 257166
mkqfi 158123
mkquad 42
mkrfrac 4984
mkrfraccopy 14
mkvec 3043620
mkvec2 14678363
mkvec2copy 164539
mkvec2s 11515
mkvec3 68348413
mkvec3s 492702
mkvec4 4190692
mkvec4s 7
mkvec5 11615771
mkveccopy 33187
mkvecs 7
mkvecsmall 52111460
mkvecsmall2 87930206
mkvecsmall3 44285057
mkvecsmall4 4639003
mkvecsmall5 400598
modpr_get_T 993598
modpr_get_p 2331
modpr_get_pr 2188715
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 242573
mul_denom 168039
mulsubii 1621992
nbits2extraprec 340185334
nbits2lg 3315862
nbits2ndec 1181
nbits2nlong 807960
nbits2prec 96813401
nbrows 13615696
nchar2nlong 10390168
ndec2nbits 1452
ndec2nlong 23542
ndec2prec 22090
nf_get_G 42234
nf_get_M 962987
nf_get_Tr 798
nf_get_degree 2881401
nf_get_diff 812
nf_get_disc 22730
nf_get_index 600394
nf_get_invzk 1353536
nf_get_pol 6553599
nf_get_r1 1059225
nf_get_r2 1057
nf_get_ramified_primes 21
nf_get_roots 90763
nf_get_roundG 378050
nf_get_sign 5953
nf_get_varn 7363
nf_get_zk 6087624
normalize_frac 9431297
odd 554181211
pari_calloc 38492
pari_err_BUG 14
pari_err_COMPONENT 224
pari_err_CONSTPOL 7
pari_err_COPRIME 70
pari_err_DIM 890
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 308
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 36605
pari_err_TYPE2 2989
pari_err_VAR 490
pari_free 46777414
pari_malloc 176926479
pari_realloc 756549
pari_stack_alloc 328663624
pari_stack_base 328646597
pari_stack_delete 28563
pari_stack_init 2674675
pari_stack_new 278013508
pari_stack_pushp 9516
perm_conj 35
perm_inv 3801
perm_mul 18792495
pol0_F2x 7515166
pol0_Flx 48334587
pol1_F2x 1833369
pol1_Flx 18111357
pol_0 14358229
pol_1 1027501
pol_x 509925
polx_F2x 260476
polx_Flx 9308479
polx_zx 0
powIs 819
powii 339003
pr_get_e 1178466
pr_get_f 4499004
pr_get_gen 1959454
pr_get_p 7615653
pr_get_tau 3495473
pr_is_inert 560694
pr_norm 84477
prec2nbits 1170099279
prec2nbits_mul 254229
prec2ndec 12884
precdbl 1687
qfb_disc 4222973
qfb_disc3 4314813
quad_disc 252
quadnorm 623
remsBIL 3472031832
resultant 25822
rnf_get_absdegree 156247
rnf_get_alpha 455
rnf_get_degree 310737
rnf_get_disc 63
rnf_get_idealdisc 427
rnf_get_index 105
rnf_get_invzk 1162
rnf_get_k 455
rnf_get_map 33404
rnf_get_nf 124026
rnf_get_nfdegree 14693
rnf_get_nfpol 106225
rnf_get_nfvarn 490
rnf_get_nfzk 1617
rnf_get_pol 461937
rnf_get_polabs 93863
rnf_get_varn 0
rnf_get_zk 2324
row 114778
row_i 2177
rowcopy 56
rowpermute 207251
rowslice 189293
rowslicepermute 32050
ser_isexactzero 3783219
shallowcopy 1098117
sqrfrac 162038
sqrti 2956175
sqrtnr 34988
sqrtr 12525192
sturm 441
submulii 41294414
submuliu 7000
submuliu_inplace 256100856
truecoeff 0
trunc_safe 0
vec_append 56021
vec_ei 301680
vec_lengthen 10570
vec_setconst 1729
vec_shorten 0
vec_to_vecsmall 231642
vecpermute 4867898
vecreverse 1323067
vecreverse_inplace 232
vecslice 3868965
vecslicepermute 128420
vecsmall_append 360360
vecsmall_coincidence 0
vecsmall_concat 235200
vecsmall_copy 2051856
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 112422
vecsmall_to_col 957384
vecsmall_to_vec 15084
vecsmallpermute 18363948
vecsmalltrunc_append 2510040
vecsmalltrunc_init 1298931
vecsplice 6412
vectrunc_append 10555713
vectrunc_append_batch 0
vectrunc_init 2159967
zc_to_ZC 919829
zero_F2m 0
zero_F2m_copy 106856
zero_F2v 586807
zero_F2x 77
zero_Flm 175
zero_Flm_copy 48801
zero_Flv 26832798
zero_Flx 319459
zero_zm 0
zero_zv 14514779
zero_zx 0
zerocol 24132613
zeromat 6405
zeromatcopy 2168746
zeropadic 279027
zeropadic_shallow 329
zeropol 4417048
zeroser 11872
zerovec 6261902
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
zv_copy 1272178
zv_to_ZV 8407
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.9