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.1 lcov report (development 22726-9e20c6a88) Lines: 1260 1424 88.5 %
Date: 2018-06-23 05:36:28 Functions: 557 632 88.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2v_copy 0
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQ_add 0
FpXQ_sub 0
Fp_muls 0
FqXQ_add 0
FqXQ_div 0
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_pow 0
FqXQ_sqr 0
FqXQ_sub 0
FqX_divrem 0
FqX_halfgcd 0
FqX_halve 0
FqX_integ 0
FqXn_exp 0
FqXn_inv 0
FqXn_mul 0
FqXn_sqr 0
R_abs 0
RgX_isscalar 0
bid_get_gen_nocheck 0
bid_get_no 0
cbrtr 0
cbrtr_abs 0
closure_get_code 0
gabsz 0
gdiventz 0
gdivz 0
get_F2x_mod 0
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gnegz 0
gshiftz 0
gsubz 0
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkerr 0
mkmat4 0
mkmat5 0
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
pari_err_FILE 0
pari_err_FILEDESC 0
pari_err_MAXPRIME 0
pari_err_PACKAGE 0
polx_zx 0
rnf_get_varn 0
sturm 0
truecoef 0
trunc_safe 0
vec_setconst 0
vec_shorten 0
vecsmall_coincidence 0
vecsmall_isin 0
zero_F2m 0
zero_zm 0
zero_zx 0
zm_copy 0
zm_row 0
zm_to_zxV 0
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0
FqX_ddf 7
FqX_factor_squarefree 7
mkrfrac 7
mkrfraccopy 7
mkvecs 7
pari_err_CONSTPOL 7
znstar_get_gen 7
znstar_get_no 7
RgM_gtomp 14
Z_ispower 14
gerepilecoeffs 14
pari_err_BUG 14
vecsmall_indexmax 14
vecsmall_indexmin 14
mkvec4s 21
vecsmall_lengthen 21
pari_err_IRREDPOL 28
F2v_ei 42
FqX_degfact 42
RgV_gtofp 42
pari_err_FLAG 42
pol_xnall 42
pari_err_ROOTS0 49
ellnf_get_bnf 56
pari_err_COPRIME 63
rnf_get_disc 63
bnr_get_gen_nocheck 70
pari_err_PRIME 70
err_get_compo 77
nf_get_ramified_primes 77
pari_err_SQRTN 77
gal_get_e 84
pari_err_OVERFLOW 84
vecsmall_pack 84
nf_get_zk 91
mkquad 105
rnf_get_index 105
rowsplice 133
pari_err_PRIORITY 175
nbits2ndec 186
FqX_to_mod 203
pari_err_COMPONENT 203
pari_err_VAR 203
zm_transpose 210
pari_err_PREC 218
vecsmall_reverse 252
vecreverse_inplace 260
mkcols 273
quad_disc 273
ellQp_get_prec 287
pari_err_OP 287
F2m_copy 303
R_abs_shallow 322
get_F2xqX_mod 378
pari_err_IMPL 420
ndec2nbits 476
pari_err_DIM 487
mkfracss 511
bid_get_arch 518
RgC_gtomp 560
rnf_get_alpha 609
quadnorm 623
rnf_get_idealdisc 700
rnf_get_k 742
pari_err_MODULUS 749
Rg_to_Fq 756
idealred_elt 770
RgV_is_QV 791
RgM_minor 833
bnf_get_reg 839
gener_Fq_local 903
zeropadic_shallow 966
matpascal 1071
ellQp_get_p 1085
rnf_get_invzk 1197
powIs 1239
FqX_powu 1288
gal_get_p 1309
gal_get_orders 1365
ellQp_get_zero 1407
vecsmall_min 1421
zero_F2x 1474
vecsmall_to_vec_inplace 1603
nf_get_r2 1673
gal_get_gen 1715
precdbl 1729
vec_prepend 1785
RgXQX_div 1792
bnf_get_fu 1806
pari_err_DOMAIN 1989
idealchineseinit 2058
row_i 2177
get_FpXQX_degree 2187
get_FlxqX_mod 2258
nf_get_diff 2310
mkmat3 2331
pari_err_TYPE2 3073
rnf_get_nfzk 3080
FqX_normalize 3178
rnf_get_zk 3213
FqX_sub 3234
rnf_get_nfvarn 3325
RgM_fpnorml2 3797
mkintmodu 3948
FpXQX_div 4347
nf_get_varn 4528
bnf_get_no 4557
isintm1 4613
pari_stack_pushp 4773
is_extscalar_t 5325
FqX_div 5523
cgetalloc 5771
bnf_get_tuU 5861
RgX_is_rational 5895
inv_content 5901
FqX_div_by_X_x 5936
FqX_get_red 6095
FqX_sqr 6468
gval 7021
FqX_roots 7126
bnf_get_fu_nocheck 7163
RgV_isscalar 7501
addmuliu 7595
submuliu 7595
mkcol6 8716
RgX_fpnorml2 9122
closure_get_dbg 9253
mkmat22s 9471
vectrunc_append_batch 10416
bnr_get_gen 11032
Qtoss 11319
gmulz 11673
ellR_get_sign 12106
Flx_constant 12348
prec2ndec 12358
pari_err_TYPE 12461
vec_lengthen 13328
mkmoo 13972
idealpseudored 14056
vecsmall_prepend 14155
gal_get_den 15904
gal_get_invvdm 15904
gal_get_mod 15946
zeromat 16072
gal_get_roots 16324
rnf_get_nfdegree 16394
FqX_neg 17404
zerovec_block 17605
bnr_get_mod 18081
ZX_equal1 18170
pari_err_INV 19702
mkvec2s 19766
nf_get_sign 19798
gal_get_pol 19880
mkmatcopy 21991
closure_get_text 22244
FqXQ_mul 22348
gtomp 22400
ZV_dvd 23198
gaddz 23318
Fp_halve 23592
nf_get_Tr 24360
gequalgs 24570
bnf_get_tuN 24661
mkoo 25222
FqX_red 25431
ndec2prec 27385
bid_get_gen 27769
bnr_get_nf 27783
ndec2nlong 27861
znstar_get_Ui 28518
bid_get_sarch 29925
F2v_to_F2x 32397
absfrac_shallow 32427
F2xqX_div 33278
FlxqX_div 34803
mkveccopy 35084
pari_calloc 35109
ZM_hnfrem 35587
ellR_get_prec 37156
rowslicepermute 38458
upr_norm 39487
gcmpgs 39703
mkcol3 42385
Fq_to_FpXQ 43439
bnr_get_no 45066
mkcolcopy 46024
bid_get_ideal 46333
abgrp_get_no 49630
nf_get_disc 49805
inf_get_sign 50188
err_get_num 51890
FqX_rem 53108
get_FpXQX_var 57357
vec_append 61117
RgXQX_rem 65141
gal_get_group 66983
vecsmall_ei 71379
nf_get_G 73824
FqX_factor 74459
FqX_extgcd 86987
mkvec2copy 91310
get_FlxqX_degree 91460
FqX_mul 95992
rnf_get_map 96768
cyclic_perm 98434
zero_Flm_copy 104208
idealred 109444
Q_abs_shallow 113685
znstar_get_U 118111
get_F2x_degree 121352
gtou 122941
idealpseudomin 127731
RgM_gtofp 133850
gerepilemany 136068
get_FpXQX_mod 142586
zeroser 143465
vecsmall_max 153656
mkqfi 158123
znstar_get_cyc 167405
RgC_fpnorml2 177877
affc_fixlg 187003
rnf_get_nfpol 188580
affgr 190202
get_F2xqX_degree 201397
cgetc 204104
rowcopy 204820
rnf_get_polabs 205170
logint 212410
cxtoreal 217180
pr_norm 217505
prec2nbits_mul 234821
nf_get_zkprimpart 247776
nf_get_zkden 248911
powii 251203
vecsplice 252462
FqX_gcd 259098
RgX_is_QX 262962
FqX_deriv 272895
zero_F2m_copy 276697
ZXQ_sqr 277922
nf_get_roots 291001
idealpseudomin_nonscalar 297163
bid_get_mod 301797
zeropadic 303790
mul_content 308611
Fp_invsafe 313854
vec_ei 326495
RgX_renormalize 353293
bid_get_fact2 353926
bid_get_sprk 353926
bnf_get_gen 367112
get_FlxqX_var 368931
sqrtnr 373659
bid_get_archp 374576
is_real_t 375953
get_F2xqX_var 376068
bnr_get_bid 384607
rnf_get_nf 384706
nf_get_roundG 385478
row 390121
bid_get_fact 395387
abgrp_get_gen 396463
zv_to_ZV 414192
perm_conj 416934
vecsmall_to_vec 417804
bnf_get_cyc 434165
ZV_to_zv 438611
get_F2x_var 447936
gen_I 450643
vec_to_vecsmall 457483
bnr_get_cyc 459458
mkvecsmall5 466226
RgX_shift_inplace 469116
RgX_shift_inplace_init 469116
Flx_lead 480209
bnf_get_logfu 481722
FqX_mulu 489744
mkvec3s 492724
znstar_get_pe 515200
bnr_get_clgp 516417
ZXQ_mul 555362
bit_accuracy_mul 563625
FqX_Fq_mul 587707
modpr_get_p 609497
pari_realloc 639647
bid_get_U 655933
FqX_Fp_mul 655996
Rg_col_ei 657808
gdivsg 672016
ellff_get_a4a6 682504
polx_F2x 685568
ellnf_get_nf 699475
identity_perm 716137
vecsmall_shorten 731009
RgX_gtofp 732158
bnr_get_bnf 746758
nf_get_index 765849
FpXX_renormalize 771228
rnf_get_absdegree 775698
vecsmall_concat 781819
zero_F2v 793369
vecslicepermute 799012
bnf_get_clgp 806163
ellinf 809065
F2x_equal1 811891
Flx_mulu 842496
ZC_hnfrem 843561
znstar_get_conreygen 880516
FpX_div 884881
zero_Flm 906770
zero_Flx 923605
FqX_add 957187
pol_x 965495
ismpzero 1024899
ell_get_b4 1024935
is_intreal_t 1024976
ell_get_j 1028902
bid_get_cyc 1031251
bid_get_grp 1059615
is_rational_t 1133417
gsubgs 1141677
perm_inv 1153044
closure_get_frame 1165576
RgC_gtofp 1176398
nbits2nlong 1186450
mulsubii 1188646
is_vec_t 1190449
rnf_get_degree 1233638
FpXQX_renormalize 1237205
sqrfrac 1251380
killblock 1255929
col_ei 1311173
Flm_copy 1312702
F2m_set 1362615
pari_stack_delete 1432372
ell_get_b8 1464001
rnf_get_pol 1479849
pol_1 1500958
F2m_flip 1502488
F2v_flip 1502488
F2x_flip 1502498
mkmat22 1533021
ellff_get_field 1569145
mul_denom 1603315
get_FpX_mod 1608416
cxtofp 1629876
ell_get_b6 1630603
pari_stack_init 1699099
ulogint 1810842
vecsmall_copy 1863883
get_FpX_degree 1881072
zv_copy 1901935
bnf_get_nf 2062415
abgrp_get_cyc 2093693
mkcol2s 2149882
znstar_get_faN 2197545
pr_get_e 2266270
Flv_copy 2271860
Z_issquare 2330769
nf_get_invzk 2336905
Fp_div 2366847
ZM_lll 2380790
mkcol 2417404
mkmat 2513237
modpr_get_T 2520246
mkpolmod 2541189
vecsmall_append 2545418
F2x_div 2598915
pol_xn 2626646
mkintmod 2732688
Fq_red 2798281
nf_get_M 2821378
pol1_F2x 2867161
znstar_get_conreycyc 2872359
get_FpX_var 2889585
rowpermute 2953143
RgX_coeff 2954365
pr_is_inert 3051717
ell_get_a2 3095671
F2x_equal 3113099
cxcompotor 3286398
ell_get_b2 3318504
matslice 3594757
Flm_row 3710364
ell_get_a3 3861568
ell_get_a4 3888616
ell_get_a1 3979613
nf_get_r1 4092298
gaddgs 4097983
RgX_is_ZX 4271708
Flx_div 4336942
RgX_equal_var 4478745
mkfraccopy 4622524
checkell_i 4624365
ell_get_a6 4704796
F2v_clear 4712343
F2x_clear 4712344
zeromatcopy 4751354
Flx_equal1 4835631
zc_to_ZC 4932408
vecsmall_to_col 4951413
ZV_isscalar 4976037
Fp_addmul 5030423
zeropol 5490644
ZX_is_monic 5556892
ser_isexactzero 5587102
RgM_dimensions 5649795
sqrti 5673817
vecreverse 5830315
pr_get_tau 6141785
ell_get_c4 6166987
vecpermute 6234339
pr_get_gen 6272970
qfb_disc 6399771
qfb_disc3 6480621
RgX_div 6701926
isint1 7013156
mkvec4 7252519
mkcomplex 7368957
ell_get_c6 7403493
get_Flx_mod 7444140
gerepileall 7471945
Q_abs 7543011
nbits2lg 7637108
vecsmall_lexcmp 8065634
modpr_get_pr 8126610
const_vecsmall 8233486
const_vec 8317558
nchar2nlong 8531718
const_col 8625405
Fp_inv 8713229
pr_get_f 8715685
F2v_set 8952122
ell_get_disc 9653553
RgM_shallowcopy 9920622
cxnorm 11073931
pol0_F2x 11160470
ell_get_type 11455823
Fp_neg 11628428
F2m_coeff 11670980
mkvecsmall4 11931264
mkvec5 11967750
shallowcopy 12406159
vectrunc_init 12698309
gmulgs 13206473
mkfrac 13242960
submulii 13409415
mkvec 14006918
normalize_frac 14701538
Fp_center_i 14911583
pol_0 15290049
RgX_is_monomial 15894186
Fp_center 16304143
zero_zv 17126252
constant_coeff 17566674
polx_Flx 17648393
zerovec 18742978
QV_isscalar 19351531
pr_get_p 19370650
znstar_get_N 19934208
get_Flx_var 20036354
lincombii 20302902
sqrtr 21645307
rowslice 21817613
absfrac 21928522
dbllog2r 21997877
pol1_Flx 22779906
mkcol2 23605049
is_universal_constant 24153498
nf_get_degree 24710675
RgV_is_ZV 27023126
mkmat2 28847053
both_odd 28847675
nf_get_pol 30918114
get_Flx_degree 31452803
cgiv 31465531
bit_prec 31698017
F2x_set 32783924
vecsmalltrunc_append 33040053
zero_Flv 33275645
nbrows 33450935
gtodouble 33565238
Fp_red 33685154
ell_is_inf 33933394
Fp_sqr 34256673
gtofp 35271269
closure_is_variadic 35441751
sstoQ 35866474
zerocol 35940829
vecsmallpermute 44810959
perm_mul 46051101
ZX_renormalize 47163549
gerepilecopy 48388248
vectrunc_append 51300278
pol0_Flx 56911953
Fp_sub 57038472
RgX_copy 57773863
mkvecsmall3 58196148
bin_copy 58360956
is_noncalc_t 59160484
F2x_copy 59276948
equalim1 62131749
FpX_renormalize 65958695
Fp_mulu 66065931
pari_free 66981116
mkvecsmall 70966219
Fp_add 72006912
mkvec3 72986703
gtos 73013096
leading_coeff 81485664
vecsmalltrunc_init 82737052
Flx_copy 83206039
vecsmall_prefixcmp 85155511
Fp_mul 90914785
mkvec2 95590081
F2v_coeff 95889690
F2x_coeff 100479554
nbits2prec 106359482
F2x_renormalize 111432071
lgcols 115471142
GENbinbase 116714934
addmuliu_inplace 119301670
submuliu_inplace 120894702
mkvecsmall2 121009785
leafcopy_avma 171603384
is_scalar_t 179012552
closure_get_data 192410355
closure_get_oper 192428833
closure_codestr 192470833
vecslice 197050778
is_bigint 220067021
closure_arity 228187591
lg_increase 253327747
pari_malloc 278818255
nbits2extraprec 288480950
pari_stack_new 325631221
is_matvec_t 400428084
pari_stack_alloc 403451352
pari_stack_base 404841082
equali1 435445566
isintzero 536448982
gerepileuptoleaf 630289474
gerepileupto 758930437
bit_accuracy 1004483733
prec2nbits 1112403050
is_const_t 1160077871
is_pm1 1173625741
gerepileuptoint 1213968227
lgpol 1365758815
odd 2141971111
isonstack 2634360297
degpol 2798350185
is_recursive_t 2870179277
remsBIL 3258150160
divsBIL 3298884171
icopy_avma 3730416057

Generated by: LCOV version 1.13