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 21921-ca7d0c8) Lines: 2836 3074 92.3 %
Date: 2018-02-20 06:16:13 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 181
_FlxqXQ_zero 184
FlxX_Fl_mul 212
FlxX_double 212
get_FlxqXQ_algebra 212
Flxq_is2npower 280
ZXXT_to_FlxXT 313
FlxqXQ_auttrace 321
FlxqXM_mul2 360
FlxqX_FlxqXM_qmul 360
FlxqXQ_transmul_init 362
FlxqX_halfgcd_split 363
FlxqXM_FlxqX_mul2 384
FlxX_Flx_add 392
random_FlxqX 502
FlxqXn_mul 549
FlxqX_halfgcd_basecase 562
Flxn_red_shallow 595
Flx_rescale 701
FlxqXQ_transmul 702
FlxqX_addmulmul 768
FlxqXQ_autpow_mul 853
FlxqX_halfgcd 925
FlxqX_halfgcd_i 925
FlxqV_roots_to_deg1 976
FlxqV_roots_to_pol 976
FlxqXV_prod 988
FlxqX_invBarrett_basecase 990
FlxqX_dotproduct 1038
FlxX_neg 1146
Flm_to_FlxV 1148
FlxXC_to_ZXXC 1379
Flx_neg_inplace 1553
Flx_FlxM_qmul 1632
FlxM_mul2 1635
ZM_unpack_FlxqM_bits 1806
FlxM_neg 1813
FlxqX_invBarrett_Newton 2134
Flx_halfgcd_split 2251
_FlxqXQ_sub 2268
FlxM_Flx_mul2 2277
_FlxqX_mul 2358
FlxYqq_mul 2478
Flv_prod_pre 2541
Flv_invVandermonde 2603
FlxYqq_pow 2926
zero_FlxM 3017
zero_FlxC 3031
Fly_to_FlxY 3059
Flxq_trace 3121
FlxqX_invBarrett 3159
FlxM_pack_ZM_bits 3585
Flx_addshift 3586
FlxM_to_ZXM 4203
Flx_invBarrett_Newton 4431
Flx_addmulmul 4560
FlxYqq_sqr 5054
Flx_is_l_pow 5076
polx_FlxX 5078
_Flxq_inv 5628
FlxqX_extgcd 5915
FlxqX_extgcd_basecase 5915
_Flxq_neg 6027
get_Flxq_field 6216
FlxC_neg 6433
Flx_addspec 6925
kron_unpack_Flx_bits_wide 7000
FlxYqq_redswap 7532
FlxqX_Flxq_mul 8127
FlxX_to_Flm 8867
FlxqX_safegcd 9155
ZM_unpack_FlxqM 9214
gener_Flxq 9224
FlxY_Flx_div 9344
Flx_powu 9473
FlxM_eval_powers_pre 9748
Flx_Fl2_eval_pre 10108
FlxqX_powu 10227
_FlxqX_sqr 10255
Flx_matFrobenius 10416
FlxX_Flx_sub 10569
FlxqXQ_autsum 10854
Fl_Flxq_log 10865
FlxqM_mul_Kronecker 11020
Flv_inv_pre 11036
Z_mod2BIL_Flx_3 11480
FlxqM_Flxq_mul 11844
Flx_diff1 11851
Flx_translate1 11851
Flv_polint 12250
_Flxq_s 12271
Flxq_order 12335
Flx_halve 12965
kron_unpack_Flx 14740
FlxX_swap 15064
FlxqXQ_autsum_sqr 16932
FlxM_pack_ZM 18428
FlxV_to_Flm 19992
Flxq_matrix_pow 19992
Flxq_autpow_mul 20540
Flm_to_FlxX 21295
kron_pack_Flx_spec 21790
FlxM_sub 22470
RgX_to_FlxqX 24288
Flxq_lroot 25032
Flx_to_FlxX 26439
FlxqXQ_autsum_mul 28234
FlxqXQ_powers 28942
Flv_inv_indir 28956
_Flxq_equal0 30072
FlxX_to_Flx 33710
FlxC_to_ZXC 33977
Flv_Flm_polint 34972
Flxq_log 35090
FlxqX_divrem_Barrett_noGC 42023
Flx_inflate 45282
Flx_Flv_multieval_tree 49822
Flv_inv 49825
Flv_producttree 49825
FlxX_subspec 52295
FlxqX_divrem_Barrettspec 52295
kron_unpack_Flx_bits_narrow 52694
Flm_to_ZM_inplace 56166
FlxqX_FlxqXQV_eval 57304
FlxX_deriv 60052
FlxqXQ_autpow 60559
FlxqXQ_autpow_sqr 61350
FlxqX_FlxqXQ_eval 62432
_Flxq_rmul 62965
Fl2_sqrtn_pre 66482
Fl2_norm_pre 66585
FlxqC_Flxq_mul 71239
FlxqXQ_powu 71844
Flx_deflate 72882
FlxC_eval_powers_pre 73524
Flx_invBarrett_basecase 78706
Flx_invBarrett 83138
Flx_is_smooth 88979
Flx_is_smooth_squarefree 94043
kron_pack_Flx_spec_bits 97916
_Fl2_rand 99501
Flv_to_Flx 106762
FlxX_recipspec 107810
FlxX_sub 108586
Flx_extresultant 112534
FlxqV_dotproduct 113505
Flxq_lroot_fast 113505
FlxY_FlxqV_evalx 118671
Flc_to_ZC_inplace 123364
Flv_to_ZV 127959
FlxqX_mulspec 129290
FlxX_lgrenormalizespec 140489
FlxqX_gcd_basecase 147517
Flxq_auttrace_sqr 148468
Flx_splitting 149531
FlxqX_gcd 151536
Flxq_minpoly 153015
Flxq_sqrt 157966
FlxC_sub 158802
FlxV_to_ZXV 160847
Flxq_sqrtn 165557
FlxqX_normalize 169636
monomial_Flx 169891
Flx_halfgcd_basecase 170015
Fl2_inv_pre 171614
Flx_halfgcd 172266
Flx_halfgcd_i 172266
_FlxqXQ_sqr 183913
FlxqXQ_sqr 184284
Flxq_auttrace_mul 188372
_Flxq_zero 190728
FlxqX_sqr 200706
Flxq_auttrace 206231
FlxqX_Flxq_mul_to_monic 211133
get_Flxq_star 211169
FlxqX_divrem 252486
FlxY_evalx 258418
_FlxqXQ_mul 270341
FlxqX_get_red 294477
FlxqXQ_mul 300938
Flxq_autpow 304492
Flxq_autsum 306289
FlxT_red 315135
_Flxq_rand 316446
Flxq_easylog 319912
Flxq_transmul_init 333930
_FlxqXQ_red 341068
kron_pack_Flx_spec_half 342773
_FlxqXQ_one 352522
Flxq_issquare 352575
Flxq_autsum_sqr 365229
Flxq_autpow_sqr 377764
Flxq_norm 380425
Flx_red 382864
Fl2_equal1 390883
FlxqX_mul 418202
FlxX_to_ZXX 427398
ZXX_to_FlxX 481360
_FlxqXQ_add 500306
FlxX_add 505414
_Fl2_pow 584493
Fl2_pow_pre 584513
Flxq_autsum_mul 613285
FlxX_Flx_mul 620042
_FlxqXQ_cmul 620042
Flv_roots_to_pol 626429
Flxn_mul 629111
bounded_order 661558
Flx_triple 670783
Kronecker_to_FlxqX 748198
FlvV_polint_tree 763022
Flxq_transmul 833440
pol1_FlxX 864977
FlxqX_red 960250
Flx_Flxq_eval 978597
zxX_to_Kronecker 1037110
Flx_negspec 1056633
Flx_neg 1056636
random_Flx 1062079
Rg_to_F2 1097730
FlxqX_divrem_basecase 1142896
FlxqX_rem 1153695
zxX_to_Kronecker_spec 1295690
ZXT_to_FlxT 1328089
Z_to_Flx 1333388
get_FlxqX_red 1406543
Rg_to_Flxq 1484750
zxX_to_FlxX 1705890
_Fl2_mul 1719683
Fl2_mul_pre 1747495
Flx_divrem_Barrett_noGC 1830655
Flx_subspec 1836047
Flx_divrem_Barrettspec 1836077
Flxq_div 1871986
Flx_double 1873692
FlxY_degreex 1882177
Flx_resultant 1940379
RgX_to_Flx 1954031
Flxq_powers 3056214
Flx_val 3292599
Flx_FlxqV_eval 3391950
Flx_eval_pre_i 3440998
Flxq_inv 3462389
Flx_is_squarefree 3475568
Flx_to_Flv 3496857
Flxq_invsafe 3505586
Flx_eval 3505913
Flx_eval_pre 3511006
Flx_extgcd 3632728
Flx_extgcd_basecase 3632728
Flx_lgrenormalizespec 3738540
Flx_Frobenius 3758432
zx_to_Flx 3848271
_Fl2_sqr 4425181
Fl2_sqr_pre 4425453
Flx_recipspec 4677456
Flx_shift 4959836
Flx_mod_Xnm1 5527417
FlxY_eval_powers_pre 5619920
Flx_deriv 5721111
Flx_mulspec_mulii 6426112
mkF2 6519645
Flx_Fl_mul_to_monic 7262992
Flx_Fl_add 7955564
Flx_mulspec_halfmulii 8139530
Flm_to_ZM 8221130
FlxY_evalx_powers_pre 8387638
FlxX_renormalize 8464920
_Flx_mul 9518032
Fl_to_Flx 9575121
_Flxq_red 9916416
Flx_mulspec_mulii_inflate 10217414
Flx_sqrspec_quartsqri 10374052
Flv_inv_pre_inplace 10666981
Flv_inv_pre_indir 10698881
Flxq_powu 11383515
_Flxq_one 11649018
Flx_sqrspec_halfsqri 11934005
Flx_sqrspec_sqri_inflate 19019229
Flc_to_ZC 19146108
int_to_Flx_half 20272234
_Flx_add 21781896
_Flxq_pow 22892049
Flxq_pow_Frobenius 22910599
Flxq_pow 23142003
Flx_valrem 23206987
Flx_equal 24825459
_Flxq_cmul 25951734
Flx_divrem_basecase 26508381
Flx_eval_powers_pre 27629972
Flx_to_int_halfspec 28383094
Z_mod2BIL_Flx_2 29237620
Z_mod2BIL_Flx 29255847
Flx_gcd_basecase 29602850
Flx_div_by_X_x 30146563
Flx_gcd 30308041
Rg_to_Fl 34305176
Flx_mulspec_quartmulii 34591529
Flx_Fl_mul 34623319
Flx_normalize 39022552
Flx_eval2BILspec 39441233
Flx_to_ZX 41530085
Flx_to_ZX_inplace 43776253
int_to_Flx_quart 44966260
Flx_get_red 45454244
Flx_multhreshold 45467453
Flx_add 48493439
Flx_sqrspec_sqri 51786928
int_to_Flx 58535319
Flx_sub 60961220
Flx_divrem 63618131
Flx_to_int_quartspec 79557273
Flx_sqrspec_basecase 109003088
_Flxq_mul 111711808
Flxq_mul 129177679
ZX_to_Flx 175081399
Flx_mulspec_basecase 187811335
_Flxq_sqr 195733351
Flxq_sqr 201517048
Flx_sqr 202172547
Flx_sqrspec 202325454
Flx_mul 252632514
Flx_mulspec 256463247
Flx_shiftip 447985827
Flx_rem_basecase 470832632
maxlengthcoeffpol 494278468
Flx_rem 531016400
get_Flx_red 595152220
Flx_mullimb 738401859
Flx_mullimb_ok 785111328
Flx_renormalize 1442469936

Generated by: LCOV version 1.11