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 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.10.1 lcov report (development 22726-9e20c6a88) Lines: 3426 3671 93.3 %
Date: 2018-06-23 05:36:28 Functions: 338 357 94.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_deplin 0
F2m_invimage 0
FlkM_inv 0
Flm_deplin 0
Flm_det 0
Flm_intersect 0
Flm_invimage 0
FpM_invimage 0
QM_rank 0
RgM_indexrank_FqM 0
RgMs_structelim 0
RgV_deplin 0
ZM_imagecompl 0
ZM_inv_ratlift 0
ZabM_inv_ratlift 0
_copy 0
eigen 0
gerepile_gauss_ker 0
reducemodlll 0
F2m_image 7
F2m_indexrank 7
F2m_inv_upper_1 7
F2m_invimage_i 7
F2xqM_det 7
F2xqM_image 7
F2xqM_indexrank 7
F2xqM_rank 7
F2xqM_suppl 7
FlxqM_det_gen 7
FlxqM_indexrank 7
FqM_indexrank 7
image2 7
reducemodinvertible 7
gerepile_gauss 10
F2m_F2c_gauss 14
F2m_det 14
F2m_inv_upper_1_ind 14
F2m_suppl 14
F2xqM_deplin 14
Flm_inv_upper_1 14
FlxqM_FlxqC_gauss 14
FlxqM_pivots_CUP 14
FlxqM_suppl 14
FpM_FpC_gauss 14
FpM_inv_upper_1 14
FqM_FqC_gauss 14
col_ei_FlxC 14
F2xqM_F2xqC_invimage 21
F2xqM_F2xqC_mul 21
F2xqM_gauss 21
F2xqM_invimage 21
F2xqM_ker 21
Flm_Flc_gauss 21
Flm_invimage_CUP 21
FlxqM_FlxqC_invimage 21
FlxqM_deplin_echelon 21
FlxqM_det_CUP 21
FlxqM_gauss 21
FlxqM_image 21
FlxqM_invimage_CUP 21
FlxqM_invimage_gen 21
FqM_FqC_invimage 21
FqM_gauss 21
F2xqM_F2xqC_gauss 28
F2xqM_gauss_pivot 28
Flm_inv_upper_1_ind 28
FlxqM_FlxqC_mul 28
FlxqM_det 28
FlxqM_pivots 28
FlxqM_rank 28
FpM_rank 28
FqM_FqC_mul 28
RgM_RgC_invimage_FpC 28
RgM_deplin_i 28
RgM_image_FqM 28
RgM_indexrank_FpM 28
gen_matinv_upper 28
F2m_F2c_invimage 35
F2m_gauss 35
F2m_inv 35
F2xqM_inv 35
F2xqM_ker_i 35
FlxqM_deplin 35
FlxqM_gauss_CUP 35
FpM_gauss 35
FpM_invimage_i 35
Flm_invimage_i 42
FlxqM_invimage 42
FqM_invimage 42
RgM_deplin_FqM 42
RgM_det_FqM 42
RgM_inv_FqM 42
RgM_rank_FqM 42
FqM_image 49
RgM_RgC_solve_FpC 49
FlxqM_gauss_gen 56
FlxqM_inv 56
F2m_rank 63
Flm_gauss 63
Flm_image 63
Flm_suppl 63
RgM_image_FpM 63
gen_matcolinvimage 63
mateigen 63
gen_gerepile_gauss_ker 66
gerepile_mat 66
FqM_det 70
FqM_rank 70
RgM_suppl_FpM 70
FqM_deplin 77
RgM_ker_FpM 77
F2xqM_gauss_gen 84
RgM_invimage_FpM 84
RgM_ker_FqM 84
_FlxC_ei 84
gen_matinvimage 84
gen_matneg 84
imagecompl 84
imagecompl_aux 84
FlxqM_gauss_i 91
F2m_ker 93
FpM_inv_upper_1_ind 98
FqM_inv 98
QM_deplin 98
RgM_solve_FpM 98
FqM_gauss_pivot_gen 105
RgM_deplin_FpM 105
RgM_inv_FpM 112
FqM_ker_gen 126
RgM_rank_FpM 126
RgMs_structelim_col 126
FqM_gauss_gen 133
FlxqM_rsolve_upper_1 140
gen_matinv_upper_ind 147
FlxqM_rsolve_upper_2 168
RgM_suppl_fast 175
suppl 175
QM_det 196
ZabM_pseudoinv 203
matimage0 203
coeff_det 210
det_init_max 231
RgM_invimage 252
RgM_invimage_fast 252
RgM_rank_fast 280
rank 280
FpM_det_gen 315
det_bareiss 329
RgM_deplin 357
RgM_deplin_fast 357
deplin 357
gen_det 413
gauss 420
det_develop 441
FlxqM_lsolve_upper_1 469
gen_colneg 469
FlxqM_rsolve_upper 588
ZabM_ker 686
FlxqM_lsolve_upper_2 728
FlxqM_ker_gen 784
FpM_gauss_pivot_gen 815
QM_gauss 854
gauss_pivot_ker 910
ker_aux 910
mydiv 924
FlkM_ker 1090
FpXM_ratlift 1090
row_count_non_zero 1113
col_count_non_zero 1127
QM_indexrank 1148
FlxqM_CUP 1253
FlxqM_gauss_pivot 1267
FqM_gauss_pivot 1337
ZabM_inv 1365
ZabM_true_Hadamard 1365
F2xqM_mul 1407
QM_image 1463
RgM_det_FpM 1519
RgM_image_fast 1617
image 1617
F2m_det_sp 1631
QM_inv 1694
Flm_det_gauss_OK 1743
FlxqM_ker_echelon 1813
FlxqM_lsolve_upper 1869
ZabM_inv_slice 1935
ZabM_inv_worker 1935
FlkM_adjoint 2025
ZabM_indexrank 2030
RgM_RgC_invimage_fast 2051
RgM_RgC_invimage 2156
Flm_rank 2177
gen_Gauss_pivot 2215
FpM_ker_gen 2259
RgM_Fp_init 2359
inverseimage 2366
ZM_indeximage 2422
indeximage0 2422
FlxqM_lsolve_lower_unit_2 2478
FlxqM_ker 2583
FlxqM_ker_i 2618
ZM_det3 2940
FlmV_recover_pre 3115
gen_ker 3351
FpM_det 3948
FpM_gauss_gen 3982
FqM_suppl 4039
det0 4053
ZM_pseudoinv 4284
ZM_inv0 4312
gauss_get_pivot_NZ 4452
det2 4939
fill_wcol 5925
vecnorml1 6006
rem_singleton 6051
FlxqM_rsolve_lower_unit_2 6069
FlxqM_lsolve_lower_unit 6391
RgM_det2 6479
indexrank_all 6621
FlxqM_echelon_gauss 7147
QM_ker 7637
FlxqM_CUP_gauss 7819
FqM_ker 8372
FqM_ker_i 8449
RgM_ker_fast 8631
ker 8631
ZM_det2 8925
det_simple_gauss 10001
RgM_det_fast 10680
gen_Gauss 12515
FlxqM_echelon 12537
gauss_pivot 12740
perm_complete 13242
closemodinvertible 13293
FlxqM_rsolve_lower_unit 13783
RgM_indexrank_fast 14154
indexrank 14154
det 14241
gen_matmul 15155
FlxqM_mul 15332
ZM_inv1 16937
RgM_Hadamard 17038
Flm_indexrank 18676
ZM_indexrank 18893
F2m_gauss_sp 20459
Flm_inv 21490
Flm_deplin_echelon 23552
RgM_pivots 23916
RgM_inv_QM 28070
FpM_indexrank 29113
ZM_det_i 29743
ZM_det 29750
FpM_suppl 34482
get_suppl 35861
init_suppl 35861
Flm_det_CUP 36283
ZM_inv2 38594
F2m_gauss_pivot 39241
FpM_FpC_invimage 42328
Flm_gauss_CUP 42835
ZM_rank 43683
RgM_inv 45433
RgM_inv_fast 45433
matker0 46207
detint 47549
ZM_ker 48770
Flm_Flc_invimage 51463
Flm_gauss_sp_OK 51554
ZM_det_slice 53570
ZM_det_worker 53570
parallelogramarea 53991
Flm_det_gauss 55112
ZM_ker_i 55574
_gen_get_col 56845
RgM_inv_upper 58947
FqM_mul 59960
gauss_get_pivot_padic 64575
FpM_inv 65693
FpM_gauss_i 65742
Flm_pivots_CUP 66966
FpM_deplin 67352
Flm_ker 67452
FpM_intersect 73155
FpM_image 76522
image_from_pivot 76683
ZM_detmult 77957
RgM_solve_fast 79444
init_indexrank 81697
indexrank0 85896
Flm_det_i 91394
Flm_det_sp 91394
rem_col 100901
ZM_count_0_cols 106646
ZM_pivots 110559
RgM_true_Hadamard 112211
Flm_ker_gauss_OK 113218
ZM_adj_ratlift 119515
Flm_ker_echelon 120536
ZM_inv_slice 131249
ZM_inv_worker 131249
F2_get_col 131994
FpM_gauss_pivot 140145
Flm_adjoint 141034
gen_matcolmul 161336
Flm_gauss_pivot 167085
ZM_inv 172061
Flm_gauss_from_CUP 183848
_Fl_add 185475
get_col 186233
get_pivot_fun 191815
FpM_ker 196522
Flm_ker_gauss 232841
Flm_pivots 234051
Flm_rsolve_upper_1 237169
RgM_solve_realimag 248282
RgM_RgC_solve_fast 261177
RgM_solve_basecase 267626
FpM_ker_i 269642
Flm_lsolve_upper_1 273351
F2m_ker_sp 303222
Flm_ker_sp 309477
gen_matcolmul_i 311115
RgM_inv_upper_ind 330380
RgM_solve 340621
Fl_get_col_OK 368050
Flm_ker_i 376929
indexcompl 406972
Flm_echelon_gauss 436805
FpM_init 477566
split_realimag 510655
approx_0 574837
ZlM_gauss_ratlift 581824
Flm_inv_sp 581873
ZM_gauss 581922
gauss_get_pivot_max 587710
Flm_gauss_sp 601962
Flm_inv_i 603363
Flm_rsolve_upper_2 721673
Flm_lsolve_lower_unit_2 731882
Flm_echelon 733676
init_gauss 749855
Flm_lsolve_upper_2 803334
_gen_addmul 878509
Flm_CUP 958354
split_realimag_col 972104
Flm_CUP_gauss 1059560
Flm_rsolve_lower_unit_2 1379257
Fl_get_col 1457150
Flm_rsolve_upper 1733817
Flm_lsolve_upper 1824402
Flm_lsolve_lower_unit 1871606
F2v_find_nonzero 2394709
_Fl_add_OK 2768807
_submul 2823568
Flm_rsolve_lower_unit 3167474
_Fl_addmul 6336849
_Fl_addmul_OK 14846139

Generated by: LCOV version 1.13