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 - Flx.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 21351-66b5338) Lines: 2833 3074 92.2 %
Date: 2017-11-22 06:21:08 Functions: 344 373 92.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Flv_inv_inplace 0
Flv_prod 0
FlxM_Flx_add_shallow 0
FlxV_Flc_mul 0
FlxV_Flx_fromdigits 0
FlxV_prod 0
FlxV_red 0
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 0
FlxX_shift 0
FlxX_to_FlxC 0
FlxX_triple 0
FlxY_Flx_translate 0
FlxY_Flxq_evalx 0
Flx_Flv_multieval 0
Flx_digits 0
Flx_recip 0
FlxqXQ_div 0
FlxqXQ_matrix_pow 0
FlxqX_extgcd_halfgcd 0
ZXV_to_FlxV 0
_Flx_divrem 0
_Flx_sqr 0
_Flx_sub 0
kron_pack_Flx_spec_2 0
kron_pack_Flx_spec_3 0
kron_unpack_Flx_2 0
kron_unpack_Flx_3 0
matid2_FlxXM 0
Flx_extgcd_halfgcd 3
matid2_FlxM 3
Flx_mod_Xn1 12
ZXXV_to_FlxXV 12
FlxqXQ_inv 14
FlxqXQ_invsafe 14
FlxqXQ_auttrace_mul 20
FlxqXQ_auttrace_sqr 20
Flxq_conjvec 20
Flxq_charpoly 27
FlxqXQ_pow 42
Flxn_inv 98
FlxqXQ_minpoly 139
polxn_FlxX 160
_FlxqXQ_zero 170
FlxX_Fl_mul 205
FlxX_double 205
get_FlxqXQ_algebra 205
Flxq_is2npower 280
ZXXT_to_FlxXT 285
FlxqXQ_transmul_init 320
FlxqXQ_auttrace 321
FlxqXM_mul2 360
FlxqX_FlxqXM_qmul 360
FlxqX_halfgcd_split 363
FlxqXM_FlxqX_mul2 384
FlxX_Flx_add 392
random_FlxqX 481
FlxqXn_mul 500
FlxqX_halfgcd_basecase 541
Flxn_red_shallow 595
FlxqXQ_transmul 639
Flx_rescale 701
FlxqX_addmulmul 768
FlxqXQ_autpow_mul 853
FlxqX_halfgcd 904
FlxqX_halfgcd_i 904
FlxXC_to_ZXXC 959
FlxqV_roots_to_deg1 962
FlxqV_roots_to_pol 962
FlxqX_dotproduct 968
FlxqXV_prod 974
FlxqX_invBarrett_basecase 997
FlxX_neg 1265
Flx_neg_inplace 1601
ZM_unpack_FlxqM_bits 1626
Flx_FlxM_qmul 1634
FlxM_mul2 1637
FlxM_neg 1806
FlxqX_invBarrett_Newton 2120
Flx_halfgcd_split 2206
FlxM_Flx_mul2 2232
_FlxqX_mul 2330
_FlxqXQ_sub 2338
FlxYqq_mul 2422
Flv_invVandermonde 2426
zero_FlxM 2758
zero_FlxC 2765
FlxYqq_pow 2870
Flv_prod_pre 2975
Fly_to_FlxY 3066
Flxq_trace 3114
FlxqX_invBarrett 3131
FlxM_pack_ZM_bits 3225
Flx_addshift 3682
FlxM_to_ZXM 4029
Flx_invBarrett_Newton 4349
Flx_addmulmul 4470
FlxYqq_sqr 4956
polx_FlxX 5057
Flx_is_l_pow 5128
_Flxq_inv 5628
FlxqX_extgcd 5915
FlxqX_extgcd_basecase 5915
_Flxq_neg 5971
get_Flxq_field 6118
FlxC_neg 6412
kron_unpack_Flx_bits_wide 7000
Flx_addspec 7117
FlxYqq_redswap 7378
FlxqX_Flxq_mul 8071
FlxX_to_Flm 8890
FlxM_eval_powers_pre 8961
FlxqX_safegcd 9022
ZM_unpack_FlxqM 9030
gener_Flxq 9224
FlxY_Flx_div 9365
Flx_powu 9514
Flx_diff1 9583
Flx_translate1 9583
Flv_inv_pre 9721
Flx_Fl2_eval_pre 10108
FlxqX_powu 10227
_FlxqX_sqr 10255
FlxX_Flx_sub 10504
FlxqM_mul_Kronecker 10656
FlxqXQ_autsum 10775
Fl_Flxq_log 11000
FlxqM_Flxq_mul 11109
Z_mod2BIL_Flx_3 11185
_Flxq_s 12257
Flxq_order 12296
Flv_polint 12675
Flx_halve 12798
kron_unpack_Flx 14714
FlxX_swap 14756
FlxqXQ_autsum_sqr 16842
FlxM_pack_ZM 18060
Flxq_autpow_mul 20511
Flm_to_FlxX 21176
kron_pack_Flx_spec 21294
FlxM_sub 21756
RgX_to_FlxqX 21922
Flxq_lroot 25032
Flxq_minpoly 25294
Flx_to_FlxX 25312
Flv_inv_indir 27687
FlxqXQ_autsum_mul 28147
FlxqXQ_powers 28841
_Flxq_equal0 30044
FlxX_to_Flx 31022
FlxC_to_ZXC 32508
monomial_Flx 32873
Flx_halfgcd_basecase 33392
Flv_Flm_polint 33399
Flxq_log 35069
Flx_halfgcd 35598
Flx_halfgcd_i 35598
FlxqX_divrem_Barrett_noGC 40749
Flxq_auttrace 43014
Flxq_auttrace_sqr 45326
Flx_inflate 45499
kron_unpack_Flx_bits_narrow 46370
Flv_producttree 48501
Flx_Flv_multieval_tree 48501
Flv_inv 48502
FlxX_subspec 51056
FlxqX_divrem_Barrettspec 51056
Flm_to_ZM_inplace 56166
Flxq_auttrace_mul 56913
FlxqX_FlxqXQV_eval 57095
Flxq_transmul_init 60006
_Flxq_rmul 60018
FlxX_deriv 60031
FlxqXQ_autpow 60559
FlxqXQ_autpow_sqr 61350
FlxqX_FlxqXQ_eval 62432
FlxC_eval_powers_pre 66955
FlxqC_Flxq_mul 68397
Flx_deflate 71179
FlxqXQ_powu 71751
Flx_invBarrett_basecase 73703
Flx_invBarrett 78054
Flx_is_smooth 89443
kron_pack_Flx_spec_bits 90410
Flx_is_smooth_squarefree 94576
Flxn_mul 102405
FlxX_recipspec 105192
Fl2_norm_pre 106939
Fl2_sqrtn_pre 107664
FlxX_sub 108579
Flx_extresultant 111835
FlxqV_dotproduct 113505
Flxq_lroot_fast 113505
FlxY_FlxqV_evalx 118497
Flc_to_ZC_inplace 123364
FlxqX_mulspec 126672
Flv_to_ZV 127589
FlxX_lgrenormalizespec 137801
FlxqX_gcd_basecase 147325
Flx_splitting 149709
FlxqX_gcd 151387
Flxq_transmul 152660
FlxC_sub 153986
Flxq_sqrt 157542
FlxV_to_ZXV 160439
_Fl2_rand 162319
Flxq_sqrtn 165084
FlxqX_normalize 169075
_FlxqXQ_sqr 183584
FlxqXQ_sqr 183955
_Flxq_zero 190553
FlxqX_sqr 200272
FlxqX_Flxq_mul_to_monic 208213
get_Flxq_star 210636
FlxqX_divrem 252373
FlxY_evalx 261382
_FlxqXQ_mul 270190
Flm_to_FlxV 282173
Fl2_inv_pre 290852
Flx_matFrobenius 291455
FlxqX_get_red 293994
FlxqXQ_mul 300756
FlxV_to_Flm 300919
Flxq_matrix_pow 300919
Flxq_autpow 304094
Flxq_autsum 306587
_Flxq_rand 315287
FlxT_red 316716
Flxq_easylog 321183
Flv_inv_pre_inplace 336693
kron_pack_Flx_spec_half 338546
_FlxqXQ_red 340645
_FlxqXQ_one 351916
Flxq_issquare 352195
Flxq_autsum_sqr 363973
Flv_inv_pre_indir 367223
Flxq_autpow_sqr 377091
Flxq_norm 379936
Flx_red 382944
FlxqX_mul 417670
FlxX_to_ZXX 425774
ZXX_to_FlxX 480418
_FlxqXQ_add 498835
FlxX_add 503943
Flv_roots_to_pol 597029
Flxq_autsum_mul 611205
FlxX_Flx_mul 618362
_FlxqXQ_cmul 618362
Flx_triple 635261
bounded_order 661217
Fl2_equal1 673356
Flx_Flxq_eval 695517
FlvV_polint_tree 719448
Kronecker_to_FlxqX 744614
random_Flx 759839
Flv_to_Flx 767400
zxX_to_FlxX 837060
pol1_FlxX 864707
FlxqX_red 958867
_Fl2_pow 997898
Fl2_pow_pre 997908
FlxY_degreex 1013023
zxX_to_Kronecker 1035612
Flx_neg 1062483
Flx_negspec 1062487
Rg_to_F2 1096684
FlxqX_divrem_basecase 1140586
FlxqX_rem 1149814
zxX_to_Kronecker_spec 1288956
Z_to_Flx 1308863
ZXT_to_FlxT 1334821
RgX_to_Flx 1396215
get_FlxqX_red 1402507
Rg_to_Flxq 1462581
Flx_val 1593846
Flx_divrem_Barrett_noGC 1739608
Flx_subspec 1745013
Flx_divrem_Barrettspec 1745023
Flx_double 1799568
Flxq_div 1823626
FlxY_eval_powers_pre 1934784
Flx_resultant 1939846
Flxq_powers 2480783
Flx_FlxqV_eval 2774952
zx_to_Flx 2853809
_Fl2_mul 2863056
Fl2_mul_pre 2890844
Flx_shift 2945410
FlxY_evalx_powers_pre 3030603
Flxq_inv 3411366
Flx_eval_pre_i 3422649
Flxq_invsafe 3452204
Flx_is_squarefree 3470290
Flx_eval 3487152
Flx_eval_pre 3493488
Flx_lgrenormalizespec 3554822
Flx_extgcd 3577869
Flx_extgcd_basecase 3577869
Flx_Frobenius 3623481
Flx_recipspec 3673622
Flx_to_Flv 4834492
Flx_mod_Xnm1 4993230
Flx_deriv 5699537
Flx_mulspec_mulii 6024531
Flx_Fl_mul_to_monic 7278735
_Fl2_sqr 7355400
Fl2_sqr_pre 7355712
Flx_mulspec_halfmulii 7561761
FlxX_renormalize 7574486
_Flxq_red 7826341
Flx_Fl_add 8081407
Flm_to_ZM 8141102
_Flx_mul 8956636
_Flxq_one 9165283
Fl_to_Flx 9218295
Flx_mulspec_mulii_inflate 10133432
Flx_sqrspec_quartsqri 10602135
mkF2 10816919
Flxq_powu 11422614
Flx_eval_powers_pre 15065084
Flx_sqrspec_halfsqri 15446766
_Flx_add 17449198
Flc_to_ZC 18924250
Flx_sqrspec_sqri_inflate 19022372
_Flxq_cmul 20719133
_Flxq_pow 21944789
Flxq_pow_Frobenius 21963473
Flxq_pow 22194063
Flx_valrem 22322427
Flx_divrem_basecase 22948201
int_to_Flx_half 23206014
Flx_equal 23873345
Flx_gcd_basecase 28076436
Flx_div_by_X_x 28445087
Flx_gcd 28669339
Flx_Fl_mul 29132948
Z_mod2BIL_Flx_2 29138725
Z_mod2BIL_Flx 29164993
Flx_to_int_halfspec 30740159
Flx_mulspec_quartmulii 32143155
Rg_to_Fl 34318960
Flx_normalize 35653133
Flx_eval2BILspec 39264791
Flx_multhreshold 41373818
Flx_get_red 41485904
Flx_to_ZX 41901969
int_to_Flx_quart 42745514
Flx_add 43390057
Flx_to_ZX_inplace 43696712
Flx_sqrspec_sqri 47998112
int_to_Flx 54254171
Flx_sub 56353430
Flx_divrem 60183054
Flx_to_int_quartspec 74885349
Flx_sqrspec_basecase 106559952
_Flxq_mul 108462128
Flxq_mul 125476382
ZX_to_Flx 176269920
Flx_mulspec_basecase 181782654
_Flxq_sqr 193336698
Flxq_sqr 198980137
Flx_sqr 199603185
Flx_sqrspec 199746567
Flx_mul 242870990
Flx_mulspec 246541003
Flx_shiftip 435876756
Flx_rem_basecase 458942762
maxlengthcoeffpol 478207257
Flx_rem 518326323
get_Flx_red 578777576
Flx_mullimb 738251637
Flx_mullimb_ok 741121272
Flx_renormalize 1393344782

Generated by: LCOV version 1.11