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.16.2 lcov report (development 29115-f22e516b23) Lines: 2767 3159 87.6 %
Date: 2024-03-28 08:06:56 Functions: 296 317 93.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FlkM_inv 0
FpM_intersect 0
FpM_invimage 0
RgM_indexrank_FqM 0
RgMs_structelim 0
RgV_deplin 0
ZM_imagecompl 0
ZM_inv_ratlift 0
ZabM_inv_ratlift 0
_F2xqM_mul 0
_copy 0
add_slices 0
eigen 0
gen_gerepile_gauss_ker 0
gen_matcolinvimage 0
gen_matmul_sw 0
gerepile_gauss 0
gerepile_gauss_ker 0
gerepile_mat 0
reducemodlll 0
subtract_slices 0
F2m_image 7
F2xqM_det 7
F2xqM_image 7
F2xqM_indexrank 7
F2xqM_rank 7
F2xqM_suppl 7
FlxqM_indexrank 7
FqM_indexrank 7
image2 7
reducemodinvertible 7
FpM_FpC_invimage_gen 8
F2m_suppl 14
F2xqM_deplin 14
FlxqM_FlxqC_gauss 14
FlxqM_suppl 14
FpM_FpC_gauss 14
FqM_FqC_gauss 14
RgC_inflate 14
F2xqM_F2xqC_invimage 21
F2xqM_F2xqC_mul 21
F2xqM_gauss 21
F2xqM_gauss_pivot 21
F2xqM_invimage 21
F2xqM_ker 21
FlxqM_FlxqC_invimage 21
FlxqM_gauss 21
FlxqM_image 21
FqM_FqC_invimage 21
FqM_gauss 21
QM_rank 21
RgM_div 21
gen_get_suppl 21
gen_suppl 21
F2xqM_F2xqC_gauss 28
FlxqM_det 28
FlxqM_ker 28
RgM_RgC_invimage_FpC 28
RgM_deplin_i 28
RgM_indexrank_FpM 28
gen_matinv_upper 28
F2xqM_inv 35
F2xqM_ker_i 35
FlxqM_FlxqC_mul 35
FlxqM_deplin 35
FlxqM_rank 35
FpM_gauss 35
FpM_invimage_gen 35
RgM_image_FqM 35
gen_matrank 35
FlxqM_invimage 42
FqM_invimage 42
RgM_det_FqM 42
RgM_inv_FqM 42
FqM_image 49
RgM_RgC_solve_FpC 49
RgM_deplin_FqM 49
RgM_rank_FqM 49
F2Ms_colelim 53
RgM_is_symmetric_cx 53
eigen_err 53
FlxqM_inv 56
FpM_rank 56
F2m_indexrank 60
FqM_FqC_mul 63
RgM_image_FpM 63
gen_invimage_CUP 63
FqM_det 70
FqM_rank 70
RgM_suppl_FpM 70
gen_matcolinvimage_i 71
gen_matinv_upper_ind 77
gen_matinvimage 77
F2xqM_gauss_gen 84
FqM_deplin 84
RgM_invimage_FpM 84
RgM_ker_FpM 84
imagecompl 84
imagecompl_aux 84
FlxqM_gauss_i 91
RgM_ker_FqM 91
FqM_inv 98
RgM_solve_FpM 98
Flm_suppl 105
FqM_gauss_pivot_gen 105
RgM_deplin_FpM 105
gen_deplin_echelon 105
RgM_inv_FpM 112
QM_deplin 119
RgMs_structelim_col 119
FqM_ker_gen 126
RgM_rank_FpM 126
FqM_gauss_gen 133
ZabM_pseudoinv 140
gen_det_CUP 140
gen_invimage 140
mateigen 144
gen_colei 154
RgM_suppl_fast 175
suppl 175
RgM_Fp_init3 189
QM_det 203
matimage0 210
det_init_max 252
gen_det 294
FpM_det_gen 315
RgM_rank_fast 315
rank 315
RgM_invimage 364
RgM_invimage_fast 364
RgM_deplin 385
RgM_deplin_fast 385
deplin 385
coeff_det 406
gen_det_i 420
gauss 434
det_bareiss 462
gen_gauss_CUP 559
ZabM_ker 623
ZabM_ker_check 655
det_develop 658
gen_pivots_CUP 904
QM_indexrank 1148
FpM_gauss_pivot_gen 1214
gauss_pivot_ker 1271
ker_aux 1271
FlkM_ker 1276
FpXM_ratlift 1276
F2xqM_mul 1407
FlxqM_gauss_pivot 1427
row_count_non_zero 1456
col_count_non_zero 1470
FqM_gauss_pivot 1504
RgM_det_FpM 1519
ZabM_inv 1820
ZabM_true_Hadamard 1820
gen_Gauss_pivot 1891
gen_ker 1906
ZabM_inv_slice 1978
ZabM_inv_worker 1978
RgM_RgC_invimage_fast 2170
RgM_Fp_init 2177
gen_rsolve_upper_2 2256
RgM_RgC_invimage 2275
ZabM_indexrank 2387
inverseimage 2436
FpM_ker_gen 2646
gen_pivots 2788
FlxqM_ker_i 2987
FlkM_adjoint 3201
FpM_gauss_gen 3650
gen_ker_echelon 3931
FpM_det 3948
gen_gauss 3958
gen_matneg 4008
gen_solve_upper_1 4085
FlmV_recover_pre 4477
gauss_get_pivot_NZ 4501
FqM_suppl 4976
ZM_pseudoinv 5012
QM_image 5201
RgM_image_fast 5362
image 5362
vecnorml1 5467
gen_rsolve_upper 5840
gen_ker_i 5865
QM_image_shallow 5971
ZM_indeximage 5971
indeximage0 5971
QM_gauss 6048
fill_wcol 6105
gen_lsolve_upper_2 6180
rem_singleton 6277
_FqM_mul 6349
QM_gauss_i 6377
ZM_det2 6377
QC_normalize 6384
gen_lsolve_lower_unit_2 7865
RgM_ker_fast 8603
ker 8603
FqM_ker 10456
FqM_ker_i 10540
gen_CUP 11480
gen_Gauss 13743
gen_lsolve_upper 14256
closemodinvertible 14678
gen_zeromat 14906
_FlxqM_mul 16079
QM_ker 16569
gen_rsolve_lower_unit_2 17190
indexcompl 17571
gen_colneg 19333
RgM_Hadamard 19450
gen_lsolve_lower_unit 20125
ZM_det_slice 20692
ZM_det_worker 20692
gen_CUP_basecase 22408
_FpM_mul 22741
indexrank_all 25497
det0 26474
gen_echelon 27851
FpM_indexrank 30035
RgM_det_fast 33592
Flm_image 39739
gen_rsolve_lower_unit 40212
ZM_inv0 41244
matker0 46221
gen_zerocol 46755
ZM_ker 47106
detint 47549
RgM_solve_fast 48657
perm_complete 50994
Flm_indexrank 53024
gen_matscalmul 54448
det_simple_gauss 58422
gauss_pivot 59073
RgM_indexrank_fast 60487
indexrank 60487
QM_inv 60755
_gen_get_col 61172
parallelogramarea 62301
ZM_ker_i 62856
FqM_mul 66409
ZM_ker_chinese 69559
FpM_ratlift_worker 73632
gen_matsub 78597
gen_matmul 83789
gen_matmul_classical 83789
gen_matmul_i 83789
RgM_det2 84643
ZM_det3 99954
ZM_ker_filter 105226
rem_col 111666
det2 115684
ZM_det 127321
ZM_ker_slice 129591
ZM_ker_worker 129591
RgM_pivots 149730
_gen_addmul 152219
ZM_detmult 157267
FlxqM_mul 157824
gen_matcolmul 199558
gauss_get_pivot_padic 200735
RgM_inv 204639
RgM_inv_fast 204639
det 246652
FpM_suppl 259546
get_suppl 261113
init_suppl 261113
FpM_intersect_i 263831
FpM_FpC_invimage 296315
FpM_image 312433
FpM_inv 329051
FpM_gauss_i 329101
image_from_pivot 352268
gen_colscalmul 354731
FpM_deplin 453897
get_pivot_fun 600968
FpM_gauss_pivot 602066
gen_matcolmul_i 631002
ZM_inv1 643249
get_col 675238
gen_colsub 681972
RgM_true_Hadamard 709231
ZM_inv2 741924
ZM_adj_ratlift 747897
can_ratlift 754981
ZM_inv_slice 785161
ZM_inv_worker 785161
FpM_ker 817204
RgM_RgC_solve_fast 1182277
RgM_solve_realimag 1214643
FpM_init 1228370
RgM_solve 1230934
FpM_ker_i 1278569
FpM_init3 1278571
RgM_solve_basecase 1374424
RgM_inv_upper 1633830
ZM_gauss 1736409
ZM_gauss_i 1736409
ZM_indexrank 1762344
init_indexrank 1910353
gauss_get_pivot_max 1920112
indexrank0 1929870
ZM_gauss_slice 1986215
ZM_gauss_worker 1986215
ZM_inv 2074899
ZM_inv_i 2135654
init_gauss 2218356
ZM_rank 2241929
split_realimag 2565244
FpM_ratlift_parallel 2720671
RgM_inv_upper_ind 3257234
ZM_count_0_cols 4228941
ZM_pivots 4246244
split_realimag_col 4509169
_submul 10543711

Generated by: LCOV version 1.14