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 to exceed 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 - FpX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 29877-9124a6ce27) Lines: 1674 1836 91.2 %
Date: 2025-01-18 09:08:44 Functions: 187 200 93.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpV_FpM_polint 0
FpX_FpV_multieval 0
FpX_FpXV_multirem 0
FpX_Fp_add_shallow 0
FpX_chinese_coprime 0
FpX_integ 0
FpXn_exp 0
FpXn_sqr 0
FqV_inv 0
_FpX_one 0
_FpX_red 0
_FpX_zero 0
get_FpX_algebra 0
FpXQ_conjvec 8
matJ2_FpXM 8
FpVV_polint_tree 15
FpXQ_charpoly 15
FpXQ_autpow_msqr 21
FpV_polint 22
FpX_extresultant_basecase 24
matid2_FpXM 24
FpX_disc 42
Fq_ispower 70
FpX_extresultant 77
FpXQ_sumautsum_msqr 94
FpX_halfres 106
FpXQM_autsum 147
FpX_invLaplace 158
FpXQM_autsum_sqr 217
FpXQ_sumautsum_sqr 262
FpXM_FpXQV_eval 315
FpXQM_autsum_mul 315
FpXQ_auttrace_sqr 317
FpXQ_auttrace_mul 360
_FpXQ_easylog 380
FpXQ_auttrace 436
_FpXQ_rand 553
FpX_Laplace 576
FpXC_FpXQ_eval 588
FpXV_chinese 588
FpXV_chinese_tree 588
FpXV_chinesetree 588
FpXV_invdivexact 588
FpXV_producttree 588
FpXV_sqr 588
FpX_FpXV_multirem_tree 588
gc_chinese 588
FpX_halfgcd 657
FpXQ_sqrtn 711
FpXQ_sumautsum 724
FpX_gcd_check 799
Fp_neg_FpX 935
FpX_convol 994
FpXQ_transmul_init 1020
FpXC_FpXQV_eval 1470
FpX_invBarrett_Newton 1490
Z_to_FpX 1726
FpXQ_autpowers 1771
FpXQ_order 1816
get_FpXQ_star 2319
FpXQ_transmul 2638
FpXQ_autsum 2729
FpXQ_autsum_sqr 2750
FpXQ_autsum_mul 2903
FpX_invBarrett_basecase 3324
FpX_halfres_update 3749
FpXQ_autpow 3884
bounded_order 3936
FpX_resultant_basecase 4021
_FpXQ_zero 4123
FpXQ_autpow_sqr 4178
FpXV_FpX_fromdigits 4564
FpX_invBarrett 4867
FpXn_div 6412
FpXn_inv 6412
gener_FpXQ 7030
FpXT_sqr 7602
FpX_dotproduct 7996
FpX_divu 8610
get_FpXQ_algebra 10199
FpX_Fp_sub_shallow 11146
FpX_fromNewton 11334
FpX_digits 11403
FpXQ_minpoly 13372
FpX_extgcd_halfgcd 13387
FpX_halfgcd_all_i 15050
FpX_halfgcd_all 15190
FpX_FpXM_qmul 16298
FpXM_mul2 16389
FpXn_expint 17249
FpX_halfres_split 17382
Fp2_norm 19390
Fp2_sqrt 19821
_FpX_add 20062
FpXQ_trace 21065
Fp_red_FpX 21478
FpXV_factorback 22622
Fp_FpX_sub 25690
FpX_halfres_basecase 31438
FpX_matFrobenius 31493
FpV_invVandermonde 31628
FpV_producttree 31643
FpX_FpV_multieval_tree 31643
FpXV_producttree_dbl 32231
FpX_FpXV_multirem_dbl_tree 32231
FpXM_FpX_mul2 33664
FpV_inv 34071
_FpX_pow 34954
FpX_is_squarefree 40952
FpX_halfres_i 48820
_FpXQ_sub 52941
FpX_gcd_basecase 53016
FpX_integXn 55491
FpXn_mulhigh 59410
FpXQ_matrix_pow 66290
FpXQ_sqrt 80819
FpX_addmulmul 80989
gener_FpXQ_local 83363
gener_FpXQ_i 83399
_FpX_sqr 86200
FpV_roots_to_pol 93146
FpX_halve 94912
FpX_mulhigh_i 114901
FpX_Fp_mul_to_monic 134096
_FpX_divrem 134778
FpX_div_by_X_x 165030
_FpXQ_pow 173269
FpX_rescale 178635
FpXQ_pow_Frobenius 188277
FpXn_red 199478
FpX_divrem_Barrett 212724
FpX_divrem_Barrettspec 213469
FpX_valrem 254714
random_FpX 257949
FpXV_prod 309374
FpX_center 311949
FpX_powu 317698
FpXQ_norm 363873
_FpX_mul 370428
FpXQ_powers 380291
FpXQ_issquare 400948
FpX_FpXQV_eval 403447
FpXV_red 404557
FpX_resultant 415756
FpX_recipspec 431472
FpX_Frobenius 444457
ZX_lgrenormalizespec 457324
FpX_neg 468044
FpX_Newton 522895
FpXQ_div 532013
FpXn_recip 533724
Fp_FpXQ_log 544250
FpX_extgcd_basecase 584625
FpX_Fp_sub 588411
FpXQ_powu 607569
FpX_Fp_div 612088
FpXQ_log 708205
FpX_FpXQ_eval 794263
_FpXQ_one 873934
_FpXQ_red 874933
FpXQ_pow 907137
FpX_Fp_add 907462
FpX_get_red 942942
FpX_shift 961427
FpX_eval 964087
FpX_gcd 1011140
FpX_mulu 1060836
FpXQ_invsafe 1097381
FpXQ_inv 1097382
FpX_center_i 1241839
Fp_issquare 1335928
FpX_extgcd 1439274
_FpXQ_mul 1585135
Fq_issquare 1631123
FpX_deriv 1631560
FpXT_red 1663754
FpX_normalize 1840086
to_Flxq 2135639
Fq_log 2193858
_FpXQ_add 2245987
FpXn_mul 2559684
_FpXQ_cmul 2654218
_FpXQ_sqr 4867940
FpX_Fp_mul 5658640
FpX_Fp_mulspec 5673306
FpXQ_sqr 5781315
FpX_sqr 5973584
FpX_mulspec 7996348
FpXQ_mul 11595807
FpX_divrem 14269238
FpX_sub 14532804
FpX_subspec 14746258
FpX_add 16913454
FpXQ_red 17812605
FpX_mul 26834288
to_Flx 44497291
FpX_divrem_basecase 66321478
FpX_rem 71188887
get_FpX_red 85468617
FpX_red 93497526

Generated by: LCOV version 1.16