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-bordeaux1.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 - Flx.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 16827-3d78da8) Lines: 2085 2246 92.8 %
Date: 2014-09-29 Functions: 259 271 95.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1086 1322 82.1 %

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 49
Fl2_inv_pre 14
Fl2_mul_pre 168
Fl2_norm_pre 0
Fl2_pow_pre 77
Fl2_sqr_pre 497
Fl2_sqrtn_pre 14
Fl_to_Flx 444058
Flc_to_ZC 1090675
Flm_to_FlxV 145180
Flm_to_FlxX 12017
Flm_to_ZM 209747
FlvV_polint_tree 21666
Flv_FlvV_polint 0
Flv_inv 21666
Flv_polint 21666
Flv_producttree 21666
Flv_roots_to_pol 510
Flv_to_Flx 358047
Flv_to_ZV 301
FlxC_to_ZXC 419
FlxM_Flx_add_shallow 49
FlxM_Flx_mul2 859
FlxM_mul2 646
FlxM_to_ZXM 189
FlxT_red 29818
FlxV_Flc_mul 12124
FlxV_red 0
FlxV_to_Flm 226037
FlxV_to_ZXV 81093
FlxXV_to_FlxM 117
FlxX_Fl_mul 186
FlxX_Flx_add 270
FlxX_Flx_mul 116414
FlxX_add 102459
FlxX_double 354
FlxX_lgrenormalizespec 235235
FlxX_neg 186
FlxX_recipspec 137328
FlxX_renormalize 1186322
FlxX_shift 0
FlxX_sub 36517
FlxX_subspec 60084
FlxX_swap 9772
FlxX_to_Flm 5717
FlxX_to_FlxC 1070
FlxX_to_ZXX 286231
FlxX_triple 84
FlxY_Flx_div 1463
FlxY_FlxqV_evalx 12003
FlxY_Flxq_evalx 0
FlxY_evalx 812132
FlxYqq_mul 1960
FlxYqq_pow 1946
FlxYqq_redswap 4886
FlxYqq_sqr 2926
Flx_Fl_add 363429
Flx_Fl_mul 14201390
Flx_Fl_mul_to_monic 1293501
Flx_Flv_eval 0
Flx_Flv_eval_tree 21666
Flx_FlxM_qmul 643
Flx_FlxqV_eval 1285907
Flx_Flxq_eval 633263
Flx_Frobenius 2658338
Flx_add 12220606
Flx_addmulmul 1724
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 20755
Flx_deriv 3867272
Flx_div_by_X_x 8397
Flx_divrem 52994321
Flx_divrem_Barrett_noGC 13021
Flx_divrem_Barrettspec 13151
Flx_divrem_basecase 18778284
Flx_double 1767641
Flx_equal 4688116
Flx_eval 25870386
Flx_eval2BILspec 366547
Flx_extgcd 2657050
Flx_extgcd_basecase 2657050
Flx_extgcd_halfgcd 3
Flx_extresultant 141701
Flx_gcd 14659756
Flx_gcd_basecase 14102726
Flx_get_red 11832892
Flx_halfgcd 2246
Flx_halfgcd_basecase 1416
Flx_halfgcd_i 2246
Flx_halfgcd_split 830
Flx_inflate 9755
Flx_invBarrett 96
Flx_invBarrett_Newton 14
Flx_invBarrett_basecase 66
Flx_is_l_pow 4627
Flx_is_smooth 84847
Flx_is_smooth_squarefree 89474
Flx_is_squarefree 3357529
Flx_lgrenormalizespec 26512
Flx_matFrobenius 222845
Flx_mod_Xn1 19
Flx_mod_Xnm1 17181
Flx_mul 51517987
Flx_mullimb 42064516
Flx_mullimb_ok 100190279
Flx_mulspec 51548175
Flx_mulspec_basecase 30861345
Flx_mulspec_halfmulii 15867004
Flx_mulspec_mulii 825882
Flx_mulspec_mulii_inflate 137947
Flx_neg 702300
Flx_neg_inplace 1838
Flx_negspec 702300
Flx_normalize 7351234
Flx_powu 1435
Flx_recip 0
Flx_recipspec 26316
Flx_red 118564
Flx_rem 173809852
Flx_rem_basecase 153331274
Flx_renormalize 476087024
Flx_rescale 7
Flx_resultant 3158935
Flx_shift 1264555
Flx_shiftip 74483094
Flx_splitting 60400
Flx_sqr 26822679
Flx_sqrspec 26822791
Flx_sqrspec_basecase 13066442
Flx_sqrspec_halfsqri 13360367
Flx_sqrspec_sqri 271560
Flx_sqrspec_sqri_inflate 90653
Flx_sub 33612923
Flx_subspec 13151
Flx_to_Flv 2921688
Flx_to_FlxX 0
Flx_to_ZX 2631934
Flx_to_ZX_inplace 37597530
Flx_to_int_halfspec 45094375
Flx_triple 621921
Flx_val 1430
Flx_valrem 312583
FlxqV_dotproduct 56672
FlxqV_roots_to_pol 346
FlxqXQV_autpow 1051
FlxqXQV_autsum 2730
FlxqXQ_autpow_mul 544
FlxqXQ_autpow_sqr 1597
FlxqXQ_autsum_mul 4931
FlxqXQ_autsum_sqr 4050
FlxqXQ_div 914
FlxqXQ_inv 914
FlxqXQ_invsafe 914
FlxqXQ_matrix_pow 117
FlxqXQ_mul 7757
FlxqXQ_mul_mg 39702
FlxqXQ_pow 6511
FlxqXQ_powers 5782
FlxqXQ_sqr 812
FlxqXQ_sqr_mg 40203
FlxqXV_prod 346
FlxqX_FlxqXQV_eval 11814
FlxqX_FlxqXQ_eval 2141
FlxqX_Flxq_mul 6868
FlxqX_Flxq_mul_to_monic 16618
FlxqX_divrem 213965
FlxqX_extgcd 5751
FlxqX_gcd 4027
FlxqX_invBarrett 26073
FlxqX_invBarrett_Newton 17160
FlxqX_invBarrett_basecase 8764
FlxqX_mul 82537
FlxqX_mulspec 203922
FlxqX_normalize 0
FlxqX_pow 5061
FlxqX_red 46267
FlxqX_rem_Barrett 60084
FlxqX_safegcd 2135
FlxqX_sqr 49009
Flxq_autpow 320768
Flxq_autpow_mul 10180
Flxq_autpow_sqr 385627
Flxq_autsum 317555
Flxq_autsum_mul 598069
Flxq_autsum_sqr 366710
Flxq_charpoly 341
Flxq_conjvec 20
Flxq_div 1709379
Flxq_easylog 328989
Flxq_inv 2572180
Flxq_invsafe 2589712
Flxq_is2npower 140
Flxq_issquare 295305
Flxq_log 56238
Flxq_lroot 12474
Flxq_lroot_fast 56672
Flxq_matrix_pow 224091
Flxq_minpoly 314
Flxq_mul 24441751
Flxq_norm 14403
Flxq_order 12473
Flxq_pow 5848798
Flxq_pow_Frobenius 5270353
Flxq_powers 919313
Flxq_powu 3323616
Flxq_sqr 26699624
Flxq_sqrt 142611
Flxq_sqrtn 143997
Flxq_trace 1612
Fly_to_FlxY 581
Kronecker_to_FlxqX 335468
RgX_to_Flx 154
Rg_to_F2 1428721
Rg_to_Fl 12608110
Rg_to_Flxq 585689
ZXT_to_FlxT 636486
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 311952
ZX_to_Flx 98946879
Z_mod2BIL_Flx 228600
Z_mod2BIL_Flx_2 228558
Z_mod2BIL_Flx_3 42
Z_to_Flx 1135712
_Fl2_mul 168
_Fl2_pow 77
_Fl2_rand 21
_Fl2_sqr 497
_Flx_mul 3800
_FlxqXQ_add 102459
_FlxqXQ_cmul 116414
_FlxqXQ_mul 39702
_FlxqXQ_one 33177
_FlxqXQ_red 30242
_FlxqXQ_sqr 40203
_FlxqXQ_zero 0
_FlxqX_mul 1338
_FlxqX_sqr 5068
_Flxq_add 7184650
_Flxq_cmul 8882064
_Flxq_equal0 33396
_Flxq_inv 1418
_Flxq_mul 17757480
_Flxq_neg 1488
_Flxq_one 5095174
_Flxq_pow 5254041
_Flxq_rand 280146
_Flxq_red 4724141
_Flxq_rmul 215687
_Flxq_s 7614
_Flxq_sqr 23436308
_Flxq_zero 17547
bounded_order 636956
gener_Flxq 6656
get_Flx_degree 8747318
get_Flx_mod 2845127
get_Flx_red 226804173
get_Flx_var 9001256
get_Flxq_field 285
get_Flxq_star 210834
int_to_Flx 1097442
int_to_Flx_half 29227371
matid2_FlxM 10
maxlengthcoeffpol 74483094
mkF2 714
pol1_FlxX 38928
polx_FlxX 3808
random_Flx 641132
zxX_to_Kronecker 214083
zxX_to_Kronecker_spec 621927

Generated by: LCOV version 1.9