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 30702-bddb8d6928) Lines: 7529 7736 97.3 %
Date: 2026-02-23 02:23:56 Functions: 772 778 99.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
A1 314033
A21 37829
A22 37829
A3 38213
A4 37427
AX_B 174
CHIvec_CHI 22212
CHIvec_N 24515922
CHIvec_expo 537354
CHIvec_ord 56838
CHIvec_parity 46932
CHIvec_val 23717292
CX_D 174
GL2toSL2 1223
Galois 25998
Haberland 120
Hfind 6
MF_get_CHI 7582
MF_get_E 3843
MF_get_M 5927
MF_get_Mindex 9119
MF_get_Minv 4175
MF_get_N 17197
MF_get_S 18472
MF_get_basis 1638
MF_get_dim 4835
MF_get_fields 528
MF_get_gN 18229
MF_get_gk 13304
MF_get_k 6204
MF_get_newforms 702
MF_get_r 240
MF_get_space 13191
MF_set_new 1362
MF_set_space 354
MFcusp_get_vMjd 588
MFnew_get_vj 6294
Mindex_as_coef 42
Minv_RgC_mul 6803
Minv_RgM_mul 1122
Miyake 72024
NK_eisen2 120
QabC_to_Flc 32712
QabM_Minv 522
QabM_indexrank 9054
QabM_init 1068
QabM_ker 1416
QabM_pseudoinv 936
QabM_pseudoinv_i 1164
QabM_rank 30
QabM_to_Flm 510
QabM_tracerel 132
QabV_tracerel 13883
QabX_to_Flx 1272
Qab_Czeta 1926827
Qab_Czeta_Fl 268320
Qab_to_Fl 7315680
Qab_trace_init 29195
Qab_tracerel 0
Qab_zeta 172086
RgC_Bd_expand 72570
RgC_embedall 300
RgM_Minv_mul 2100
RgV_approx 108
RgV_div_RgXn 342
RgV_heckef2 84
RgV_inflatemod 6
RgV_mul_RgXn 7602
RgV_normalize 1770
RgV_pows_RgXn 96
RgV_shift 9462
RgV_shimura 96
RgV_to_ser_full 4194
RgXV_embed 84
RgX_act_S 1104
RgX_act_gen 132
RgX_act_typ 2436
RgX_approx 2454
RgX_by_parity 12
RgX_embed 1446
RgX_embed1 12174
RgX_embed2 456
RgX_embedall 312
RgX_isspherical 24
RgX_valrem_root 60
RgXn_negpow 318
Rg_approx 7356
Rg_embed1 72559
Rg_embed2 11424
Rg_embedall 81554
Rg_embedall_i 4206
SL2_div_D 7866
TA1 5626317
TA2 5626317
TA2_t 277787665
TA3 5626317
TA4 5626317
Tp 402
Tpmod 2064
Unelson 61656
VS 54636
Wcoshall 8832
WfromZ 63468
Wint 8832
Wint2 54636
Wparams 8832
ZM_mulS 1146
ZM_mulT 3972
ZM_mulTi 2016
ZX_roots 156
ZabM_pseudoinv_i 948
_RgXQM_mul 324
abundant 2231
act_GL2 228
act_S 2208
actal 36
anextract 2268
anyembed 24
append_dihedral 16044
atkin_get_NQ 210
auxsum 29181003
badchar 6796
bdexpand 12144
bdexpandall 293
bern_init 1734
bestapprnf2 108
bestapprnfrel 1302
bhn_newtrace 29994
bhn_parse 72570
bhnmat_extend 7956
bhnmat_extend_nocache 6078
bnrchartwist2conrey 29562
c_Bd 6450
c_Ek 754
c_F2TH4 228
c_QF_i 48
c_QFsimple_i 42
c_bracket 36
c_const 126
c_cusptrace 18
c_deflate 7662
c_delta 462
c_deriv 150
c_derivE2 12
c_dihedral 4782
c_div 726
c_div_i 726
c_ell 66
c_etaquo 174
c_hecke 1068
c_linear 2592
c_linear_bhn 1998
c_mfEH 294
c_mfeisen 9737
c_mul 546
c_newtrace 1644
c_pow 96
c_shift 30
c_theta 1668
c_twist 144
cache_delete 7440
cache_get 391205938
cache_report 60
cache_reset 296
cache_set 308
ceilA1 6648
char2 9690
charLFwt1 2244
charLFwt1_Fl 1716
charLFwtk 3905
charLFwtk_Fl 2766
char_normalize_zv 101586
charistotallyeven 11868
charsmodN 558
checkCHI 7925
checkMF 3622
checkMF_i 16532
checkNK 114
checkNK2 7931
checkPv 24
check_M2Z 2986
check_SL2Z 1763
checkbij_i 6
checkemb_i 24
checkfs2_i 180
checkfs_i 684
checkmf2 37488
checkmf_i 16765
checkmfa 54
chicompat 2430
chicompatfix 558
chicompatlift 558
cmp_coset 30402
cmp_ord 318
cmp_small_priority 63798
col2cusp 108
colnewtrace 159084
condC 1344
conreydenormalize 29562
const_mat 780
constcoredisc 35
constdiv 85
constfact 114
consttabdihedral 12
consttabh 85
corediscs_fact 2814566
coset_complete 10254
cusp2mat 444
cusp_AC 971
cusp_canon 312
cxredga0N 155
cyc_normalize_zv 22980
dbg_cachenew 15240
deg1ser_shallow 42
desc 534
desc_dihedral 18
desc_hecke 30
desc_i 1320
desc_linear 84
desc_mfeisen 432
di_N 36036
dihan 11634
dihan_bnf 7998
dihan_bnr 32364
dim22 3168
dim_filter 36
dim_sum 246
discard_Ti 0
div_restrict 288240
divisorsNF 276
eiscnm 8258724
err_cyclo 12
err_space 6
eta3_ZXn 450
evalcusp 311
expandbd 5016
expandbd_Fl 6612
f00 10668
f00_i 11766
fg1g2n 733086
findbestsplit 1164
findd 186
findq 12
findqga 78
findqganew 42
fix_pol 200724
fmt_dim 3414
foo_stable 36
fs2_get_F 48
fs2_get_MF 48
fs2_get_W 48
fs2_get_al0 48
fs2_get_bitprec 0
fs2_get_cusps 48
fs2_get_den 18
fs2_init 18
fs_get_EF 60
fs_get_MF 1254
fs_get_bitprec 540
fs_get_cosets 1878
fs_get_expan 1620
fs_get_pols 1368
fs_get_vE 1068
fs_get_vES 726
fs_set_expan 24
gausssumcx 29130
get_DIH 10590
get_P 222
get_PSI 256950
get_Shimura 18
get_badj 6648
get_bnrconreyN 13596
get_gb 6690
get_mf_F 468
get_mfchar 3492
get_vDIH 2034
get_vP 18
getcache 12
getcols 1746
getcols_i 4332
getcolsgen 378
getcolswt2 216
getembed 803
getnlim2 2190
getw1w2 2190
gmfcharmodulus 1388379
gmfcharno 3414
gmfcharorder 3322482
grootsof1_CHI 677
gsubstvec_i 12
hash_eisengacx 16488
hclassno6_count 31
hclassno6u 1876052
hclassno6u_2 43
hclassno6u_fund 9212856
hclassno6u_i 135725073
hclassno6u_no_cache 62073
hecke_data 15828
hecke_i 2334
heckef2_data 72
heckenewtrace 78498
improve 4920
induce 267582
induceN 36408
inflatemod 42
init_cachenew 11700
initnewtrace 28842
initnewtrace_i 28752
inittrace 110718
inittrconj 28752
initwt1newtrace 18
initwt1trace 24
intAoo 810
intAoo0 66
intAoowithvanall 126
inveis_extraprec 60
is_cond 42312
lamCO 2880
lamsig 5246060
lfunfindchi 18
lfunmf 84
lfunquadneg_naive 24
lfuntag 1024
lfunthetaall 137
m1pk 7108
mat2cusp 96
matTp 48
matTpmod 258
matdeflate 336
merge_dims 6
mf1 36
mf1_cusptonew 216
mf1_pre 1572
mf1basis 9672
mf1chars 1482
mf1cuspdim 408
mf1cuspdim_i 6270
mf1cuspdimall 3552
mf1cuspdimsum 3534
mf1dimmod 510
mf1dims 90
mf1dimsum 1812
mf1init 3402
mf1intermat 192
mf1newdimall 48
mf1newdimsum 900
mf1olddimall 24
mf1olddimsum 402
mf2basis 234
mf2dim_Nkchi 37254
mf2dimwt12 35454
mf2dimwt32 594
mf2gaexpansion 294
mf2init 84
mf2init_Nkchi 234
mfDelta 48
mfEH 228
mfEHcoef 66
mfEHmat 228
mfEMPTY 881
mfEMPTYall 528
mfEk 347
mfTheta 690
mfZC_width 8549
mf_eisendec 1044
mf_get_CHI 56162
mf_get_N 106299
mf_get_NK 16878
mf_get_field 21497
mf_get_gN 164541
mf_get_gk 123958
mf_get_k 63196
mf_get_r 378
mf_get_type 206659
mf_normalize 1320
mf_same_CHI 982
mf_same_k 1018
mf_setfield 504
mfak_i 390
mfalchi2 11178
mfatkin 54
mfatkineigenquad 48
mfatkineigenvalues 42
mfatkininit 84
mfatkininit_i 192
mfatkinmatnewquad 96
mfbasis 318
mfbd 228
mfbd_E2 618
mfbd_i 31697
mfbdall 6329
mfbracket 24
mfcanfindp0 12
mfcharAL 96
mfcharGL 324694
mfcharchiliftprim 36
mfcharconductor 341097
mfcharconj 48
mfcharcxeval 8153
mfcharcxinit 29130
mfchardiv 8724
mfchardiv_i 8724
mfchareval 12474
mfcharevalord 3150394
mfchargalois 4176
mfcharinduce 11184
mfcharinit 28758
mfcharinv_i 510
mfcharistrivial 2322
mfcharmodulus 1388379
mfcharmul 966
mfcharmul_i 258852
mfcharmulcxeval 11178
mfcharmuleval 22356
mfcharno 11742
mfcharorder 3272382
mfcharparity 58858
mfcharpol 513728
mfcharpow 138
mfchars 2790
mfchartoprimitive 70570
mfchartrivial 5020
mfcheapeisen 131
mfchiadjust 2514
mfchiembed 6
mfchilift 936
mfchisimpl 1368
mfclean 4325
mfclean2 738
mfcleanCHI 3509
mfcoef 258
mfcoefs 3552
mfcoefs_i 33051
mfcoefs_mf 2255
mfcoefsser 582
mfconductor 150
mfconreyminimize 10404
mfcosets 144
mfcuspcanon_width 857
mfcuspdim 2963
mfcuspdim_i 37493
mfcuspisregular 270
mfcusps 24
mfcusps_i 42
mfcusptrace_i 5626317
mfcusptracecache 6729339
mfcuspval 174
mfcuspwidth 138
mfderiv 156
mfderivE2 18
mfdescribe 828
mfdihedral 12
mfdihedralall 12
mfdihedralcommon 28884
mfdihedralcusp 3306
mfdihedralcuspdim 6090
mfdihedralnew 7560
mfdihedralnew_i 21402
mfdihedralnewdim 13842
mfdiheval 92238
mfdim 4902
mfdim0all 2580
mfdim_Nkchi 1200
mfdim_Nndkchi 38352
mfdiv 42
mfdiv_val 1950
mfeigenbasis 312
mfeigenembed 138
mfeigensearch 30
mfeisenstein 324
mfeisenstein2_0 7169
mfeisenstein2_0_Fl 4332
mfeisenstein2all 2267
mfeisenstein2pure 4788
mfeisenstein2pure_Fl 4332
mfeisenstein_i 324
mfeisenstein_prim 294
mfeisensteinbasis 1247
mfeisensteinbasis_i 1223
mfeisensteindec 1044
mfeisensteindim 198
mfeisensteingacx 11178
mfeisensteinspaceinit 522
mfeisensteinspaceinit_i 558
mfembed 86431
mfembed0 42
mfeval 143
mfeval_i 143
mffields 30
mffindeisen1 30
mffindrootof1 5778
mffrickeeigen 72
mffrickeeigen_i 102
mffromell 24
mffrometaquo 180
mffromlfun 18
mffromqf 66
mffulldim 744
mffvanish 12
mfgaexpansion 1757
mfgaexpansion_i 1104
mfgaexpansionall 150
mfgaexpansionatkin 66
mfgaloisprojrep 66
mfgaloistype 198
mfgaloistype0 192
mfgaloistype_i 156
mfgatogap 11178
mfgetembed 533
mfgetvan 162
mfhecke 102
mfhecke_i 22032
mfheckemat 66
mfheckemat_mfcoefs 300
mfheckemat_mfcoefs_p 30
mfheckemat_mfcoefs_p2 6
mfheckemat_p 294
mfinit 2099
mfinit_Nkchi 4349
mfinit_Nndkchi 2369
mfinit_i 2939
mfinitcusp 2801
mfinittonew 42
mfisCM 12
mfiscuspidal 203
mfisdihedral 192
mfisequal 168
mfisetaquo 42
mfisetaquo_i 42
mfisinkohnen 30
mfisinspace_i 221
mfisnotA5 90
mfisnotS4 90
mfistrivial 1174
mfkdims 2538
mfkdimsum 216
mfkohnenbasis 24
mfkohnenbasis_i 24
mfkohnenbijection 12
mfkohnenbijection_i 12
mfkohneneigenbasis 6
mflfuncreate 150
mflfuncreateall 126
mflinear 948
mflinear_bhn 660
mflinear_i 420
mflinear_linear 1818
mflinear_strip 1680
mflineardiv_linear 1818
mflineardivtomat 552
mfmanin 36
mfmatembed 60
mfmatsermul 600
mfmatsermul_Fl 978
mfmul 390
mfmultheta 384
mfnewchkzero 2291724
mfnewdim 13716
mfnewinit 13506
mfnewmathecke_p 792
mfnewtrace_i 2291724
mfnewtracecache 3982488
mfnewzerodata 28842
mfolddim 192
mfolddim_i 7296
mfparams 600
mfperiod_prelim 258
mfperiod_prelim_double 1074
mfperiodpol 30
mfperiodpolbasis 42
mfperiodpols_i 144
mfpetersson 108
mfpetersson2 18
mfpetersson_i 120
mfpeterssonnoncusp 12
mfpow 66
mfqk 5244
mfrhopol 345180
mfrhopol_eval 40445
mfrhopol_u_eval 3466842
mfrhopow 145771241
mfs_checkmf 42
mfs_iscusp 30
mfsamefield 3660
mfsearch 24
mfshifin 48
mfshift 36
mfshimura 54
mfshimura_space_cusp 42
mfskcx 6774
mfslashexpansion 1169
mfspace 246
mfspace_i 246
mfspclean 936
mfsplit 96
mfstabiter 24
mfstabitermod 216
mfsturm 714
mfsturmNgk 2866
mfsturmNk 18887
mfsturm_mf 3936
mfsturmmf 366
mfsymbol 150
mfsymbol_i 144
mfsymboleval 180
mfsymboleval_direct 96
mfsymbolevalpartial 66
mftaylor 12
mfthetaI 48
mfthetaancreate 838
mfthetaexpansion 294
mfthetamultiplier 294
mftobasis 881
mftobasisES 462
mftobasis_i 1241
mftocol 7817
mftocoset 6
mftocoset_i 7884
mftocoset_iD 7866
mftonew 186
mftonew_i 390
mftraceform 84
mftraceform_cusp 12
mftraceform_i 84
mftraceform_new 840
mftreatdihedral 672
mftrivial 78
mftwist 24
mfunram 102
mfval 42
mfvec_first_cusp 546
mfvecembed 1493
mfvectomat 1829
mintau 131
mkF2bd 1410
mkM 522
mkMinv 6700
mkNK 13084
mkS 18
mkbez 110718
mkeisen 5316
mkgNK 32452
mkgcd 110718
mklvchi 22980
mkmf 10751
mkmup 110718
mksqr 110718
moreorders 336
mubeta 6084
mubeta2 6729339
mutg1 139937907
mutglistall 13773434
mybezout 44712
mychareval 23696382
mycharexpo 537354
mychicgcd 352420410
mycore 60
mycoredisc2neg 153711396
mycoredisc2pos 12
mydivisorsu 61442398
myeulerphiu 94907
myfactoru 29227476
myimag_i 161
mymoebiusu 56322
mynffactor 1314
mynumdivu 2597
mypsiu 344174
myradicalu 102
mysqrtu 48
mysumdivku 41150
myugcd 247202027
myusqrt 72
newd_params 36450
newd_params2 18
newt_params 1664221
newtrace_DATA 29658
newtrace_stripped 29658
nf2_get_conj 4944
nf_primpart 390
nfcontent 252
non_residues 2412
normal 84
normalizeapprox 48
normalizeapprox_i 2484
not_in_space 66
nu2 15126
nu3 8760
nuinf 33527
ok_bhn_linear 3552
paramconst 114
pari_close_mf 1488
parse_vecj 13278
pathmattovec 6
phipart 31602
pindices 1572
pol_red 390
polabstorel 444
polishomogeneous 120
reset_cachenew 29658
rootspowers 186
same_cyc 528
search_A5 0
search_abelian 156
search_from_split 762
search_levels 54
search_solvable 66
seenD 354
sertocol 2214
sertocol2 60
sertovecslice 726
shift_M 1104
sigchi 20736
sigchi2 521621
sigchi2_Fl 66678
sigchi2_dec 588299
simple_pole 42
sort_by_dim 936
space_is_cusp 5230
split 216
split_i 1002
split_ii 1278
split_starting_space 936
sqrtm1modN 510
sqrtm3modN 498
symbol_same_mf 30
symbol_type 138
tag 8933
tag0 48
tag2 32141
tag3 14070
tag4 0
taglinear 2508
taglinear_i 6060
tagparams 55306
toRgX0 2454
tobasis 906
tp2apply 60
tp2eapply 60
tracerel 217590
tracerel_i 68790
tracerel_z 5952
tracerelz 72648
trconj 232207
u_pporad 24
unact 12
unpack0 894
unpack2 36
unpack23 264
update_Mj 1062
update_factor_cache 736
val 162
valNC2 144
van_embedall 305
vanembed 420
vchip_FC 242194069
vchip_lift 367182
vchip_mod 5645347
vchip_polmod 1707793
vecGalois 876
vecact_GL2 6
vecembed1 684
vecembed2 36
vecj_expand 9462
vecmfNK 2862
vecmflinear 1044
vecmflineardiv0 372
vecmflineardiv_linear 414
vecpermute_inplace 1176
vecpermute_partial 1379
vecpush 1062
wt1empty 14256
wt1mulcond 0
wt1newlevel 6
zero_at_cusp 144
zeta2CO 3168
znchareval_i 2191170
zncharsG 1002
znstar_get_expo 1116

Generated by: LCOV version 1.16