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 29658-e7fd7c29c3) Lines: 1441 1584 91.0 %
Date: 2024-10-22 09:06:36 Functions: 646 717 90.1 %
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
mkmat4 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
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
rnf_get_disc 301
ellQp_get_prec 315
mkcol3s 315
gchar_get_nfree 322
gchar_get_ntors 322
pari_err_VAR 364
polxn_Flx 371
sturm 385
get_F2xqX_mod 399
pari_err_OP 406
vecsmall_lengthen 505
pari_err_IMPL 518
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 690
perm_sqr 728
Rg_to_Fq 756
F2m_set 798
rnf_get_k 812
rnf_get_idealdisc 847
rnf_get_alpha 903
gchar_set_m0 950
row_i 987
RgM_minor 1036
quad_disc 1078
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 1841
nf_get_zk 1890
RgXQX_div 1904
rnf_get_ramified_primes 1939
gchar_get_nalg 2042
gchar_set_nf 2076
gchar_set_u0 2093
vecreverse_inplace 2570
pari_err_DOMAIN 2736
gchar_set_nfprec 2949
vecsmall_reverse 3024
vecsmall_to_vec_inplace 3262
gchar_get_m0 3320
rnf_get_nfvarn 3388
idealchineseinit 3457
pari_err_TYPE2 3500
get_FpXQX_degree 3686
rnf_get_zk 3920
gchar_get_evalprec 4011
gchar_get_modP 4095
nf_get_r2 4140
gchar_get_u0 4266
identity_ZV 4277
nf_get_diff 4458
F2v_copy 4487
FqX_normalize 4508
FpXQX_div 4546
rnf_get_nfzk 4830
pari_stack_pushp 5704
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 8040
cgetalloc 8171
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 11549
closure_get_dbg 12865
R_abs_shallow 13083
gchar_get_nfprec 13419
zx_renormalize 14049
ZX_equal1 14082
gener_Fq_local 14581
pari_err_TYPE 14796
zeropadic_shallow 15337
gal_get_gen 15456
znstar_get_gen 16150
gchar_get_cyc 16168
mkmat3 17001
gchar_get_r1 17416
rnf_get_nfdegree 17591
Fp_muls 17780
gchar_get_prec 18732
vec_lengthen 18940
Qtoss 19383
FqX_halve 19411
pari_err_INV 19990
FpXY_Fq_evaly 20587
RgM_fpnorml2 21777
FqX_mulu 21942
nf_get_Tr 22077
gtomp 22428
FqXQ_mul 22766
ZV_dvd 23485
gal_get_mod 23716
zerovec_block 24429
FqX_neg 24956
FqX_red 25354
bnf_get_fu 25851
nfV_to_scalar_or_alg 26293
gal_get_den 27524
gal_get_invvdm 27531
gequalgs 29176
mkcolcopy 29624
gal_get_roots 32424
gchar_get_basis 32639
ndec2prec 32733
F2xqX_div 33243
bid_get_arch 35091
closure_get_text 35532
matpascal 35833
gal_get_pol 35980
gchar_get_S 36864
gchar_get_ns 36864
gchar_get_nc 37130
FqX_rem 37743
F2v_to_F2x 38044
FqX_div 39821
mkcols 40411
ndec2nlong 40989
pari_calloc 45592
absfrac_shallow 46619
znstar_get_Ui 46788
FqX_degfact 47786
vecmoduu 49784
gchar_get_loccyc 50346
bid_get_sarch 51226
get_FpXQX_var 51837
locs_get_cyc 51954
bid_get_gen 53333
div_content 56738
nf_get_ramified_primes 58763
RgX_fpnorml2 60352
err_get_num 60988
RgX_is_rational 67029
FqX_sub 68607
mkquad 69132
quadnorm 69860
FqX_sqr 71855
FqX_div_by_X_x 71939
vecsmall_shorten 72564
bid_get_ideal 78295
gal_get_group 80094
mkcol3 88314
cyclic_perm 99547
gtou 102622
mkcol4 102935
zv_to_zx 104146
zeromat 105409
mkmoo 105482
RgXQX_rem 107601
rnf_get_map 108078
RgV_isin 109178
RgV_isin_i 109178
Fq_to_FpXQ 110255
mkmatcopy 116283
mkvec2copy 120225
mkveccopy 121947
FqX_add 127694
Flx_constant 137719
idealred 138594
zeroser 138796
RgV_is_QV 139676
bnr_get_mod 140910
FqX_factor 141303
get_FpXQX_mod 146583
FlxqX_div_pre 165532
Q_abs_shallow 169441
znstar_get_U 176051
rowslicepermute 182136
vecsmall_prepend 186652
gchar_get_DLdata 188468
locs_get_Lsprk 191695
F2m_copy 197494
rnf_get_nfpol 200019
get_F2xqX_degree 201663
gchar_get_bnf 203105
rowcopy 204988
mkmat22s 206822
locs_get_m_infty 207235
mkvec2s 217332
affgr 220535
rnf_get_polabs 228036
zero_Flm_copy 231965
mkcol6 232050
affc_fixlg 239494
gchar_get_nf 241401
ellR_get_prec 249662
Fp_halve 252521
znstar_get_cyc 261934
FqXn_mul 263403
bnf_get_tuN 265088
get_FlxqX_var 265818
gchar_get_zm 279433
bnf_get_fu_nocheck 288082
bnf_get_tuU 290428
vec_prepend 300896
nf_get_G 301082
bnr_get_no 314563
get_FlxqX_degree 319048
ZM_hnfrem 326696
upr_norm 343930
RgX_renormalize 347497
vecsplice 354725
RgX_is_QX 362519
FqX_mul 368462
ellR_get_sign 370840
get_F2xqX_var 376978
cxtoreal 384535
abgrp_get_no 391961
coltrunc_init 393680
addmuliu 404679
perm_conj 418299
FqX_Fq_mul 427379
FqX_extgcd 442514
nf_get_disc 454631
Z_issquare 458560
rnf_get_nf 461083
precdbl 474140
RgX_shift_inplace 480656
RgX_shift_inplace_init 480656
vecsmall_ei 494871
zv_to_ZV 501147
vecsmall_to_vec 509708
nf_get_sign 516294
gdivsg 521015
mkvec3s 524441
ZM_ZV_mod 538867
FqX_Fp_mul 567544
prec2nbits_mul 570832
gcmpgs 616064
RgC_fpnorml2 617824
mkvecsmall5 688670
FqX_gcd 692636
vecreverse 697025
mkrfrac 698145
FqX_deriv 723681
logint 751680
row 762355
rnf_get_absdegree 768385
ellff_get_a4a6 800237
zero_F2m_copy 837630
FpXX_renormalize 853152
zeropadic 855888
gmin_shallow 869006
ZXQ_sqr 948103
cgetc 958153
Flx_lead 963674
gerepilemany 984491
vecsmall_max 1006567
pr_norm 1063057
sstoQ 1073618
mkoo 1074083
polx_F2x 1076762
Flx_mulu 1085779
RgV_isscalar 1140102
nf_get_varn 1164241
Fp_invsafe 1182651
inf_get_sign 1191860
mkfracss 1209507
rnf_get_degree 1225783
ellinf 1232415
Rg_col_ei 1257039
bnr_get_nf 1259913
gen_I 1267630
bnf_get_sunits 1278111
ell_get_j 1296370
guncloneNULL_deep 1319429
zero_Flx 1334270
bid_get_mod 1386424
constant_coeff 1435221
vecsmall_concat 1444834
nf_get_roots 1463123
rnf_get_pol 1489012
F2m_flip 1556916
F2v_flip 1556916
F2x_flip 1556916
F2x_div 1562686
bnf_get_gen 1579644
Fp_div 1614117
abgrp_get_gen 1653390
nf_get_roundG 1684337
gsubgs 1687509
vec_ei 1701876
ulogint 1719990
F3m_coeff 1809221
killblock 1853406
modpr_get_p 1887808
ellnf_get_nf 1888728
Fp_divu 1898061
get_F2x_degree 1933490
bnr_get_bid 1936759
Flx_div 1988462
bid_get_MOD 1990532
bid_get_sprk 1991268
bid_get_fact2 2025060
ellff_get_field 2037174
pari_realloc_ip 2064245
ZXQ_mul 2122324
ell_get_b4 2135450
zv_copy 2157585
gerepilecoeffs 2195167
bid_get_archp 2217475
pol_xn 2218011
bid_get_fact 2313627
Flv_copy 2387378
bnr_get_cyc 2396104
mul_content 2505626
get_F2x_mod 2518207
cyc_get_expo 2520701
get_F2x_var 2534009
RgX_coeff 2543854
vecslicepermute 2569834
ell_get_b8 2608985
hash_str 2640147
zero_Flm 2693723
bnf_get_logfu 2701739
bnr_get_clgp 2728273
perm_inv 2731518
sqrtnr 2790626
znstar_get_pe 2820140
F2x_equal1 2870745
mkpolmod 2879985
gisdouble 2966744
ell_get_b6 3054732
identity_perm 3061122
RgX_is_monomial 3076832
identity_zv 3085465
bit_accuracy_mul 3178185
ZV_to_zv 3189708
znstar_get_conreygen 3220484
bid_get_U 3378016
Fq_red 3407280
vec_append 3429674
get_FpX_mod 3475222
bnf_get_cyc 3508721
pol_x 3519506
nf_get_index 3575617
zero_F2v 3585575
bnr_get_bnf 3631760
mulsubii 3828779
vecsmall_copy 3952298
pol1_F2x 3967592
vec_to_vecsmall 4013902
vecsmall_append 4060686
sqrfrac 4141032
mkcol2s 4414032
pol_1 4454196
mkmat 4581914
checkell_i 4682692
F2x_equal 4691174
FpXQX_renormalize 4707409
mkfraccopy 4789196
qfb_disc3 4845322
nf_get_zkprimpart 4989495
nf_get_zkden 5035940
is_rational_t 5065760
bnf_get_clgp 5096898
pari_stack_delete 5119163
bid_get_cyc 5360953
bid_get_grp 5414866
FpX_div 5421905
ell_get_b2 5432099
pari_stack_init 5520560
col_ei 5638509
ell_get_a2 5716483
get_FpX_degree 5782607
isintm1 5953896
Flm_copy 6190879
ell_get_a4 6525996
mkvec4 6580776
sqrti 6582737
ell_get_a3 6922373
veclast 6926567
ZM_lll 6929190
get_FpX_var 7025376
ZX_is_monic 7063117
RgX_div 7102441
RgX_gtofp 7110040
ell_get_a1 7133580
znstar_get_faN 7207853
vecsmall_lexcmp 7208560
ZV_ZV_mod 7321944
Q_abs 7538214
zc_to_ZC 7743455
vecsmall_to_col 7757636
znstar_get_conreycyc 7820324
Flm_row 7853972
ell_get_a6 7959596
ell_get_c4 8021769
F2m_coeff 8074035
RgM_gtofp 8166719
mkintmod 8201838
ell_get_c6 8850679
cxtofp 8944279
RgM_dimensions 9260326
bnf_get_nf 9424353
ismpzero 9530900
is_intreal_t 9530997
const_col 9611917
nf_get_invzk 9847542
Flx_equal1 9977220
ser_isexactzero 10129466
mkcol 10163848
ZC_hnfrem 10672352
mul_denom 11249911
ell_get_disc 11280305
Fp_addmul 11304207
ell_get_type 11379688
pr_get_gen 11486890
abgrp_get_cyc 11547799
vectrunc_init 11713252
F2x_clear 11821029
F2v_clear 11821036
nbits2nlong 12590916
closure_get_frame 12932972
pol0_F2x 13242925
gmax_shallow 13509831
Fp_center_i 13565110
modpr_get_T 13914751
zeromatcopy 13981685
rowpermute 14265893
mkvec5 14476070
zeropol 14719322
vectrunc_append 15243505
mkvecsmall4 15488755
RgX_is_ZX 15506147
pr_get_e 15740276
isint1 16047978
matslice 16192495
pr_is_inert 16392012
normalize_frac 16668635
cxcompotor 17920164
is_vec_t 18049605
hash_str_len 18210360
qfb_disc 18474915
gerepileall 18917513
const_vecsmall 19038973
vecpermute 19915207
nf_get_M 20771442
RgM_shallowcopy 21014199
Fp_double 21086885
Flx_div_pre 21288764
gmulgs 22032683
nf_get_r1 22153814
ZV_isscalar 22777992
shallowcopy 24522195
pr_get_f 25323550
get_Flx_mod 25881547
RgX_equal_var 26595933
zerovec 26614535
mkqfb 27792791
Fp_neg 28272784
RgV_is_ZV 31336483
mkmat2 31845443
modpr_get_pr 32068016
submulii 32708911
const_vec 32828989
mkfrac 33326513
RgC_gtofp 33617984
znstar_get_N 33826249
pol_0 35180440
Fp_inv 36517258
lincombii 37472776
polx_Flx 37570230
zero_zv 37598311
powii 38066755
closure_is_variadic 39968500
absfrac 44430471
ell_is_inf 47559945
pr_get_tau 47850897
guncloneNULL 49068689
mkmat22 50250023
pol1_Flx 55395302
addmuliu_inplace 59270712
qfb_is_qfi 59608059
submuliu_inplace 59767670
gtodouble 60472229
zero_Flv 61348899
F2x_copy 62531454
is_real_t 62668220
Fp_sqr 64490143
QV_isscalar 64584615
mkvec 67205420
get_Flx_var 68255452
Fp_mulu 71091784
vecsmallpermute 74574449
Fp_center 74579521
Fp_red 74896267
rowslice 76094932
perm_mul 76756858
sqrtr 79828918
gc_all 81049059
nf_get_degree 81639188
gtos 85736050
get_Flx_degree 86977383
mkcomplex 89988122
cxnorm 90600067
pr_get_p 91391227
dbllog2r 92624825
is_noncalc_t 95004086
mkvecsmall3 99219033
vecsmalltrunc_append 99885256
F2v_set 101280301
pol0_Flx 102697123
RgX_copy 103456519
prec2nbits 103909404
vecsmall_prefixcmp 108088071
nf_get_pol 108551506
both_odd 116602894
cgiv 117672068
mkvec3 119757470
zerocol 120563372
nchar2nlong 120849453
F2x_renormalize 122395102
gaddgs 123125221
gmulgu 124150145
F2x_set 128215934
mkvecsmall 129894070
Fp_sub 136921480
equalim1 138986750
bit_prec 141263943
FpX_renormalize 143492495
ZX_renormalize 151589219
nbrows 153765232
mkcol2 154378770
uutoQ 158055041
leading_coeff 170308341
Fp_add 170406648
Flx_copy 173434426
Fp_mul 177187733
mkvec2 181526067
nbits2prec 184933743
vecsmalltrunc_init 188889717
gerepilecopy 208757048
mkvecsmall2 224288427
gtofp 250967411
is_universal_constant 290253976
closure_get_data 311740113
closure_get_oper 311767741
closure_codestr 311796112
is_scalar_t 314364251
lg_increase 315664782
lgcols 337375156
closure_arity 360395140
bin_copy 455366866
pari_free 468530286
leafcopy_avma 538844176
is_bigint 554590818
vecslice 592344292
pari_stack_new 596945776
is_matvec_t 613703488
F2v_coeff 647594252
F2x_coeff 654139963
pari_stack_alloc 689786017
pari_stack_base 694903966
pari_malloc 698838806
GENbinbase 884456356
gerepileuptoleaf 1087756814
equali1 1189610367
nbits2extraprec 1469063731
gerepileupto 1807568528
odd 2027732255
is_pm1 2186163072
lgpol 2580912421
bit_accuracy 2791876383
isintzero 2806734216
gerepileuptoint 3901363639
prec2lg 4448834859
is_const_t 4746331971
degpol 5388496595
icopy_avma 7720904906
isonstack 7861007039
remsBIL 7945752218
divsBIL 8033203227
is_recursive_t 8301119893

Generated by: LCOV version 1.16