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 - alglin1.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.0 lcov report (development 29806-4d001396c7) Lines: 2725 3116 87.5 %
Date: 2024-12-22 09:08:28 Functions: 296 317 93.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2Ms_colelim 46
F2m_image 7
F2m_indexrank 53
F2m_suppl 14
F2xqM_F2xqC_gauss 14
F2xqM_F2xqC_invimage 21
F2xqM_F2xqC_mul 21
F2xqM_deplin 14
F2xqM_det 7
F2xqM_gauss 14
F2xqM_gauss_gen 63
F2xqM_gauss_pivot 21
F2xqM_image 7
F2xqM_indexrank 7
F2xqM_inv 35
F2xqM_invimage 21
F2xqM_ker 7
F2xqM_ker_i 21
F2xqM_mul 1449
F2xqM_rank 7
F2xqM_suppl 7
FlkM_adjoint 3209
FlkM_inv 0
FlkM_ker 1276
FlmV_recover_pre 4485
Flm_image 40859
Flm_indexrank 56453
Flm_suppl 105
FlxqM_FlxqC_gauss 14
FlxqM_FlxqC_invimage 21
FlxqM_FlxqC_mul 35
FlxqM_deplin 35
FlxqM_det 28
FlxqM_gauss 21
FlxqM_gauss_i 91
FlxqM_gauss_pivot 1427
FlxqM_image 21
FlxqM_indexrank 7
FlxqM_inv 56
FlxqM_invimage 42
FlxqM_ker 28
FlxqM_ker_i 2994
FlxqM_mul 158058
FlxqM_rank 35
FlxqM_suppl 14
FpM_FpC_gauss 14
FpM_FpC_invimage 296908
FpM_FpC_invimage_gen 8
FpM_deplin 454851
FpM_det 4676
FpM_det_gen 315
FpM_gauss 35
FpM_gauss_gen 2749
FpM_gauss_i 347588
FpM_gauss_pivot 631291
FpM_gauss_pivot_gen 1214
FpM_image 323940
FpM_indexrank 39275
FpM_init 1276357
FpM_init3 1304812
FpM_intersect 0
FpM_intersect_i 263076
FpM_inv 347540
FpM_invimage 0
FpM_invimage_gen 35
FpM_ker 841724
FpM_ker_gen 2646
FpM_ker_i 1304809
FpM_rank 56
FpM_ratlift_parallel 2739187
FpM_ratlift_worker 74405
FpM_suppl 268025
FpXM_ratlift 1276
FqM_FqC_gauss 14
FqM_FqC_invimage 21
FqM_FqC_mul 63
FqM_deplin 84
FqM_det 70
FqM_gauss 21
FqM_gauss_gen 133
FqM_gauss_pivot 1504
FqM_gauss_pivot_gen 105
FqM_image 49
FqM_indexrank 7
FqM_inv 98
FqM_invimage 42
FqM_ker 11226
FqM_ker_gen 126
FqM_ker_i 11310
FqM_mul 86037
FqM_rank 70
FqM_suppl 5319
QC_normalize 6482
QM_deplin 119
QM_det 203
QM_gauss 6146
QM_gauss_i 6475
QM_image 5411
QM_image_shallow 6181
QM_indexrank 1344
QM_inv 64283
QM_ker 16709
QM_rank 21
RgC_inflate 14
RgM_Fp_init 4599
RgM_Fp_init3 658
RgM_Hadamard 19996
RgM_RgC_invimage 2289
RgM_RgC_invimage_FpC 28
RgM_RgC_invimage_fast 2184
RgM_RgC_solve_FpC 63
RgM_RgC_solve_fast 1183427
RgM_deplin 385
RgM_deplin_FpM 105
RgM_deplin_FqM 49
RgM_deplin_fast 385
RgM_deplin_i 28
RgM_det2 94062
RgM_det_FpM 1519
RgM_det_FqM 42
RgM_det_fast 33900
RgM_div 28
RgM_image_FpM 525
RgM_image_FqM 35
RgM_image_fast 6034
RgM_indexrank_FpM 28
RgM_indexrank_FqM 0
RgM_indexrank_fast 77511
RgM_inv 527254
RgM_inv_FpM 2051
RgM_inv_FqM 42
RgM_inv_fast 527254
RgM_inv_upper 1616929
RgM_inv_upper_ind 3229746
RgM_invimage 364
RgM_invimage_FpM 84
RgM_invimage_fast 364
RgM_is_symmetric_cx 53
RgM_ker_FpM 553
RgM_ker_FqM 91
RgM_ker_fast 9198
RgM_pivots 167504
RgM_rank_FpM 126
RgM_rank_FqM 49
RgM_rank_fast 315
RgM_solve 1232217
RgM_solve_FpM 105
RgM_solve_basecase 1693453
RgM_solve_fast 48790
RgM_solve_realimag 1215622
RgM_suppl_FpM 70
RgM_suppl_fast 175
RgM_true_Hadamard 717541
RgMs_structelim 0
RgMs_structelim_col 147
RgV_deplin 0
ZM_adj_ratlift 755162
ZM_count_0_cols 4244748
ZM_det 130695
ZM_det2 8659
ZM_det3 100472
ZM_det_slice 20875
ZM_det_worker 20875
ZM_detmult 169270
ZM_gauss 1742314
ZM_gauss_i 1742314
ZM_gauss_slice 1999180
ZM_gauss_worker 1999180
ZM_imagecompl 0
ZM_indeximage 6181
ZM_indexrank 1773317
ZM_inv 2065585
ZM_inv0 43504
ZM_inv1 644139
ZM_inv2 724679
ZM_inv_i 2129867
ZM_inv_ratlift 0
ZM_inv_slice 790401
ZM_inv_worker 790402
ZM_ker 49269
ZM_ker_chinese 69559
ZM_ker_filter 105226
ZM_ker_i 65103
ZM_ker_slice 131838
ZM_ker_worker 131838
ZM_pivots 4258333
ZM_pseudoinv 5019
ZM_rank 2224926
ZabM_indexrank 2387
ZabM_inv 1827
ZabM_inv_ratlift 0
ZabM_inv_slice 1985
ZabM_inv_worker 1985
ZabM_ker 623
ZabM_ker_check 655
ZabM_pseudoinv 140
ZabM_true_Hadamard 1827
_F2xqM_mul 0
_FlxqM_mul 16072
_FpM_mul 22741
_FqM_mul 6349
_copy 0
_gen_addmul 145618
_gen_get_col 61717
_submul 18289243
add_slices 0
can_ratlift 762294
closemodinvertible 14979
coeff_det 406
col_count_non_zero 1470
deplin 385
det 246213
det0 26593
det2 134149
det_bareiss 462
det_develop 658
det_init_max 252
det_simple_gauss 58296
detint 49964
eigen 0
eigen_err 53
fill_wcol 7445
gauss 434
gauss_get_pivot_NZ 4501
gauss_get_pivot_max 2592693
gauss_get_pivot_padic 201792
gauss_pivot 75889
gauss_pivot_ker 1271
gen_CUP 11480
gen_CUP_basecase 22429
gen_Gauss 13591
gen_Gauss_pivot 1891
gen_colei 154
gen_colneg 19326
gen_colscalmul 354675
gen_colsub 681846
gen_deplin_echelon 105
gen_det 294
gen_det_CUP 140
gen_det_i 420
gen_echelon 27879
gen_gauss 3036
gen_gauss_CUP 559
gen_gerepile_gauss_ker 0
gen_get_suppl 21
gen_invimage 140
gen_invimage_CUP 63
gen_ker 1892
gen_ker_echelon 3938
gen_ker_i 5858
gen_lsolve_lower_unit 20118
gen_lsolve_lower_unit_2 7858
gen_lsolve_upper 14256
gen_lsolve_upper_2 6180
gen_matcolinvimage 0
gen_matcolinvimage_i 71
gen_matcolmul 206341
gen_matcolmul_i 644421
gen_matinv_upper 28
gen_matinv_upper_ind 77
gen_matinvimage 77
gen_matmul 85117
gen_matmul_classical 85117
gen_matmul_i 85117
gen_matmul_sw 0
gen_matneg 4015
gen_matrank 35
gen_matscalmul 54434
gen_matsub 78576
gen_pivots 2788
gen_pivots_CUP 904
gen_rsolve_lower_unit 40198
gen_rsolve_lower_unit_2 17183
gen_rsolve_upper 5840
gen_rsolve_upper_2 2256
gen_solve_upper_1 4085
gen_suppl 21
gen_zerocol 14885
gen_zeromat 14885
gerepile_gauss 0
gerepile_gauss_ker 0
gerepile_mat 0
get_col 1265647
get_pivot_fun 801834
get_suppl 269593
image 6034
image2 7
image_from_pivot 364896
imagecompl 84
imagecompl_aux 84
indexcompl 17592
indeximage0 6181
indexrank 77511
indexrank0 1966619
indexrank_all 21784
init_gauss 2408443
init_indexrank 1951013
init_suppl 269592
inverseimage 2450
ker 9198
ker_aux 1271
mateigen 144
matimage0 217
matker0 46221
parallelogramarea 64282
perm_complete 43568
rank 315
reducemodinvertible 7
reducemodlll 0
rem_col 95970
rem_singleton 7638
row_count_non_zero 1456
split_realimag 2570286
split_realimag_col 4517457
subtract_slices 0
suppl 175
vecnorml1 5509

Generated by: LCOV version 1.16