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.0 lcov report (development 21913-852521c) Lines: 3367 3633 92.7 %
Date: 2018-02-19 06:15:51 Functions: 327 346 94.5 %
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
RgMs_structelim 0
RgV_deplin 0
ZM_imagecompl 0
ZM_inv_ratlift 0
ZabM_inv_ratlift 0
_copy 0
eigen 0
gaussmodulo 0
gaussmodulo2 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_mul 7
F2xqM_rank 7
F2xqM_suppl 7
FlxqM_det_gen 7
FlxqM_indexrank 7
FlxqM_suppl 7
FqM_indexrank 7
gaussmoduloall 7
image2 7
matsolvemod0 7
reducemodinvertible 7
F2m_F2c_gauss 14
F2m_det 14
F2m_inv_upper_1_ind 14
F2m_suppl 14
F2xqM_deplin 14
Flm_det_gauss_OK 14
Flm_inv_upper_1 14
FlxqM_FlxqC_gauss 14
FlxqM_pivots_CUP 14
FpM_FpC_gauss 14
FpM_inv_upper_1 14
FqM_FqC_gauss 14
_FlxC_ei 14
coeff_det 14
col_ei_FlxC 14
F2m_F2c_invimage 21
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
FqM_image 21
QM_det 21
F2m_det_sp 28
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
FqM_rank 28
RgM_RgC_invimage_FpC 28
RgM_deplin_i 28
gen_matinv_upper 28
gerepile_gauss 34
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_RgC_solve_FpC 49
FlxqM_gauss_gen 56
FlxqM_inv 56
F2m_rank 63
Flm_gauss 63
Flm_image 63
Flm_suppl 63
FqM_gauss_pivot_gen 63
det_bareiss 63
gen_matcolinvimage 63
mateigen 63
gen_gerepile_gauss_ker 66
gerepile_mat 66
FpM_det_gen 70
FqM_det 70
FqM_deplin 77
RgM_ker_FpM 77
det_init_max 77
F2xqM_gauss_gen 84
RgM_invimage_FpM 84
RgM_ker_FqM 84
gen_matinvimage 84
gen_matneg 84
imagecompl 84
imagecompl_aux 84
FlxqM_gauss_i 91
FpM_det 91
det_develop 91
FpM_inv_upper_1_ind 98
FqM_inv 98
QM_deplin 98
RgM_solve_FpM 98
RgM_deplin_FpM 105
RgM_inv_FpM 112
RgMs_structelim_col 119
FqM_ker_gen 126
FqM_gauss_gen 133
FlxqM_rsolve_upper_1 140
gen_matinv_upper_ind 147
FlxqM_rsolve_upper_2 168
gen_det 168
suppl 168
F2m_ker 173
ZabM_pseudoinv 175
FpM_gauss_pivot_gen 185
matimage0 203
row_count_non_zero 245
RgM_invimage 252
RgM_invimage_fast 252
col_count_non_zero 259
rank 280
mydiv 287
RgM_deplin 357
RgM_deplin_fast 357
deplin 357
gauss 420
FqM_mul 453
FlxqM_lsolve_upper_1 469
gen_colneg 469
FlxqM_rsolve_upper 588
ZabM_ker 609
FlxqM_lsolve_upper_2 728
QM_gauss 761
FlxqM_ker_gen 784
QM_inv 833
gauss_pivot_ker 882
ker_aux 882
FlkM_ker 945
FpXM_ratlift 945
ZM_indeximage 959
indeximage0 959
ZabM_inv 1134
ZabM_true_Hadamard 1134
FlxqM_gauss_pivot 1225
FlxqM_CUP 1253
FqM_gauss_pivot 1260
gen_Gauss_pivot 1501
RgM_det_FpM 1519
image 1561
ZabM_inv_slice 1587
ZabM_inv_worker 1587
FpM_ker_gen 1629
FlkM_adjoint 1658
FlxqM_ker_echelon 1813
RgM_RgC_invimage_fast 1834
FlxqM_lsolve_upper 1869
ZabM_indexrank 1897
RgM_RgC_invimage 1939
inverseimage 2156
Flm_rank 2179
RgM_Fp_init 2359
FlxqM_lsolve_lower_unit_2 2478
FlxqM_ker 2583
FlmV_recover_pre 2603
FlxqM_ker_i 2618
gen_ker 2721
ZM_det3 2940
FpM_gauss_gen 2970
det0 4046
FqM_suppl 4053
ZM_pseudoinv 4060
vecnorml1 4403
det2 4465
ZM_inv0 4501
indexrank_all 5296
RgM_det2 5840
fill_wcol 5847
rem_singleton 5966
FlxqM_rsolve_lower_unit_2 6069
FlxqM_lsolve_lower_unit 6391
FlxqM_echelon_gauss 7147
QM_ker 7770
FlxqM_CUP_gauss 7819
FqM_ker 8414
FqM_ker_i 8491
ZM_det2 8526
RgM_ker_fast 8736
ker 8736
det_simple_gauss 9926
RgM_det_fast 10209
gen_matmul 10332
perm_complete 10592
gen_Gauss 11545
FlxqM_echelon 12537
F2m_gauss_sp 13034
Flm_indexrank 13034
closemodinvertible 13118
FlxqM_mul 13225
FpM_indexrank 13342
det 13574
FlxqM_rsolve_lower_unit 13783
indexrank 14259
gauss_get_pivot_NZ 15736
gauss_pivot 15911
Flm_inv 16212
ZM_inv1 16510
ZM_indexrank 16562
RgM_Hadamard 16800
Flm_deplin_echelon 22927
RgM_pivots 26076
RgM_inv_QM 28014
ZM_det_i 29106
ZM_det 29113
F2m_gauss_pivot 31925
Flm_det_CUP 34989
ZM_inv2 36869
Flm_gauss_sp_OK 37268
FpM_suppl 38440
get_suppl 39812
init_suppl 39812
Flm_gauss_CUP 40339
FpM_FpC_invimage 41353
ZM_rank 42642
RgM_inv 44336
RgM_inv_fast 44336
matker0 46207
detint 47521
FpM_inv 47562
Flm_Flc_invimage 47576
FpM_gauss_i 47611
ZM_ker 48679
_gen_get_col 51729
parallelogramarea 51779
ZM_det_slice 52789
ZM_det_worker 52789
Flm_det_gauss 53377
ZM_ker_i 55287
init_indexrank 58135
Flm_ker 58290
RgM_inv_upper 58520
Flm_pivots_CUP 60698
indexrank0 62472
gauss_get_pivot_padic 63763
FpM_deplin 65841
FpM_intersect 68307
FpM_image 76657
ZM_detmult 77838
image_from_pivot 78225
RgM_solve_fast 79517
F2_get_col 84592
Flm_det_i 88366
Flm_det_sp 88366
rem_col 99653
ZM_count_0_cols 102096
ZM_pivots 106021
RgM_true_Hadamard 108892
Flm_ker_echelon 110563
Flm_ker_gauss_OK 112667
ZM_adj_ratlift 116196
ZM_inv_slice 127844
ZM_inv_worker 127844
FpM_gauss_pivot 128467
Flm_adjoint 134623
Flm_gauss_pivot 157930
gen_matcolmul 161735
ZM_inv 166779
Flm_gauss_from_CUP 174941
_Fl_add 182385
get_col 186620
FpM_ker 190081
get_pivot_fun 194583
Flm_rsolve_upper_1 213298
Flm_pivots 218628
Flm_lsolve_upper_1 226070
Flm_ker_gauss 232142
RgM_solve_realimag 247146
RgM_RgC_solve_fast 259797
FpM_ker_i 261732
RgM_solve_basecase 265400
Fl_get_col_OK 285854
F2m_ker_sp 304735
gen_matcolmul_i 305627
Flm_ker_sp 307342
RgM_inv_upper_ind 329400
RgM_solve 339314
Flm_ker_i 365632
indexcompl 373008
Flm_echelon_gauss 397291
FpM_init 436564
split_realimag 507998
approx_0 573904
gauss_get_pivot_max 586609
Flm_inv_sp 600608
ZM_gauss 600650
Flm_gauss_sp 608221
Flm_inv_i 616820
Flm_rsolve_upper_2 657254
Flm_echelon 662838
Flm_lsolve_lower_unit_2 679396
Flm_lsolve_upper_2 691578
init_gauss 768437
_gen_addmul 825100
Flm_CUP 852751
Flm_CUP_gauss 958999
split_realimag_col 967060
Flm_rsolve_lower_unit_2 1244809
Fl_get_col 1515681
Flm_lsolve_upper 1548766
Flm_rsolve_upper 1566160
Flm_lsolve_lower_unit 1725816
F2v_find_nonzero 2217200
_Fl_add_OK 2553588
_submul 2799267
Flm_rsolve_lower_unit 2834269
_Fl_addmul 6566846
_Fl_addmul_OK 12038809

Generated by: LCOV version 1.11