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 to exceed 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.18.0 lcov report (development 29712-7c8a932571) Lines: 1444 1584 91.2 %
Date: 2024-11-15 09:08:45 Functions: 647 717 90.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2xX_shift 0
F3m_copy 0
F3m_set 0
FlxqX_div 0
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQ_add 0
FpXQ_sub 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_integ 0
FqXn_exp 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
gaddz 0
gchar_get_U 0
gchar_get_hnf 0
gdiventz 0
gdivz 0
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulz 0
gnegz 0
gshiftz 0
gsubz 0
inv_content 0
is_qfb_t 0
mkcol4s 0
mkerr 0
mkmat5 0
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
pari_err_FILE 0
pari_err_MAXPRIME 0
pari_err_PACKAGE 0
polx_zx 0
random_Fq 0
truecoef 0
trunc_safe 0
vec_setconst 0
vecmodii 0
vecsmall_coincidence 0
zero_F2m 0
zero_zm 0
zero_zx 0
zm_copy 0
zm_row 0
zm_to_zxV 0
zx_shift 0
zx_to_zv 0
FqX_ddf 7
FqX_factor_squarefree 7
mkrfraccopy 14
pari_err_BUG 14
znstar_get_no 14
RgM_gtomp 21
mkvec4s 21
pari_err_CONSTPOL 21
vecsmall_indexmax 21
vecsmall_indexmin 21
pari_err_FILEDESC 36
F2v_ei 42
RgV_gtofp 56
mkmat4 63
pari_err_IRREDPOL 63
pari_err_ROOTS0 63
bnr_get_gen_nocheck 70
pari_err_COPRIME 84
pari_err_SQRTN 84
vecsmall_isin 84
vecsmall_pack 84
gal_get_e 91
mkcol5 94
Z_ispower 98
pari_err_FLAG 98
pari_err_PRIME 98
rnf_get_index 105
ellnf_get_bnf 126
RgX_to_RgV 140
pari_err_OVERFLOW 156
mkvecs 161
FqX_to_mod 175
nbits2ndec 214
pari_err_COMPONENT 214
pari_err_PREC 238
pari_err_PRIORITY 245
zm_transpose 266
err_get_compo 273
rowsplice 273
pol_xnall 294
ellQp_get_prec 315
mkcol3s 315
rnf_get_disc 315
gchar_get_nfree 322
gchar_get_ntors 322
pari_err_VAR 371
polxn_Flx 371
sturm 385
get_F2xqX_mod 399
pari_err_OP 406
vecsmall_lengthen 505
pari_err_IMPL 511
RgC_gtomp 574
rnf_get_varn 574
gchar_get_r2 623
gchar_set_HUUi 623
gchar_set_nalg 623
gchar_set_nfree 623
gchar_set_ntors 623
bnf_get_reg 641
pari_err_DIM 711
perm_sqr 728
Rg_to_Fq 756
F2m_set 798
gchar_set_m0 950
row_i 987
rnf_get_k 1015
RgM_minor 1036
rnf_get_alpha 1043
quad_disc 1078
rnf_get_idealdisc 1120
ellQp_get_p 1134
gchar_copy_precs 1202
gchar_set_prec 1202
rnf_get_invzk 1225
locs_get_Lgenfil 1260
locs_get_famod 1260
FqX_powu 1295
pari_err_MODULUS 1316
zero_F2x 1350
vecsmall_min 1442
ellQp_get_zero 1484
powIs 1561
gchar_set_basis 1573
gchar_set_cyc 1573
gchar_get_sfu 1747
gchar_set_evalprec 1785
mkintmodu 1806
gchar_get_nm 1841
pari_realloc 1848
RgXQX_div 1904
gchar_get_nalg 2042
gchar_set_nf 2076
gchar_set_u0 2093
rnf_get_ramified_primes 2275
vecreverse_inplace 2570
pari_err_DOMAIN 2743
gchar_set_nfprec 2949
vecsmall_reverse 3052
vecsmall_to_vec_inplace 3262
gchar_get_m0 3320
pari_err_TYPE2 3500
get_FpXQX_degree 3686
rnf_get_nfvarn 3696
gchar_get_evalprec 4011
gchar_get_modP 4095
nf_get_r2 4140
rnf_get_zk 4256
gchar_get_u0 4266
identity_ZV 4277
nf_get_zk 4382
idealchineseinit 4437
nf_get_diff 4458
F2v_copy 4487
FpXQX_div 4546
FqX_normalize 4865
rnf_get_nfzk 5502
pari_stack_pushp 5725
gval 5782
gal_get_p 6041
FqX_get_red 6090
FqXn_expint 6590
gal_get_orders 6664
is_extscalar_t 6946
FqXn_inv 7126
FqX_roots 7273
submuliu 7693
bnr_get_gen 7847
get_FlxqX_mod 8047
cgetalloc 8185
gchar_get_mod 8225
locs_get_mod 8225
ndec2nbits 8256
bnf_get_no 8379
prec2ndec 9750
vectrunc_append_batch 10864
gchar_get_Ui 10969
vec_shorten 11550
R_abs_shallow 13083
closure_get_dbg 13250
gchar_get_nfprec 13419
zx_renormalize 14049
ZX_equal1 14082
gener_Fq_local 14602
pari_err_TYPE 15181
zeropadic_shallow 15337
gal_get_gen 15456
znstar_get_gen 16150
gchar_get_cyc 16168
mkmat3 17001
gchar_get_r1 17416
Fp_muls 17780
gchar_get_prec 18732
vec_lengthen 18940
Qtoss 19383
FqX_halve 19411
rnf_get_nfdegree 19894
pari_err_INV 20004
FpXY_Fq_evaly 20587
FqX_mulu 21942
nf_get_Tr 22084
RgM_fpnorml2 22177
gtomp 22428
FqXQ_mul 22766
ZV_dvd 23485
gal_get_mod 23744
zerovec_block 24429
FqX_neg 24956
FqX_red 25354
bnf_get_fu 25852
nfV_to_scalar_or_alg 26293
gal_get_den 27587
gal_get_invvdm 27594
gequalgs 29176
gal_get_roots 32487
gchar_get_basis 32639
ndec2prec 32733
F2xqX_div 33243
mkcolcopy 33545
bid_get_arch 35098
matpascal 35833
gal_get_pol 36050
closure_get_text 36302
gchar_get_S 36864
gchar_get_ns 36864
gchar_get_nc 37130
FqX_rem 37743
F2v_to_F2x 38217
FqX_div 40274
mkcols 40411
ndec2nlong 40989
pari_calloc 46397
znstar_get_Ui 46788
absfrac_shallow 47277
FqX_degfact 47786
vecmoduu 49784
gchar_get_loccyc 50346
bid_get_sarch 51226
get_FpXQX_var 51837
locs_get_cyc 51954
bid_get_gen 53326
div_content 57571
nf_get_ramified_primes 59176
RgX_fpnorml2 60464
err_get_num 61759
RgX_is_rational 67453
FqX_sub 68607
mkquad 69132
quadnorm 69860
FqX_sqr 71855
FqX_div_by_X_x 71939
vecsmall_shorten 72571
bid_get_ideal 78295
gal_get_group 80135
mkcol3 88314
cyclic_perm 99911
gtou 102637
mkcol4 103320
zv_to_zx 104146
mkmoo 105699
zeromat 109014
RgV_isin 109213
RgV_isin_i 109213
Fq_to_FpXQ 110255
RgXQX_rem 114076
mkmatcopy 121105
mkveccopy 122507
mkvec2copy 123180
rnf_get_map 124326
FqX_add 127694
Flx_constant 137721
idealred 138608
zeroser 138796
RgV_is_QV 139952
bnr_get_mod 141041
FqX_factor 141716
get_FpXQX_mod 146583
FlxqX_div_pre 165543
Q_abs_shallow 171537
znstar_get_U 176051
rowslicepermute 182246
vecsmall_prepend 186659
gchar_get_DLdata 188468
locs_get_Lsprk 191695
F2m_copy 197730
get_F2xqX_degree 201663
gchar_get_bnf 203105
rowcopy 204988
mkmat22s 206822
locs_get_m_infty 207235
mkvec2s 219586
affgr 220535
zero_Flm_copy 232049
mkcol6 232050
rnf_get_nfpol 235565
affc_fixlg 239492
gchar_get_nf 241464
ellR_get_prec 249662
Fp_halve 252521
znstar_get_cyc 261934
FqXn_mul 263403
bnf_get_tuN 265146
get_FlxqX_var 265846
gchar_get_zm 279433
rnf_get_polabs 286856
bnf_get_fu_nocheck 288143
bnf_get_tuU 290495
vec_prepend 300926
nf_get_G 301350
bnr_get_no 314594
get_FlxqX_degree 319083
ZM_hnfrem 326799
upr_norm 343931
RgX_renormalize 347497
vecsplice 354706
FqX_mul 368588
ellR_get_sign 370840
get_F2xqX_var 376978
RgX_is_QX 378517
cxtoreal 384532
abgrp_get_no 391992
coltrunc_init 393680
addmuliu 404724
perm_conj 418299
FqX_Fq_mul 427379
FqX_extgcd 442871
nf_get_disc 456228
Z_issquare 458560
precdbl 474409
RgX_shift_inplace 480656
RgX_shift_inplace_init 480656
vecsmall_ei 495562
zv_to_ZV 501455
vecsmall_to_vec 510016
nf_get_sign 516468
gdivsg 521014
mkvec3s 524441
ZM_ZV_mod 539027
FqX_Fp_mul 568175
prec2nbits_mul 570834
gcmpgs 616064
RgC_fpnorml2 618699
mkvecsmall5 688681
FqX_gcd 693350
rnf_get_nf 696450
vecreverse 697025
mkrfrac 698145
FqX_deriv 723681
logint 751882
row 762496
ellff_get_a4a6 800246
zero_F2m_copy 842207
FpXX_renormalize 853152
zeropadic 855756
gmin_shallow 869207
ZXQ_sqr 949777
cgetc 958149
Flx_lead 963987
gerepilemany 984798
vecsmall_max 1007007
pr_norm 1067566
sstoQ 1073702
mkoo 1075478
polx_F2x 1078526
Flx_mulu 1086810
RgV_isscalar 1140296
nf_get_varn 1165309
Fp_invsafe 1186527
inf_get_sign 1193467
mkfracss 1209528
ellinf 1232415
bnr_get_nf 1260096
gen_I 1267865
bnf_get_sunits 1278414
Rg_col_ei 1289743
ell_get_j 1296370
guncloneNULL_deep 1324478
rnf_get_absdegree 1376944
bid_get_mod 1386561
zero_Flx 1427123
constant_coeff 1435224
vecsmall_concat 1457336
nf_get_roots 1508502
F2m_flip 1559628
F2v_flip 1559628
F2x_flip 1559628
F2x_div 1571006
bnf_get_gen 1579985
Fp_div 1614122
abgrp_get_gen 1653756
nf_get_roundG 1685738
gsubgs 1691342
vec_ei 1703074
ulogint 1718551
killblock 1859911
modpr_get_p 1888117
ellnf_get_nf 1888750
Fp_divu 1898107
get_F2x_degree 1934301
bnr_get_bid 1937026
Flx_div 1988755
bid_get_MOD 1990748
bid_get_sprk 1991469
bid_get_fact2 2025285
ellff_get_field 2037193
pari_realloc_ip 2075567
ZXQ_mul 2124918
ell_get_b4 2135450
zv_copy 2157614
gerepilecoeffs 2197579
bid_get_archp 2217775
pol_xn 2226839
bid_get_fact 2313963
bnr_get_cyc 2396506
rnf_get_degree 2464916
Flv_copy 2478995
mul_content 2509550
get_F2x_mod 2518409
cyc_get_expo 2521773
get_F2x_var 2534919
RgX_coeff 2543854
ell_get_b8 2608985
vecslicepermute 2618686
hash_str 2664938
bnf_get_logfu 2702212
bnr_get_clgp 2728712
zero_Flm 2752137
perm_inv 2764194
rnf_get_pol 2774646
sqrtnr 2791787
znstar_get_pe 2820140
F2x_equal1 2870829
gisdouble 2968105
mkpolmod 2972942
ell_get_b6 3054732
RgX_is_monomial 3078865
identity_perm 3103781
identity_zv 3128124
bit_accuracy_mul 3178185
ZV_to_zv 3190296
F3m_coeff 3206279
znstar_get_conreygen 3220484
bid_get_U 3378366
Fq_red 3424516
vec_append 3430085
get_FpX_mod 3479325
bnf_get_cyc 3509283
pol_x 3539028
nf_get_index 3581207
zero_F2v 3617653
bnr_get_bnf 3632375
mulsubii 3845550
pol1_F2x 3971998
vec_to_vecsmall 4014794
vecsmall_append 4060721
sqrfrac 4142289
vecsmall_copy 4291039
mkcol2s 4414032
pol_1 4471479
mkmat 4640166
checkell_i 4682721
F2x_equal 4700309
FpXQX_renormalize 4707966
mkfraccopy 4794889
qfb_disc3 4847406
nf_get_zkprimpart 5011796
nf_get_zkden 5057890
bnf_get_clgp 5097815
is_rational_t 5126423
pari_stack_delete 5138663
bid_get_cyc 5361649
bid_get_grp 5415546
FpX_div 5427926
ell_get_b2 5432102
pari_stack_init 5552733
col_ei 5699589
ell_get_a2 5716488
isintm1 5955893
get_FpX_degree 6015686
Flm_copy 6246023
ell_get_a4 6526001
mkvec4 6588541
sqrti 6589003
ell_get_a3 6922381
ZM_lll 6933271
veclast 6989632
RgX_div 7102479
RgX_gtofp 7117292
ell_get_a1 7133589
ZX_is_monic 7180568
znstar_get_faN 7207853
vecsmall_lexcmp 7208555
get_FpX_var 7260003
ZV_ZV_mod 7322737
zc_to_ZC 7746362
vecsmall_to_col 7760543
Q_abs 7789599
znstar_get_conreycyc 7820324
ell_get_a6 7959601
ell_get_c4 8021758
F2m_coeff 8082473
RgM_gtofp 8174268
mkintmod 8206503
Flm_row 8467791
ell_get_c6 8850628
cxtofp 8950898
RgM_dimensions 9405987
bnf_get_nf 9426159
ismpzero 9531672
is_intreal_t 9531777
const_col 9614525
nf_get_invzk 9891925
Flx_equal1 9979996
ser_isexactzero 10129536
mkcol 10174134
ZC_hnfrem 10677231
mul_denom 11278070
ell_get_disc 11280297
Fp_addmul 11304195
ell_get_type 11379677
pr_get_gen 11510837
abgrp_get_cyc 11549485
vectrunc_init 11717565
F2x_clear 12150254
F2v_clear 12150258
nbits2nlong 12628951
closure_get_frame 12949106
pol0_F2x 13259951
gmax_shallow 13509875
Fp_center_i 13853184
modpr_get_T 13920772
zeromatcopy 14015826
rowpermute 14411049
mkvec5 14486569
zeropol 14731345
vectrunc_append 15250901
mkvecsmall4 15480907
RgX_is_ZX 15635685
pr_get_e 15754922
isint1 16064423
pr_is_inert 16405919
matslice 16477318
normalize_frac 16690984
cxcompotor 17933599
is_vec_t 18213328
hash_str_len 18250176
qfb_disc 18474944
gerepileall 18972624
const_vecsmall 19085057
vecpermute 20009056
nf_get_M 20774022
Fp_double 21001939
RgM_shallowcopy 21104547
Flx_div_pre 21358093
gmulgs 22087257
nf_get_r1 22160046
ZV_isscalar 22782329
pr_get_f 25354715
shallowcopy 25827547
get_Flx_mod 25913181
zerovec 26618540
RgX_equal_var 26763182
mkqfb 27797009
Fp_neg 28850751
RgV_is_ZV 31338790
modpr_get_pr 32093304
mkmat2 32477801
submulii 32710809
const_vec 32888014
RgC_gtofp 33673963
mkfrac 33725355
znstar_get_N 33826249
pol_0 35199609
Fp_inv 36520129
polx_Flx 37610534
lincombii 37828963
zero_zv 37848202
powii 38074748
closure_is_variadic 39983888
absfrac 45144677
ell_is_inf 47556894
pr_get_tau 47874465
guncloneNULL 49080908
mkmat22 50348579
pol1_Flx 55496046
addmuliu_inplace 59207055
qfb_is_qfi 59611116
submuliu_inplace 59708308
gtodouble 60523170
zero_Flv 61694404
F2x_copy 62605799
is_real_t 62669161
Fp_sqr 64158539
QV_isscalar 64690413
mkvec 67400272
get_Flx_var 68355536
Fp_mulu 73010162
Fp_center 75554609
vecsmallpermute 77061402
rowslice 77569468
perm_mul 79251687
sqrtr 79872898
Fp_red 80058447
gc_all 81541798
nf_get_degree 81967991
gtos 85800598
get_Flx_degree 88039116
mkcomplex 90031922
cxnorm 90636044
pr_get_p 91463346
dbllog2r 92666326
is_noncalc_t 95016593
mkvecsmall3 99271325
vecsmalltrunc_append 99893220
F2v_set 101399742
pol0_Flx 103007724
RgX_copy 103548827
prec2nbits 103924041
vecsmall_prefixcmp 108088071
nf_get_pol 109063411
both_odd 116602778
cgiv 117964848
nchar2nlong 120924557
zerocol 121267836
F2x_renormalize 122418881
mkvec3 122769185
gaddgs 123129047
gmulgu 124153918
F2x_set 128346353
mkvecsmall 130293149
equalim1 138999950
bit_prec 141373786
FpX_renormalize 143861076
Fp_sub 148169958
ZX_renormalize 151879174
nbrows 154545542
mkcol2 155930580
uutoQ 158055090
leading_coeff 170457423
Flx_copy 173630512
Fp_add 174714333
Fp_mul 182366810
mkvec2 182425410
nbits2prec 185063110
vecsmalltrunc_init 187782227
gerepilecopy 209225880
mkvecsmall2 224547051
gtofp 251849909
is_universal_constant 291082820
closure_get_data 311835034
closure_get_oper 311859844
closure_codestr 311881068
lg_increase 312581571
is_scalar_t 314620121
lgcols 341563975
closure_arity 360515683
bin_copy 457393232
pari_free 470562748
leafcopy_avma 539992167
is_bigint 556542529
pari_stack_new 597292970
is_matvec_t 613607799
vecslice 633920180
F2v_coeff 660381403
F2x_coeff 666963511
pari_stack_alloc 690186330
pari_stack_base 695308445
pari_malloc 700970411
GENbinbase 888051173
gerepileuptoleaf 1092692503
equali1 1196287562
nbits2extraprec 1469581132
gerepileupto 1811430064
odd 2027539639
is_pm1 2189659919
lgpol 2588391300
bit_accuracy 2795944839
isintzero 2812602645
gerepileuptoint 3967868461
prec2lg 4447895779
is_const_t 4749691124
degpol 5408776220
icopy_avma 7780602388
isonstack 7936896209
remsBIL 7963519199
divsBIL 8051223353
is_recursive_t 8382749648

Generated by: LCOV version 1.16