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) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30552-d1d0643eee) Lines: 3913 4160 94.1 %
Date: 2025-11-23 09:22:56 Functions: 363 371 97.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by 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
ellQ_isisom 7
ellexpo 7
ellnf_isisom 7
CM_factor 14
ellchangecompose 14
ellchangecompose_i 14
ellchangeinvert 14
ellisisom 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
ellnf_bsd 42
myroundr 42
nfrestrict23 42
ellQ_saturation 49
ellQ_tamagawa 49
ellchangeinvert_i 49
ellnf_charpoly 49
ellnf_vecomega 49
ellsaturation 49
ellsub 49
elltamagawa 49
ellchangevecpt 56
ellnf_get_CM 56
ellnf_volume 56
bnf_get_v 63
ellnfminimalmodel 63
ellnfminimalmodel_i 63
ellbsd 70
elleulerf 70
ellheightfaltings 70
ellminimaldisc 70
ellneg_i 70
ellpadicheight0 70
elltrace 70
ellQ_charpoly 77
real_prec 84
ellQ_rootno 91
ellnf_vecarea 91
ec_phi2 105
ch_Fq 119
ch_FF 126
ellsea 126
to_RgX 126
ellff_charpoly 140
elllog 140
min_set_3 140
Flv_firstnonzero 147
elliscm 154
doellnfrootno 168
ellnf_rootno_global 168
ellnf_vec_wrap 168
ellinit_Qp 203
ellnfan 203
ellcharpoly 210
ellrootno 210
padic_prec 238
ellnf_reladelicvolume 245
ellnf2isog 287
rootnovalp 287
elltatepairing 301
ellanQ 329
ellrnfup 364
_mul 385
twist2 392
ellminimaltwistcond 399
ellxn 406
ellminimaltwist0 448
nf_coordch 483
nf_coordch_rst 483
RgE2_Fp_init 497
ellchangevecptinv 504
ellan 525
ec_dFdy_evalQ 532
neron_3 595
ellminimaltwist 665
akell 693
checkell_int 693
ec_half_deriv_2divpol_evalx 707
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 917
ellminimalbmodel 966
Q_to_globalred 980
ellchangepointinv 980
ellnfglobalred 980
ellnfembed_free 1029
ellchangepointinv0 1043
ellnf_D_primes 1106
_sqr 1190
ellsatp 1204
ellsatp_mat 1204
ellsupersingularj 1204
ellrootno_3 1428
ellrootno_2 1673
neron_2 1673
ZtoF2 1820
ellintegralmodel 2492
FljV_vecsat_Prickett 2807
ltors_Fl 2807
ellordinate 3010
ellordinate_i 3010
kod_23 3101
val_init 3101
doellrootno 3269
ellchangeptinv 3360
ellrootno_p 3381
checkellisog 3752
oncurve_exact 3855
ZV_is_ei 4214
ellQ_factorback 4228
QEV_to_ZJV 4460
ellanal_globalred 4550
ellrootno_global 4599
direllnf_worker 4960
elldivpol0 5075
ellweilpairing 5250
ellQ_factorback_chinese 5332
cardmod2 5845
F2_card 5866
ellanQ_zv 6713
ellapQ_zv 6713
cardmod3 7378
F3_card 7518
ellQ_get_N 8071
checkell_Q 8246
FljV_vecsat_Siksek 8631
ellQ_factorback_slice 8741
ellQ_factorback_worker 8741
val_aux 9303
ellbasechar 9394
nb_real_components 9688
ellQ_factorback_filter 10789
FljV_vecsat 11438
ellR_area 11998
sievep_bad 12572
elldivpol 13272
elldivpol4 15211
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
ellapQ_zv_worker 20250
ellQ_get_CM 20410
_hell 20468
ellgroup0 21490
ellQminimalmodel 21567
ellminimalmodel 21637
ellfromj_simple 22715
slope_samex 25768
nflocalred_section7 27524
elltwist 28574
ellheight_C 28728
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 31290
QE_to_ZJ 33680
ellfromj 34020
handle_Q 40495
ellisoncurve 44156
gellisoncurve_i 44296
ellQ_height 52410
ell_is_integral 52753
elladd 54041
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 82034
ellR_ab 83056
ellR_on_neutral 83056
ellR_root 83056
exphellagm 83056
hoo_aux 83056
quad_root 83056
ellnflocal 83772
ellnf_localheight 85211
ch_Q 90720
ch_R 90720
a4a6_ch_Fl 91290
Fq_c4_to_a4 93477
Fq_c4c6_to_a4a6 93477
ellQap 98581
chk_p 99622
ellinit_Fq 114496
ellchangept 116215
ellgroup_m 120715
FF_ellinit_ns 120999
ellisoncurve_i 126029
ellgroup 127806
nflocalred_p 128408
ec_LHS_evalQ 129807
ellchangepoint 132385
ec_dFdx_evalQ 135143
ellinit_nf_to_Fq 137732
ellnf_to_Fq 137753
ch_NF 140574
approx_mod2 140616
doellGm 146454
ellchangepoint0 147029
a4a6_ch 150805
ell_to_a4a6_bc 150805
ellchangetoalg 156933
Q_numer 157580
get_piinv 157675
ellinit_Fp 165224
elljissupersingular 165907
ellissupersingular 166117
ellff_get_group 167307
doellR_roots 170058
ell_to_nfell10 181986
nflocalred_23 181986
nf_compose_s 184658
nf_coordch_s 184658
ellff_Gm 185997
ellcard 186995
ellnfap 191809
checkellpts 192228
elllocalred 197085
nfembedall 206843
coordch 213157
fix_nftype 213367
ell_reset 213402
ellR_roots 223147
doellcard 223493
checkell5 228788
ellchangecurve 228788
coordch_uinv 229824
coordch_s 231147
doellR_roots_i 231465
invcmp 236685
ellrandom 245679
ec_bmodel 247747
ec_dmFdy_evalQ 248538
ellffmul 250156
ellmul_Z 251164
ellmul 251227
checkell_Fq 253918
nflocalred 261233
initsmall46 261740
ellff_get_card 269287
nfVtoalg 273637
nf_coordch_rt 301564
get_uniformizers 310394
ellff_get_p 385781
ellQap_u 404334
nf_coordch_t 407583
nf_compose_u 443723
nf_coordch_uinv 444206
numroots3 473809
nf_compose_r 479434
nf_compose_st 496370
nf_coordch_r 500026
ell_over_Fq 505082
pola1a2 579782
pola2a4a6 592928
nf_compose_rt 594209
checkellpt_i 601525
coordch_t 683263
coordch_rst 751044
coordch_st 751044
vecispt 793669
nf_compose_t 843276
ellglobalred 909573
ellQ_globalred 912065
ellglobalred_i 925106
ellQ_minimalu 959420
ellminimalmodel_i 963095
Z_gcd_primes 989191
min_to_ell 1008196
Zec_h_evalx 1021279
min_get_v 1021279
min_set_all 1021279
min_set_D 1021293
min_set_a 1021314
min_set_b 1021454
ellinit_Q 1023309
sievep_good 1070041
pola3a6 1070167
ellan_get_ap 1078579
sievep 1082613
ellap_CM_fast 1133363
ec_f_evalx 1196523
coordch_r 1264564
min_set_c 1312857
min_set_u 1312857
ellinit 1353129
ellinit_i 1354158
is_trivial_change 1357665
localred_23 1362088
initsmall5 1398285
get_j 1435722
initsmall 1443764
Fl_c4c6_to_a4a6 1447622
Fl_ell_to_a4a6 1447973
Fl_c6_to_a6 1448221
base_ring 1448350
Fl_c4_to_a4 1527535
numroots2 1537452
isptcoord 1571721
ec_h_evalx 1579085
pol2sqrt_23 1627108
get_vp_u 1711640
localred_p 1711640
j_pval 1715021
aux 1722973
to_mod 1960465
nftoalg 2127489
ellcard_ram 2422049
ellap 2584043
ell_to_a4a6 2592129
aux2 2773358
c4_to_a4 2883545
c4c6_to_a4a6 2883545
localred 3073308
checkellp 3113162
localred_result 3384122
get_vp_u_small 3481124
ellintegralmodel_i 3758787
checkell 4864522
init_ch 5090127
handle_coeff 18793747

Generated by: LCOV version 1.16