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 16937-4bd9b4e) Lines: 2111 2296 91.9 %
Date: 2014-10-24 Functions: 261 278 93.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1094 1338 81.8 %

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 578805
Flc_to_ZC 1084872
Flm_to_FlxV 145166
Flm_to_FlxX 12402
Flm_to_ZM 207297
FlvV_polint_tree 21484
Flv_FlvV_polint 0
Flv_inv 21484
Flv_inv_indir 21454
Flv_inv_indir_pre 30
Flv_inv_inplace 0
Flv_inv_inplace_pre 0
Flv_inv_pre 0
Flv_polint 21484
Flv_producttree 21484
Flv_roots_to_pol 496
Flv_to_Flx 358966
Flv_to_ZV 301
FlxC_to_ZXC 344
FlxM_Flx_add_shallow 84
FlxM_Flx_mul2 859
FlxM_mul2 646
FlxM_to_ZXM 148
FlxT_red 29818
FlxV_Flc_mul 12124
FlxV_red 0
FlxV_to_Flm 224973
FlxV_to_ZXV 80961
FlxXV_to_FlxM 111
FlxX_Fl_mul 228
FlxX_Flx_add 326
FlxX_Flx_mul 228507
FlxX_add 173564
FlxX_double 424
FlxX_lgrenormalizespec 739502
FlxX_neg 228
FlxX_recipspec 628800
FlxX_renormalize 3127479
FlxX_shift 0
FlxX_sub 42243
FlxX_subspec 272108
FlxX_swap 9772
FlxX_to_Flm 5724
FlxX_to_FlxC 1758
FlxX_to_ZXX 337804
FlxX_triple 98
FlxY_Flx_div 1456
FlxY_FlxqV_evalx 39754
FlxY_Flxq_evalx 0
FlxY_evalx 811138
FlxYqq_mul 1960
FlxYqq_pow 1946
FlxYqq_redswap 4886
FlxYqq_sqr 2926
Flx_Fl_add 480471
Flx_Fl_mul 15203488
Flx_Fl_mul_to_monic 1292264
Flx_Flv_eval 0
Flx_Flv_eval_tree 21484
Flx_FlxM_qmul 643
Flx_FlxqV_eval 1388166
Flx_Flxq_eval 629206
Flx_Frobenius 2681571
Flx_add 13200162
Flx_addmulmul 1724
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 20720
Flx_deriv 3864981
Flx_div_by_X_x 8215
Flx_divrem 53542872
Flx_divrem_Barrett_noGC 13021
Flx_divrem_Barrettspec 13151
Flx_divrem_basecase 19089603
Flx_double 1769140
Flx_equal 4646237
Flx_eval 25864828
Flx_eval2BILspec 360961
Flx_extgcd 2802416
Flx_extgcd_basecase 2802416
Flx_extgcd_halfgcd 3
Flx_extresultant 141701
Flx_gcd 14655569
Flx_gcd_basecase 14099666
Flx_get_red 12166133
Flx_halfgcd 4017
Flx_halfgcd_basecase 3187
Flx_halfgcd_i 4017
Flx_halfgcd_split 830
Flx_inflate 12093
Flx_invBarrett 96
Flx_invBarrett_Newton 14
Flx_invBarrett_basecase 66
Flx_is_l_pow 4809
Flx_is_smooth 88067
Flx_is_smooth_squarefree 92876
Flx_is_squarefree 3354841
Flx_lgrenormalizespec 26512
Flx_matFrobenius 221235
Flx_mod_Xn1 19
Flx_mod_Xnm1 17160
Flx_mul 55874938
Flx_mullimb 42249647
Flx_mullimb_ok 106975819
Flx_mulspec 55905126
Flx_mulspec_basecase 32346347
Flx_mulspec_halfmulii 18641307
Flx_mulspec_mulii 890414
Flx_mulspec_mulii_inflate 135685
Flx_neg 861921
Flx_neg_inplace 1838
Flx_negspec 861921
Flx_normalize 7338273
Flx_powu 1414
Flx_recip 0
Flx_recipspec 26316
Flx_red 117980
Flx_rem 182328142
Flx_rem_basecase 159972010
Flx_renormalize 498065660
Flx_rescale 42
Flx_resultant 3127611
Flx_shift 1264944
Flx_shiftip 81446986
Flx_splitting 60400
Flx_sqr 29465278
Flx_sqrspec 29465390
Flx_sqrspec_basecase 13476345
Flx_sqrspec_halfsqri 15594994
Flx_sqrspec_sqri 270409
Flx_sqrspec_sqri_inflate 89591
Flx_sub 36037477
Flx_subspec 13151
Flx_to_Flv 2910472
Flx_to_FlxX 0
Flx_to_ZX 3108856
Flx_to_ZX_inplace 37974064
Flx_to_int_halfspec 52877608
Flx_triple 627092
Flx_val 1430
Flx_valrem 311516
FlxqV_dotproduct 56672
FlxqV_roots_to_pol 346
FlxqXQV_autpow 14618
FlxqXQV_autsum 9419
FlxqXQ_autpow_mul 615
FlxqXQ_autpow_sqr 15451
FlxqXQ_autsum_mul 11844
FlxqXQ_autsum_sqr 10951
FlxqXQ_div 1201
FlxqXQ_inv 1201
FlxqXQ_invsafe 1201
FlxqXQ_matrix_pow 111
FlxqXQ_mul 15545
FlxqXQ_mul_mg 129170
FlxqXQ_pow 33456
FlxqXQ_powers 25926
FlxqXQ_sqr 1071
FlxqXQ_sqr_mg 181534
FlxqXV_prod 346
FlxqX_FlxqXQV_eval 38877
FlxqX_FlxqXQ_eval 16066
FlxqX_Flxq_mul 7442
FlxqX_Flxq_mul_to_monic 16128
FlxqX_divrem 303465
FlxqX_extgcd 6038
FlxqX_gcd 28438
FlxqX_invBarrett 114157
FlxqX_invBarrett_Newton 84584
FlxqX_invBarrett_basecase 29424
FlxqX_mul 183636
FlxqX_mulspec 703482
FlxqX_normalize 0
FlxqX_pow 5061
FlxqX_red 179596
FlxqX_rem_Barrett 272108
FlxqX_safegcd 1967
FlxqX_sqr 190599
Flxq_autpow 318584
Flxq_autpow_mul 10222
Flxq_autpow_sqr 382686
Flxq_autsum 315133
Flxq_autsum_mul 595970
Flxq_autsum_sqr 365148
Flxq_charpoly 201
Flxq_conjvec 20
Flxq_div 1715977
Flxq_easylog 319401
Flxq_inv 2707689
Flxq_invsafe 2725018
Flxq_is2npower 140
Flxq_issquare 296522
Flxq_log 54677
Flxq_lroot 12474
Flxq_lroot_fast 56672
Flxq_matrix_pow 223027
Flxq_minpoly 174
Flxq_mul 25759544
Flxq_norm 14371
Flxq_order 12807
Flxq_pow 6052389
Flxq_pow_Frobenius 5307794
Flxq_powers 936961
Flxq_powu 3350031
Flxq_sqr 29200717
Flxq_sqrt 143178
Flxq_sqrtn 150099
Flxq_trace 1711
Fly_to_FlxY 574
Kronecker_to_FlxqX 1077717
RgX_to_Flx 126
Rg_to_F2 1428511
Rg_to_Fl 12565700
Rg_to_Flxq 888215
ZXT_to_FlxT 857282
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 430072
ZX_to_Flx 100117847
Z_mod2BIL_Flx 225276
Z_mod2BIL_Flx_2 225234
Z_mod2BIL_Flx_3 42
Z_to_Flx 1236701
_Fl2_mul 168
_Fl2_pow 77
_Fl2_rand 21
_Fl2_sqr 497
_Flx_mul 3716
_FlxqXQ_add 173564
_FlxqXQ_cmul 228507
_FlxqXQ_mul 129170
_FlxqXQ_one 123823
_FlxqXQ_red 100805
_FlxqXQ_sqr 181534
_FlxqXQ_zero 0
_FlxqX_mul 1338
_FlxqX_sqr 5068
_Flxq_add 7810170
_Flxq_cmul 9341795
_Flxq_equal0 46252
_Flxq_inv 2041
_Flxq_mul 18222127
_Flxq_neg 2111
_Flxq_one 5205954
_Flxq_pow 5291529
_Flxq_rand 292349
_Flxq_red 4843000
_Flxq_rmul 489576
_Flxq_s 8087
_Flxq_sqr 23968762
_Flxq_zero 18170
bounded_order 648643
gener_Flxq 6600
get_Flx_degree 10161695
get_Flx_mod 3324134
get_Flx_red 235871014
get_Flx_var 10128668
get_Flxq_field 279
get_Flxq_star 215659
int_to_Flx 1160823
int_to_Flx_half 34236301
matid2_FlxM 10
maxlengthcoeffpol 81446986
mkF2 714
pol1_FlxX 129861
polx_FlxX 24351
random_Flx 653809
zxX_to_FlxX 0
zxX_to_Kronecker 557871
zxX_to_Kronecker_spec 1964835
zx_to_Flx 0

Generated by: LCOV version 1.9