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 21501-1931cb9) Lines: 1231 1395 88.2 %
Date: 2017-12-16 06:20:36 Functions: 548 619 88.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 13901159
F2m_copy 369
F2m_flip 1360610
F2m_set 1722871
F2v_clear 4098453
F2v_coeff 102868854
F2v_copy 0
F2v_ei 42
F2v_flip 1360610
F2v_set 9746887
F2v_to_F2x 8604
F2x_clear 4098453
F2x_coeff 106756430
F2x_copy 69712679
F2x_div 2987495
F2x_equal 3544989
F2x_equal1 819454
F2x_flip 1360610
F2x_renormalize 122659630
F2x_set 34845435
F2xqX_div 33166
Flm_copy 1340383
Flm_row 3728913
Flv_copy 2331256
Flx_copy 75158418
Flx_div 3630627
Flx_equal1 4754556
Flx_lead 413531
Flx_mulu 695857
FlxqX_div 35406
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 4378
FpXQX_renormalize 1135228
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 1032887
FpX_div 824707
FpX_renormalize 60696993
Fp_add 70226188
Fp_addmul 5137610
Fp_center 14981347
Fp_div 2318918
Fp_halve 21063
Fp_inv 8307988
Fp_invsafe 311878
Fp_mul 65412350
Fp_muls 0
Fp_mulu 68344739
Fp_neg 12354944
Fp_red 80365457
Fp_sqr 37565697
Fp_sub 56037800
FqXQ_add 0
FqXQ_div 0
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_mul 21172
FqXQ_pow 0
FqXQ_sqr 0
FqXQ_sub 0
FqX_Fp_mul 618810
FqX_Fq_mul 557799
FqX_add 906955
FqX_deriv 269983
FqX_div 5005
FqX_div_by_X_x 5957
FqX_divrem 0
FqX_extgcd 84616
FqX_factor 72968
FqX_gcd 257649
FqX_get_red 5654
FqX_halfgcd 0
FqX_mul 89741
FqX_mulu 462192
FqX_neg 16557
FqX_normalize 2807
FqX_powu 1197
FqX_red 24717
FqX_rem 48173
FqX_roots 6349
FqX_sqr 5152
FqX_sub 2576
FqX_to_mod 175
Fq_red 2847487
Fq_to_FpXQ 43321
GENbinbase 100079032
QV_isscalar 17382787
Q_abs 7144205
Q_abs_shallow 106020
Qtoss 19257
R_abs 0
R_abs_shallow 322
RgC_fpnorml2 155310
RgC_gtofp 1046551
RgC_gtomp 560
RgM_dimensions 9936382
RgM_fpnorml2 3222
RgM_gtofp 118848
RgM_gtomp 14
RgM_minor 637
RgM_shallowcopy 7069977
RgV_gtofp 42
RgV_is_QV 707
RgV_is_ZV 18260221
RgV_isscalar 3850
RgXQX_div 1792
RgXQX_rem 53655
RgXQ_mul 407166
RgXQ_sqr 238857
RgX_coeff 2420860
RgX_copy 64029890
RgX_div 6552973
RgX_equal_var 4070491
RgX_fpnorml2 8443
RgX_gtofp 638104
RgX_is_QX 116130
RgX_is_ZX 3908152
RgX_is_monomial 15558566
RgX_is_rational 5300
RgX_isscalar 0
RgX_renormalize 344736
RgX_shift_inplace 468309
RgX_shift_inplace_init 468309
Rg_col_ei 1225972
ZC_hnfrem 839660
ZM_hnfrem 35611
ZM_lll 1204188
ZV_dvd 23198
ZV_isscalar 2115392
ZV_to_zv 390003
ZXQ_mul 143577
ZXQ_sqr 35042
ZX_equal1 18083
ZX_is_monic 4941040
ZX_renormalize 45915994
Z_ispower 14
Z_issquare 2297538
abgrp_get_cyc 2075436
abgrp_get_gen 391807
abgrp_get_no 49658
absfrac 20657446
absfrac_shallow 32329
addmuliu 7371
addmuliu_inplace 113553708
affc_fixlg 185862
affgr 190202
bid_get_U 653980
bid_get_arch 448
bid_get_archp 373575
bid_get_cyc 1024461
bid_get_fact 394288
bid_get_fact2 352904
bid_get_gen 27755
bid_get_gen_nocheck 0
bid_get_grp 1052811
bid_get_ideal 45871
bid_get_mod 300796
bid_get_no 0
bid_get_sarch 29855
bid_get_sprk 352974
bin_copy 50042894
bit_accuracy 984544005
bit_accuracy_mul 589381
bit_prec 26795990
bnf_get_clgp 796613
bnf_get_cyc 429215
bnf_get_fu 1806
bnf_get_fu_nocheck 7022
bnf_get_gen 362491
bnf_get_logfu 480477
bnf_get_nf 2042340
bnf_get_no 4578
bnf_get_reg 860
bnf_get_tuN 24556
bnf_get_tuU 5762
bnr_get_bid 379455
bnr_get_bnf 737154
bnr_get_clgp 511923
bnr_get_cyc 454915
bnr_get_gen 11025
bnr_get_gen_nocheck 70
bnr_get_mod 18123
bnr_get_nf 27342
bnr_get_no 45080
both_odd 28985649
cbrtr 0
cbrtr_abs 0
cgetalloc 4217
cgetc 203718
cgiv 28329578
closure_arity 219894306
closure_codestr 184173632
closure_get_code 0
closure_get_data 184146403
closure_get_dbg 8798
closure_get_frame 1099903
closure_get_oper 184155583
closure_get_text 21145
closure_is_variadic 35340122
col_ei 1266557
const_col 130355
const_vec 7633503
const_vecsmall 4912052
constant_coeff 17565146
cxcompotor 2814116
cxnorm 10551993
cxtofp 1399581
cyclic_perm 54523
dbllog2r 18225025
degpol 2813086797
divsBIL 3105746403
ellQp_get_p 847
ellQp_get_prec 287
ellQp_get_zero 1141
ellR_get_prec 37128
ellR_get_sign 8290
ell_get_a1 5284575
ell_get_a2 3093901
ell_get_a3 4513168
ell_get_a4 3886889
ell_get_a6 4703166
ell_get_b2 3967562
ell_get_b4 1021063
ell_get_b6 1626857
ell_get_b8 1463735
ell_get_c4 5950566
ell_get_c6 7982566
ell_get_disc 9416734
ell_get_j 1027299
ell_get_type 7955612
ell_is_inf 22267951
ellff_get_a4a6 677277
ellff_get_field 1559623
ellinf 808102
ellnf_get_bnf 49
ellnf_get_nf 501277
equali1 315675604
equalim1 53206883
err_get_compo 63
err_get_num 50354
gabsz 0
gaddgs 10233327
gaddz 23318
gal_get_den 15631
gal_get_e 63
gal_get_gen 1701
gal_get_group 65023
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 25997
gdiventz 0
gdivsg 721848
gdivz 0
gen_I 442960
gener_Fq_local 833
gequalgs 24395
gerepileall 6971123
gerepilecoeffs 8
gerepilecopy 40814731
gerepilemany 133154
gerepileupto 730187789
gerepileuptoint 1097913935
gerepileuptoleaf 618894156
get_F2x_degree 121240
get_F2x_mod 0
get_F2x_var 447404
get_F2xqX_degree 201019
get_F2xqX_mod 280
get_F2xqX_var 375690
get_Flx_degree 30094246
get_Flx_mod 6091673
get_Flx_var 16144035
get_FlxqX_degree 90111
get_FlxqX_mod 1003
get_FlxqX_var 356343
get_FpXQX_degree 1848
get_FpXQX_mod 142588
get_FpXQX_var 52369
get_FpX_degree 1831420
get_FpX_mod 542866
get_FpX_var 1779644
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 13342924
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 931850
gsubz 0
gtodouble 18278968
gtofp 25427004
gtomp 22400
gtos 68181509
gtou 119503
gval 2569
icopy_avma 3525881589
idealchineseinit 1274
idealpseudomin 156162
idealpseudomin_nonscalar 295032
idealpseudored 13104
idealred 161910
idealred_elt 14
identity_perm 692800
inf_get_sign 47782
inv_content 833
is_bigint 280319797
is_const_t 1018031617
is_extscalar_t 5311
is_intreal_t 1018804
is_matvec_t 354879339
is_noncalc_t 50953504
is_pm1 1227802445
is_rational_t 754117
is_real_t 303874
is_recursive_t 2709275862
is_scalar_t 172252741
is_universal_constant 23628376
is_vec_t 915041
isint1 6825825
isintm1 4473
isintzero 528142625
ismpzero 1018727
isonstack 2475621507
killblock 1208597
leading_coeff 80210449
leafcopy_avma 153533967
lg_increase 351661459
lgcols 98642312
lgpol 1382698026
lincombii 28248931
logint 211533
matpascal 1057
matslice 3691597
mkcol 2493593
mkcol2 25260696
mkcol2s 2145346
mkcol3 42329
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 4222
mkcolcopy 28865
mkcols 735
mkcomplex 3215648
mkerr 0
mkfrac 12057529
mkfraccopy 4051772
mkfracss 385
mkintmod 1561004
mkintmodu 3801
mkmat 4976517
mkmat2 19963241
mkmat22 1621417
mkmat22s 9184
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7459
mkmoo 14392
mkoo 23544
mkpolmod 1674368
mkqfi 158123
mkquad 42
mkrfrac 7
mkrfraccopy 7
mkvec 15851414
mkvec2 112470246
mkvec2copy 108311
mkvec2s 19850
mkvec3 73980871
mkvec3s 492716
mkvec4 8560322
mkvec4s 21
mkvec5 11929628
mkveccopy 33852
mkvecs 7
mkvecsmall 56491310
mkvecsmall2 114330933
mkvecsmall3 65733238
mkvecsmall4 23976516
mkvecsmall5 459343
modpr_get_T 2516272
modpr_get_p 609907
modpr_get_pr 8117180
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 280417
mul_denom 1562450
mulsubii 2218705
nbits2extraprec 249321060
nbits2lg 6576993
nbits2ndec 186
nbits2nlong 1145677
nbits2prec 90841333
nbrows 31349876
nchar2nlong 8164608
ndec2nbits 482
ndec2nlong 26068
ndec2prec 25586
nf_get_G 60189
nf_get_M 1206854
nf_get_Tr 24332
nf_get_degree 21226978
nf_get_diff 2191
nf_get_disc 46729
nf_get_index 746722
nf_get_invzk 2163952
nf_get_pol 27044709
nf_get_r1 1265522
nf_get_r2 8197
nf_get_ramified_primes 28
nf_get_roots 156604
nf_get_roundG 434139
nf_get_sign 13503
nf_get_varn 4185
nf_get_zk 77
nf_get_zkden 222011
nf_get_zkprimpart 219414
normalize_frac 11746544
odd 2126353431
pari_calloc 33814
pari_err_BUG 14
pari_err_COMPONENT 245
pari_err_CONSTPOL 7
pari_err_COPRIME 63
pari_err_DIM 459
pari_err_DOMAIN 1940
pari_err_FILE 0
pari_err_FLAG 42
pari_err_IMPL 364
pari_err_INV 19681
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 49
pari_err_PRIORITY 147
pari_err_ROOTS0 42
pari_err_SQRTN 77
pari_err_TYPE 11621
pari_err_TYPE2 3073
pari_err_VAR 203
pari_free 58592377
pari_malloc 241579379
pari_realloc 537145
pari_stack_alloc 381205320
pari_stack_base 382397198
pari_stack_delete 1113774
pari_stack_init 1289305
pari_stack_new 312179746
pari_stack_pushp 4686
perm_conj 402990
perm_inv 1172164
perm_mul 47154704
pol0_F2x 11331530
pol0_Flx 44978212
pol1_F2x 2788049
pol1_Flx 18630404
pol_0 15022149
pol_1 1309698
pol_x 1043514
pol_xn 2492844
pol_xnall 42
polx_F2x 671648
polx_Flx 18133103
polx_zx 0
powIs 1134
powii 231344
pr_get_e 2231154
pr_get_f 7750109
pr_get_gen 4808099
pr_get_p 18268018
pr_get_tau 5796501
pr_is_inert 2328377
pr_norm 205352
prec2nbits 1076524600
prec2nbits_mul 231976
prec2ndec 12225
precdbl 1651
qfb_disc 6359371
qfb_disc3 6440193
quad_disc 252
quadnorm 623
remsBIL 3069632021
rnf_get_absdegree 459872
rnf_get_alpha 448
rnf_get_degree 627102
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 127225
rnf_get_nfdegree 15267
rnf_get_nfpol 107492
rnf_get_nfvarn 595
rnf_get_nfzk 2478
rnf_get_pol 780696
rnf_get_polabs 94801
rnf_get_varn 0
rnf_get_zk 2849
row 177999
row_i 2177
rowcopy 63
rowpermute 3087244
rowslice 23493634
rowslicepermute 34440
rowsplice 133
ser_isexactzero 4438034
shallowcopy 8471350
sqrfrac 1246817
sqrti 5297519
sqrtnr 300749
sqrtr 17550558
sstoQ 50905974
sturm 455
submulii 13740827
submuliu 7371
submuliu_inplace 114851997
truecoeff 0
trunc_safe 0
ulogint 4483112
upr_norm 40852
vec_append 60711
vec_ei 323625
vec_lengthen 10969
vec_prepend 1736
vec_setconst 0
vec_shorten 0
vec_to_vecsmall 407874
vecpermute 5548651
vecreverse 5740659
vecreverse_inplace 232
vecslice 220118127
vecslicepermute 789560
vecsmall_append 2613839
vecsmall_coincidence 0
vecsmall_concat 851056
vecsmall_copy 1658779
vecsmall_ei 69011
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 21
vecsmall_lexcmp 7373815
vecsmall_max 104074
vecsmall_min 0
vecsmall_pack 84
vecsmall_prefixcmp 47068252
vecsmall_prepend 13755
vecsmall_reverse 252
vecsmall_shorten 142857
vecsmall_to_col 666471
vecsmall_to_vec 406959
vecsmall_to_vec_inplace 1561
vecsmallpermute 45905897
vecsmalltrunc_append 25891147
vecsmalltrunc_init 113683709
vecsplice 248423
vectrunc_append 50729396
vectrunc_append_batch 0
vectrunc_init 12799302
zc_to_ZC 647466
zero_F2m 0
zero_F2m_copy 280131
zero_F2v 750342
zero_F2x 1495
zero_Flm 927256
zero_Flm_copy 101023
zero_Flv 31962690
zero_Flx 786943
zero_zm 0
zero_zv 17679444
zero_zx 0
zerocol 27001935
zeromat 16079
zeromatcopy 2256359
zeropadic 302970
zeropadic_shallow 539
zeropol 5224832
zeroser 130725
zerovec 14953986
zerovec_block 17024
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 168
znstar_get_N 23303056
znstar_get_U 117586
znstar_get_Ui 28126
znstar_get_conreycyc 2470867
znstar_get_conreygen 683025
znstar_get_cyc 165431
znstar_get_faN 1776355
znstar_get_gen 0
znstar_get_no 0
znstar_get_pe 315875
zv_copy 2017582
zv_to_ZV 403648
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.11