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.1 lcov report (development 30347-cb65b7994e) Lines: 2703 3076 87.9 %
Date: 2025-06-27 09:22:08 Functions: 296 316 93.7 %
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
gc_gauss 0
gc_ker 0
gen_gc_ker 0
gen_matcolinvimage 0
gen_matmul_sw 0
reducemodlll 0
subtract_slices 0
F2m_image 7
F2xqM_det 7
F2xqM_image 7
F2xqM_indexrank 7
F2xqM_ker 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_F2xqC_gauss 14
F2xqM_deplin 14
F2xqM_gauss 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_pivot 21
F2xqM_invimage 21
F2xqM_ker_i 21
FlxqM_FlxqC_invimage 21
FlxqM_gauss 21
FlxqM_image 21
FqM_FqC_invimage 21
FqM_gauss 21
QM_rank 21
gen_get_suppl 21
gen_suppl 21
FlxqM_det 28
FlxqM_ker 28
RgM_RgC_invimage_FpC 28
RgM_deplin_i 28
RgM_div 28
RgM_indexrank_FpM 28
gen_matinv_upper 28
F2xqM_inv 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
F2Ms_colelim 46
FqM_image 49
RgM_deplin_FqM 49
RgM_rank_FqM 49
F2m_indexrank 53
RgM_is_symmetric_cx 53
eigen_err 53
FlxqM_inv 56
FpM_rank 56
F2xqM_gauss_gen 63
FqM_FqC_mul 63
RgM_RgC_solve_FpC 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
FqM_deplin 84
RgM_invimage_FpM 84
imagecompl 84
imagecompl_aux 84
FlxqM_gauss_i 91
RgM_ker_FqM 91
FqM_inv 98
Flm_suppl 105
FqM_gauss_pivot_gen 105
RgM_deplin_FpM 105
RgM_solve_FpM 105
gen_deplin_echelon 105
QM_deplin 119
FqM_ker_gen 126
RgM_rank_FpM 126
FqM_gauss_gen 133
gen_det_CUP 140
gen_invimage 140
mateigen 144
RgMs_structelim_col 147
gen_colei 154
RgM_suppl_fast 175
suppl 175
ZabM_pseudoinv 182
QM_det 203
matimage0 217
det_init_max 252
gen_det 294
FpM_det_gen 315
FlxqM_gauss_pivot 361
RgM_invimage 364
RgM_invimage_fast 364
RgM_rank_fast 371
rank 371
RgM_deplin 385
RgM_deplin_fast 385
deplin 385
coeff_det 406
gen_det_i 420
gauss 434
FqM_gauss_pivot 438
det_bareiss 462
RgM_image_FpM 525
RgM_ker_FpM 553
gen_gauss_CUP 559
gen_pivots_CUP 610
RgM_Fp_init3 658
det_develop 658
ZabM_ker 679
ZabM_ker_check 711
FlxqM_ker_i 812
gen_Gauss_pivot 1119
FpM_gauss_pivot_gen 1214
gauss_pivot_ker 1271
gen_ker 1271
ker_aux 1271
FlkM_ker 1332
FpXM_ratlift 1332
QM_indexrank 1344
F2xqM_mul 1449
row_count_non_zero 1456
col_count_non_zero 1470
FqM_suppl 1481
RgM_det_FpM 1519
gen_pivots 1722
ZabM_inv 1897
ZabM_true_Hadamard 1897
RgM_inv_FpM 2051
ZabM_inv_slice 2063
ZabM_inv_worker 2063
gen_rsolve_upper_2 2256
gen_ker_echelon 2373
gen_matneg 2450
ZabM_indexrank 2485
FpM_ker_gen 2642
FpM_gauss_gen 2749
gen_gauss 3036
FlkM_adjoint 3320
FqM_ker 3451
FqM_ker_i 3535
RgM_RgC_invimage_fast 3654
gen_ker_i 3672
gauss_get_pivot_NZ 3752
RgM_RgC_invimage 3759
inverseimage 3920
gen_solve_upper_1 4035
RgM_Fp_init 4599
FlmV_recover_pre 4652
FpM_det 4683
ZM_pseudoinv 5075
QM_image 5411
gen_Gauss 5816
vecnorml1 5817
gen_rsolve_upper 5840
gen_lsolve_upper_2 5894
QM_gauss 6006
RgM_image_fast 6034
image 6034
gen_lsolve_lower_unit_2 6065
QM_image_shallow 6181
ZM_indeximage 6181
indeximage0 6181
QM_gauss_i 6335
QC_normalize 6342
_FqM_mul 6349
fill_wcol 7446
rem_singleton 7639
_FlxqM_mul 7924
ZM_det2 8764
closemodinvertible 9133
gen_CUP 10598
RgM_ker_fast 10668
ker 10668
indexcompl 12199
gen_rsolve_lower_unit_2 12590
gen_zerocol 13108
gen_zeromat 13108
gen_lsolve_upper 13882
gen_colneg 14704
gen_CUP_basecase 16007
gen_lsolve_lower_unit 16025
gen_echelon 17685
QM_ker 18270
RgM_Hadamard 20150
ZM_det_slice 20872
ZM_det_worker 20872
_gen_get_col 21485
indexrank_all 21844
_FpM_mul 22487
det0 26593
set_pivot_fun_all 27598
gen_rsolve_lower_unit 30422
RgM_det_fast 34131
Flm_image 41307
FpM_indexrank 42726
perm_complete 43688
ZM_inv0 43764
matker0 46221
gen_matscalmul 47140
gen_matcolmul 48648
RgM_solve_fast 49014
ZM_ker 49269
detint 49964
_gen_addmul 57335
Flm_indexrank 58450
det_simple_gauss 59265
gen_matsub 63502
parallelogramarea 64723
ZM_ker_i 66664
QM_inv 67425
ZM_ker_chinese 69755
gen_matmul 75983
gen_matmul_classical 75983
gen_matmul_i 75983
FpM_ratlift_worker 76870
RgM_indexrank_fast 83661
indexrank 83661
FqM_mul 86016
RgM_det2 94305
rem_col 95962
ZM_det3 100514
ZM_ker_filter 105428
ZM_det 131017
ZM_ker_slice 133595
ZM_ker_worker 133595
det2 135371
FlxqM_mul 148988
ZM_detmult 166030
RgM_pivots 175079
gauss_get_pivot_padic 201820
det 246444
FpM_intersect_i 263937
FpM_suppl 269782
get_suppl 270282
init_suppl 270282
FpM_FpC_invimage 300822
gen_colscalmul 310391
FpM_image 334260
gen_matcolmul_i 350531
FpM_inv 355039
FpM_gauss_i 355088
image_from_pivot 375669
FpM_deplin 461587
gen_colsub 574403
RgM_inv 616412
RgM_inv_fast 616412
FpM_gauss_pivot 646821
ZM_inv1 647005
RgM_true_Hadamard 721757
ZM_inv2 734620
ZM_adj_ratlift 759769
can_ratlift 767034
ZM_inv_slice 795424
ZM_inv_worker 795424
FpM_ker 854641
RgM_RgC_solve_fast 1245473
RgM_solve_realimag 1283721
RgM_solve 1294487
FpM_init 1302311
get_col 1317479
FpM_ker_i 1318876
FpM_init3 1318878
RgM_inv_upper 1639957
ZM_gauss 1791411
ZM_gauss_i 1791411
ZM_indexrank 1823045
RgM_solve_basecase 1848441
init_pivot_list 2012422
indexrank0 2028001
set_pivot_fun 2073513
ZM_inv 2079723
ZM_gauss_slice 2099297
ZM_gauss_worker 2099297
ZM_inv_i 2147149
ZM_rank 2254984
init_gauss 2478302
gauss_get_pivot_max 2679730
split_realimag 2706647
FpM_ratlift_parallel 2819938
RgM_inv_upper_ind 3312781
ZM_count_0_cols 4326135
ZM_pivots 4339875
split_realimag_col 4735908
_submul 18823892

Generated by: LCOV version 1.16