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 - elliptic.c (source / functions) Coverage Total Hit
Test: PARI/GP v2.18.1 lcov report (development 31041-bd73e9fcdd) Lines: 94.2 % 4183 3940
Test Date: 2026-07-22 22:45:42 Functions: 97.8 % 371 363
Legend: Lines:     hit not hit

Function Name Sort by function name Hit count Sort by function hit count
checkell_Qp 0
checkellpt 0
ellintegralbmodel 0
ellprint 0
elltwist_card 0
localredbug 0
point_to_a4a6 0
triv_ser 0
bilhell 7
ch_Fp 7
ch_Rg 7
ellexpo 7
ellnf_isisom 7
CM_factor 14
ellchangeinvert 14
elllseries 14
ellmul_CM 14
ellmul_CM_aux 14
elltaniyama 14
bilhell_i 21
ch_Qp 21
ellQ_bsd 28
ellnf_veceta 28
ellheightpairing 35
min_set_2 35
ellQ_isdivisible 42
ellQ_isdivisible_test 42
ellQ_isisom 42
ellchangecompose_i 42
ellchangevecpt 42
ellnf_bsd 42
myroundr 42
nfrestrict23 42
ellQ_saturation 49
ellchangeinvert_i 49
ellisisom 49
ellnf_charpoly 49
ellnf_vecomega 49
ellsaturation 49
ellnf_volume 56
ellsub 56
bnf_get_v 63
ellnfminimalmodel 63
ellnfminimalmodel_i 63
ellbsd 70
elleulerf 70
ellheightfaltings 70
ellminimaldisc 70
ellpadicheight0 70
elltrace 70
ellQ_charpoly 77
ellneg_i 77
ellQ_tamagawa 84
elltamagawa 84
real_prec 84
ellQ_rootno 91
ellnf_vecarea 91
ellchangecompose 98
ellnf_get_CM 98
ec_phi2 105
ch_Fq 119
ch_FF 126
ellsea 126
to_RgX 126
elllog 140
min_set_3 140
Flv_firstnonzero 147
doellnfrootno 168
ellnf_rootno_global 168
ellnf_vec_wrap 168
elliscm 196
ellinit_Qp 203
ellnfan 203
ellrootno 210
padic_prec 238
ellnf_reladelicvolume 245
ellnf2isog 287
rootnovalp 287
elltatepairing 301
ellanQ 329
ellrnfup 364
ellxn 406
twist2 406
ellminimaltwistcond 434
ellminimaltwist0 448
nf_coordch 483
nf_coordch_rst 483
RgE2_Fp_init 497
ellchangevecptinv 504
ellan 525
ec_dFdy_evalQ 532
neron_3 595
ellff_charpoly 658
akell 693
checkell_int 693
ellminimaltwist 700
ec_half_deriv_2divpol_evalx 707
ellcharpoly 728
apk_good 735
ec_half_deriv_2divpol 812
ellQ_genreduce 833
ellnf_adelicvolume 854
ellnf_bsdperiod 854
ellheightmatrix 861
ellpadicheightmatrix 875
ellnf_tamagawa 882
ellQ_get_Nfa 952
ellminimalbmodel 966
ellchangepointinv 973
Q_to_globalred 980
ellnfglobalred 980
ellnfembed_free 1029
ellchangepointinv0 1036
ellffmul 1080
ellnf_D_primes 1106
ellsatp 1204
ellsatp_mat 1204
ellsupersingularj 1204
ellrootno_3 1428
ellrootno_2 1715
neron_2 1715
ZtoF2 1848
ellintegralmodel 2520
FljV_vecsat_Prickett 2807
ltors_Fl 2807
kod_23 3143
val_init 3143
doellrootno 3332
ellchangeptinv 3402
ellrootno_p 3479
checkellisog 3752
oncurve_exact 3855
ZV_is_ei 4214
ellQ_factorback 4228
QEV_to_ZJV 4460
ellanal_globalred 4641
ellrootno_global 4662
direllnf_worker 4956
elldivpol0 5075
ellweilpairing 5250
ellQ_factorback_chinese 5332
cardmod2 5894
F2_card 5915
ellanQ_zv 6825
ellapQ_zv 6825
cardmod3 7525
F3_card 7665
ellQ_get_N 8092
checkell_Q 8372
FljV_vecsat_Siksek 8631
ellQ_factorback_slice 8741
ellQ_factorback_worker 8741
ellbasechar 9429
val_aux 9429
nb_real_components 9723
ellQ_factorback_filter 10789
FljV_vecsat 11438
ellR_area 11998
sievep_bad 12775
elldivpol 13307
elldivpol4 15246
FljV_changepointinv_pre 15322
ellQ_factorback1 15732
gcomposev 15911
ellgenerators 16849
doellgens 18690
ellff_get_D 18690
ellff_get_m 18690
ellff_get_gens 18767
doellff_get_o 19292
nf_coordch_st 19406
ellff_get_o 19845
ellQtwist_bsdperiod 19859
_hell 20468
ellQ_get_CM 20585
ellapQ_zv_worker 20601
ellgroup0 21490
ellQminimalmodel 21637
ellminimalmodel 21707
ellfromj_simple 22715
nflocalred_section7 27524
ellheight_C 28728
elltwist 28735
prV_merge_factors 28812
ellpointnfembed 28819
ellnf_height 28833
Q_to_minimalprimes 29554
ec_2divpol_evalx 29715
ellnf_minimalnormu 29722
ellnf_c4c6_primes 29771
ellnfembed 29841
ellheightoo 30660
safe_Z_lval 31304
QE_to_ZJ 33680
ellfromj 34020
handle_Q 40495
ellisoncurve 44154
gellisoncurve_i 44294
ellQ_height 52410
ell_is_integral 52788
ellheight0 57659
ellminimalprimes 58660
ellnf_get_nf_prec 58660
nfembed_extraprec 58660
doellR_ab 58842
zk_capZ 60648
point_to_a4a6_Fl 64236
ec_3divpol_evalx 64856
ellinit_Rg 67116
approx_mod3 70308
ellinit_nf 73437
ellheight 81243
ellneg 82076
ellR_ab 83056
ellR_on_neutral 83056
ellR_root 83056
exphellagm 83056
hoo_aux 83056
quad_root 83056
ellnflocal 83773
ellnf_localheight 85211
ch_Q 90748
ch_R 90748
a4a6_ch_Fl 91290
Fq_c4c6_to_a4a6 93269
Fq_c4_to_a4 93274
ellQap 98532
chk_p 99596
ellinit_Fq 114525
ellchangept 116152
ellgroup_m 120715
FF_ellinit_ns 121337
ellisoncurve_i 126027
ellgroup 127806
nflocalred_p 128408
ec_LHS_evalQ 129804
ellchangepoint 132280
ec_dFdx_evalQ 135178
ellinit_nf_to_Fq 137732
ellnf_to_Fq 137753
ch_NF 140574
approx_mod2 140616
doellGm 146454
ellchangepoint0 146924
a4a6_ch 151083
ell_to_a4a6_bc 151083
ellchangetoalg 156933
Q_numer 157580
get_piinv 157675
ellinit_Fp 165734
elljissupersingular 165907
ellissupersingular 166117
ellff_get_group 167307
doellR_roots 170170
ell_to_nfell10 181986
nflocalred_23 181986
ellordinate 183127
ellordinate_i 183127
nf_compose_s 184658
nf_coordch_s 184658
ellff_Gm 185997
ellcard 187095
ellnfap 191595
checkellpts 192114
elllocalred 197085
nfembedall 206843
coordch 213157
fix_nftype 213367
ell_reset 213402
ellR_roots 223301
doellcard 224104
checkell5 228788
ellchangecurve 228788
coordch_uinv 229824
coordch_s 231210
doellR_roots_i 231577
invcmp 236790
ellrandom 246005
ec_bmodel 247915
ellmul_Z 251435
ellmul 251558
checkell_Fq 254244
ell_over_Fq 254244
nflocalred 261233
initsmall46 261822
ellff_get_card 269905
nfVtoalg 273637
nf_coordch_rt 301564
get_uniformizers 310394
ellff_get_p 386399
nf_coordch_t 407583
ellQap_u 407667
nf_compose_u 443723
nf_coordch_uinv 444206
numroots3 473879
nf_compose_r 479434
nf_compose_st 496370
nf_coordch_r 500026
pola1a2 579782
pola2a4a6 592928
nf_compose_rt 594209
_mul 618017
coordch_t 683326
coordch_rst 751128
coordch_st 751128
nf_compose_t 843276
ellglobalred 909685
ellQ_globalred 912184
ellglobalred_i 925421
ellQ_minimalu 959539
ellminimalmodel_i 963319
Z_gcd_primes 989310
min_to_ell 1008322
Zec_h_evalx 1021405
min_get_v 1021405
min_set_all 1021405
min_set_D 1021419
min_set_a 1021440
min_set_b 1021580
ellinit_Q 1023568
pola3a6 1070167
coordch_r 1264669
sievep_good 1266390
ellan_get_ap 1275422
sievep 1279165
min_set_c 1316155
min_set_u 1316155
ellap_CM_fast 1330735
ellinit 1353807
ellinit_i 1354955
is_trivial_change 1357959
localred_23 1362228
ec_f_evalx 1376700
initsmall5 1399013
get_j 1436596
initsmall 1444562
base_ring 1449175
numroots2 1537515
pol2sqrt_23 1627108
Fl_c4c6_to_a4a6 1644666
Fl_ell_to_a4a6 1644916
Fl_c6_to_a6 1645421
get_vp_u 1711836
localred_p 1711836
j_pval 1715315
aux 1723309
Fl_c4_to_a4 1724627
_sqr 1897129
to_mod 1964080
slope_samex 2047903
ec_dmFdy_evalQ 2085330
nftoalg 2127531
elladd 2567640
aux2 2773358
localred 3073588
localred_result 3384458
get_vp_u_small 3484835
ellcard_ram 4780784
ellap 4942625
ell_to_a4a6 4951229
init_ch 5090617
c4_to_a4 5245777
c4c6_to_a4a6 5245790
checkellp 5472356
checkellpt_i 5629166
vecispt 5821196
ec_h_evalx 5993081
ellintegralmodel_i 6117375
checkell 10098577
isptcoord 11376489
handle_coeff 30588212

Generated by: LCOV version 2.0-1