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 - basemath - mftrace.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30672-116f3d5b0e) Lines: 7532 7736 97.4 %
Date: 2026-02-06 09:23:51 Functions: 772 778 99.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
A1 366373
A21 44135
A22 44135
A3 44583
A4 43666
AX_B 203
CHIvec_CHI 25914
CHIvec_N 28601909
CHIvec_expo 626913
CHIvec_ord 66311
CHIvec_parity 54754
CHIvec_val 27670174
CX_D 203
GL2toSL2 1428
Galois 30331
Haberland 140
Hfind 7
MF_get_CHI 8848
MF_get_E 4487
MF_get_M 6916
MF_get_Mindex 10640
MF_get_Minv 4872
MF_get_N 20069
MF_get_S 21553
MF_get_basis 1911
MF_get_dim 5642
MF_get_fields 616
MF_get_gN 21273
MF_get_gk 15526
MF_get_k 7238
MF_get_newforms 819
MF_get_r 280
MF_get_space 15393
MF_set_new 1589
MF_set_space 413
MFcusp_get_vMjd 686
MFnew_get_vj 7343
Mindex_as_coef 49
Minv_RgC_mul 7938
Minv_RgM_mul 1309
Miyake 84028
NK_eisen2 140
QabC_to_Flc 38164
QabM_Minv 609
QabM_indexrank 10563
QabM_init 1246
QabM_ker 1652
QabM_pseudoinv 1092
QabM_pseudoinv_i 1358
QabM_rank 35
QabM_to_Flm 595
QabM_tracerel 154
QabV_tracerel 16198
QabX_to_Flx 1484
Qab_Czeta 2247966
Qab_Czeta_Fl 313040
Qab_to_Fl 8534960
Qab_trace_init 34062
Qab_tracerel 0
Qab_zeta 200767
RgC_Bd_expand 84665
RgC_embedall 350
RgM_Minv_mul 2450
RgV_approx 126
RgV_div_RgXn 399
RgV_heckef2 98
RgV_inflatemod 7
RgV_mul_RgXn 8869
RgV_normalize 2065
RgV_pows_RgXn 112
RgV_shift 11039
RgV_shimura 112
RgV_to_ser_full 4893
RgXV_embed 98
RgX_act_S 1288
RgX_act_gen 154
RgX_act_typ 2842
RgX_approx 2863
RgX_by_parity 14
RgX_embed 1687
RgX_embed1 14203
RgX_embed2 532
RgX_embedall 364
RgX_isspherical 28
RgX_valrem_root 70
RgXn_negpow 375
Rg_approx 8582
Rg_embed1 84658
Rg_embed2 13328
Rg_embedall 95154
Rg_embedall_i 4907
SL2_div_D 9177
TA1 6564045
TA2 6564045
TA2_t 324085950
TA3 6564045
TA4 6564045
Tp 469
Tpmod 2408
Unelson 71932
VS 63742
Wcoshall 10304
WfromZ 74046
Wint 10304
Wint2 63742
Wparams 10304
ZM_mulS 1337
ZM_mulT 4634
ZM_mulTi 2352
ZX_roots 182
ZabM_pseudoinv_i 1106
_RgXQM_mul 378
abundant 2604
act_GL2 266
act_S 2576
actal 42
anextract 2646
anyembed 28
append_dihedral 18718
atkin_get_NQ 245
auxsum 34044534
badchar 7931
bdexpand 14168
bdexpandall 343
bern_init 2023
bestapprnf2 126
bestapprnfrel 1519
bhn_newtrace 34993
bhn_parse 84665
bhnmat_extend 9282
bhnmat_extend_nocache 7091
bnrchartwist2conrey 34489
c_Bd 7525
c_Ek 882
c_F2TH4 266
c_QF_i 56
c_QFsimple_i 49
c_bracket 42
c_const 147
c_cusptrace 21
c_deflate 8939
c_delta 539
c_deriv 175
c_derivE2 14
c_dihedral 5579
c_div 847
c_div_i 847
c_ell 77
c_etaquo 203
c_hecke 1246
c_linear 3024
c_linear_bhn 2331
c_mfEH 343
c_mfeisen 11361
c_mul 637
c_newtrace 1918
c_pow 112
c_shift 35
c_theta 1946
c_twist 168
cache_delete 9450
cache_get 456723149
cache_report 70
cache_reset 511
cache_set 525
ceilA1 7756
char2 11305
charLFwt1 2618
charLFwt1_Fl 2002
charLFwtk 4557
charLFwtk_Fl 3227
char_normalize_zv 118517
charistotallyeven 13846
charsmodN 651
checkCHI 9247
checkMF 4228
checkMF_i 19292
checkNK 133
checkNK2 9254
checkPv 28
check_M2Z 3486
check_SL2Z 2058
checkbij_i 7
checkemb_i 28
checkfs2_i 210
checkfs_i 798
checkmf2 43736
checkmf_i 19565
checkmfa 63
chicompat 2835
chicompatfix 651
chicompatlift 651
cmp_coset 35469
cmp_ord 371
cmp_small_priority 74431
col2cusp 126
colnewtrace 185598
condC 1568
conreydenormalize 34489
const_mat 910
constcoredisc 48
constdiv 152
constfact 187
consttabdihedral 14
consttabh 152
corediscs_fact 4761947
coset_complete 11963
cusp2mat 518
cusp_AC 1134
cusp_canon 364
cxredga0N 182
cyc_normalize_zv 26810
dbg_cachenew 17780
deg1ser_shallow 49
desc 623
desc_dihedral 21
desc_hecke 35
desc_i 1540
desc_linear 98
desc_mfeisen 504
di_N 42042
dihan 13573
dihan_bnf 9331
dihan_bnr 37758
dim22 3696
dim_filter 42
dim_sum 287
discard_Ti 0
div_restrict 336280
divisorsNF 322
eiscnm 9635178
err_cyclo 14
err_space 7
eta3_ZXn 525
evalcusp 364
expandbd 5852
expandbd_Fl 7714
f00 12446
f00_i 13727
fg1g2n 855267
findbestsplit 1358
findd 217
findq 14
findqga 91
findqganew 49
fix_pol 234178
fmt_dim 3983
foo_stable 42
fs2_get_F 56
fs2_get_MF 56
fs2_get_W 56
fs2_get_al0 56
fs2_get_bitprec 0
fs2_get_cusps 56
fs2_get_den 21
fs2_init 21
fs_get_EF 70
fs_get_MF 1463
fs_get_bitprec 630
fs_get_cosets 2191
fs_get_expan 1890
fs_get_pols 1596
fs_get_vE 1246
fs_get_vES 847
fs_set_expan 28
gausssumcx 33985
get_DIH 12355
get_P 259
get_PSI 299775
get_Shimura 21
get_badj 7756
get_bnrconreyN 15862
get_gb 7805
get_mf_F 546
get_mfchar 4074
get_vDIH 2373
get_vP 21
getcache 14
getcols 2037
getcols_i 5054
getcolsgen 441
getcolswt2 252
getembed 938
getnlim2 2555
getw1w2 2555
gmfcharmodulus 1619786
gmfcharno 3983
gmfcharorder 3876236
grootsof1_CHI 791
gsubstvec_i 14
hash_eisengacx 19236
hclassno6_count 54
hclassno6u 2503778
hclassno6u_2 77
hclassno6u_fund 10748416
hclassno6u_i 158346131
hclassno6u_no_cache 86919
hecke_data 18466
hecke_i 2723
heckef2_data 84
heckenewtrace 91581
improve 5740
induce 312179
induceN 42476
inflatemod 49
init_cachenew 13650
initnewtrace 33649
initnewtrace_i 33544
inittrace 129171
inittrconj 33544
initwt1newtrace 21
initwt1trace 28
intAoo 945
intAoo0 77
intAoowithvanall 147
inveis_extraprec 70
is_cond 49364
lamCO 3360
lamsig 14641320
lfunfindchi 21
lfunmf 98
lfunquadneg_naive 28
lfuntag 1197
lfunthetaall 161
m1pk 8295
mat2cusp 112
matTp 56
matTpmod 301
matdeflate 392
merge_dims 7
mf1 42
mf1_cusptonew 252
mf1_pre 1834
mf1basis 11284
mf1chars 1729
mf1cuspdim 476
mf1cuspdim_i 7315
mf1cuspdimall 4144
mf1cuspdimsum 4123
mf1dimmod 595
mf1dims 105
mf1dimsum 2114
mf1init 3969
mf1intermat 224
mf1newdimall 56
mf1newdimsum 1050
mf1olddimall 28
mf1olddimsum 469
mf2basis 273
mf2dim_Nkchi 43463
mf2dimwt12 41363
mf2dimwt32 693
mf2gaexpansion 343
mf2init 98
mf2init_Nkchi 273
mfDelta 56
mfEH 266
mfEHcoef 77
mfEHmat 266
mfEMPTY 1029
mfEMPTYall 616
mfEk 406
mfTheta 805
mfZC_width 9975
mf_eisendec 1218
mf_get_CHI 65527
mf_get_N 124019
mf_get_NK 19691
mf_get_field 25081
mf_get_gN 191968
mf_get_gk 144627
mf_get_k 73731
mf_get_r 441
mf_get_type 241108
mf_normalize 1540
mf_same_CHI 1148
mf_same_k 1190
mf_setfield 588
mfak_i 455
mfalchi2 13041
mfatkin 63
mfatkineigenquad 56
mfatkineigenvalues 49
mfatkininit 98
mfatkininit_i 224
mfatkinmatnewquad 112
mfbasis 371
mfbd 266
mfbd_E2 721
mfbd_i 36981
mfbdall 7385
mfbracket 28
mfcanfindp0 14
mfcharAL 112
mfcharGL 378812
mfcharchiliftprim 42
mfcharconductor 397950
mfcharconj 56
mfcharcxeval 9513
mfcharcxinit 33985
mfchardiv 10178
mfchardiv_i 10178
mfchareval 14553
mfcharevalord 3675462
mfchargalois 4872
mfcharinduce 13048
mfcharinit 33551
mfcharinv_i 595
mfcharistrivial 2709
mfcharmodulus 1619786
mfcharmul 1127
mfcharmul_i 301994
mfcharmulcxeval 13041
mfcharmuleval 26082
mfcharno 13699
mfcharorder 3817786
mfcharparity 68670
mfcharpol 599354
mfcharpow 161
mfchars 3255
mfchartoprimitive 82334
mfchartrivial 5859
mfcheapeisen 154
mfchiadjust 2933
mfchiembed 7
mfchilift 1092
mfchisimpl 1596
mfclean 5047
mfclean2 861
mfcleanCHI 4095
mfcoef 301
mfcoefs 4144
mfcoefs_i 38563
mfcoefs_mf 2632
mfcoefsser 679
mfconductor 175
mfconreyminimize 12138
mfcosets 168
mfcuspcanon_width 1001
mfcuspdim 3458
mfcuspdim_i 43743
mfcuspisregular 315
mfcusps 28
mfcusps_i 49
mfcusptrace_i 6564045
mfcusptracecache 7850904
mfcuspval 203
mfcuspwidth 161
mfderiv 182
mfderivE2 21
mfdescribe 966
mfdihedral 14
mfdihedralall 14
mfdihedralcommon 33698
mfdihedralcusp 3857
mfdihedralcuspdim 7105
mfdihedralnew 8820
mfdihedralnew_i 24969
mfdihedralnewdim 16149
mfdiheval 107611
mfdim 5719
mfdim0all 3010
mfdim_Nkchi 1400
mfdim_Nndkchi 44744
mfdiv 49
mfdiv_val 2275
mfeigenbasis 364
mfeigenembed 161
mfeigensearch 35
mfeisenstein 378
mfeisenstein2_0 8365
mfeisenstein2_0_Fl 5054
mfeisenstein2all 2646
mfeisenstein2pure 5586
mfeisenstein2pure_Fl 5054
mfeisenstein_i 378
mfeisenstein_prim 343
mfeisensteinbasis 1456
mfeisensteinbasis_i 1428
mfeisensteindec 1218
mfeisensteindim 231
mfeisensteingacx 13041
mfeisensteinspaceinit 609
mfeisensteinspaceinit_i 651
mfembed 100845
mfembed0 49
mfeval 168
mfeval_i 168
mffields 35
mffindeisen1 35
mffindrootof1 6741
mffrickeeigen 84
mffrickeeigen_i 119
mffromell 28
mffrometaquo 210
mffromlfun 21
mffromqf 77
mffulldim 868
mffvanish 14
mfgaexpansion 2051
mfgaexpansion_i 1288
mfgaexpansionall 175
mfgaexpansionatkin 77
mfgaloisprojrep 77
mfgaloistype 231
mfgaloistype0 224
mfgaloistype_i 182
mfgatogap 13041
mfgetembed 623
mfgetvan 189
mfhecke 119
mfhecke_i 25704
mfheckemat 77
mfheckemat_mfcoefs 350
mfheckemat_mfcoefs_p 35
mfheckemat_mfcoefs_p2 7
mfheckemat_p 343
mfinit 2450
mfinit_Nkchi 5075
mfinit_Nndkchi 2765
mfinit_i 3430
mfinitcusp 3269
mfinittonew 49
mfisCM 14
mfiscuspidal 238
mfisdihedral 224
mfisequal 196
mfisetaquo 49
mfisetaquo_i 49
mfisinkohnen 35
mfisinspace_i 259
mfisnotA5 105
mfisnotS4 105
mfistrivial 1372
mfkdims 2961
mfkdimsum 252
mfkohnenbasis 28
mfkohnenbasis_i 28
mfkohnenbijection 14
mfkohnenbijection_i 14
mfkohneneigenbasis 7
mflfuncreate 175
mflfuncreateall 147
mflinear 1106
mflinear_bhn 770
mflinear_i 490
mflinear_linear 2121
mflinear_strip 1960
mflineardiv_linear 2121
mflineardivtomat 644
mfmanin 42
mfmatembed 70
mfmatsermul 700
mfmatsermul_Fl 1141
mfmul 455
mfmultheta 448
mfnewchkzero 2673683
mfnewdim 16002
mfnewinit 15757
mfnewmathecke_p 924
mfnewtrace_i 2673683
mfnewtracecache 4646243
mfnewzerodata 33649
mfolddim 224
mfolddim_i 8512
mfparams 700
mfperiod_prelim 301
mfperiod_prelim_double 1253
mfperiodpol 35
mfperiodpolbasis 49
mfperiodpols_i 168
mfpetersson 126
mfpetersson2 21
mfpetersson_i 140
mfpeterssonnoncusp 14
mfpow 77
mfqk 6118
mfrhopol 402722
mfrhopol_eval 56622
mfrhopol_u_eval 4054376
mfrhopow 170066746
mfs_checkmf 49
mfs_iscusp 35
mfsamefield 4270
mfsearch 28
mfshifin 56
mfshift 42
mfshimura 63
mfshimura_space_cusp 49
mfskcx 7903
mfslashexpansion 1365
mfspace 287
mfspace_i 287
mfspclean 1092
mfsplit 112
mfstabiter 28
mfstabitermod 252
mfsturm 833
mfsturmNgk 3346
mfsturmNk 22036
mfsturm_mf 4592
mfsturmmf 427
mfsymbol 175
mfsymbol_i 168
mfsymboleval 210
mfsymboleval_direct 112
mfsymbolevalpartial 77
mftaylor 14
mfthetaI 56
mfthetaancreate 980
mfthetaexpansion 343
mfthetamultiplier 343
mftobasis 1029
mftobasisES 539
mftobasis_i 1449
mftocol 9121
mftocoset 7
mftocoset_i 9198
mftocoset_iD 9177
mftonew 217
mftonew_i 455
mftraceform 98
mftraceform_cusp 14
mftraceform_i 98
mftraceform_new 980
mftreatdihedral 784
mftrivial 91
mftwist 28
mfunram 119
mfval 49
mfvec_first_cusp 637
mfvecembed 1743
mfvectomat 2135
mintau 154
mkF2bd 1645
mkM 609
mkMinv 7819
mkNK 15267
mkS 21
mkbez 129171
mkeisen 6202
mkgNK 37863
mkgcd 129171
mklvchi 26810
mkmf 12544
mkmup 129171
mksqr 129171
moreorders 392
mubeta 7098
mubeta2 7850904
mutg1 163261104
mutglistall 16069092
mybezout 52164
mychareval 27645779
mycharexpo 626913
mychicgcd 411157547
mycore 72
mycoredisc2neg 179330287
mycoredisc2pos 14
mydivisorsu 71683095
myeulerphiu 110726
myfactoru 34098912
myimag_i 189
mymoebiusu 65709
mynffactor 1533
mynumdivu 3031
mypsiu 401541
myradicalu 119
mysqrtu 56
mysumdivku 48020
myugcd 288402905
myusqrt 84
newd_params 42525
newd_params2 21
newt_params 1941594
newtrace_DATA 34601
newtrace_stripped 34601
nf2_get_conj 5768
nf_primpart 455
nfcontent 294
non_residues 2814
normal 98
normalizeapprox 56
normalizeapprox_i 2898
not_in_space 77
nu2 17647
nu3 10220
nuinf 39116
ok_bhn_linear 4144
paramconst 133
pari_close_mf 1890
parse_vecj 15491
pathmattovec 7
phipart 36869
pindices 1834
pol_red 455
polabstorel 518
polishomogeneous 140
reset_cachenew 34601
rootspowers 217
same_cyc 616
search_A5 0
search_abelian 182
search_from_split 889
search_levels 63
search_solvable 77
seenD 413
sertocol 2583
sertocol2 70
sertovecslice 847
shift_M 1288
sigchi 24192
sigchi2 608559
sigchi2_Fl 77791
sigchi2_dec 686350
simple_pole 49
sort_by_dim 1092
space_is_cusp 6104
split 252
split_i 1169
split_ii 1491
split_starting_space 1092
sqrtm1modN 595
sqrtm3modN 581
symbol_same_mf 35
symbol_type 161
tag 10423
tag0 56
tag2 37499
tag3 16415
tag4 0
taglinear 2926
taglinear_i 7070
tagparams 64526
toRgX0 2863
tobasis 1057
tp2apply 70
tp2eapply 70
tracerel 253855
tracerel_i 80255
tracerel_z 6944
tracerelz 84756
trconj 270911
u_pporad 28
unact 14
unpack0 1043
unpack2 42
unpack23 308
update_Mj 1239
update_factor_cache 2131
val 189
valNC2 168
van_embedall 357
vanembed 490
vchip_FC 282559972
vchip_lift 428379
vchip_mod 6586245
vchip_polmod 1992428
vecGalois 1022
vecact_GL2 7
vecembed1 798
vecembed2 42
vecj_expand 11039
vecmfNK 3339
vecmflinear 1218
vecmflineardiv0 434
vecmflineardiv_linear 483
vecpermute_inplace 1372
vecpermute_partial 1610
vecpush 1239
wt1empty 16632
wt1mulcond 0
wt1newlevel 7
zero_at_cusp 168
zeta2CO 3696
znchareval_i 2556365
zncharsG 1169
znstar_get_expo 1302

Generated by: LCOV version 1.16