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 30112-ee56c7c1f9) Lines: 7496 7702 97.3 %
Date: 2025-04-03 09:18:57 Functions: 769 775 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
mfkohnenbasis 21
mfkohnenbasis_i 21
mfpetersson2 21
mftwist 21
mkS 21
newd_params2 21
RgX_isspherical 28
anyembed 28
checkPv 28
checkemb_i 28
dim_filter 28
fs_set_expan 28
initwt1trace 28
lfunquadneg_naive 28
mf1olddimall 28
mfbracket 28
mfcusps 28
mffromell 28
mfisinkohnen 28
mfsearch 28
mfstabiter 28
u_pporad 28
QabM_rank 35
c_shift 35
desc_hecke 35
mfcharchiliftprim 35
mfeigensearch 35
mffields 35
mffindeisen1 35
mfheckemat_mfcoefs_p 35
mfperiodpol 35
mfs_iscusp 35
symbol_same_mf 35
actal 42
c_bracket 42
foo_stable 42
mf1 42
mfinittonew 42
mfmanin 42
mfshift 42
mfshimura_space_cusp 42
unpack2 42
vecembed2 42
Mindex_as_coef 49
c_QFsimple_i 49
deg1ser_shallow 49
findqganew 49
inflatemod 49
mfatkineigenvalues 49
mfcusps_i 49
mfdiv 49
mfembed0 49
mfisetaquo 49
mfisetaquo_i 49
mfperiodpolbasis 49
mfs_checkmf 49
mfshimura 49
mfval 49
simple_pole 49
constcoredisc 52
hclassno6_count 54
c_QF_i 56
checkmfa 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
mfatkin 56
mfatkineigenquad 56
mfcharconj 56
mfthetaI 56
mysqrtu 56
normalizeapprox 56
tag0 56
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
intAoo0 77
mfEHcoef 77
mffromqf 77
mfgaexpansionatkin 77
mfgaloisprojrep 77
mfheckemat 77
mfpow 77
mfsymbolevalpartial 77
not_in_space 77
search_solvable 77
hclassno6u_2 84
heckef2_data 84
lfunmf 84
mffrickeeigen 84
mftrivial 84
myusqrt 84
findqga 91
mfatkininit 91
RgV_heckef2 98
RgXV_embed 98
desc_linear 98
mf2init 98
mfsplit 98
mftraceform 98
mftraceform_i 98
normal 98
RgV_shimura 105
mf1dims 105
mfcharAL 105
mffrickeeigen_i 105
mfhecke 105
mfisnotA5 105
mfisnotS4 105
RgV_pows_RgXn 112
c_pow 112
mat2cusp 112
mfatkinmatnewquad 112
mfsymboleval_direct 112
mfunram 119
myradicalu 119
RgV_approx 126
bestapprnf2 126
col2cusp 126
mfpetersson 126
paramconst 126
NK_eisen2 133
checkNK 133
mflfuncreateall 133
Haberland 140
c_const 140
mfpetersson_i 140
polishomogeneous 140
QabM_tracerel 147
intAoowithvanall 147
mfcharpow 147
constdiv 152
RgX_act_gen 154
consttabh 154
mfcheapeisen 154
mintau 154
c_twist 161
lfunthetaall 161
mfcuspwidth 161
mfeigenembed 161
mflfuncreate 161
symbol_type 161
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
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
mftonew 210
nfcontent 210
findd 217
mfatkininit_i 217
rootspowers 217
mf1intermat 224
mfgaloistype0 224
mfisdihedral 224
mfolddim 224
mfeisensteindim 231
mfgaloistype 231
mfiscuspidal 231
split 231
atkin_get_NQ 238
MF_get_r 245
mfisinspace_i 245
getcolswt2 252
mf1_cusptonew 252
mfbd 252
mfkdimsum 252
mfstabitermod 252
get_P 259
act_GL2 266
c_F2TH4 266
mf2basis 266
mf2init_Nkchi 266
mfEH 266
mfEHmat 266
dim_sum 287
mfspace 287
mfspace_i 287
matTpmod 301
mfcoef 301
mfperiod_prelim 301
unpack23 308
mfcuspisregular 315
divisorsNF 322
bdexpandall 329
nf_primpart 329
c_mfEH 343
mf2gaexpansion 343
mfeigenbasis 343
mfheckemat_p 343
mfthetaexpansion 343
mfthetamultiplier 343
van_embedall 343
RgC_embedall 350
mfheckemat_mfcoefs 350
mfbasis 357
RgX_embedall 364
cusp_canon 364
evalcusp 364
cmp_ord 371
mfeisenstein 371
mfeisenstein_i 371
RgXn_negpow 375
_RgXQM_mul 378
matdeflate 385
moreorders 392
RgV_div_RgXn 399
mfEk 406
MF_set_space 413
seenD 413
getcolsgen 427
mfsturmmf 427
pol_red 427
vecmflineardiv0 427
mf_get_r 441
mfmultheta 448
mftonew_i 448
mfak_i 455
mfmul 455
Tp 469
mf1olddimsum 469
mf1cuspdim 476
mflinear_i 476
vecmflineardiv_linear 476
vanembed 490
desc_mfeisen 504
cache_reset 517
cusp2mat 518
polabstorel 518
eta3_ZXn 525
mf_setfield 525
cache_set 531
RgX_embed2 532
mftobasisES 532
c_delta 539
sqrtm3modN 539
get_mf_F 546
MF_get_fields 595
QabM_to_Flm 595
mf1dimmod 595
mfcharinv_i 595
sqrtm1modN 595
QabM_Minv 602
mfeisensteinspaceinit 602
mkM 602
mfgetembed 609
mfEMPTYall 616
same_cyc 616
desc 623
mfvec_first_cusp 623
fs_get_bitprec 630
mflineardivtomat 630
c_mul 637
charsmodN 644
mfeisensteinspaceinit_i 644
chicompatfix 651
chicompatlift 651
mfcoefsser 665
MFcusp_get_vMjd 672
mfmatsermul 686
mf2dimwt32 693
mflinear_bhn 700
mfparams 700
mfbd_E2 721
grootsof1_CHI 777
mftreatdihedral 784
MF_get_newforms 798
checkfs_i 798
mfTheta 798
vecembed1 798
mfsturm 805
c_div 833
c_div_i 833
sertovecslice 833
fs_get_vES 847
mfclean2 847
mffulldim 861
c_Ek 882
search_from_split 889
const_mat 896
mfnewmathecke_p 896
getembed 924
intAoo 945
mfthetaancreate 952
mftraceform_new 952
mfdescribe 966
mfchilift 980
mfcuspcanon_width 987
tobasis 1008
QabM_pseudoinv 1015
mf_eisendec 1015
mfeisensteindec 1015
mftobasis 1022
vecGalois 1022
mfEMPTY 1029
unpack0 1043
c_hecke 1050
mf1newdimsum 1050
mflinear 1050
mfspclean 1071
sort_by_dim 1071
split_starting_space 1071
mfgaexpansion_i 1085
shift_M 1085
ZabM_pseudoinv_i 1092
mfcharmul 1106
mf_same_CHI 1127
cusp_AC 1134
mfmatsermul_Fl 1141
mfslashexpansion 1148
split_i 1148
lfuntag 1155
mf_same_k 1169
zncharsG 1169
update_Mj 1190
GL2toSL2 1211
vecmflinear 1211
vecpush 1211
QabM_init 1239
fs_get_vE 1246
mfperiod_prelim_double 1253
QabM_pseudoinv_i 1274
Minv_RgM_mul 1281
RgX_act_S 1288
znstar_get_expo 1288
findbestsplit 1323
vecpermute_inplace 1330
ZM_mulS 1337
mfistrivial 1351
MF_set_new 1379
vecpermute_partial 1379
mfdim_Nkchi 1393
mfeisensteinbasis_i 1407
mftobasis_i 1407
mfeisensteinbasis 1435
fs_get_MF 1463
split_ii 1470
mf_normalize 1477
QabX_to_Flx 1484
mynffactor 1498
bestapprnfrel 1519
desc_i 1540
QabM_ker 1561
condC 1568
bern_init 1589
fs_get_pols 1596
mfchisimpl 1596
mkF2bd 1645
RgX_embed 1687
mfvecembed 1715
mf1chars 1729
getcols 1806
mflinear_strip 1827
mf1_pre 1834
mfgaexpansion 1834
pindices 1834
check_SL2Z 1841
MF_get_basis 1855
pari_close_mf 1883
fs_get_expan 1890
c_newtrace 1897
c_theta 1911
charLFwt1_Fl 2002
mflinear_linear 2016
mflineardiv_linear 2016
RgV_normalize 2065
mf1dimsum 2114
mfvectomat 2114
mfdiv_val 2163
fs_get_cosets 2191
c_linear_bhn 2233
update_factor_cache 2254
mfqk 2338
ZM_mulTi 2352
get_vDIH 2373
sertocol 2387
mfinit 2401
Tpmod 2408
RgM_Minv_mul 2436
hecke_i 2527
getnlim2 2555
getw1w2 2555
abundant 2569
act_S 2576
mfcoefs_mf 2597
anextract 2618
charLFwt1 2618
mfeisenstein2all 2625
mfcharistrivial 2709
mfinit_Nndkchi 2716
chicompat 2723
taglinear 2772
non_residues 2814
mfchiadjust 2821
RgX_act_typ 2842
RgX_approx 2863
toRgX0 2863
charLFwtk_Fl 2891
normalizeapprox_i 2898
mfkdims 2961
mynumdivu 2996
c_linear 3003
mfdim0all 3010
check_M2Z 3052
mfinitcusp 3220
vecmfNK 3227
mfchars 3255
mfsturmNgk 3304
mfskcx 3346
lamCO 3360
RgV_mul_RgXn 3381
mfinit_i 3381
mfcuspdim 3402
dim22 3696
zeta2CO 3696
mfdihedralcusp 3857
mfcoefs 3878
checkMF 3920
mfsamefield 3920
mf1init 3969
fmt_dim 3983
gmfcharno 3983
ok_bhn_linear 3983
get_mfchar 4039
mfcleanCHI 4046
mf1cuspdimsum 4123
mf1cuspdimall 4144
charLFwtk 4361
getcols_i 4382
mfeisenstein2_0_Fl 4382
mfeisenstein2pure_Fl 4382
MF_get_E 4438
mfsturm_mf 4536
ZM_mulT 4634
RgV_to_ser_full 4655
MF_get_Minv 4795
f00 4865
mfchargalois 4872
Rg_embedall_i 4907
mfclean 4998
mfinit_Nkchi 5012
RgV_shift 5159
vecj_expand 5159
mfeisenstein2pure 5166
expandbd 5425
mfalchi2 5460
mfcharmulcxeval 5460
mfeisensteingacx 5460
mfgatogap 5460
mfchardiv 5509
mfchardiv_i 5509
MF_get_dim 5523
c_dihedral 5579
mfdim 5719
improve 5740
nf2_get_conj 5768
mkeisen 5782
mfchartrivial 5796
space_is_cusp 6020
f00_i 6146
bdexpand 6370
char2 6615
mffindrootof1 6741
taglinear_i 6748
MF_get_M 6797
bhnmat_extend_nocache 6923
tracerel_z 6944
mubeta 6993
expandbd_Fl 7021
mfdihedralcuspdim 7105
MF_get_k 7126
MFnew_get_vj 7189
mf1cuspdim_i 7315
Minv_RgC_mul 7329
mfbdall 7364
c_Bd 7462
ceilA1 7616
get_badj 7616
mkMinv 7742
get_gb 7805
badchar 7840
hash_eisengacx 7868
mfeisenstein2_0 7917
m1pk 8197
mfolddim_i 8372
Rg_approx 8582
MF_get_CHI 8659
mfdihedralnew 8820
c_deflate 8834
bhnmat_extend 9079
mftocol 9086
SL2_div_D 9177
mftocoset_iD 9177
checkCHI 9198
mftocoset_i 9198
checkNK2 9205
dihan_bnf 9331
parse_vecj 9394
cache_delete 9415
mfcharcxeval 9499
mfZC_width 9772
nu3 10178
tag 10248
Wcoshall 10304
Wint 10304
Wparams 10304
QabM_indexrank 10402
MF_get_Mindex 10430
mfcharmuleval 10920
c_mfeisen 11277
mf1basis 11284
coset_complete 11963
mfconreyminimize 12138
mkmf 12341
get_DIH 12355
mfcharinduce 13048
init_cachenew 13216
Rg_embed2 13328
dihan 13573
mfcharno 13692
charistotallyeven 13846
RgX_embed1 14203
mfchareval 14217
gausssumcx 14266
mfcharcxinit 14266
MF_get_space 14714
MF_get_gk 14777
mkNK 15064
CHIvec_CHI 15456
mfnewinit 15596
mfnewdim 15841
get_bnrconreyN 15862
tag3 16093
QabV_tracerel 16114
mfdihedralnewdim 16149
wt1empty 16632
dbg_cachenew 17241
hecke_data 17542
nu2 17549
append_dihedral 18718
mf_get_NK 18767
checkmf_i 18781
checkMF_i 18816
MF_get_N 19369
MF_get_gN 20475
MF_get_S 21133
mfsturmNk 21777
mybezout 21840
sigchi 24192
mf_get_field 24325
mfhecke_i 24633
mfdihedralnew_i 24969
cyc_normalize_zv 26810
mklvchi 26810
Galois 30331
bhn_newtrace 32501
initnewtrace_i 32711
inittrconj 32711
mfcharinit 32718
initnewtrace 32816
mfnewzerodata 32816
mfdihedralcommon 33698
newtrace_DATA 33740
newtrace_stripped 33740
reset_cachenew 33740
Qab_trace_init 34034
bnrchartwist2conrey 34489
conreydenormalize 34489
cmp_coset 35469
CHIvec_ord 35777
mfbd_i 35840
tag2 36148
phipart 36869
mkgNK 37023
dihan_bnr 37758
mfcoefs_i 38017
QabC_to_Flc 38164
nuinf 38941
mf2dimwt12 41363
newd_params 41552
di_N 42042
induceN 42364
A4 43288
mfcuspdim_i 43365
mf2dim_Nkchi 43463
checkmf2 43729
A21 43750
A22 43750
A3 44198
mfdim_Nndkchi 44744
mysumdivku 48020
is_cond 49364
CHIvec_parity 54082
sigchi2_Fl 55615
mfrhopol_eval 56619
mf_get_CHI 62055
tagparams 62671
VS 63742
Wint2 63742
mymoebiusu 65709
mfcharparity 68411
mf_get_k 71750
Unelson 71932
cmp_small_priority 73759
WfromZ 74046
mfchartoprimitive 76405
tracerel_i 80255
RgC_Bd_expand 82495
bhn_parse 82495
Miyake 84028
Rg_embed1 84658
tracerelz 84756
hclassno6u_no_cache 86912
heckenewtrace 88725
Rg_embedall 95154
mfembed 100831
mfdiheval 107611
myeulerphiu 109711
char_normalize_zv 118517
mf_get_N 118979
inittrace 127197
mkbez 127197
mkgcd 127197
mkmup 127197
mksqr 127197
mf_get_gk 139132
colnewtrace 179263
mf_get_gN 184093
Qab_zeta 200242
trconj 204089
Qab_Czeta_Fl 221585
mf_get_type 231791
fix_pol 234178
tracerel 253855
get_PSI 299775
mfcharmul_i 301861
induce 307937
div_restrict 322077
A1 359429
mfrhopol 361569
mfcharGL 373898
mypsiu 394156
mfcharconductor 397418
vchip_lift 410718
CHIvec_expo 422457
mycharexpo 422457
mfcharpol 564193
sigchi2 593803
fg1g2n 612675
sigchi2_dec 649418
gmfcharmodulus 1560867
mfcharmodulus 1560867
newt_params 1874793
vchip_polmod 1913468
Qab_Czeta 2189747
hclassno6u 2412549
znchareval_i 2508317
mfnewchkzero 2599616
mfnewtrace_i 2599616
mfrhopol_u_eval 3251109
mfcharevalord 3563462
mfcharorder 3684898
gmfcharorder 3723251
mfnewtracecache 4501189
corediscs_fact 5812952
TA1 6390872
TA2 6390872
TA3 6390872
TA4 6390872
mfcusptrace_i 6390872
vchip_mod 6440981
mfcusptracecache 7650522
mubeta2 7650522
eiscnm 7830900
Qab_to_Fl 8534960
myh 10646797
lamsig 14111958
mutglistall 15215785
mychareval 24038714
CHIvec_val 24048745
CHIvec_N 24695398
auxsum 33177381
myfactoru 33685499
mydivisorsu 69087425
hclassno6u_i 156440633
mutg1 161244663
mfrhopowsimp 168051124
mycoredisc2neg 176460546
vchip_FC 279516148
myugcd 283248371
mychicgcd 402384895
cache_get 448745988

Generated by: LCOV version 1.16