<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1d3 20150301//EN" "http://jats.nlm.nih.gov/publishing/1.1d3/JATS-journalpublishing1.dtd">
<article article-type="research-article" dtd-version="1.1d3" xml:lang="en" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">PLoS ONE</journal-id>
<journal-id journal-id-type="publisher-id">plos</journal-id>
<journal-id journal-id-type="pmc">plosone</journal-id>
<journal-title-group>
<journal-title>PLOS ONE</journal-title>
</journal-title-group>
<issn pub-type="epub">1932-6203</issn>
<publisher>
<publisher-name>Public Library of Science</publisher-name>
<publisher-loc>San Francisco, CA USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">PONE-D-22-23355</article-id>
<article-id pub-id-type="doi">10.1371/journal.pone.0286878</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Research Article</subject>
</subj-group>
<subj-group subj-group-type="Discipline-v3">
<subject>Physical sciences</subject><subj-group><subject>Mathematics</subject><subj-group><subject>Algebra</subject><subj-group><subject>Polynomials</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Physical sciences</subject><subj-group><subject>Mathematics</subject><subj-group><subject>Applied mathematics</subject><subj-group><subject>Algorithms</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Research and analysis methods</subject><subj-group><subject>Simulation and modeling</subject><subj-group><subject>Algorithms</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Engineering and technology</subject><subj-group><subject>Signal processing</subject><subj-group><subject>Image processing</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Computer and information sciences</subject><subj-group><subject>Computer vision</subject></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Engineering and technology</subject><subj-group><subject>Signal processing</subject></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Physical sciences</subject><subj-group><subject>Mathematics</subject><subj-group><subject>Geometry</subject><subj-group><subject>Radii</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Biology and life sciences</subject><subj-group><subject>Immunology</subject><subj-group><subject>Immune system proteins</subject><subj-group><subject>Immune receptors</subject><subj-group><subject>Pattern recognition receptors</subject></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Medicine and health sciences</subject><subj-group><subject>Immunology</subject><subj-group><subject>Immune system proteins</subject><subj-group><subject>Immune receptors</subject><subj-group><subject>Pattern recognition receptors</subject></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Biology and life sciences</subject><subj-group><subject>Biochemistry</subject><subj-group><subject>Proteins</subject><subj-group><subject>Immune system proteins</subject><subj-group><subject>Immune receptors</subject><subj-group><subject>Pattern recognition receptors</subject></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Biology and life sciences</subject><subj-group><subject>Cell biology</subject><subj-group><subject>Signal transduction</subject><subj-group><subject>Immune receptors</subject><subj-group><subject>Pattern recognition receptors</subject></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Research and analysis methods</subject><subj-group><subject>Mathematical and statistical techniques</subject><subj-group><subject>Mathematical models</subject></subj-group></subj-group></subj-group></article-categories>
<title-group>
<article-title>Performance enhancement of high order Hahn polynomials using multithreading</article-title>
<alt-title alt-title-type="running-head">High order Hahn polynomials using multithreading</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" equal-contrib="yes" xlink:type="simple">
<name name-style="western">
<surname>Mahmmod</surname> <given-names>Basheera M.</given-names></name>
<role content-type="http://credit.niso.org/contributor-roles/formal-analysis/">Formal analysis</role>
<role content-type="http://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-original-draft/">Writing – original draft</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author" equal-contrib="yes" xlink:type="simple">
<name name-style="western">
<surname>Flayyih</surname> <given-names>Wameedh Nazar</given-names></name>
<role content-type="http://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role content-type="http://credit.niso.org/contributor-roles/software/">Software</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-original-draft/">Writing – original draft</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author" equal-contrib="yes" xlink:type="simple">
<name name-style="western">
<surname>Fakhri</surname> <given-names>Zainab Hassan</given-names></name>
<role content-type="http://credit.niso.org/contributor-roles/validation/">Validation</role>
<role content-type="http://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author" equal-contrib="yes" xlink:type="simple">
<name name-style="western">
<surname>Abdulhussain</surname> <given-names>Sadiq H.</given-names></name>
<role content-type="http://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role content-type="http://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role content-type="http://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author" corresp="yes" xlink:type="simple">
<contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0002-7511-3873</contrib-id>
<name name-style="western">
<surname>Khan</surname> <given-names>Wasiq</given-names></name>
<role content-type="http://credit.niso.org/contributor-roles/software/">Software</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
<xref ref-type="fn" rid="fn001"><sup>‡</sup></xref>
<xref ref-type="corresp" rid="cor001">*</xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple">
<name name-style="western">
<surname>Hussain</surname> <given-names>Abir</given-names></name>
<role content-type="http://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff003"><sup>3</sup></xref>
<xref ref-type="fn" rid="fn001"><sup>‡</sup></xref>
</contrib>
</contrib-group>
<aff id="aff001">
<label>1</label>
<addr-line>Department of Computer Engineering, University of Baghdad, Baghdad, Iraq</addr-line>
</aff>
<aff id="aff002">
<label>2</label>
<addr-line>School of Computer Science and Mathematics, Liverpool John Moores University, Liverpool, United Kingdom</addr-line>
</aff>
<aff id="aff003">
<label>3</label>
<addr-line>Department of Electrical Engineering, University of Sharjah, Sharjah, United Arab Emirates</addr-line>
</aff>
<contrib-group>
<contrib contrib-type="editor" xlink:type="simple">
<name name-style="western">
<surname>Kovtun</surname> <given-names>Viacheslav</given-names></name>
<role>Editor</role>
<xref ref-type="aff" rid="edit1"/>
</contrib>
</contrib-group>
<aff id="edit1">
<addr-line>Vinnytsia National Technical University, UKRAINE</addr-line>
</aff>
<author-notes>
<fn fn-type="conflict" id="coi001">
<p>The authors have declared that no competing interests exist.</p>
</fn>
<fn fn-type="other" id="fn001">
<p>‡ WK and AH also contributed equally to this work.</p>
</fn>
<corresp id="cor001">* E-mail: <email xlink:type="simple">W.Khan@ljmu.ac.uk</email></corresp>
</author-notes>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<pub-date pub-type="epub">
<day>25</day>
<month>10</month>
<year>2023</year>
</pub-date>
<volume>18</volume>
<issue>10</issue>
<elocation-id>e0286878</elocation-id>
<history>
<date date-type="received">
<day>20</day>
<month>8</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>25</day>
<month>5</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-year>2023</copyright-year>
<copyright-holder>Mahmmod et al</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="info:doi/10.1371/journal.pone.0286878"/>
<abstract>
<p>Orthogonal polynomials and their moments have significant role in image processing and computer vision field. One of the polynomials is discrete Hahn polynomials (DHaPs), which are used for compression, and feature extraction. However, when the moment order becomes high, they suffer from numerical instability. This paper proposes a fast approach for computing the high orders DHaPs. This work takes advantage of the multithread for the calculation of Hahn polynomials coefficients. To take advantage of the available processing capabilities, independent calculations are divided among threads. The research provides a distribution method to achieve a more balanced processing burden among the threads. The proposed methods are tested for various values of DHaPs parameters, sizes, and different values of threads. In comparison to the unthreaded situation, the results demonstrate an improvement in the processing time which increases as the polynomial size increases, reaching its maximum of 5.8 in the case of polynomial size and order of 8000 × 8000 (matrix size). Furthermore, the trend of continuously raising the number of threads to enhance performance is inconsistent and becomes invalid at some point when the performance improvement falls below the maximum. The number of threads that achieve the highest improvement differs according to the size, being in the range of 8 to 16 threads in 1000 × 1000 matrix size, whereas at 8000 × 8000 case it ranges from 32 to 160 threads.</p>
</abstract>
<funding-group>
<funding-statement>The author(s) received no specific funding for this work.</funding-statement>
</funding-group>
<counts>
<fig-count count="7"/>
<table-count count="2"/>
<page-count count="17"/>
</counts>
<custom-meta-group>
<custom-meta id="data-availability">
<meta-name>Data Availability</meta-name>
<meta-value>All relevant data are within the paper.</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec id="sec001" sec-type="intro">
<title>Introduction</title>
<p>Moment theory is a powerful tool in the areas of image processing, pattern recognition, and computer vision applications [<xref ref-type="bibr" rid="pone.0286878.ref001">1</xref>]. Signals are described using scalar values called moments (one, two, or more dimensions). A set of polynomial basis functions is utilized to compute moments. These basis functions are used to convert signals, voice or images, to the transform domain [<xref ref-type="bibr" rid="pone.0286878.ref002">2</xref>, <xref ref-type="bibr" rid="pone.0286878.ref003">3</xref>]. To deal with the problem of pattern identification, Hu [<xref ref-type="bibr" rid="pone.0286878.ref004">4</xref>] introduced geometric moments and moments invariants. The proposed momemnts are not orthogonal, which result in numerical difficulties [<xref ref-type="bibr" rid="pone.0286878.ref005">5</xref>].</p>
<p>Continuous moments could be determined using continuous orthogonal polynomials like Zernike [<xref ref-type="bibr" rid="pone.0286878.ref006">6</xref>] or by using Tchebichef with altered radius [<xref ref-type="bibr" rid="pone.0286878.ref007">7</xref>]. Continuous moment functions can be incorrect due to two common types of errors: image coordinate transformation and continuous integral approximation. [<xref ref-type="bibr" rid="pone.0286878.ref008">8</xref>]. Due to the utilization of discretization and approximation throughout the process of image reconstruction, the obtained image will be imperfect [<xref ref-type="bibr" rid="pone.0286878.ref009">9</xref>].</p>
<p>In order to avoid the aforementioned constraints, Discrete Orthogonal Polynomials (DOPs) have been concentrated on by the researchers. This is due to their remarkable image reconstruction features [<xref ref-type="bibr" rid="pone.0286878.ref008">8</xref>–<xref ref-type="bibr" rid="pone.0286878.ref010">10</xref>]. In addition, 1D and 2D signals can be represented by discrete orthogonal moments (DOMs) without redundancy. Also, they have great energy compaction, and spectrum resolution characteristics [<xref ref-type="bibr" rid="pone.0286878.ref011">11</xref>–<xref ref-type="bibr" rid="pone.0286878.ref014">14</xref>]. Signal representation and feature extraction have recently been used to discrete Tchebichef polynomials [<xref ref-type="bibr" rid="pone.0286878.ref015">15</xref>, <xref ref-type="bibr" rid="pone.0286878.ref016">16</xref>], discrete Hahn moments [<xref ref-type="bibr" rid="pone.0286878.ref017">17</xref>], and discrete Krawtchouk moments [<xref ref-type="bibr" rid="pone.0286878.ref018">18</xref>, <xref ref-type="bibr" rid="pone.0286878.ref019">19</xref>]. It is note worthy that the DOPs are utilized for solving linear functional differential equations [<xref ref-type="bibr" rid="pone.0286878.ref020">20</xref>].</p>
<p>DOPs’ are solid owing to their significant features, which involve localization, energy compression, watermarking, signal extraction features, numerical stability, efficient data processing, and resilient data analysis [<xref ref-type="bibr" rid="pone.0286878.ref003">3</xref>, <xref ref-type="bibr" rid="pone.0286878.ref021">21</xref>–<xref ref-type="bibr" rid="pone.0286878.ref025">25</xref>]. At the same time, the vital characteristics of majority of DOMs are not applied to large-sized images which is due to limitation in the computation of polynomials [<xref ref-type="bibr" rid="pone.0286878.ref026">26</xref>].</p>
<p>The DOPs limitations such as overflow, the instability of the polynomial values, and the high computational complexity have resulted in this constraints. Therefore, an improved recurrence technique for generating higher orders are being improved, for example Tchebichef [<xref ref-type="bibr" rid="pone.0286878.ref016">16</xref>] and Krawtchouk [<xref ref-type="bibr" rid="pone.0286878.ref018">18</xref>] polynomials. Recently, Researchers have considered other DOPS, for example Charlier polynomials [<xref ref-type="bibr" rid="pone.0286878.ref027">27</xref>] and Hahn polynomials [<xref ref-type="bibr" rid="pone.0286878.ref026">26</xref>].</p>
<p>The computation of DOP coefficients and the propagation of errors have been simplified by using the recursive algorithms [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>, <xref ref-type="bibr" rid="pone.0286878.ref029">29</xref>]. Regarding degree <italic>n</italic> either a single or double recursive formula can be employed. It also considers the time or spatial coordinate. To overcome the instability in the numerical values, the DOP coefficients should be calculated in the direction of the variable <italic>n</italic>. However, when the size of one or two dimensional signals turns large these calculations become inefficient. Since small values are assumed for the squared norm of the scaled Tchebichef polynomials, the coefficients of Tchebichef polynomials, for example, suffer from instabilities in the numerical values. To solve the aforementioned problem, the recurrence method in the <italic>x</italic>-direction was introduced by Mukundan [<xref ref-type="bibr" rid="pone.0286878.ref009">9</xref>]. After this study, this issue has received significant attention in many studies, for example, [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>].</p>
<p>Generally, there has been a lot of focus on computation cost [<xref ref-type="bibr" rid="pone.0286878.ref030">30</xref>, <xref ref-type="bibr" rid="pone.0286878.ref031">31</xref>]. It is considered as a key element which assist in ill-conditioning. For this reason, large number have considered it [<xref ref-type="bibr" rid="pone.0286878.ref032">32</xref>, <xref ref-type="bibr" rid="pone.0286878.ref033">33</xref>]. This drawback is addressed in [<xref ref-type="bibr" rid="pone.0286878.ref034">34</xref>] by using a rapid and efficient computation method for Meixner moment coefficients. Another research introduced a fast and stable approach of Tchebichef moments for higher polynomial order, this is performed by combining the recurrence algorithms in the <italic>n</italic> and <italic>x</italic> directions [<xref ref-type="bibr" rid="pone.0286878.ref016">16</xref>]. Daoui et al. [<xref ref-type="bibr" rid="pone.0286878.ref026">26</xref>] utilized Gram-Schmidt orthogonalization procedure to reduce numerical error propagation. However, this technique is relatively slow.</p>
<p>This paper proposes a novel technique inspired by discrete orthogonal Hahn moments. Based on the literature, the three-term recurrence algorithms have been utilized in several existing works to tackle the problem of computational cost and propagation error due to gamma and binomial functions [<xref ref-type="bibr" rid="pone.0286878.ref035">35</xref>]. In [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>], the n-direction recurrence algorithm was employed with an initial value starting at n, x = 0. The drawback of the algorithm presented in [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>] (the recurrence algorithm in the n-direction) comes from starting the sets of initial values which are based on the initial value at <italic>n</italic>, <italic>x</italic> = 0. The initial sets are computable for a very restricted DHaP polynomials size and parameters. This results in a maximum computable polynomial size of 135. In other words, the limitation is due to the employed formula. In addition to the issue of high computational cost, algorithm used has numerical instability. To resolve the issue of the recurrence algorithm in the n-direction, the x-direction recurrence relation is adopted with a symmetry relation for equal values of the polynomials parameters [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>]. Using the symmetry relation allows a reduction of 50% in the computed coefficients, which reduces the computation cost. Yet the recurrence relation in the <italic>x</italic>-directions has two limitations. The first limitation is that, according to the nature of the formula being utilized, the initial set becomes 0 when samples size or parameter values tends to be large. The second limitation is that when the degree of the polynomial increases, the coefficient values underflow because the initial value are less than 10<sup>−324</sup>, which equals zero for various values of the polynomials’ parameters. The highest possible order that can be calculated occurs at <italic>n</italic> = 1423. To overcome the limitation of previous recurrence algorithms, Daoui et al. [<xref ref-type="bibr" rid="pone.0286878.ref026">26</xref>] presented a technique based on the <italic>n</italic>-direction recurrence relation and the Gram-Schmidt orthonormalization process (GSOP). The utilization of the GSOP minimizes the numerical errors due to the use of the <italic>n</italic>-direction recurrence algorithm. However, the GSOP-based recurrence resolves the orthogonality of the DHaPs, but it has several limitations. First, the algorithm is unable to accurately calculate the coefficients of the DHaP when the parameters are not equal. Second, due to the technique used to calculate the initial values, the algorithm is still unable to generate DHaP for a wide range of DHaP parameters. Third, the nested loops of the GSOP algorithm result in a high computational cost, which in turn raises the number of processes required to compute the coefficients of the DHaP. Recently, a new mathematical model has been presented by [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>], which can compute the DHaP’s initial value for a wide range of DHaP parameters values. In order to stabilize the computation of the DHaP coefficients, the algorithm also consists of two recurrence algorithms with adaptive thresholds. Although the algorithm in [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>] can compute the coefficients of the polynomials more accurately than other algorithms, it still suffers from computation overhead.</p>
<p>In this paper, a fast approach for computing the DHaPs is proposed and applied to high orders. This work takes advantage of the multithread for the computation of Hahn polynomials coefficients. To take advantage of the available processing capabilities, independent calculations are divided among threads. The research provides a distribution method to achieve a more balanced processing burden among the threads.</p>
<p>This paper is organised as follows: in Section “Mathematical definition of DHaP and its moments” Preliminaries and current three-term recurrence algorithms are discussed. The proposed recurrence algorithm is presented in Section “Proposed Recurrence Algorithm”. In Section “Experimental Results”, the proposed recurrence method is evaluated by an experimental investigation. Finally, the paper is concluded in Section “Conclusion”.</p>
</sec>
<sec id="sec002">
<title>Mathematical definition of DHaP and its moments</title>
<p>This section presents the mathematical principles of the DHaP and their moments.</p>
<sec id="sec003">
<title>The definition of DHaPs</title>
<p>The <italic>n</italic>th order of the DHaP is defined as [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>]:
<disp-formula id="pone.0286878.e001"><alternatives><graphic id="pone.0286878.e001g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e001" xlink:type="simple"/><mml:math display="block" id="M1"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mrow><mml:mi>H</mml:mi></mml:mrow> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>n</mml:mi></mml:msup> <mml:mspace width="0.166667em"/><mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>n</mml:mi></mml:msub> <mml:mspace width="0.166667em"/><mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>n</mml:mi></mml:msub></mml:mrow> <mml:mrow><mml:mi>n</mml:mi> <mml:mo>!</mml:mo></mml:mrow></mml:mfrac> <mml:mspace width="0.166667em"/><mml:msub><mml:mrow/><mml:mn>3</mml:mn></mml:msub> <mml:msub><mml:mi>F</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>(</mml:mo> <mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>,</mml:mo> <mml:mo>-</mml:mo> <mml:mi>x</mml:mi> <mml:mo>,</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>+</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd><mml:mrow><mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mn>1</mml:mn> <mml:mo>-</mml:mo> <mml:mi>N</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable> <mml:mo>|</mml:mo> <mml:mspace width="0.277778em"/><mml:mn>1</mml:mn></mml:mrow> <mml:mo>)</mml:mo> <mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(1)</label></disp-formula>
where <sub>3</sub><italic>F</italic><sub>2</sub>(⋅) is the generalised hypergeometric series denoted by:
<disp-formula id="pone.0286878.e002"><alternatives><graphic id="pone.0286878.e002g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e002" xlink:type="simple"/><mml:math display="block" id="M2"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mrow/><mml:mn>3</mml:mn></mml:msub> <mml:msub><mml:mi>F</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>(</mml:mo> <mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>a</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>,</mml:mo> <mml:msub><mml:mi>a</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>,</mml:mo> <mml:msub><mml:mi>a</mml:mi> <mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>b</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>,</mml:mo> <mml:msub><mml:mi>b</mml:mi> <mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable> <mml:mo>|</mml:mo> <mml:mspace width="0.277778em"/><mml:mi>c</mml:mi></mml:mrow> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:munderover><mml:mo>∑</mml:mo> <mml:mrow><mml:mi>k</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn></mml:mrow> <mml:mi>∞</mml:mi></mml:munderover> <mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>a</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>k</mml:mi></mml:msub> <mml:mspace width="0.166667em"/><mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>a</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>k</mml:mi></mml:msub> <mml:mspace width="0.166667em"/><mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>a</mml:mi> <mml:mn>3</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>k</mml:mi></mml:msub></mml:mrow> <mml:mrow><mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>b</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>k</mml:mi></mml:msub> <mml:mspace width="0.166667em"/><mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>b</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>k</mml:mi></mml:msub> <mml:mspace width="0.166667em"/><mml:mi>k</mml:mi> <mml:mo>!</mml:mo></mml:mrow></mml:mfrac> <mml:msup><mml:mrow><mml:mo>(</mml:mo> <mml:mi>c</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(2)</label></disp-formula>
and (⋅)<sub><italic>k</italic></sub> is the Pochhammer symbol [<xref ref-type="bibr" rid="pone.0286878.ref037">37</xref>].</p>
<p>The orthogonality of the DHaPs is satisfied as follows:
<disp-formula id="pone.0286878.e003"><alternatives><graphic id="pone.0286878.e003g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e003" xlink:type="simple"/><mml:math display="block" id="M3"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:munderover><mml:mo>∑</mml:mo> <mml:mrow><mml:mi>x</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn></mml:mrow> <mml:mrow><mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn></mml:mrow></mml:munderover> <mml:msubsup><mml:mrow><mml:mi>H</mml:mi></mml:mrow> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:msubsup><mml:mrow><mml:mi>H</mml:mi></mml:mrow> <mml:mi>m</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mi>ω</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mo>=</mml:mo> <mml:mi>ρ</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:msub><mml:mi>δ</mml:mi> <mml:mrow><mml:mi>n</mml:mi> <mml:mi>m</mml:mi></mml:mrow></mml:msub> <mml:mspace width="4pt"/><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(3)</label></disp-formula>
where <italic>ρ</italic> demotes the norm function of DHaP, <italic>ω</italic> represents the weight function of the DHaP, and <italic>δ</italic><sub><italic>nm</italic></sub> is the Kronecker delta. The norm and weight functions of the DHaP are defined as follows:
<disp-formula id="pone.0286878.e004"><alternatives><graphic id="pone.0286878.e004g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e004" xlink:type="simple"/><mml:math display="block" id="M4"><mml:mrow><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>=</mml:mo> <mml:mfrac><mml:mrow><mml:mi mathvariant="normal">Γ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mi>x</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mi mathvariant="normal">Γ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>x</mml:mi> <mml:mo>+</mml:mo> <mml:mi>α</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mi mathvariant="normal">Γ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mi mathvariant="normal">Γ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:math></alternatives> <label>(4)</label></disp-formula> <disp-formula id="pone.0286878.e005"><alternatives><graphic id="pone.0286878.e005g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e005" xlink:type="simple"/><mml:math display="block" id="M5"><mml:mrow><mml:mi>ρ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>=</mml:mo> <mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>N</mml:mi></mml:msub> <mml:mi mathvariant="normal">Γ</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mi mathvariant="normal">Γ</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mi mathvariant="normal">Γ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo> <mml:mi mathvariant="normal">Γ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac> <mml:mo>.</mml:mo></mml:mrow></mml:math></alternatives> <label>(5)</label></disp-formula></p>
<p>The <italic>n</italic>th degree of the weighted and normalized DHaP is given by
<disp-formula id="pone.0286878.e006"><alternatives><graphic id="pone.0286878.e006g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e006" xlink:type="simple"/><mml:math display="block" id="M6"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:msubsup><mml:mrow><mml:mi>H</mml:mi></mml:mrow> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:msqrt><mml:mfrac><mml:mi>ω</mml:mi> <mml:mi>ρ</mml:mi></mml:mfrac></mml:msqrt> <mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(6)</label></disp-formula></p>
</sec>
<sec id="sec004">
<title>The definition of DHaM</title>
<p>DHaMs are the projection of the signals on the basis of the DHaP. Suppose a 2D signal <italic>f</italic>(<italic>x</italic>, <italic>y</italic>) of size <italic>N</italic><sub>1</sub> × <italic>N</italic><sub>2</sub>. Then, the DHaMs, Ψ<sub><italic>nm</italic></sub>, can be calculated:
<disp-formula id="pone.0286878.e007"><alternatives><graphic id="pone.0286878.e007g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e007" xlink:type="simple"/><mml:math display="block" id="M7"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ψ</mml:mi> <mml:mrow><mml:mi>n</mml:mi> <mml:mi>m</mml:mi></mml:mrow></mml:msub> <mml:mo>=</mml:mo> <mml:munderover><mml:mo>∑</mml:mo> <mml:mrow><mml:mi>x</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn></mml:mrow> <mml:mrow><mml:msub><mml:mi>N</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn></mml:mrow></mml:munderover> <mml:munderover><mml:mo>∑</mml:mo> <mml:mrow><mml:mi>y</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn></mml:mrow> <mml:mrow><mml:msub><mml:mi>N</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn></mml:mrow></mml:munderover> <mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:msub><mml:mi>N</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo> <mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>m</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>y</mml:mi> <mml:mo>;</mml:mo> <mml:msub><mml:mi>N</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>)</mml:mo> <mml:mspace width="2pt"/><mml:mi>f</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>,</mml:mo> <mml:mi>y</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(7)</label></disp-formula> <disp-formula id="pone.0286878.e008"><alternatives><graphic id="pone.0286878.e008g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e008" xlink:type="simple"/><mml:math display="block" id="M8"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mi>n</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn> <mml:mo>,</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mo>…</mml:mo> <mml:mo>,</mml:mo> <mml:msub><mml:mi>N</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mspace width="4pt"/><mml:mspace width="4pt"/><mml:mtext>and</mml:mtext></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mi>m</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn> <mml:mo>,</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mo>…</mml:mo> <mml:mo>,</mml:mo> <mml:msub><mml:mi>N</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(8)</label></disp-formula></p>
<p>To reconstruct back the 2D signal, image, to the spatial domain, the reconstructed signal <inline-formula id="pone.0286878.e009"><alternatives><graphic id="pone.0286878.e009g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e009" xlink:type="simple"/><mml:math display="inline" id="M9"><mml:mrow><mml:mover accent="true"><mml:mi>f</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>,</mml:mo> <mml:mi>y</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></alternatives></inline-formula> can be computed as follows:
<disp-formula id="pone.0286878.e010"><alternatives><graphic id="pone.0286878.e010g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e010" xlink:type="simple"/><mml:math display="block" id="M10"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mover accent="true"><mml:mi>f</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>,</mml:mo> <mml:mi>y</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mo>=</mml:mo> <mml:munderover><mml:mo>∑</mml:mo> <mml:mrow><mml:mi>n</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn></mml:mrow> <mml:mrow><mml:msub><mml:mi>N</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn></mml:mrow></mml:munderover> <mml:munderover><mml:mo>∑</mml:mo> <mml:mrow><mml:mi>m</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn></mml:mrow> <mml:mrow><mml:msub><mml:mi>N</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn></mml:mrow></mml:munderover> <mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:msub><mml:mi>N</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo> <mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>y</mml:mi> <mml:mo>;</mml:mo> <mml:msub><mml:mi>N</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>)</mml:mo> <mml:msub><mml:mi mathvariant="normal">Ψ</mml:mi> <mml:mrow><mml:mi>n</mml:mi> <mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mi>x</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn> <mml:mo>,</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mo>…</mml:mo> <mml:mo>,</mml:mo> <mml:msub><mml:mi>N</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>;</mml:mo> <mml:mspace width="4pt"/><mml:mspace width="4pt"/><mml:mtext>and</mml:mtext> <mml:mspace width="4pt"/><mml:mspace width="4pt"/><mml:mi>y</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn> <mml:mo>,</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mo>…</mml:mo> <mml:mo>,</mml:mo> <mml:msub><mml:mi>N</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(9)</label></disp-formula></p>
</sec>
<sec id="sec005">
<title>Related work</title>
<p>It is well known that hypergeometric series defined in <xref ref-type="disp-formula" rid="pone.0286878.e001">Eq (1)</xref> is computationally cost and shows imprecise precision of the polynomials coefficients; thus, the three term recurrence relations are used. The available recurrence relations with their analysis are discussed in this section.</p>
<sec id="sec006">
<title>The recurrence relation in the <italic>n</italic>-direction (RRnd)</title>
<p>The <italic>n</italic>th degree of the DHaP at the <italic>x</italic>th index is defined as follows [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>]
<disp-formula id="pone.0286878.e011"><alternatives><graphic id="pone.0286878.e011g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e011" xlink:type="simple"/><mml:math display="block" id="M11"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:mfrac><mml:mrow><mml:mi>A</mml:mi> <mml:mi>B</mml:mi></mml:mrow> <mml:mi>E</mml:mi></mml:mfrac> <mml:mspace width="0.166667em"/><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mrow><mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn></mml:mrow> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>+</mml:mo> <mml:mfrac><mml:mrow><mml:mi>C</mml:mi> <mml:mi>D</mml:mi></mml:mrow> <mml:mi>E</mml:mi></mml:mfrac> <mml:mspace width="0.166667em"/><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mrow><mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>2</mml:mn></mml:mrow> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(10)</label></disp-formula> <disp-formula id="pone.0286878.e012"><alternatives><graphic id="pone.0286878.e012g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e012" xlink:type="simple"/><mml:math display="block" id="M12"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mspace width="4pt"/><mml:mi>n</mml:mi> <mml:mo>=</mml:mo> <mml:mn>2</mml:mn> <mml:mo>,</mml:mo> <mml:mn>3</mml:mn> <mml:mo>,</mml:mo> <mml:mo>…</mml:mo> <mml:mo>,</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mspace width="4pt"/><mml:mspace width="4pt"/><mml:mtext>and</mml:mtext></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mi>x</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn> <mml:mo>,</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mo>…</mml:mo> <mml:mo>,</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(11)</label></disp-formula>
the recurrence relation parameters are defined by:
<disp-formula id="pone.0286878.e013"><alternatives><graphic id="pone.0286878.e013g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e013" xlink:type="simple"/><mml:math display="block" id="M13"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="left"><mml:mi>A</mml:mi><mml:mrow><mml:mo>=</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mfrac><mml:mrow><mml:mn>2</mml:mn> <mml:mi>N</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>2</mml:mn></mml:mrow> <mml:mn>4</mml:mn></mml:mfrac> <mml:mo>-</mml:mo> <mml:mfrac><mml:mrow><mml:mrow><mml:mo>(</mml:mo> <mml:mo>-</mml:mo> <mml:msup><mml:mi>α</mml:mi> <mml:mn>2</mml:mn></mml:msup> <mml:mo>+</mml:mo> <mml:msup><mml:mi>β</mml:mi> <mml:mn>2</mml:mn></mml:msup> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>N</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow></mml:mrow> <mml:mrow><mml:mn>4</mml:mn> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>2</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mi>B</mml:mi><mml:mrow><mml:mo>=</mml:mo> <mml:msqrt><mml:mfrac><mml:mrow><mml:mi>n</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mrow> <mml:mrow><mml:mrow><mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mi>α</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:msqrt></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mi>C</mml:mi><mml:mrow><mml:mo>=</mml:mo> <mml:mo>-</mml:mo> <mml:mfrac><mml:mrow><mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mi>α</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mrow> <mml:mrow><mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>2</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mi>D</mml:mi><mml:mrow><mml:mo>=</mml:mo> <mml:msqrt><mml:mfrac><mml:mrow><mml:mi>n</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:msqrt> <mml:mo>×</mml:mo></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mspace width="2em"/><mml:msqrt><mml:mfrac><mml:mn>1</mml:mn> <mml:mrow><mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>+</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>3</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>+</mml:mo> <mml:mi>N</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>+</mml:mo> <mml:mi>N</mml:mi> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:msqrt></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mi>E</mml:mi><mml:mrow><mml:mo>=</mml:mo> <mml:mfrac><mml:mrow><mml:mi>n</mml:mi> <mml:mo>(</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>+</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>+</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>+</mml:mo> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mspace width="0.7em"/><mml:mrow><mml:msub><mml:mi>γ</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>=</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mspace width="0.7em"/><mml:mrow><mml:msub><mml:mi>γ</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>=</mml:mo> <mml:mi>α</mml:mi> <mml:mo>-</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(12)</label></disp-formula>
with initial values
<disp-formula id="pone.0286878.e014"><alternatives><graphic id="pone.0286878.e014g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e014" xlink:type="simple"/><mml:math display="block" id="M14"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mn>0</mml:mn> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>=</mml:mo> <mml:msqrt><mml:mfrac><mml:mrow><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mi>ρ</mml:mi> <mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:msqrt></mml:mrow></mml:math></alternatives> <label>(13)</label></disp-formula> <disp-formula id="pone.0286878.e015"><alternatives><graphic id="pone.0286878.e015g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e015" xlink:type="simple"/><mml:math display="block" id="M15"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mn>1</mml:mn> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>=</mml:mo> <mml:mo>[</mml:mo> <mml:mo>-</mml:mo> <mml:mo>(</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>+</mml:mo> <mml:mi>x</mml:mi> <mml:mo>(</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>2</mml:mn> <mml:mo>)</mml:mo> <mml:mo>]</mml:mo> <mml:msqrt><mml:mfrac><mml:mrow><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mi>ρ</mml:mi> <mml:mo>(</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:msqrt> <mml:mo>.</mml:mo></mml:mrow></mml:math></alternatives> <label>(14)</label></disp-formula></p>
<p>The problem of the recurrence relation in the <italic>n</italic>-direction recurrence algorithm is due to the utilized initial values <inline-formula id="pone.0286878.e016"><alternatives><graphic id="pone.0286878.e016g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e016" xlink:type="simple"/><mml:math display="inline" id="M16"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mn>0</mml:mn> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula> and <inline-formula id="pone.0286878.e017"><alternatives><graphic id="pone.0286878.e017g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e017" xlink:type="simple"/><mml:math display="inline" id="M17"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mn>1</mml:mn> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula>. These initial values bound the polynomial to low values of polynomial size <italic>N</italic>, where the largest size can be obtained is 135 samples which occurs at limited range of DHaP parameters, <italic>α</italic> = 20 and <italic>β</italic> = 20. This limitation occurs because of the utilized formulas. To resolve this problem, the complexity of the utilized formulas can be reduced; however, the recurrence relation in the <italic>n</italic>-direction still shows numerical propagation error [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>].</p>
</sec>
<sec id="sec007">
<title>The recurrence relation in the <italic>x</italic>-direction (RRxd)</title>
<p>To compute the DHaPs at the <italic>x</italic>th index with <italic>n</italic>th degree, the following recurrence is used [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>]:
<disp-formula id="pone.0286878.e018"><alternatives><graphic id="pone.0286878.e018g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e018" xlink:type="simple"/><mml:math display="block" id="M18"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:msub><mml:mi>η</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>[</mml:mo> <mml:msub><mml:mi>η</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>+</mml:mo> <mml:msub><mml:mi>η</mml:mi> <mml:mn>3</mml:mn></mml:msub> <mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>2</mml:mn> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(15)</label></disp-formula> <disp-formula id="pone.0286878.e019"><alternatives><graphic id="pone.0286878.e019g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e019" xlink:type="simple"/><mml:math display="block" id="M19"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mi>x</mml:mi> <mml:mo>=</mml:mo> <mml:mn>2</mml:mn> <mml:mo>,</mml:mo> <mml:mn>3</mml:mn> <mml:mo>,</mml:mo> <mml:mo>…</mml:mo> <mml:mo>,</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mspace width="4pt"/><mml:mspace width="4pt"/><mml:mtext>and</mml:mtext></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mi>n</mml:mi> <mml:mo>=</mml:mo> <mml:mn>0</mml:mn> <mml:mo>,</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo> <mml:mo>…</mml:mo> <mml:mo>,</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(16)</label></disp-formula>
The recurrence relation coefficients <italic>η</italic><sub>1</sub>, <italic>η</italic><sub>2</sub>, and <italic>η</italic><sub>3</sub> are computed as follows:
<disp-formula id="pone.0286878.e020"><alternatives><graphic id="pone.0286878.e020g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e020" xlink:type="simple"/><mml:math display="block" id="M20"><mml:mtable><mml:mtr><mml:mtd columnalign="left"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>η</mml:mi> <mml:mn>1</mml:mn></mml:msub> <mml:mo>=</mml:mo> <mml:mfrac><mml:msqrt><mml:mrow><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msqrt> <mml:mrow><mml:mi>τ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>+</mml:mo> <mml:mi>σ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:mtd> <mml:mtd columnalign="left"><mml:mrow><mml:mi>σ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:mi>x</mml:mi> <mml:mo>(</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>η</mml:mi> <mml:mn>2</mml:mn></mml:msub> <mml:mo>=</mml:mo> <mml:mfrac><mml:mrow><mml:mi>τ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>+</mml:mo> <mml:mn>2</mml:mn> <mml:mi>σ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>-</mml:mo> <mml:mi mathvariant="normal">λ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:msqrt><mml:mrow><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:msqrt></mml:mfrac></mml:mrow></mml:mstyle></mml:mtd> <mml:mtd columnalign="left"><mml:mrow><mml:mi>τ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:mo>(</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>-</mml:mo> <mml:mi>x</mml:mi> <mml:mo>(</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>2</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd columnalign="left"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>η</mml:mi> <mml:mn>3</mml:mn></mml:msub> <mml:mo>=</mml:mo> <mml:mo>-</mml:mo> <mml:mfrac><mml:mrow><mml:mi>σ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:msqrt><mml:mrow><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>-</mml:mo> <mml:mn>2</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:msqrt></mml:mfrac></mml:mrow></mml:mstyle></mml:mtd> <mml:mtd columnalign="left"><mml:mrow><mml:mi mathvariant="normal">λ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:mi>n</mml:mi> <mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mi>α</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(17)</label></disp-formula>
with initials
<disp-formula id="pone.0286878.e021"><alternatives><graphic id="pone.0286878.e021g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e021" xlink:type="simple"/><mml:math display="block" id="M21"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>=</mml:mo> <mml:msub><mml:mrow><mml:mo>(</mml:mo> <mml:mn>1</mml:mn> <mml:mo>-</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>n</mml:mi></mml:msub> <mml:mspace width="0.166667em"/><mml:mo>(</mml:mo> <mml:mfrac linethickness="0pt"><mml:mrow><mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi></mml:mrow> <mml:mi>n</mml:mi></mml:mfrac> <mml:mo>)</mml:mo> <mml:msqrt><mml:mfrac><mml:mrow><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mi>ρ</mml:mi> <mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:msqrt></mml:mrow></mml:math></alternatives> <label>(18)</label></disp-formula> <disp-formula id="pone.0286878.e022"><alternatives><graphic id="pone.0286878.e022g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e022" xlink:type="simple"/><mml:math display="block" id="M22"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="right"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mn>1</mml:mn> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mtd> <mml:mtd columnalign="left"><mml:mrow><mml:mo>=</mml:mo> <mml:mfrac><mml:mrow><mml:mo>(</mml:mo> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>-</mml:mo> <mml:mi>n</mml:mi> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>+</mml:mo> <mml:mi>α</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>β</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac> <mml:mo>×</mml:mo></mml:mrow></mml:mtd></mml:mtr> <mml:mtr><mml:mtd/><mml:mtd columnalign="left"><mml:mrow><mml:mspace width="4pt"/><mml:mspace width="4pt"/><mml:mo>×</mml:mo> <mml:msqrt><mml:mfrac><mml:mrow><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mrow><mml:mspace width="4pt"/><mml:mi>ω</mml:mi> <mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:msqrt> <mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(19)</label></disp-formula></p>
<p>It is noteworthy that for the recurrence relation in the <italic>x</italic>-direction, symmetry relation [<xref ref-type="bibr" rid="pone.0286878.ref026">26</xref>] is employed to recude the computation cost:
<disp-formula id="pone.0286878.e023"><alternatives><graphic id="pone.0286878.e023g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e023" xlink:type="simple"/><mml:math display="block" id="M23"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:msup><mml:mrow><mml:mo>(</mml:mo> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>)</mml:mo></mml:mrow> <mml:mi>n</mml:mi></mml:msup> <mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>N</mml:mi> <mml:mo>-</mml:mo> <mml:mn>1</mml:mn> <mml:mo>-</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo> <mml:mspace width="4pt"/><mml:mtext>for</mml:mtext> <mml:mspace width="4pt"/><mml:mi>α</mml:mi> <mml:mo>=</mml:mo> <mml:mi>β</mml:mi> <mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(20)</label></disp-formula>
The utilization of the symmetry relation <xref ref-type="disp-formula" rid="pone.0286878.e023">Eq (20)</xref> will reduce the computed coefficients to 50%. However, the recurrence relation in the <italic>x</italic>-direction still has two limitations. These limitations are:</p>
<list list-type="order">
<list-item>
<p>The values of the <inline-formula id="pone.0286878.e024"><alternatives><graphic id="pone.0286878.e024g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e024" xlink:type="simple"/><mml:math display="inline" id="M24"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mi>n</mml:mi> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula> tend to zero as the number of samples (<italic>N</italic>) increases and the values of the DHaP parameters becomes big. This is due to the formula used in <xref ref-type="disp-formula" rid="pone.0286878.e021">Eq (18)</xref>, and</p>
</list-item>
<list-item>
<p>The coefficient values of the DHaPs become underflowed as the polynomial degree (<italic>n</italic>) becomes large. This is due to the values of the initial becomes less than 10<sup>−324</sup>, which in turn goes to zero in different environments [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>].</p>
</list-item>
</list>
<p>It is noteworthy that the DHaPCs become zero as the polynomial degree increases. For instance, the maximum non-zero coefficients occurred at <italic>n</italic> = 1423 when <italic>N</italic> = 1600 and <italic>α</italic> = <italic>β</italic> = 10 [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>].</p>
</sec>
<sec id="sec008">
<title>Recurrence relation based on Gram-Schmidt orthonormalization process (RRGSOP)</title>
<p>Daoui et al. [<xref ref-type="bibr" rid="pone.0286878.ref026">26</xref>] introduced their algorithm which is based on Gram-Schmidt orthonormalization process (GSOP), as well as n-direction recurrence relation to determine DHaP. In this case, GSOP is introduced to solve the issue instability in the DHaPCs. The proposed computes the initial sets <inline-formula id="pone.0286878.e025"><alternatives><graphic id="pone.0286878.e025g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e025" xlink:type="simple"/><mml:math display="inline" id="M25"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mn>0</mml:mn> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula> and <inline-formula id="pone.0286878.e026"><alternatives><graphic id="pone.0286878.e026g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0286878.e026" xlink:type="simple"/><mml:math display="inline" id="M26"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi>H</mml:mi> <mml:mo>^</mml:mo></mml:mover> <mml:mn>1</mml:mn> <mml:mrow><mml:mi>α</mml:mi> <mml:mo>,</mml:mo> <mml:mi>β</mml:mi></mml:mrow></mml:msubsup> <mml:mo>(</mml:mo> <mml:mi>x</mml:mi> <mml:mo>;</mml:mo> <mml:mi>N</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula>. Recurrence relation in the <italic>n</italic>-direction is utilised to find the coefficients for <italic>n</italic> &gt; 1 is then applied in order to reduce computational errors produced through the n-direction recurrence algorithm. Despite the fact that GSOP-based recurrence algorithm fulfil orthogonality condition, it has the following problems:</p>
<list list-type="order">
<list-item>
<p>When <italic>α</italic> ≠ <italic>β</italic>, the algorithm fails to correctly identify the DHaP coefficients [<xref ref-type="bibr" rid="pone.0286878.ref026">26</xref>].</p>
</list-item>
<list-item>
<p>This algorithm is incapable to provide DHaP for a large range of values for <italic>α</italic> and <italic>β</italic>.</p>
</list-item>
<list-item>
<p>GSOP-based recurrence algorithm suffers from computational complexity as a result of the nested loops utilized to reduce the error for each polynomial degree. This can increase the number of operations required to calculate DHaP coefficients.</p>
</list-item>
</list>
</sec>
<sec id="sec009">
<title>Hybrid recurrence algorithm</title>
<p>The authors in [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>] provided a new algorithm for the purpose of solving the issues and limitations from previous algorithm. In this case the authors looked at two recurrence algorithms (which are the n- and x-recurrence relations) as well as adaptive threshold in order to be able to stabilize the generation of the DHaP coefficients. It should be noted that computational cost is considered important factor which is increased in this algorithm.</p>
</sec>
</sec>
</sec>
<sec id="sec010">
<title>Proposed recurrence algorithm</title>
<p>In this section, the proposed multi-thread recurrence algorithm for DHaPs is presented in details.</p>
<p>The matrix of the DHaPs is divided into four parts (Part H1, Part H2, Part H3, and Part H4) similar to the partitions made in [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>] (see <xref ref-type="fig" rid="pone.0286878.g001">Fig 1</xref>). First, computation of the first two columns at <italic>x</italic> = 0 and 1 are performed before the computation of the coefficients at part H1 (see <xref ref-type="fig" rid="pone.0286878.g002">Fig 2</xref>). Then, the proposed algorithm distributes the rows among a set of threads rather than the sequential processing of the H1 rows, which permits parallel processing of the coefficients. As every row is computed independently of the other rows. Part H2 is similarly divided among the same number of threads as part H1. Following the calculation of the last two columns, the threads start calculating the coefficient.</p>
<fig id="pone.0286878.g001" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.g001</object-id>
<label>Fig 1</label>
<caption>
<title>Partitions of the DHaPs.</title>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.g001" xlink:type="simple"/>
</fig>
<fig id="pone.0286878.g002" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.g002</object-id>
<label>Fig 2</label>
<caption>
<title>Steps of the proposed algorithm with threads.</title>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.g002" xlink:type="simple"/>
</fig>
<p>Furthermore, parts 3 and 4 (H3 and H4), begin respectively after parts H1 and H2 have been completed. The coefficients of the last two rows in part H1 are required to calculate part H3, however each column is independent of the others. Consequently, to perform parallel computation of the coefficients, the columns in part H3 are distributed among a set of threads. In the same way, after calculating part H2 coefficient, part H4 columns are processed using a set of threads.</p>
<p>For the case where <italic>α</italic> = <italic>β</italic>, there is a mirroring property that can be used to reduce the processing load. In the proposed algorithm, parts H2 and H4 coefficients are calculated inline with the part H1 and H3 calculations respectively. Using the available parallel resources, which are represented by multicores. The number of threads assigned to each scenario guarantees that parts H1 and H2 have the same processing burden. In parts H1 and H2 for 2<italic>N</italic>/5 rows, the number of rows for each thread will be bunch1 = 2<italic>N</italic>/5/<italic>Th</italic>; <italic>Th</italic> is the number of threads. The number of columns assigned for each thread in parts H3 and H4 will be <italic>bunch</italic>2 = (<italic>N</italic>/2)/<italic>Th</italic>.</p>
</sec>
<sec id="sec011">
<title>Experimental results</title>
<p>In order to evaluate the proposed threaded algorithm different matrix sizes are considered, namely 1000 × 1000, 2000 × 2000, 4000 × 4000, and 8000 × 8000. The unthreaded case in [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>] is compared to some works in literature TRx [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>], TRn [<xref ref-type="bibr" rid="pone.0286878.ref028">28</xref>], and TRGSOP [<xref ref-type="bibr" rid="pone.0286878.ref026">26</xref>] for the cases where <italic>α</italic> = <italic>β</italic> and <italic>a</italic> ≠ <italic>b</italic> to evaluate their performance. Tables <xref ref-type="table" rid="pone.0286878.t001">1</xref> and <xref ref-type="table" rid="pone.0286878.t002">2</xref> show the normalized performance of the different algorithms as compared to the unthreaded case [<xref ref-type="bibr" rid="pone.0286878.ref036">36</xref>]. For the case of <italic>α</italic> = <italic>β</italic>, the unthreaded case outperforms the other algorithms in all cases, except the TRn at 1000 matrix size. On the other hand, TRx outperforms the unthreaded case when <italic>α</italic> ≠ <italic>β</italic> for all matrix sizes, whereas TRn falls behind the unthreaded case at Large matrix sizes (4000 and 8000). TRGSOP show the worst performance at both <italic>α</italic> = <italic>β</italic> and <italic>α</italic> ≠ <italic>β</italic> in all matrix sizes. It should be noted that TRn, TRx, and TRGSOP are unstable in all the tested cases while the unthreaded algorithm is stable.</p>
<table-wrap id="pone.0286878.t001" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.t001</object-id>
<label>Table 1</label>
<caption>
<title>Normalized performance of the different algorithms for <italic>α</italic> = <italic>β</italic>.</title>
</caption>
<alternatives>
<graphic id="pone.0286878.t001g" mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.t001" xlink:type="simple"/>
<table border="0" frame="box" rules="all">
<colgroup>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
</colgroup>
<thead>
<tr>
<th align="center">Size</th>
<th align="center">TRn</th>
<th align="center">TRx</th>
<th align="center">TRGSOP</th>
<th align="center">Unthreaded Case</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">1000</td>
<td align="char" char=".">1.152</td>
<td align="char" char=".">0.824</td>
<td align="char" char=".">0.001540</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center">2000</td>
<td align="char" char=".">0.977</td>
<td align="char" char=".">0.845</td>
<td align="char" char=".">0.000444</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center">4000</td>
<td align="char" char=".">0.726</td>
<td align="char" char=".">0.830</td>
<td align="char" char=".">0.000281</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center">8000</td>
<td align="char" char=".">0.539</td>
<td align="char" char=".">0.982</td>
<td align="char" char=".">0.000159</td>
<td align="center">1</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<table-wrap id="pone.0286878.t002" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.t002</object-id>
<label>Table 2</label>
<caption>
<title>Normalized performance of the different algorithms for <italic>α</italic> ≠ <italic>β</italic>.</title>
</caption>
<alternatives>
<graphic id="pone.0286878.t002g" mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.t002" xlink:type="simple"/>
<table border="0" frame="box" rules="all">
<colgroup>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
</colgroup>
<thead>
<tr>
<th align="center">Size</th>
<th align="center">TRn</th>
<th align="center">TRx</th>
<th align="center">TRGSOP</th>
<th align="center">Unthreaded Case</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">1000</td>
<td align="char" char=".">1.187</td>
<td align="char" char=".">1.146</td>
<td align="char" char=".">0.002090</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center">2000</td>
<td align="char" char=".">1.202</td>
<td align="char" char=".">1.217</td>
<td align="char" char=".">0.000570</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center">4000</td>
<td align="char" char=".">0.997</td>
<td align="char" char=".">1.122</td>
<td align="char" char=".">0.000360</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center">8000</td>
<td align="char" char=".">0.586</td>
<td align="char" char=".">1.074</td>
<td align="char" char=".">0.000170</td>
<td align="center">1</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>The proposed threaded algorithm is evaluated and compared with the unthreaded case at the same cases of matrix sizes considered previously with different combinations of parameters <italic>α</italic> and <italic>β</italic>. In addition, different combinations of parameters <italic>α</italic> and <italic>β</italic> are considered as well. The proposed algorithm is based on the distribution of the computation load among independent threads to provide parallelism, thus enhancing performance. The effect of number of threads on the performance is evaluated by considering 2 threads up to 250 threads.</p>
<p>Starting with the cases where <italic>α</italic> = <italic>β</italic> = 10, 50, 100, 150, 200, and 250, <xref ref-type="fig" rid="pone.0286878.g003">Fig 3</xref> shows the performance improvement achieved by the proposed algorithm with respect to the unthreaded case. It can be noticed that the improvement has been slightly affected by the changes in the parameter values <italic>α</italic> = <italic>β</italic>, this is applicable at different number of threads and different matrix sizes. The highest difference can be observed at size = 1000 for <italic>α</italic> = <italic>β</italic> = 10 where it achieves up to 23% lower improvement as compared to the other parameter cases.</p>
<fig id="pone.0286878.g003" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.g003</object-id>
<label>Fig 3</label>
<caption>
<title>The improvement achieved by the proposed algorithm with respect to the unthreaded case for different size values with <italic>α</italic> = <italic>β</italic>.</title>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.g003" xlink:type="simple"/>
</fig>
<p>As can be noticed in <xref ref-type="fig" rid="pone.0286878.g003">Fig 3</xref>, all cases achieve about 100% improvement when the process is divided among two threads. This improvement linearly increases with the increase in the number of threads up to 8 threads. The threading technique has higher improvement as compared to the unthreaded case at higher matrix size, as it achieves up to 4.7, 5.5, 5.6, and 5.8 improvement at 1000, 2000, 4000, and 8000 matrix sizes, respectively. At the size of 1000, the improvement reaches its maximum value at number of threads ranging from 8 to 16. As the number of threads increases over the aforementioned range the improvement gradually declines and the performance worsens as compared to the unthreaded case when the number of threads exceeds 128. This can be linked to the exceeding overhead imposed by the high number of threads as compared to the useful processing carried out by each thread. This drop in improvement can also be noticed in the case of size = 2000, but at a slower slope and at worst case the improvement does not fall below 1.4. For the size of 4000 and 8000, as the number of threads is increased above 8 the improvement is maintained above 4.5 and 5 respectively.</p>
<p>Higher CPU utilization may imply an improved performance as more processing power is allocated to the algorithm which leads to reduced execution time. To some extent this relation is valid as can be seen in <xref ref-type="fig" rid="pone.0286878.g004">Fig 4</xref>. In the unthreaded case, the CPU utilization is limited to 13% which results in high delay. This CPU utilization increases as the number of threads increases and results in lower delays. This relation does not persist for matrix sizes 1000 and 2000, where the delay increases again when the number of threads exceed 16 and 32, respectively. This results in increased processing power with no performance gain which should be avoided.</p>
<fig id="pone.0286878.g004" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.g004</object-id>
<label>Fig 4</label>
<caption>
<title>CPU utilization and the execution time for different values of polynomial size with <italic>α</italic> = <italic>β</italic>.</title>
<p>Note that 0 in the x axis means unthreaded case.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.g004" xlink:type="simple"/>
</fig>
<p>For the case where <italic>α</italic> ≠ <italic>β</italic>, the following values were considered (<italic>α</italic>/<italic>β</italic>) 100/50, 200/100, 400/200, 400/300, 500/250 and 500/400. <xref ref-type="fig" rid="pone.0286878.g005">Fig 5</xref> shows the performance improvement achieved by the proposed algorithm with respect to the unthreaded case.</p>
<fig id="pone.0286878.g005" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.g005</object-id>
<label>Fig 5</label>
<caption>
<title>The improvement achieved by the proposed algorithm with respect to the unthreaded case for different size values with <italic>α</italic> ≠ <italic>β</italic>.</title>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.g005" xlink:type="simple"/>
</fig>
<p>The threading technique achieves improvement with respect to the unthreaded case, and this improvement increases as the matrix size increases. It achieves up to 3.1 times improvement as compared to the unthreaded case at the size of 8000. At the size of 1000, the improvement reaches its maximum value at number of threads ranging from 8 to 16 which is similar to the cases where <italic>α</italic> = <italic>β</italic>. As the number of threads increases over the aforementioned range the improvement gradually declines and the performance worsens as compared to the unthreaded case when the number of threads exceeds 96. It reaches up to 5 times higher delay as compared to the unthreaded case, while the CPU usage is higher as shown in <xref ref-type="fig" rid="pone.0286878.g006">Fig 6</xref>. Any processing overhead with no performance gain should be avoided as it results in wasted power consumption.</p>
<fig id="pone.0286878.g006" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.g006</object-id>
<label>Fig 6</label>
<caption>
<title>CPU utilization and the execution time for different values of polynomial size with <italic>α</italic> ≠ <italic>β</italic>.</title>
<p>Note that 0 in the x axis means unthreaded case.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.g006" xlink:type="simple"/>
</fig>
<p>It can be noticed that threading has higher improvement for the cases where <italic>α</italic> = <italic>β</italic> as compared to those cases where <italic>α</italic> ≠ <italic>β</italic>. In the former case, the coefficients in P2 and P4 are a mirror of those in P1 and P3 respectively. Thus, as soon as a coefficient in P1 and P3 is calculated, its mirror is immediately written and to avoid accessing the data again, mitigating memory reads penalties.</p>
<p>The number of cores affects the performance improvement of the threading technique. To evaluate this, the instead of enabling all of the eight logical cores as in the previous tests, only four logical cores were enabled. The tests were repeated with the new configuration and <xref ref-type="fig" rid="pone.0286878.g007">Fig 7</xref> shows the effect of number of cores on the maximum improvement. The improvement in the four cores case is lower than that of the eight cores case by up to 48% when <italic>α</italic> ≠ <italic>β</italic> (<italic>α</italic> = 100 and <italic>β</italic> = 50). For the case where <italic>α</italic> = <italic>β</italic> = 10, the four cores show up to 40% lower performance improvement as compared to the eight cores. It should be noted that at the unthreaded case both, the four cores and eight cores, perform similarly. The unthreaded case uses one core only which represents 25% and 12.5% of CPU usage in the 4 cores and 8 cores, respectively.</p>
<fig id="pone.0286878.g007" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0286878.g007</object-id>
<label>Fig 7</label>
<caption>
<title>The effect of number of cores on the improvement for <italic>α</italic> = <italic>β</italic> and <italic>α</italic> ≠ <italic>β</italic>.</title>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0286878.g007" xlink:type="simple"/>
</fig>
</sec>
<sec id="sec012" sec-type="conclusions">
<title>Conclusion</title>
<p>The paper proposed to exploit the parallelism in coefficient calculations allowing independent threads to process coefficients in parallel to enhance performance. The considered algorithm was analyzed at different matrix sizes, parameters’ values, and number of threads. The maximum performance improvement as compared to the unthreaded case was found at the case of <italic>α</italic> = <italic>β</italic> ranging from 4.7 at 1000 × 1000 matrix size to 5.8 at 8000 × 8000 matrix size. On the other hand, when <italic>α</italic> ≠ <italic>β</italic>, the maximum improvement was at the matrix size of 8000, achieving a maximum improvement of 3.1. The results show that the number of threads should be carefully selected to achieve the optimal improvement, since increasing this number over certain limits may lead to performance degradation due to the threading overheads. Small matrix size (1000 × 1000) reaches its maximum improvement when the number of threads ranges from 8 to 16 whereas the optimum range was from 32 to 160 at large matrix size (8000 × 8000). Reducing the number of cores from 8 to 4 reduces the performance by 48% and 40% for <italic>α</italic> = <italic>β</italic> and <italic>α</italic> ≠ <italic>β</italic>, respectively Other candidate algorithms exist that it is encouraged to be analyzed when the threading technique is introduced into them which requires identifying the independence within each algorithm in order to be parallelized.</p>
</sec>
</body>
<back>
<glossary>
<title>Abbreviations</title>
<p>The following abbreviations are used in this manuscript:</p>
<def-list>
<def-item>
<term>CPU</term>
<def><p>Central Processing Unit</p>
</def>
</def-item>
<def-item>
<term>DHaM</term>
<def><p>Discrete Hahn Moment</p>
</def>
</def-item>
<def-item>
<term>DHaPs</term>
<def><p>Discrete Hahn Polynomials</p>
</def>
</def-item>
<def-item>
<term>DOMs</term>
<def><p>Discrete Orthogonal Moments</p>
</def>
</def-item>
<def-item>
<term>DOPs</term>
<def><p>Discrete Orthogonal Polynomials</p>
</def>
</def-item>
<def-item>
<term>RRGSOP</term>
<def><p>Recurrence Relation Based on Gram-Schmidt orthonormalization process</p>
</def>
</def-item>
<def-item>
<term>RRnd</term>
<def><p>Recurrence Relation in the <italic>n</italic>-direction</p>
</def>
</def-item>
<def-item>
<term>RRxd</term>
<def><p>Recurrence Relation in the <italic>x</italic>-direction</p>
</def>
</def-item>
</def-list>
</glossary>
<ref-list>
<title>References</title>
<ref id="pone.0286878.ref001">
<label>1</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Al-Haddad</surname> <given-names>SAR</given-names></name>, <name name-style="western"><surname>Saripan</surname> <given-names>MI</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Hussien</surname> <given-names>A</given-names></name>. <article-title>Fast Temporal Video Segmentation Based on Krawtchouk-Tchebichef Moments</article-title>. <source>IEEE Access</source>. <year>2020</year>;<volume>8</volume>:<fpage>72347</fpage>–<lpage>72359</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ACCESS.2020.2987870" xlink:type="simple">10.1109/ACCESS.2020.2987870</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref002">
<label>2</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Hameed</surname> <given-names>IM</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>. <article-title>Content-based image retrieval: A review of recent trends</article-title>. <source>Cogent Engineering</source>. <year>2021</year>;<volume>8</volume>(<issue>1</issue>):<fpage>1927469</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1080/23311916.2021.1927469" xlink:type="simple">10.1080/23311916.2021.1927469</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref003">
<label>3</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>bin Ramli</surname> <given-names>AR</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Al-Haddad</surname> <given-names>SAR</given-names></name>, <name name-style="western"><surname>Jassim</surname> <given-names>WA</given-names></name>. <article-title>Signal Compression and Enhancement Using a New Orthogonal-polynomial-based Discrete Transform</article-title>. <source>IET Signal Processing</source>. <year>2018</year>;<volume>12</volume>(<issue>1</issue>):<fpage>129</fpage>–<lpage>142</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1049/iet-spr.2016.0449" xlink:type="simple">10.1049/iet-spr.2016.0449</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref004">
<label>4</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Ming-Kuei</surname> <given-names>Hu</given-names></name>. <article-title>Visual pattern recognition by moment invariants</article-title>. <source>IEEE Transactions on Information Theory</source>. <year>1962</year>;<volume>8</volume>(<issue>2</issue>):<fpage>179</fpage>–<lpage>187</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/TIT.1962.1057692" xlink:type="simple">10.1109/TIT.1962.1057692</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref005">
<label>5</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Zhu</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Shu</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Zhou</surname> <given-names>J</given-names></name>, <name name-style="western"><surname>Luo</surname> <given-names>L</given-names></name>, <name name-style="western"><surname>Coatrieux</surname> <given-names>JL</given-names></name>. <article-title>Image analysis by discrete orthogonal dual Hahn moments</article-title>. <source>Pattern Recognition Letters</source>. <year>2007</year>;<volume>28</volume>(<issue>13</issue>):<fpage>1688</fpage>–<lpage>1704</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.patrec.2007.04.013" xlink:type="simple">10.1016/j.patrec.2007.04.013</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref006">
<label>6</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Deng</surname> <given-names>AW</given-names></name>, <name name-style="western"><surname>Wei</surname> <given-names>CH</given-names></name>, <name name-style="western"><surname>Gwo</surname> <given-names>CY</given-names></name>. <article-title>Stable, Fast Computation of High-order Zernike Moments Using a Recursive Method</article-title>. <source>Pattern Recognition</source>. <year>2016</year>;<volume>56</volume>:<fpage>16</fpage>–<lpage>25</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.patcog.2016.02.014" xlink:type="simple">10.1016/j.patcog.2016.02.014</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref007">
<label>7</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Hosny</surname> <given-names>KM</given-names></name>, <name name-style="western"><surname>Darwish</surname> <given-names>MM</given-names></name>. <article-title>New set of multi-channel orthogonal moments for color image representation and recognition</article-title>. <source>Pattern Recognition</source>. <year>2019</year>;<volume>88</volume>:<fpage>153</fpage>–<lpage>173</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.patcog.2018.11.014" xlink:type="simple">10.1016/j.patcog.2018.11.014</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref008">
<label>8</label>
<mixed-citation publication-type="other" xlink:type="simple">Mukundan R, Ong SH, Lee PA. Discrete vs. Continuous Orthogonal Moments for Image Analysis. In: International Conference on Imaging Science, Systems, and Technology (CISST’01); 2001. p. 23–29.</mixed-citation>
</ref>
<ref id="pone.0286878.ref009">
<label>9</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Mukundan</surname> <given-names>R</given-names></name>. <article-title>Some Computational Aspects of Discrete Orthonormal Moments</article-title>. <source>IEEE Transactions on Image Processing</source>. <year>2004</year>;<volume>13</volume>(<issue>8</issue>):<fpage>1055</fpage>–<lpage>1059</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/TIP.2004.828430" xlink:type="simple">10.1109/TIP.2004.828430</ext-link></comment> <object-id pub-id-type="pmid">15326847</object-id></mixed-citation>
</ref>
<ref id="pone.0286878.ref010">
<label>10</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Pew-Thian</surname> <given-names>Yap</given-names></name>, <name name-style="western"><surname>Paramesran</surname> <given-names>R</given-names></name>, <name name-style="western"><surname>Seng-Huat</surname> <given-names>Ong</given-names></name>. <article-title>Image Analysis by Krawtchouk Moments</article-title>. <source>IEEE Transactions on Image Processing</source>. <year>2003</year>;<volume>12</volume>(<issue>11</issue>):<fpage>1367</fpage>–<lpage>1377</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/TIP.2003.818019" xlink:type="simple">10.1109/TIP.2003.818019</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref011">
<label>11</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Zhou</surname> <given-names>J</given-names></name>, <name name-style="western"><surname>Shu</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Zhu</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Toumoulin</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Luo</surname> <given-names>L</given-names></name>. <chapter-title>Image Analysis by Discrete Orthogonal Hahn Moments</chapter-title>. In: <source>Image Analysis and Recognition</source>. <publisher-name>Springer</publisher-name>; <year>2005</year>. p. <fpage>524</fpage>–<lpage>531</lpage>.</mixed-citation>
</ref>
<ref id="pone.0286878.ref012">
<label>12</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Ramli</surname> <given-names>AR</given-names></name>, <name name-style="western"><surname>Baker</surname> <given-names>T</given-names></name>, <name name-style="western"><surname>Al-Obeidat</surname> <given-names>F</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Jassim</surname> <given-names>WA</given-names></name>. <article-title>Speech Enhancement Algorithm Based on Super-Gaussian Modeling and Orthogonal Polynomials</article-title>. <source>IEEE Access</source>. <year>2019</year>;<volume>7</volume>:<fpage>103485</fpage>–<lpage>103504</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ACCESS.2019.2929864" xlink:type="simple">10.1109/ACCESS.2019.2929864</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref013">
<label>13</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>den Brinker</surname> <given-names>AC</given-names></name>. <article-title>Stable Calculation of Krawtchouk Functions from Triplet Relations</article-title>. <source>Mathematics</source>. <year>2021</year>;<volume>9</volume>(<issue>16</issue>):<fpage>1972</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/math9161972" xlink:type="simple">10.3390/math9161972</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref014">
<label>14</label>
<mixed-citation publication-type="other" xlink:type="simple">Mahmmod BM, Abdulhussain SH, Naser MA, Alsabah M, Mustafina J. Speech Enhancement Algorithm Based on a Hybrid Estimator. In: IOP Conference Series: Materials Science and Engineering. vol. 1090. Samawah, Iraq: IOPscience; 2021. p. 012102. Available from: <ext-link ext-link-type="uri" xlink:href="https://iopscience.iop.org/article/10.1088/1757-899X/1090/1/012102" xlink:type="simple">https://iopscience.iop.org/article/10.1088/1757-899X/1090/1/012102</ext-link>.</mixed-citation>
</ref>
<ref id="pone.0286878.ref015">
<label>15</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Camacho-Bello</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Rivera-Lopez</surname> <given-names>JS</given-names></name>. <article-title>Some Computational Aspects of Tchebichef Moments for Higher Orders</article-title>. <source>Pattern Recognition Letters</source>. <year>2018</year>;<volume>112</volume>:<fpage>332</fpage>–<lpage>339</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.patrec.2018.08.020" xlink:type="simple">10.1016/j.patrec.2018.08.020</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref016">
<label>16</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Ramli</surname> <given-names>AR</given-names></name>, <name name-style="western"><surname>Al-Haddad</surname> <given-names>SAR</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Jassim</surname> <given-names>WA</given-names></name>. <article-title>On Computational Aspects of Tchebichef Polynomials for Higher Polynomial Order</article-title>. <source>IEEE Access</source>. <year>2017</year>;<volume>5</volume>(<issue>1</issue>):<fpage>2470</fpage>–<lpage>2478</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ACCESS.2017.2669218" xlink:type="simple">10.1109/ACCESS.2017.2669218</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref017">
<label>17</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Yap</surname> <given-names>PT</given-names></name>, <name name-style="western"><surname>Paramesran</surname> <given-names>R</given-names></name>, <name name-style="western"><surname>Ong</surname> <given-names>SH</given-names></name>. <article-title>Image Analysis Using Hahn Moments</article-title>. <source>IEEE Transactions on Pattern Analysis and Machine Intelligence</source>. <year>2007</year>;<volume>29</volume>(<issue>11</issue>):<fpage>2057</fpage>–<lpage>2062</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/TPAMI.2007.70709" xlink:type="simple">10.1109/TPAMI.2007.70709</ext-link></comment> <object-id pub-id-type="pmid">17848784</object-id></mixed-citation>
</ref>
<ref id="pone.0286878.ref018">
<label>18</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Abdul-Hadi</surname> <given-names>AM</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Hussien</surname> <given-names>A</given-names></name>. <article-title>On Computational Aspects of Krawtchouk Polynomials for High Orders</article-title>. <source>Journal of Imaging</source>. <year>2020</year>;<volume>6</volume>(<issue>8</issue>):<fpage>81</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/jimaging6080081" xlink:type="simple">10.3390/jimaging6080081</ext-link></comment> <object-id pub-id-type="pmid">34460696</object-id></mixed-citation>
</ref>
<ref id="pone.0286878.ref019">
<label>19</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>AL-Utaibi</surname> <given-names>KA</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Naser</surname> <given-names>MA</given-names></name>, <name name-style="western"><surname>Alsabah</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Sait</surname> <given-names>SM</given-names></name>. <article-title>Reliable Recurrence Algorithm for High-Order Krawtchouk Polynomials</article-title>. <source>Entropy</source>. <year>2021</year>;<volume>23</volume>(<issue>9</issue>):<fpage>1162</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/e23091162" xlink:type="simple">10.3390/e23091162</ext-link></comment> <object-id pub-id-type="pmid">34573787</object-id></mixed-citation>
</ref>
<ref id="pone.0286878.ref020">
<label>20</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Mizel</surname> <given-names>AKE</given-names></name>. <article-title>Orthogonal functions solving linear functional differential equationsusing chebyshev polynomial</article-title>. <source>Baghdad Science Journal</source>. <year>2008</year>;<volume>5</volume>(<issue>1</issue>):<fpage>143</fpage>–<lpage>148</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.21123/bsj.5.1.143-148" xlink:type="simple">10.21123/bsj.5.1.143-148</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref021">
<label>21</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Naser</surname> <given-names>MA</given-names></name>, <name name-style="western"><surname>Alsabah</surname> <given-names>MQ</given-names></name>, <name name-style="western"><surname>Ali</surname> <given-names>R</given-names></name>, <name name-style="western"><surname>Al-Haddad</surname> <given-names>SAR</given-names></name>. <article-title>A Robust Handwritten Numeral Recognition Using Hybrid Orthogonal Polynomials and Moments</article-title>. <source>Sensors</source>. <year>2021</year>;<volume>21</volume>(<issue>6</issue>). <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/s21061999" xlink:type="simple">10.3390/s21061999</ext-link></comment> <object-id pub-id-type="pmid">33808986</object-id></mixed-citation>
</ref>
<ref id="pone.0286878.ref022">
<label>22</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Salih</surname> <given-names>AM</given-names></name>, <name name-style="western"><surname>Mahmood</surname> <given-names>SH</given-names></name>. <article-title>Digital Color Image Watermarking Using Encoded Frequent Mark</article-title>. <source>Journal of Engineering</source>. <year>2019</year>;<volume>25</volume>(<issue>3</issue>):<fpage>81</fpage>–<lpage>88</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.31026/j.eng.2019.03.07" xlink:type="simple">10.31026/j.eng.2019.03.07</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref023">
<label>23</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Abdulqader</surname> <given-names>DA</given-names></name>, <name name-style="western"><surname>Hathal</surname> <given-names>MS</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Al-Jumeily</surname> <given-names>D</given-names></name>. <article-title>Plain, Edge, and Texture Detection Based on Orthogonal Moment</article-title>. <source>IEEE Access</source>. <year>2022</year>;<volume>10</volume>:<fpage>114455</fpage>–<lpage>114468</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ACCESS.2022.3217225" xlink:type="simple">10.1109/ACCESS.2022.3217225</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref024">
<label>24</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Naser</surname> <given-names>MA</given-names></name>, <name name-style="western"><surname>Alsabah</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Noordin</surname> <given-names>NK</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Baker</surname> <given-names>T</given-names></name>. <article-title>Downlink Training Design for FDD Massive MIMO Systems in the Presence of Colored Noise</article-title>. <source>Electronics</source>. <year>2020</year>;<volume>9</volume>(<issue>12</issue>):<fpage>2155</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/electronics9122155" xlink:type="simple">10.3390/electronics9122155</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref025">
<label>25</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Abood</surname> <given-names>ZI</given-names></name>. <article-title>Composite Techniques Based Color Image Compression</article-title>. <source>Journal of Engineering</source>. <year>2017</year>;<volume>23</volume>(<issue>3</issue>):<fpage>80</fpage>–<lpage>93</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.31026/j.eng.2017.03.06" xlink:type="simple">10.31026/j.eng.2017.03.06</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref026">
<label>26</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Daoui</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Yamni</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Ogri</surname> <given-names>OE</given-names></name>, <name name-style="western"><surname>Karmouni</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Sayyouri</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Qjidaa</surname> <given-names>H</given-names></name>. <article-title>New Algorithm for Large-Sized 2D and 3D Image Reconstruction using Higher-Order Hahn Moments</article-title>. <source>Circuits, Systems, and Signal Processing</source>. <year>2020</year>;. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s00034-020-01384-z" xlink:type="simple">10.1007/s00034-020-01384-z</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref027">
<label>27</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Abdul-Hadi</surname> <given-names>AM</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>. <article-title>On the computational aspects of Charlier polynomials</article-title>. <source>Cogent Engineering</source>. <year>2020</year>;<volume>7</volume>(<issue>1</issue>). <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1080/23311916.2020.1763553" xlink:type="simple">10.1080/23311916.2020.1763553</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref028">
<label>28</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Zhu</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Liu</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Shu</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Zhang</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Luo</surname> <given-names>L</given-names></name>. <article-title>General Form for Obtaining Discrete Orthogonal Moments</article-title>. <source>IET Image Processing</source>. <year>2010</year>;<volume>4</volume>(<issue>5</issue>):<fpage>335</fpage>–<lpage>352</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1049/iet-ipr.2009.0195" xlink:type="simple">10.1049/iet-ipr.2009.0195</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref029">
<label>29</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Ramli</surname> <given-names>AR</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Saripan</surname> <given-names>MI</given-names></name>, <name name-style="western"><surname>Al-Haddad</surname> <given-names>SAR</given-names></name>, <name name-style="western"><surname>Jassim</surname> <given-names>WA</given-names></name>. <article-title>A New Hybrid form of Krawtchouk and Tchebichef Polynomials: Design and Application</article-title>. <source>Journal of Mathematical Imaging and Vision</source>. <year>2019</year>;<volume>61</volume>(<issue>4</issue>):<fpage>555</fpage>–<lpage>570</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s10851-018-0863-4" xlink:type="simple">10.1007/s10851-018-0863-4</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref030">
<label>30</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Joodi</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Saleh</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Kadhim</surname> <given-names>D</given-names></name>. <article-title>Increasing validation accuracy of a face mask detection by new deep learning model-based classification</article-title>. <source>Indonesian Journal of Electrical Engineering and Computer Science</source>. <year>2023</year>;<volume>29</volume>:<fpage>304</fpage>–<lpage>314</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.11591/ijeecs.v29.i1.pp304-314" xlink:type="simple">10.11591/ijeecs.v29.i1.pp304-314</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref031">
<label>31</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Joodi</surname> <given-names>MA</given-names></name>, <name name-style="western"><surname>Saleh</surname> <given-names>MH</given-names></name>, <name name-style="western"><surname>Khadhim</surname> <given-names>DJ</given-names></name>. <article-title>Proposed Face Detection Classification Model Based on Amazon Web Services Cloud (AWS)</article-title>. <source>Journal of Engineering</source>. <year>2023</year>;<volume>29</volume>(<issue>4</issue>):<fpage>176</fpage>–<lpage>206</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.31026/j.eng.2023.04.12" xlink:type="simple">10.31026/j.eng.2023.04.12</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref032">
<label>32</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Spiliotis</surname> <given-names>IM</given-names></name>, <name name-style="western"><surname>Mertzios</surname> <given-names>BG</given-names></name>. <article-title>Fast Algorithms for Basic Processing and Analysis Operations on Block-represented Binary Images</article-title>. <source>Pattern Recognition Letters</source>. <year>1996</year>;<volume>17</volume>(<issue>14</issue>):<fpage>1437</fpage>–<lpage>1450</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/S0167-8655(96)00112-2" xlink:type="simple">10.1016/S0167-8655(96)00112-2</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref033">
<label>33</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Shu</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Zhang</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Chen</surname> <given-names>B</given-names></name>, <name name-style="western"><surname>Haigron</surname> <given-names>P</given-names></name>, <name name-style="western"><surname>Luo</surname> <given-names>L</given-names></name>. <article-title>Fast Computation of Tchebichef Moments for Binary and Grayscale Images</article-title>. <source>IEEE Transactions on Image Processing</source>. <year>2010</year>;<volume>19</volume>(<issue>12</issue>):<fpage>3171</fpage>–<lpage>3180</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/TIP.2010.2052276" xlink:type="simple">10.1109/TIP.2010.2052276</ext-link></comment> <object-id pub-id-type="pmid">20542765</object-id></mixed-citation>
</ref>
<ref id="pone.0286878.ref034">
<label>34</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>. <article-title>Fast and efficient recursive algorithm of Meixner polynomials</article-title>. <source>Journal of Real-Time Image Processing</source>. <year>2021</year>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s11554-021-01093-z" xlink:type="simple">10.1007/s11554-021-01093-z</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref035">
<label>35</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Rivera-Lopez</surname> <given-names>JS</given-names></name>, <name name-style="western"><surname>Camacho-Bello</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Vargas-Vargas</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Escamilla-Noriega</surname> <given-names>A</given-names></name>. <article-title>Fast computation of 3D Tchebichef moments for higher orders</article-title>. <source>Journal of Real-Time Image Processing</source>. <year>2021</year>;(0123456789). <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s11554-021-01152-5" xlink:type="simple">10.1007/s11554-021-01152-5</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref036">
<label>36</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Mahmmod</surname> <given-names>BM</given-names></name>, <name name-style="western"><surname>Abdulhussain</surname> <given-names>SH</given-names></name>, <name name-style="western"><surname>Suk</surname> <given-names>T</given-names></name>, <name name-style="western"><surname>Hussain</surname> <given-names>A</given-names></name>. <article-title>Fast Computation of Hahn Polynomials for High Order Moments</article-title>. <source>IEEE Access</source>. <year>2022</year>;<volume>10</volume>:<fpage>48719</fpage>–<lpage>48732</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ACCESS.2022.3170893" xlink:type="simple">10.1109/ACCESS.2022.3170893</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0286878.ref037">
<label>37</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Foncannon</surname> <given-names>JJ</given-names></name>. <article-title>Irresistible integrals: symbolics, analysis and experiments in the evaluation of integrals</article-title>. <source>The Mathematical Intelligencer</source>. <year>2006</year>;<volume>28</volume>(<issue>3</issue>):<fpage>65</fpage>–<lpage>68</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/BF02986888" xlink:type="simple">10.1007/BF02986888</ext-link></comment></mixed-citation>
</ref>
</ref-list>
</back>
</article>