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

Generated by: LCOV version 1.16