This file is indexed.

/usr/share/doc/pocketsphinx/html/allphone__search_8c_source.html is in pocketsphinx-doc 0.8.0+real5prealpha-1ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>PocketSphinx: src/libpocketsphinx/allphone_search.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">PocketSphinx
   &#160;<span id="projectnumber">5prealpha</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('allphone__search_8c_source.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">allphone_search.c</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/* ====================================================================</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2014 Carnegie Mellon University.  All rights</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * reserved.</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * are met:</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * 1. Redistributions of source code must retain the above copyright</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *    notice, this list of conditions and the following disclaimer. </span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *    notice, this list of conditions and the following disclaimer in</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *    the documentation and/or other materials provided with the</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *    distribution.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS&#39;&#39; AND </span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, </span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT </span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, </span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY </span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT </span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE </span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * ====================================================================</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment">* allphone_search.c -- Search for phonetic decoding.</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;assert.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &lt;sphinxbase/err.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;sphinxbase/ckd_alloc.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;sphinxbase/strfuncs.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &lt;sphinxbase/pio.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &lt;sphinxbase/cmd_ln.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pocketsphinx__internal_8h.html">pocketsphinx_internal.h</a>&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;allphone_search.h&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">static</span> <a class="code" href="structps__lattice__s.html">ps_lattice_t</a> *</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;allphone_search_lattice(<a class="code" href="structps__search__s.html">ps_search_t</a> * search)</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="comment">//cap</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;}</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;allphone_search_prob(<a class="code" href="structps__search__s.html">ps_search_t</a> * search)</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;}</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;allphone_backtrace(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs, int32 f);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;allphone_search_seg_free(<a class="code" href="structps__seg__s.html">ps_seg_t</a> * seg)</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    ckd_free(seg);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;allphone_search_fill_iter(<a class="code" href="structps__seg__s.html">ps_seg_t</a> *seg, <a class="code" href="structphseg__s.html">phseg_t</a> *phseg)</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    seg-&gt;<a class="code" href="structps__seg__s.html#a885a599726cd0efba573d106d016e6e2">sf</a> = phseg-&gt;sf;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    seg-&gt;<a class="code" href="structps__seg__s.html#ab25ecc6af8d2695c6097cf7e934eadd4">ef</a> = phseg-&gt;ef;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    seg-&gt;<a class="code" href="structps__seg__s.html#a6f7706ec4c0d0ec8ecafaf0f29f41f4b">ascr</a> = phseg-&gt;score;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    seg-&gt;<a class="code" href="structps__seg__s.html#a69e605f422eeed1a9c67437e8ddd8b08">lscr</a> = phseg-&gt;tscore;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    seg-&gt;<a class="code" href="structps__seg__s.html#a97a0dc7db931c7e3f98d23d21ce27f04">word</a> = <a class="code" href="bin__mdef_8h.html#a9498ffff0caf3965060b8a549348be9b">bin_mdef_ciphone_str</a>(ps_search_acmod(seg-&gt;<a class="code" href="structps__seg__s.html#a14168ddcb60e094dad36c7c920a79bb3">search</a>)-&gt;mdef, phseg-&gt;ci);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keyword">static</span> <a class="code" href="structps__seg__s.html">ps_seg_t</a> *</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;allphone_search_seg_next(<a class="code" href="structps__seg__s.html">ps_seg_t</a> * seg)</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <a class="code" href="structphseg__iter__s.html">phseg_iter_t</a> *itor = (<a class="code" href="structphseg__iter__s.html">phseg_iter_t</a> *) seg;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <a class="code" href="structphseg__s.html">phseg_t</a> *phseg;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    itor-&gt;seg = itor-&gt;seg-&gt;next;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    </div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordflow">if</span> (itor-&gt;seg == NULL) {</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        allphone_search_seg_free(seg);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    }</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    phseg = gnode_ptr(itor-&gt;seg);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    allphone_search_fill_iter(seg, phseg);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordflow">return</span> seg;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword">static</span> <a class="code" href="structps__segfuncs__s.html">ps_segfuncs_t</a> fsg_segfuncs = {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="comment">/* seg_next */</span> allphone_search_seg_next,</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="comment">/* seg_free */</span> allphone_search_seg_free</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;};</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keyword">static</span> <a class="code" href="structps__seg__s.html">ps_seg_t</a> *</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;allphone_search_seg_iter(<a class="code" href="structps__search__s.html">ps_search_t</a> * search, int32 * out_score)</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <a class="code" href="structallphone__search__s.html">allphone_search_t</a> *allphs = (<a class="code" href="structallphone__search__s.html">allphone_search_t</a> *) search;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <a class="code" href="structphseg__iter__s.html">phseg_iter_t</a> *iter;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    allphone_backtrace(allphs, allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> - 1);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordflow">if</span> (allphs-&gt;segments == NULL)</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    </div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    iter = ckd_calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="structphseg__iter__s.html">phseg_iter_t</a>));</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    iter-&gt;base.<a class="code" href="structps__seg__s.html#a510362a2281e374c839397c3e5488515">vt</a> = &amp;fsg_segfuncs;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    iter-&gt;base.<a class="code" href="structps__seg__s.html#a14168ddcb60e094dad36c7c920a79bb3">search</a> = search;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    iter-&gt;seg = allphs-&gt;segments;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    allphone_search_fill_iter((<a class="code" href="structps__seg__s.html">ps_seg_t</a> *)iter, gnode_ptr(iter-&gt;seg));</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="structps__seg__s.html">ps_seg_t</a> *) iter;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;}</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="keyword">static</span> <a class="code" href="structps__searchfuncs__s.html">ps_searchfuncs_t</a> allphone_funcs = {</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="comment">/* start: */</span> allphone_search_start,</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="comment">/* step: */</span> allphone_search_step,</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="comment">/* finish: */</span> allphone_search_finish,</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="comment">/* reinit: */</span> allphone_search_reinit,</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="comment">/* free: */</span> allphone_search_free,</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="comment">/* lattice: */</span> allphone_search_lattice,</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="comment">/* hyp: */</span> allphone_search_hyp,</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="comment">/* prob: */</span> allphone_search_prob,</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="comment">/* seg_iter: */</span> allphone_search_seg_iter,</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="keyword">static</span> <a class="code" href="structphmm__s.html">phmm_t</a> *</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;phmm_lookup(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs, s3pid_t pid)</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;{</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> *p;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> **ci_phmm;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    mdef = ((<a class="code" href="structps__search__s.html">ps_search_t</a> *) allphs)-&gt;acmod-&gt;mdef;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    ci_phmm = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">for</span> (p = ci_phmm[bin_mdef_pid2ci(mdef, pid)]; p; p = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>) {</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="keywordflow">if</span> (mdef_pid2tmatid(mdef, p-&gt;<a class="code" href="structphmm__s.html#aee52956004053c676230cd8567366b60">pid</a>) == mdef_pid2tmatid(mdef, pid))</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;            <span class="keywordflow">if</span> (mdef_pid2ssid(mdef, p-&gt;<a class="code" href="structphmm__s.html#aee52956004053c676230cd8567366b60">pid</a>) == mdef_pid2ssid(mdef, pid))</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    }</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="comment">//not found</span></div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;}</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keyword">static</span> int32</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;phmm_link(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs)</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a> ci, rc;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> *p, *p2;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    int32 *rclist;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    int32 i, n_link;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <a class="code" href="structplink__s.html">plink_t</a> *l;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> **ci_phmm;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    mdef = ((<a class="code" href="structps__search__s.html">ps_search_t</a> *) allphs)-&gt;acmod-&gt;mdef;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    ci_phmm = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    rclist = (int32 *) ckd_calloc(mdef-&gt;<a class="code" href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">n_ciphone</a> + 1, <span class="keyword">sizeof</span>(int32));</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="comment">/* Create successor links between PHMM nodes */</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    n_link = 0;    </div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordflow">for</span> (ci = 0; ci &lt; mdef-&gt;<a class="code" href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">n_ciphone</a>; ci++) {</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <span class="keywordflow">for</span> (p = ci_phmm[ci]; p; p = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>) {</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;            <span class="comment">/* Build rclist for p */</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            i = 0;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;            <span class="keywordflow">for</span> (rc = 0; rc &lt; mdef-&gt;<a class="code" href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">n_ciphone</a>; rc++) {</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                <span class="keywordflow">if</span> (bitvec_is_set(p-&gt;<a class="code" href="structphmm__s.html#a94ead49959a95398643178d8dc1609f8">rc</a>, rc))</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                    rclist[i++] = rc;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;            }</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;            rclist[i] = <a class="code" href="s3types_8h.html#af9c51863cdbb10d58b6aad21e896666b">BAD_S3CIPID</a>;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;            <span class="comment">/* For each rc in rclist, transition to PHMMs for rc if left context = ci */</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            <span class="keywordflow">for</span> (i = 0; IS_S3CIPID(rclist[i]); i++) {</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                <span class="keywordflow">for</span> (p2 = ci_phmm[rclist[i]]; p2; p2 = p2-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>) {</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                    <span class="keywordflow">if</span> (bitvec_is_set(p2-&gt;<a class="code" href="structphmm__s.html#aad9f810256dea9ee491d21eb3a349d1c">lc</a>, ci)) {</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                        <span class="comment">/* transition from p to p2 */</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                        l = (<a class="code" href="structplink__s.html">plink_t</a> *) ckd_calloc(1, <span class="keyword">sizeof</span>(*l));</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                        l-&gt;<a class="code" href="structplink__s.html#a6499a81fb81dd9c295318ad323a0740f">phmm</a> = p2;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                        l-&gt;<a class="code" href="structplink__s.html#a835ba35ee1605a314eefbef9db68c033">next</a> = p-&gt;<a class="code" href="structphmm__s.html#a152d26f99b39098c8027cd2d8372e05c">succlist</a>;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                        p-&gt;<a class="code" href="structphmm__s.html#a152d26f99b39098c8027cd2d8372e05c">succlist</a> = l;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                        n_link++;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                    }</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                }</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            }</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        }</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    }</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    ckd_free(rclist);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordflow">return</span> n_link;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;}</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;phmm_build(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs)</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> *p, **pid2phmm;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    int32 lrc_size;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    uint32 *lc, *rc;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    s3pid_t pid;</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a> ci;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a> *filler;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordtype">int</span> n_phmm, n_link;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordtype">int</span> i, nphone;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    mdef = ((<a class="code" href="structps__search__s.html">ps_search_t</a> *) allphs)-&gt;acmod-&gt;mdef;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a> =</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        (<a class="code" href="structphmm__s.html">phmm_t</a> **) ckd_calloc(bin_mdef_n_ciphone(mdef), <span class="keyword">sizeof</span>(<a class="code" href="structphmm__s.html">phmm_t</a> *));</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    pid2phmm =</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        (<a class="code" href="structphmm__s.html">phmm_t</a> **) ckd_calloc(bin_mdef_n_phone(mdef), <span class="keyword">sizeof</span>(<a class="code" href="structphmm__s.html">phmm_t</a> *));</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="comment">/* For each unique ciphone/triphone entry in mdef, create a PHMM node */</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    n_phmm = 0;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    nphone = allphs-&gt;<a class="code" href="structallphone__search__s.html#ab4d9470249d15abca8e9fd01f1d437a7">ci_only</a> ? bin_mdef_n_ciphone(mdef) : bin_mdef_n_phone(mdef);</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    E_INFO(<span class="stringliteral">&quot;Building PHMM net of %d phones\n&quot;</span>, nphone);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keywordflow">for</span> (pid = 0; pid &lt; nphone; pid++) {</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <span class="keywordflow">if</span> ((p = phmm_lookup(allphs, pid)) == NULL) {</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;            <span class="comment">//not found, should be created</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;            p = (<a class="code" href="structphmm__s.html">phmm_t</a> *) ckd_calloc(1, <span class="keyword">sizeof</span>(*p));</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;            <a class="code" href="hmm_8h.html#aa911ae0d1c0eba562692fbeebca90d78">hmm_init</a>(allphs-&gt;<a class="code" href="structallphone__search__s.html#aa82fce72da16af69af92aeca29beed3d">hmmctx</a>, &amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>), FALSE,</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                     mdef_pid2ssid(mdef, pid), mdef-&gt;<a class="code" href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">phone</a>[pid].<a class="code" href="structmdef__entry__s.html#a90758df5d6eb00d3a70135ac4475c7a1">tmat</a>);</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;            p-&gt;<a class="code" href="structphmm__s.html#aee52956004053c676230cd8567366b60">pid</a> = pid;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;            p-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a> = bin_mdef_pid2ci(mdef, pid);</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;            p-&gt;<a class="code" href="structphmm__s.html#a152d26f99b39098c8027cd2d8372e05c">succlist</a> = NULL;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;            p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a> = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>[p-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>];</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;            allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>[p-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>] = p;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;            n_phmm++;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        }</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        pid2phmm[pid] = p;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    }</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="comment">/* Fill out bitvecs of each PHMM node, alloc continuous memory chunk for context bitvectors */</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    lrc_size = bitvec_size(bin_mdef_n_ciphone(mdef));</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    lc = ckd_calloc(n_phmm * 2 * lrc_size, <span class="keyword">sizeof</span>(bitvec_t));</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    rc = lc + (n_phmm * lrc_size);</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keywordflow">for</span> (ci = 0; ci &lt; mdef-&gt;<a class="code" href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">n_ciphone</a>; ci++) {</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordflow">for</span> (p = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>[ci]; p; p = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>) {</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;            p-&gt;<a class="code" href="structphmm__s.html#aad9f810256dea9ee491d21eb3a349d1c">lc</a> = lc;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;            lc += lrc_size;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;            p-&gt;<a class="code" href="structphmm__s.html#a94ead49959a95398643178d8dc1609f8">rc</a> = rc;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;            rc += lrc_size;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    }</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="comment">/* Fill out lc and rc bitmaps (remember to map all fillers to each other!!) */</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    filler =</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        (<a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a> *) ckd_calloc(bin_mdef_n_ciphone(mdef) + 1,</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                                 <span class="keyword">sizeof</span>(<a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a>));</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="comment">/* Connect fillers */</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    i = 0;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordflow">for</span> (ci = 0; ci &lt; bin_mdef_n_ciphone(mdef); ci++) {</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        p = pid2phmm[ci];</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        bitvec_set_all(p-&gt;<a class="code" href="structphmm__s.html#aad9f810256dea9ee491d21eb3a349d1c">lc</a>, bin_mdef_n_ciphone(mdef));</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        bitvec_set_all(p-&gt;<a class="code" href="structphmm__s.html#a94ead49959a95398643178d8dc1609f8">rc</a>, bin_mdef_n_ciphone(mdef));</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <span class="keywordflow">if</span> (mdef-&gt;<a class="code" href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">phone</a>[ci].info.<a class="code" href="structmdef__entry__s.html#a24e5db7af5e705b310e82154055043ec">ci</a>.filler) {</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;            filler[i++] = ci;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        }</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    }</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    filler[i] = <a class="code" href="s3types_8h.html#af9c51863cdbb10d58b6aad21e896666b">BAD_S3CIPID</a>;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="comment">/* Loop over cdphones only if ci_only is not set */</span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keywordflow">for</span> (pid = bin_mdef_n_ciphone(mdef); pid &lt; nphone;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;         pid++) {</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        p = pid2phmm[pid];</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordflow">if</span> (mdef-&gt;<a class="code" href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">phone</a>[mdef-&gt;<a class="code" href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">phone</a>[pid].info.cd.ctx[1]].info.<a class="code" href="structmdef__entry__s.html#a24e5db7af5e705b310e82154055043ec">ci</a>.filler) {</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;            <span class="keywordflow">for</span> (i = 0; IS_S3CIPID(filler[i]); i++)</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                bitvec_set(p-&gt;<a class="code" href="structphmm__s.html#aad9f810256dea9ee491d21eb3a349d1c">lc</a>, filler[i]);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        }</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;            bitvec_set(p-&gt;<a class="code" href="structphmm__s.html#aad9f810256dea9ee491d21eb3a349d1c">lc</a>, mdef-&gt;<a class="code" href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">phone</a>[pid].info.cd.ctx[1]);</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="keywordflow">if</span> (mdef-&gt;<a class="code" href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">phone</a>[mdef-&gt;<a class="code" href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">phone</a>[pid].info.cd.ctx[2]].info.<a class="code" href="structmdef__entry__s.html#a24e5db7af5e705b310e82154055043ec">ci</a>.filler) {</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            <span class="keywordflow">for</span> (i = 0; IS_S3CIPID(filler[i]); i++)</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                bitvec_set(p-&gt;<a class="code" href="structphmm__s.html#a94ead49959a95398643178d8dc1609f8">rc</a>, filler[i]);</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        }</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;            bitvec_set(p-&gt;<a class="code" href="structphmm__s.html#a94ead49959a95398643178d8dc1609f8">rc</a>, mdef-&gt;<a class="code" href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">phone</a>[pid].info.cd.ctx[2]);</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    }</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    ckd_free(pid2phmm);</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    ckd_free(filler);</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="comment">/* Create links between PHMM nodes */</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    n_link = phmm_link(allphs);</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    E_INFO(<span class="stringliteral">&quot;%d nodes, %d links\n&quot;</span>, n_phmm, n_link);</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;}</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;phmm_free(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs)</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;{</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a> ci;</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <span class="keywordflow">if</span> (!allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>)</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <span class="comment">//nothing to free</span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    ckd_free(allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>[0]-&gt;<a class="code" href="structphmm__s.html#aad9f810256dea9ee491d21eb3a349d1c">lc</a>);</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    mdef = ((<a class="code" href="structps__search__s.html">ps_search_t</a> *) allphs)-&gt;acmod-&gt;mdef;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordflow">for</span> (ci = 0; ci &lt; mdef_n_ciphone(mdef); ++ci) {</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <a class="code" href="structphmm__s.html">phmm_t</a> *p, *next;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="keywordflow">for</span> (p = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>[ci]; p; p = next) {</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;            <a class="code" href="structplink__s.html">plink_t</a> *l, *lnext;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;            next = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;            <span class="keywordflow">for</span> (l = p-&gt;<a class="code" href="structphmm__s.html#a152d26f99b39098c8027cd2d8372e05c">succlist</a>; l; l = lnext) {</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;                lnext = l-&gt;<a class="code" href="structplink__s.html#a835ba35ee1605a314eefbef9db68c033">next</a>;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;                ckd_free(l);</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;            }</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;            <a class="code" href="hmm_8h.html#a7440ced1649225beb6816bf62481e08b">hmm_deinit</a>(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>));</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;            ckd_free(p);</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        }</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    }</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    ckd_free(allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;}</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="keyword">static</span> int32</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;phmm_eval_all(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs, <span class="keyword">const</span> int16 * senscr)</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    <a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a> ci;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> *p;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    int32 best;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> **ci_phmm;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    mdef = ((<a class="code" href="structps__search__s.html">ps_search_t</a> *) allphs)-&gt;acmod-&gt;mdef;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    ci_phmm = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>;</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    best = <a class="code" href="hmm_8h.html#a833f100ee293ad0f1c03f2a5ef9be77a">WORST_SCORE</a>;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    <a class="code" href="hmm_8h.html#a44d0b5515cb269bf9b95f62aada18cbb">hmm_context_set_senscore</a>(allphs-&gt;<a class="code" href="structallphone__search__s.html#aa82fce72da16af69af92aeca29beed3d">hmmctx</a>, senscr);</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <span class="keywordflow">for</span> (ci = 0; ci &lt; mdef-&gt;<a class="code" href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">n_ciphone</a>; ci++) {</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <span class="keywordflow">for</span> (p = ci_phmm[(<span class="keywordtype">unsigned</span>) ci]; p; p = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>) {</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;            <span class="keywordflow">if</span> (hmm_frame(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>)) == allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a>) {</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;                int32 score;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;                allphs-&gt;<a class="code" href="structallphone__search__s.html#a24d1b4b58c797ff488651b6238040433">n_hmm_eval</a>++;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;                score = <a class="code" href="hmm_8h.html#a24ed030b10cb07e12173b45d3800db4b">hmm_vit_eval</a>((<a class="code" href="structhmm__t.html">hmm_t</a> *) p);</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;                <span class="keywordflow">if</span> (score &gt; best)</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;                    best = score;</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;            }</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        }</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    }</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    <span class="keywordflow">return</span> best;</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;}</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;phmm_exit(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs, int32 best)</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;{</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a> ci;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> *p;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    int32 th, nf;</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    <a class="code" href="structhistory__s.html">history_t</a> *h;</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <a class="code" href="structblkarray__list__s.html">blkarray_list_t</a> *history;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    int32 curfrm;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> **ci_phmm;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    int32 *ci2lmwid;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    th = best + allphs-&gt;<a class="code" href="structallphone__search__s.html#af1c69cfc6361bfed4ed0726cbdd4fbfa">pbeam</a>;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    history = allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    mdef = ps_search_acmod(allphs)-&gt;mdef;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    curfrm = allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a>;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    ci_phmm = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    ci2lmwid = allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a>;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    nf = curfrm + 1;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <span class="keywordflow">for</span> (ci = 0; ci &lt; mdef-&gt;<a class="code" href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">n_ciphone</a>; ci++) {</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        <span class="keywordflow">for</span> (p = ci_phmm[(<span class="keywordtype">unsigned</span>) ci]; p; p = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>) {</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;            <span class="keywordflow">if</span> (hmm_frame(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>)) == curfrm) {</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;                <span class="keywordflow">if</span> (hmm_bestscore(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>)) &gt;= th) {</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;                    h = (<a class="code" href="structhistory__s.html">history_t</a> *) ckd_calloc(1, <span class="keyword">sizeof</span>(*h));</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;                    h-&gt;<a class="code" href="structhistory__s.html#a59e1a1053ba224c4d015f08192c7fd96">ef</a> = curfrm;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;                    h-&gt;<a class="code" href="structhistory__s.html#a548a5d7505c78278114ab9b1d5e0ceaa">phmm</a> = p;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;                    h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a> = hmm_out_history(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>));</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;                    h-&gt;<a class="code" href="structhistory__s.html#af24720abad5e2e17a99c5aeffa7dc95e">score</a> = hmm_out_score(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>));</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;                    <span class="keywordflow">if</span> (!allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>) {</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;                        h-&gt;<a class="code" href="structhistory__s.html#a09096eb94eba8ad29dc19f231192a24b">tscore</a> = allphs-&gt;<a class="code" href="structallphone__search__s.html#ac4f20ffb4acb7c36a8e04cf7b88eafb2">inspen</a>;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;                    }</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;                    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;                        <span class="keywordflow">if</span> (h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a> &gt; 0) {</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;                            int32 n_used;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;                            <a class="code" href="structhistory__s.html">history_t</a> *pred =</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;                                blkarray_list_get(history, h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a>);</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;                            <span class="keywordflow">if</span> (pred-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a> &gt; 0) {</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;                                <a class="code" href="structhistory__s.html">history_t</a> *pred_pred =</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;                                    blkarray_list_get(history,</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;                                                      h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a>);</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;                                h-&gt;<a class="code" href="structhistory__s.html#a09096eb94eba8ad29dc19f231192a24b">tscore</a> =</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;                                    ngram_tg_score(allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>,</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;                                                   ci2lmwid</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;                                                   [pred_pred-&gt;<a class="code" href="structhistory__s.html#a548a5d7505c78278114ab9b1d5e0ceaa">phmm</a>-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;                                                   ci2lmwid[pred-&gt;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;                                                            phmm-&gt;ci],</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;                                                   ci2lmwid[p-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;                                                   &amp;n_used) &gt;&gt;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;                                    <a class="code" href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a>;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;                            }</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;                            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;                                h-&gt;<a class="code" href="structhistory__s.html#a09096eb94eba8ad29dc19f231192a24b">tscore</a> =</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;                                    ngram_bg_score(allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>,</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                                                   ci2lmwid</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;                                                   [pred-&gt;<a class="code" href="structhistory__s.html#a548a5d7505c78278114ab9b1d5e0ceaa">phmm</a>-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;                                                   ci2lmwid[p-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;                                                   &amp;n_used) &gt;&gt;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;                                    <a class="code" href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a>;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;                            }</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;                        }</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;                        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;                            <span class="comment">/*</span></div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="comment">                             * This is the beginning SIL and in srch_allphone_begin()</span></div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="comment">                             * it&#39;s inscore is set to 0.</span></div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="comment">                             */</span></div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;                            h-&gt;<a class="code" href="structhistory__s.html#a09096eb94eba8ad29dc19f231192a24b">tscore</a> = 0;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;                        }</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;                    }</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;                    blkarray_list_append(history, h);</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;                    <span class="comment">/* Mark PHMM active in next frame */</span></div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;                    hmm_frame(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>)) = nf;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;                }</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;                <span class="keywordflow">else</span> {</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;                    <span class="comment">/* Reset state scores */</span></div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;                    <a class="code" href="hmm_8h.html#af4c0cefb23087a0b1731b34048cfdaf9">hmm_clear</a>(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>));</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;                }</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;            }</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        }</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    }</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;}</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;phmm_trans(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs, int32 best,</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;           int32 frame_history_start)</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;{</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <a class="code" href="structhistory__s.html">history_t</a> *h;</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> *from, *to;</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <a class="code" href="structplink__s.html">plink_t</a> *l;</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    int32 newscore, nf, curfrm;</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    int32 *ci2lmwid;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    int32 hist_idx;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    curfrm = allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a>;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    nf = curfrm + 1;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    ci2lmwid = allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a>;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <span class="comment">/* Transition from exited nodes to initial states of HMMs */</span></div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordflow">for</span> (hist_idx = frame_history_start;</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;         hist_idx &lt; blkarray_list_n_valid(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>); hist_idx++) {</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        h = blkarray_list_get(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>, hist_idx);</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        from = h-&gt;<a class="code" href="structhistory__s.html#a548a5d7505c78278114ab9b1d5e0ceaa">phmm</a>;</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        <span class="keywordflow">for</span> (l = from-&gt;<a class="code" href="structphmm__s.html#a152d26f99b39098c8027cd2d8372e05c">succlist</a>; l; l = l-&gt;<a class="code" href="structplink__s.html#a835ba35ee1605a314eefbef9db68c033">next</a>) {</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;            int32 tscore;</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;            to = l-&gt;<a class="code" href="structplink__s.html#a6499a81fb81dd9c295318ad323a0740f">phmm</a>;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;            <span class="comment">/* No LM, just use uniform (insertion penalty). */</span></div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;            <span class="keywordflow">if</span> (!allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>)</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;                tscore = allphs-&gt;<a class="code" href="structallphone__search__s.html#ac4f20ffb4acb7c36a8e04cf7b88eafb2">inspen</a>;</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;            <span class="comment">/* If they are not in the LM, kill this</span></div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="comment">             * transition. */</span></div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ci2lmwid[to-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>] == NGRAM_INVALID_WID)</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;                <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;                int32 n_used;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;                <span class="keywordflow">if</span> (h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a> &gt; 0) {</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;                    <a class="code" href="structhistory__s.html">history_t</a> *pred =</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;                        blkarray_list_get(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>, h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a>);</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;                    tscore =</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;                        ngram_tg_score(allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>,</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;                                       ci2lmwid[pred-&gt;<a class="code" href="structhistory__s.html#a548a5d7505c78278114ab9b1d5e0ceaa">phmm</a>-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;                                       ci2lmwid[from-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;                                       ci2lmwid[to-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;                                       &amp;n_used) &gt;&gt; <a class="code" href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a>;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;                }</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;                <span class="keywordflow">else</span> {</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;                    tscore = ngram_bg_score(allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>,</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;                                            ci2lmwid[from-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;                                            ci2lmwid[to-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>],</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;                                            &amp;n_used) &gt;&gt; <a class="code" href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a>;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;                }</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;            }</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;            newscore = h-&gt;<a class="code" href="structhistory__s.html#af24720abad5e2e17a99c5aeffa7dc95e">score</a> + tscore;</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;            <span class="keywordflow">if</span> ((newscore &gt; best + allphs-&gt;beam)</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;                &amp;&amp; (newscore &gt; hmm_in_score(&amp;(to-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>)))) {</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;                <a class="code" href="hmm_8h.html#a7285d01d533996d750c78e0d96042716">hmm_enter</a>(&amp;(to-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>), newscore, hist_idx, nf);</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;            }</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        }</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    }</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;}</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<a class="code" href="structps__search__s.html">ps_search_t</a> *</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;allphone_search_init(<span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;                     ngram_model_t * lm,</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;                     cmd_ln_t * <a class="code" href="structacmod__s.html#a3563f4d0bdc48d3ee140b9e28806279d">config</a>,</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;                     <a class="code" href="structacmod__s.html">acmod_t</a> * acmod, <a class="code" href="structdict__t.html">dict_t</a> * dict, <a class="code" href="structdict2pid__t.html">dict2pid_t</a> * d2p)</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;{</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    <a class="code" href="structallphone__search__s.html">allphone_search_t</a> *allphs;</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span> *lmname = <span class="stringliteral">&quot;default&quot;</span>;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    allphs = (<a class="code" href="structallphone__search__s.html">allphone_search_t</a> *) ckd_calloc(1, <span class="keyword">sizeof</span>(*allphs));</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    <a class="code" href="pocketsphinx__internal_8h.html#a9e0d66662ea7c64f8bddbbfe57496896">ps_search_init</a>(ps_search_base(allphs), &amp;allphone_funcs, PS_SEARCH_TYPE_ALLPHONE, name, config, acmod,</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;                   dict, d2p);</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    mdef = acmod-&gt;<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#aa82fce72da16af69af92aeca29beed3d">hmmctx</a> = <a class="code" href="hmm_8h.html#a4d6e2799cbe290112e8517adcab1b038">hmm_context_init</a>(bin_mdef_n_emit_state(mdef),</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;                                      acmod-&gt;<a class="code" href="structacmod__s.html#aaa3982184a49f0d61e397ba89f486259">tmat</a>-&gt;<a class="code" href="structtmat__t.html#a9f518c96b30dab9efdb69bd779a7b5bf">tp</a>, NULL, mdef-&gt;<a class="code" href="structbin__mdef__s.html#acb58480658812de7a357dcbd25ad7b41">sseq</a>);</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keywordflow">if</span> (allphs-&gt;<a class="code" href="structallphone__search__s.html#aa82fce72da16af69af92aeca29beed3d">hmmctx</a> == NULL) {</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        ps_search_free(ps_search_base(allphs));</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    }</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#ab4d9470249d15abca8e9fd01f1d437a7">ci_only</a> = cmd_ln_boolean_r(config, <span class="stringliteral">&quot;-allphone_ci&quot;</span>);</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    allphs-&gt;lw = cmd_ln_float32_r(config, <span class="stringliteral">&quot;-lw&quot;</span>);</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    phmm_build(allphs);</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    <span class="keywordflow">if</span> (lm) {</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;        <span class="comment">//language model is defined</span></div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a> = ngram_model_set_init(config, &amp;lm, &amp;lmname, NULL, 1);</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        <span class="keywordflow">if</span> (!allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>) {</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;            E_ERROR</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;                (<span class="stringliteral">&quot;Failed to initialize ngram model set for phoneme decoding&quot;</span>);</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;            allphone_search_free((<a class="code" href="structps__search__s.html">ps_search_t</a> *) allphs);</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;            <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;        }</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;        allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a> =</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;            (int32 *) ckd_calloc(mdef-&gt;<a class="code" href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">n_ciphone</a>,</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;                                 <span class="keyword">sizeof</span>(*allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a>));</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;        <span class="keywordflow">for</span> (i = 0; i &lt; mdef-&gt;<a class="code" href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">n_ciphone</a>; i++) {</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;            allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a>[i] =</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;                ngram_wid(allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>,</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;                          (<span class="keywordtype">char</span> *) <a class="code" href="bin__mdef_8h.html#a9498ffff0caf3965060b8a549348be9b">bin_mdef_ciphone_str</a>(mdef, i));</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;            <span class="comment">/* Map filler phones to silence if not found */</span></div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;            <span class="keywordflow">if</span> (allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a>[i] == NGRAM_INVALID_WID</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;                &amp;&amp; <a class="code" href="bin__mdef_8h.html#a9498ffff0caf3965060b8a549348be9b">bin_mdef_ciphone_str</a>(mdef, i))</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;                allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a>[i] =</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;                    ngram_wid(allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>,</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;                              (<span class="keywordtype">char</span> *) <a class="code" href="bin__mdef_8h.html#a9498ffff0caf3965060b8a549348be9b">bin_mdef_ciphone_str</a>(mdef,</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;                                                            mdef_silphone</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;                                                            (mdef)));</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        }</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    }</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        E_WARN</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;            (<span class="stringliteral">&quot;Failed to load language model specified in -allphone, doing unconstrained phone-loop decoding\n&quot;</span>);</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        allphs-&gt;<a class="code" href="structallphone__search__s.html#ac4f20ffb4acb7c36a8e04cf7b88eafb2">inspen</a> =</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;            (int32) (logmath_log</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;                     (acmod-&gt;<a class="code" href="structacmod__s.html#a9de7e8ac9c0c4df3d2a9ad5406787f3c">lmath</a>, cmd_ln_float32_r(config, <span class="stringliteral">&quot;-pip&quot;</span>))</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;                     * allphs-&gt;lw) &gt;&gt; <a class="code" href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a>;</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    }</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a83712f4d89a500720b5bb3e8b2b67297">n_tot_frame</a> = 0;</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> = -1;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    allphs-&gt;segments = NULL;</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    <span class="comment">/* Get search pruning parameters */</span></div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    allphs-&gt;beam</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        =</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;        (int32) logmath_log(acmod-&gt;<a class="code" href="structacmod__s.html#a9de7e8ac9c0c4df3d2a9ad5406787f3c">lmath</a>,</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;                            cmd_ln_float64_r(config, <span class="stringliteral">&quot;-beam&quot;</span>))</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        &gt;&gt; <a class="code" href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a>;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#af1c69cfc6361bfed4ed0726cbdd4fbfa">pbeam</a></div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;        =</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        (int32) logmath_log(acmod-&gt;<a class="code" href="structacmod__s.html#a9de7e8ac9c0c4df3d2a9ad5406787f3c">lmath</a>,</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;                            cmd_ln_float64_r(config, <span class="stringliteral">&quot;-pbeam&quot;</span>))</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        &gt;&gt; <a class="code" href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a>;</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    <span class="comment">/* LM related weights/penalties */</span></div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a> = blkarray_list_init();</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    <span class="comment">/* Acoustic score scale for posterior probabilities. */</span></div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a9ad3ecc228af52131028fb91927563dc">ascale</a> = 1.0 / cmd_ln_float32_r(config, <span class="stringliteral">&quot;-ascale&quot;</span>);</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    E_INFO(<span class="stringliteral">&quot;Allphone(beam: %d, pbeam: %d)\n&quot;</span>, allphs-&gt;beam, allphs-&gt;<a class="code" href="structallphone__search__s.html#af1c69cfc6361bfed4ed0726cbdd4fbfa">pbeam</a>);</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    ptmr_init(&amp;allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>);</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="structps__search__s.html">ps_search_t</a> *) allphs;</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;}</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;allphone_search_reinit(<a class="code" href="structps__search__s.html">ps_search_t</a> * search, <a class="code" href="structdict__t.html">dict_t</a> * dict,</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;                       <a class="code" href="structdict2pid__t.html">dict2pid_t</a> * d2p)</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;{</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <a class="code" href="structallphone__search__s.html">allphone_search_t</a> *allphs = (<a class="code" href="structallphone__search__s.html">allphone_search_t</a> *) search;</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    <span class="comment">/* Free old dict2pid, dict */</span></div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <a class="code" href="pocketsphinx__internal_8h.html#a307801961f27bd5f4b82a3e6b83e0ca1">ps_search_base_reinit</a>(search, dict, d2p);</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keywordflow">if</span> (!allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>) {</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;        E_WARN</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;            (<span class="stringliteral">&quot;-lm argument missing; doing unconstrained phone-loop decoding\n&quot;</span>);</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        allphs-&gt;<a class="code" href="structallphone__search__s.html#ac4f20ffb4acb7c36a8e04cf7b88eafb2">inspen</a> =</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;            (int32) (logmath_log</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;                     (search-&gt;<a class="code" href="structps__search__s.html#a0fdf6fe8c4d9c28f10c48c09517c6b91">acmod</a>-&gt;<a class="code" href="structacmod__s.html#a9de7e8ac9c0c4df3d2a9ad5406787f3c">lmath</a>,</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;                      cmd_ln_float32_r(search-&gt;<a class="code" href="structps__search__s.html#aa6e3e18165bbc70084a06575d5703042">config</a>,</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;                                       <span class="stringliteral">&quot;-pip&quot;</span>)) *</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;                     allphs-&gt;lw) &gt;&gt; <a class="code" href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a>;</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    }</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;}</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;allphone_search_free(<a class="code" href="structps__search__s.html">ps_search_t</a> * search)</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;{</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    <a class="code" href="structallphone__search__s.html">allphone_search_t</a> *allphs = (<a class="code" href="structallphone__search__s.html">allphone_search_t</a> *) search;</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    </div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <span class="keywordtype">double</span> n_speech = (double)allphs-&gt;<a class="code" href="structallphone__search__s.html#a83712f4d89a500720b5bb3e8b2b67297">n_tot_frame</a></div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;            / cmd_ln_int32_r(ps_search_config(allphs), <span class="stringliteral">&quot;-frate&quot;</span>);</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    E_INFO(<span class="stringliteral">&quot;TOTAL fwdflat %.2f CPU %.3f xRT\n&quot;</span>,</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;           allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>.t_tot_cpu,</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;           allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>.t_tot_cpu / n_speech);</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    E_INFO(<span class="stringliteral">&quot;TOTAL fwdflat %.2f wall %.3f xRT\n&quot;</span>,</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;           allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>.t_tot_elapsed,</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;           allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>.t_tot_elapsed / n_speech);</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    <a class="code" href="pocketsphinx__internal_8h.html#a39db3228c813a2943d47ff3f13e6ef08">ps_search_base_free</a>(search);</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    <a class="code" href="hmm_8h.html#ab66534ad7970d49527f1b2a1e76bb05e">hmm_context_free</a>(allphs-&gt;<a class="code" href="structallphone__search__s.html#aa82fce72da16af69af92aeca29beed3d">hmmctx</a>);</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    phmm_free(allphs);</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    <span class="keywordflow">if</span> (allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>)</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;        ngram_model_free(allphs-&gt;<a class="code" href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">lm</a>);</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    <span class="keywordflow">if</span> (allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a>)</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        ckd_free(allphs-&gt;<a class="code" href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">ci2lmwid</a>);</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    blkarray_list_free(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>);</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    ckd_free(allphs);</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;}</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;allphone_search_start(<a class="code" href="structps__search__s.html">ps_search_t</a> * search)</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;{</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    <a class="code" href="structallphone__search__s.html">allphone_search_t</a> *allphs;</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;    <a class="code" href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a> ci;</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> *p;</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;    allphs = (<a class="code" href="structallphone__search__s.html">allphone_search_t</a> *) search;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    mdef = search-&gt;<a class="code" href="structps__search__s.html#a0fdf6fe8c4d9c28f10c48c09517c6b91">acmod</a>-&gt;<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    <span class="comment">/* Reset all HMMs. */</span></div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;    <span class="keywordflow">for</span> (ci = 0; ci &lt; bin_mdef_n_ciphone(mdef); ci++) {</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;        <span class="keywordflow">for</span> (p = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>[(<span class="keywordtype">unsigned</span>) ci]; p; p = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>) {</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;            <a class="code" href="hmm_8h.html#af4c0cefb23087a0b1731b34048cfdaf9">hmm_clear</a>(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>));</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;        }</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    }</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a24d1b4b58c797ff488651b6238040433">n_hmm_eval</a> = 0;</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a5759743790af0ec17f85f14f18004b71">n_sen_eval</a> = 0;</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <span class="comment">/* Free history nodes, if any */</span></div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    blkarray_list_reset(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>);</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="comment">/* Initialize start state of the SILENCE PHMM */</span></div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> = 0;</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    ci = bin_mdef_silphone(mdef);</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="keywordflow">if</span> (NOT_S3CIPID(ci))</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        E_FATAL(<span class="stringliteral">&quot;Cannot find CI-phone %s\n&quot;</span>, <a class="code" href="mdef_8h.html#a87b279af2566a60666495e16d09a8aee">S3_SILENCE_CIPHONE</a>);</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    <span class="keywordflow">for</span> (p = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>[ci]; p &amp;&amp; (p-&gt;<a class="code" href="structphmm__s.html#aee52956004053c676230cd8567366b60">pid</a> != ci); p = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>);</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="keywordflow">if</span> (!p)</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;        E_FATAL(<span class="stringliteral">&quot;Cannot find HMM for %s\n&quot;</span>, <a class="code" href="mdef_8h.html#a87b279af2566a60666495e16d09a8aee">S3_SILENCE_CIPHONE</a>);</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    <a class="code" href="hmm_8h.html#a7285d01d533996d750c78e0d96042716">hmm_enter</a>(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>), 0, 0, allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a>);</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    ptmr_reset(&amp;allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>);</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    ptmr_start(&amp;allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>);</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;}</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;allphone_search_sen_active(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs)</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;{</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    <a class="code" href="structacmod__s.html">acmod_t</a> *acmod;</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    <a class="code" href="structphmm__s.html">phmm_t</a> *p;</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    int32 ci;</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    acmod = ps_search_acmod(allphs);</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    mdef = acmod-&gt;<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;    <a class="code" href="acmod_8c.html#aed43f033f434e34fd90c975909d81cb2">acmod_clear_active</a>(acmod);</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;    <span class="keywordflow">for</span> (ci = 0; ci &lt; bin_mdef_n_ciphone(mdef); ci++)</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;        <span class="keywordflow">for</span> (p = allphs-&gt;<a class="code" href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">ci_phmm</a>[ci]; p; p = p-&gt;<a class="code" href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">next</a>)</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;            <span class="keywordflow">if</span> (hmm_frame(&amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>)) == allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a>)</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;                <a class="code" href="acmod_8c.html#a2a7f67d462279b2bc4774c7967ae61c7">acmod_activate_hmm</a>(acmod, &amp;(p-&gt;<a class="code" href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">hmm</a>));</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;}</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;allphone_search_step(<a class="code" href="structps__search__s.html">ps_search_t</a> * search, <span class="keywordtype">int</span> frame_idx)</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;{</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    int32 bestscr, frame_history_start;</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    <span class="keyword">const</span> int16 *senscr;</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    <a class="code" href="structallphone__search__s.html">allphone_search_t</a> *allphs = (<a class="code" href="structallphone__search__s.html">allphone_search_t</a> *) search;</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    <a class="code" href="structacmod__s.html">acmod_t</a> *acmod = search-&gt;<a class="code" href="structps__search__s.html#a0fdf6fe8c4d9c28f10c48c09517c6b91">acmod</a>;</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;    <span class="keywordflow">if</span> (!acmod-&gt;<a class="code" href="structacmod__s.html#ac08227365e3ed4354e26f013bc0df2bd">compallsen</a>)</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;        allphone_search_sen_active(allphs);</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    senscr = <a class="code" href="acmod_8c.html#acd78e9bae06724df9c53f844d90c1c8a">acmod_score</a>(acmod, &amp;frame_idx);</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a5759743790af0ec17f85f14f18004b71">n_sen_eval</a> += acmod-&gt;<a class="code" href="structacmod__s.html#a5081a507e3ca6de6c5695217245dc9f9">n_senone_active</a>;</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    bestscr = phmm_eval_all(allphs, senscr);</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    frame_history_start = blkarray_list_n_valid(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>);</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    phmm_exit(allphs, bestscr);</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;    phmm_trans(allphs, bestscr, frame_history_start);</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a>++;</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;}</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="keyword">static</span> int32</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;ascore(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs, <a class="code" href="structhistory__s.html">history_t</a> * h)</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;{</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;    int32 score = h-&gt;<a class="code" href="structhistory__s.html#af24720abad5e2e17a99c5aeffa7dc95e">score</a>;</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    <span class="keywordflow">if</span> (h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a> &gt; 0) {</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <a class="code" href="structhistory__s.html">history_t</a> *pred = blkarray_list_get(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>, h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a>);</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        score -= pred-&gt;<a class="code" href="structhistory__s.html#af24720abad5e2e17a99c5aeffa7dc95e">score</a>;</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    }</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    <span class="keywordflow">return</span> score - h-&gt;<a class="code" href="structhistory__s.html#a09096eb94eba8ad29dc19f231192a24b">tscore</a>;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;}</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;allphone_clear_segments(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs)</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;{       </div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    gnode_t *gn;</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    <span class="keywordflow">for</span> (gn = allphs-&gt;segments; gn; gn = gn-&gt;next) {</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        ckd_free(gnode_ptr(gn));</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    }</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;    glist_free(allphs-&gt;segments);</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    allphs-&gt;segments = NULL;</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;}</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;allphone_backtrace(<a class="code" href="structallphone__search__s.html">allphone_search_t</a> * allphs, int32 f)</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;{</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    int32 best, hist_idx, best_idx;</div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    int32 frm, last_frm;</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;    <a class="code" href="structhistory__s.html">history_t</a> *h;</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;    <a class="code" href="structphseg__s.html">phseg_t</a> *s;</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    <span class="comment">/* Clear old list */</span></div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    allphone_clear_segments(allphs);</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;    frm = last_frm = f;</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;    <span class="comment">/* Find the first history entry for the requested frame */</span></div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    hist_idx = blkarray_list_n_valid(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>) - 1;</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    <span class="keywordflow">while</span> (hist_idx &gt; 0) {</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;        h = blkarray_list_get(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>, hist_idx);</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;        <span class="keywordflow">if</span> (h-&gt;<a class="code" href="structhistory__s.html#a59e1a1053ba224c4d015f08192c7fd96">ef</a> &lt;= f) {</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;            frm = last_frm = h-&gt;<a class="code" href="structhistory__s.html#a59e1a1053ba224c4d015f08192c7fd96">ef</a>;</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        }</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;        hist_idx--;</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    }</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    <span class="keywordflow">if</span> (hist_idx &lt; 0)</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    <span class="comment">/* Find bestscore */</span></div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    best = (int32) 0x80000000;</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    best_idx = -1;</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    <span class="keywordflow">while</span> (frm == last_frm &amp;&amp; hist_idx &gt; 0) {</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;        h = blkarray_list_get(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>, hist_idx);</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        frm = h-&gt;<a class="code" href="structhistory__s.html#a59e1a1053ba224c4d015f08192c7fd96">ef</a>;</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;        <span class="keywordflow">if</span> (h-&gt;<a class="code" href="structhistory__s.html#af24720abad5e2e17a99c5aeffa7dc95e">score</a> &gt; best &amp;&amp; frm == last_frm) {</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;            best = h-&gt;<a class="code" href="structhistory__s.html#af24720abad5e2e17a99c5aeffa7dc95e">score</a>;</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;            best_idx = hist_idx;</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;        }</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        hist_idx--;</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    }</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    <span class="keywordflow">if</span> (best_idx &lt; 0)</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    <span class="comment">/* Backtrace */</span></div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;    <span class="keywordflow">while</span> (best_idx &gt; 0) {</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        h = blkarray_list_get(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>, best_idx);</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;        s = (<a class="code" href="structphseg__s.html">phseg_t</a> *) ckd_calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="structphseg__s.html">phseg_t</a>));</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;        s-&gt;ci = h-&gt;<a class="code" href="structhistory__s.html#a548a5d7505c78278114ab9b1d5e0ceaa">phmm</a>-&gt;<a class="code" href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">ci</a>;</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;        s-&gt;sf =</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;            (h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a> &gt;</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;             0) ? ((<a class="code" href="structhistory__s.html">history_t</a> *) blkarray_list_get(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>,</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;                                                   h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a>))-&gt;ef + 1 : 0;</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;        s-&gt;ef = h-&gt;<a class="code" href="structhistory__s.html#a59e1a1053ba224c4d015f08192c7fd96">ef</a>;</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;        s-&gt;score = ascore(allphs, h);</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;        s-&gt;tscore = h-&gt;<a class="code" href="structhistory__s.html#a09096eb94eba8ad29dc19f231192a24b">tscore</a>;</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;        allphs-&gt;segments = glist_add_ptr(allphs-&gt;segments, s);</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;        best_idx = h-&gt;<a class="code" href="structhistory__s.html#a0e9457246e140d8af571eea044178551">hist</a>;</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    }</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    <span class="keywordflow">return</span>;</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;}</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;allphone_search_finish(<a class="code" href="structps__search__s.html">ps_search_t</a> * search)</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;{</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    <a class="code" href="structallphone__search__s.html">allphone_search_t</a> *allphs;</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    int32 cf, n_hist;</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    allphs = (<a class="code" href="structallphone__search__s.html">allphone_search_t</a> *) search;</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    allphs-&gt;<a class="code" href="structallphone__search__s.html#a83712f4d89a500720b5bb3e8b2b67297">n_tot_frame</a> += allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a>;</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    n_hist = blkarray_list_n_valid(allphs-&gt;<a class="code" href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">history</a>);</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    E_INFO</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;        (<span class="stringliteral">&quot;%d frames, %d HMMs (%d/fr), %d senones (%d/fr), %d history entries (%d/fr)\n&quot;</span>,</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;         allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a>, allphs-&gt;<a class="code" href="structallphone__search__s.html#a24d1b4b58c797ff488651b6238040433">n_hmm_eval</a>,</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;         (allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> &gt; 0) ? allphs-&gt;<a class="code" href="structallphone__search__s.html#a24d1b4b58c797ff488651b6238040433">n_hmm_eval</a> / allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> : 0,</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;         allphs-&gt;<a class="code" href="structallphone__search__s.html#a5759743790af0ec17f85f14f18004b71">n_sen_eval</a>,</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;         (allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> &gt; 0) ? allphs-&gt;<a class="code" href="structallphone__search__s.html#a5759743790af0ec17f85f14f18004b71">n_sen_eval</a> / allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> : 0,</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;         n_hist, (allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> &gt; 0) ? n_hist / allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> : 0);</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;    <span class="comment">/* Now backtrace. */</span></div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;    allphone_backtrace(allphs, allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> - 1);</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    <span class="comment">/* Print out some statistics. */</span></div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    ptmr_stop(&amp;allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>);</div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;    <span class="comment">/* This is the number of frames processed. */</span></div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;    cf = ps_search_acmod(allphs)-&gt;output_frame;</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;    <span class="keywordflow">if</span> (cf &gt; 0) {</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;        <span class="keywordtype">double</span> n_speech = (double) (cf + 1)</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;            / cmd_ln_int32_r(ps_search_config(allphs), <span class="stringliteral">&quot;-frate&quot;</span>);</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;        E_INFO(<span class="stringliteral">&quot;allphone %.2f CPU %.3f xRT\n&quot;</span>,</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;               allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>.t_cpu, allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>.t_cpu / n_speech);</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;        E_INFO(<span class="stringliteral">&quot;allphone %.2f wall %.3f xRT\n&quot;</span>,</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;               allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>.t_elapsed, allphs-&gt;<a class="code" href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">perf</a>.t_elapsed / n_speech);</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    }</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;}</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;<span class="keywordtype">char</span> <span class="keyword">const</span> *</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;allphone_search_hyp(<a class="code" href="structps__search__s.html">ps_search_t</a> * search, int32 * out_score,</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;                    int32 * out_is_final)</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;{</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    <a class="code" href="structallphone__search__s.html">allphone_search_t</a> *allphs;</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;    <a class="code" href="structphseg__s.html">phseg_t</a> *p;</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    gnode_t *gn;</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *phone_str;</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    <span class="keywordtype">int</span> len, hyp_idx, phone_idx;</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    allphs = (<a class="code" href="structallphone__search__s.html">allphone_search_t</a> *) search;</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    mdef = search-&gt;<a class="code" href="structps__search__s.html#a0fdf6fe8c4d9c28f10c48c09517c6b91">acmod</a>-&gt;<a class="code" href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">mdef</a>;</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    <span class="comment">/* Create hypothesis */</span></div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    <span class="keywordflow">if</span> (search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a>)</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;        ckd_free(search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a>);</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a> = NULL;</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    allphone_backtrace(allphs, allphs-&gt;<a class="code" href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">frame</a> - 1);</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    <span class="keywordflow">if</span> (allphs-&gt;segments == NULL) {</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    }</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;    len = glist_count(allphs-&gt;segments) * 10;  <span class="comment">// maximum length of one phone with spacebar</span></div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;    search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a> = (<span class="keywordtype">char</span> *) ckd_calloc(len, <span class="keyword">sizeof</span>(*search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a>));</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    hyp_idx = 0;</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;    <span class="keywordflow">for</span> (gn = allphs-&gt;segments; gn; gn = gn-&gt;next) {</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        p = gnode_ptr(gn);</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;        phone_str = <a class="code" href="bin__mdef_8h.html#a9498ffff0caf3965060b8a549348be9b">bin_mdef_ciphone_str</a>(mdef, p-&gt;ci);</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        phone_idx = 0;</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;        <span class="keywordflow">while</span> (phone_str[phone_idx] != <span class="charliteral">&#39;\0&#39;</span>)</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;            search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a>[hyp_idx++] = phone_str[phone_idx++];</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;        search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a>[hyp_idx++] = <span class="charliteral">&#39; &#39;</span>;</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    }</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;    search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a>[--hyp_idx] = <span class="charliteral">&#39;\0&#39;</span>;</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    E_INFO(<span class="stringliteral">&quot;Hyp: %s\n&quot;</span>, search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a>);</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    <span class="keywordflow">return</span> search-&gt;<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">hyp_str</a>;</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;}</div><div class="ttc" id="pocketsphinx__internal_8h_html"><div class="ttname"><a href="pocketsphinx__internal_8h.html">pocketsphinx_internal.h</a></div><div class="ttdoc">Internal implementation of PocketSphinx decoder. </div></div>
<div class="ttc" id="structhistory__s_html"><div class="ttname"><a href="structhistory__s.html">history_s</a></div><div class="ttdoc">History (paths) information at any point in allphone Viterbi search. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00081">allphone_search.h:81</a></div></div>
<div class="ttc" id="structphmm__s_html_a62c94d334abbbd2431d5e7e0ace79a14"><div class="ttname"><a href="structphmm__s.html#a62c94d334abbbd2431d5e7e0ace79a14">phmm_s::next</a></div><div class="ttdeci">struct phmm_s * next</div><div class="ttdoc">Next unique PHMM for same parent basephone. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00066">allphone_search.h:66</a></div></div>
<div class="ttc" id="structps__search__s_html"><div class="ttname"><a href="structps__search__s.html">ps_search_s</a></div><div class="ttdoc">Base structure for search module. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00098">pocketsphinx_internal.h:98</a></div></div>
<div class="ttc" id="structallphone__search__s_html_ab933d7d82322055b5d0c62e27d7c1f5f"><div class="ttname"><a href="structallphone__search__s.html#ab933d7d82322055b5d0c62e27d7c1f5f">allphone_search_s::perf</a></div><div class="ttdeci">ptmr_t perf</div><div class="ttdoc">Performance counter. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00134">allphone_search.h:134</a></div></div>
<div class="ttc" id="hmm_8h_html_aa911ae0d1c0eba562692fbeebca90d78"><div class="ttname"><a href="hmm_8h.html#aa911ae0d1c0eba562692fbeebca90d78">hmm_init</a></div><div class="ttdeci">void hmm_init(hmm_context_t *ctx, hmm_t *hmm, int mpx, int ssid, int tmatid)</div><div class="ttdoc">Populate a previously-allocated HMM structure, allocating internal data. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8c_source.html#l00089">hmm.c:89</a></div></div>
<div class="ttc" id="structphmm__s_html_afe385b65ca02fb4e3a087a0997ea4eac"><div class="ttname"><a href="structphmm__s.html#afe385b65ca02fb4e3a087a0997ea4eac">phmm_s::ci</a></div><div class="ttdeci">s3cipid_t ci</div><div class="ttdoc">Parent basephone for this PHMM. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00063">allphone_search.h:63</a></div></div>
<div class="ttc" id="structblkarray__list__s_html"><div class="ttname"><a href="structblkarray__list__s.html">blkarray_list_s</a></div><div class="ttdef"><b>Definition:</b> <a href="blkarray__list_8h_source.html#l00079">blkarray_list.h:79</a></div></div>
<div class="ttc" id="structallphone__search__s_html_a5759743790af0ec17f85f14f18004b71"><div class="ttname"><a href="structallphone__search__s.html#a5759743790af0ec17f85f14f18004b71">allphone_search_s::n_sen_eval</a></div><div class="ttdeci">int32 n_sen_eval</div><div class="ttdoc">Total senones evaluated this utt. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00127">allphone_search.h:127</a></div></div>
<div class="ttc" id="bin__mdef_8h_html_a9498ffff0caf3965060b8a549348be9b"><div class="ttname"><a href="bin__mdef_8h.html#a9498ffff0caf3965060b8a549348be9b">bin_mdef_ciphone_str</a></div><div class="ttdeci">const char * bin_mdef_ciphone_str(bin_mdef_t *m, int32 ci)</div><div class="ttdoc">In: ciphone id for which name wanted. </div><div class="ttdef"><b>Definition:</b> <a href="bin__mdef_8c_source.html#l00737">bin_mdef.c:737</a></div></div>
<div class="ttc" id="pocketsphinx__internal_8h_html_a307801961f27bd5f4b82a3e6b83e0ca1"><div class="ttname"><a href="pocketsphinx__internal_8h.html#a307801961f27bd5f4b82a3e6b83e0ca1">ps_search_base_reinit</a></div><div class="ttdeci">void ps_search_base_reinit(ps_search_t *search, dict_t *dict, dict2pid_t *d2p)</div><div class="ttdoc">Re-initialize base structure with new dictionary. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx_8c_source.html#l01441">pocketsphinx.c:1441</a></div></div>
<div class="ttc" id="structacmod__s_html_a5081a507e3ca6de6c5695217245dc9f9"><div class="ttname"><a href="structacmod__s.html#a5081a507e3ca6de6c5695217245dc9f9">acmod_s::n_senone_active</a></div><div class="ttdeci">int n_senone_active</div><div class="ttdoc">Number of active GMMs. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8h_source.html#l00169">acmod.h:169</a></div></div>
<div class="ttc" id="structps__search__s_html_a0fdf6fe8c4d9c28f10c48c09517c6b91"><div class="ttname"><a href="structps__search__s.html#a0fdf6fe8c4d9c28f10c48c09517c6b91">ps_search_s::acmod</a></div><div class="ttdeci">acmod_t * acmod</div><div class="ttdoc">Acoustic model. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00106">pocketsphinx_internal.h:106</a></div></div>
<div class="ttc" id="structhmm__t_html"><div class="ttname"><a href="structhmm__t.html">hmm_t</a></div><div class="ttdoc">An individual HMM among the HMM search space. </div></div>
<div class="ttc" id="structtmat__t_html_a9f518c96b30dab9efdb69bd779a7b5bf"><div class="ttname"><a href="structtmat__t.html#a9f518c96b30dab9efdb69bd779a7b5bf">tmat_t::tp</a></div><div class="ttdeci">uint8 *** tp</div><div class="ttdoc">The transition matrices; kept in the same scale as acoustic scores; tp[tmatid][from-state][to-state]...</div><div class="ttdef"><b>Definition:</b> <a href="tmat_8h_source.html#l00107">tmat.h:107</a></div></div>
<div class="ttc" id="structps__seg__s_html_a510362a2281e374c839397c3e5488515"><div class="ttname"><a href="structps__seg__s.html#a510362a2281e374c839397c3e5488515">ps_seg_s::vt</a></div><div class="ttdeci">ps_segfuncs_t * vt</div><div class="ttdoc">V-table of seg methods. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00179">pocketsphinx_internal.h:179</a></div></div>
<div class="ttc" id="structacmod__s_html_a9de7e8ac9c0c4df3d2a9ad5406787f3c"><div class="ttname"><a href="structacmod__s.html#a9de7e8ac9c0c4df3d2a9ad5406787f3c">acmod_s::lmath</a></div><div class="ttdeci">logmath_t * lmath</div><div class="ttdoc">Log-math computation. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8h_source.html#l00151">acmod.h:151</a></div></div>
<div class="ttc" id="structbin__mdef__s_html_acb58480658812de7a357dcbd25ad7b41"><div class="ttname"><a href="structbin__mdef__s.html#acb58480658812de7a357dcbd25ad7b41">bin_mdef_s::sseq</a></div><div class="ttdeci">uint16 ** sseq</div><div class="ttdoc">Unique senone sequences (2D array built at load time) </div><div class="ttdef"><b>Definition:</b> <a href="bin__mdef_8h_source.html#l00134">bin_mdef.h:134</a></div></div>
<div class="ttc" id="hmm_8h_html_a7440ced1649225beb6816bf62481e08b"><div class="ttname"><a href="hmm_8h.html#a7440ced1649225beb6816bf62481e08b">hmm_deinit</a></div><div class="ttdeci">void hmm_deinit(hmm_t *hmm)</div><div class="ttdoc">Free an HMM structure, releasing internal data (but not the HMM structure itself). </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8c_source.html#l00111">hmm.c:111</a></div></div>
<div class="ttc" id="structps__seg__s_html_a69e605f422eeed1a9c67437e8ddd8b08"><div class="ttname"><a href="structps__seg__s.html#a69e605f422eeed1a9c67437e8ddd8b08">ps_seg_s::lscr</a></div><div class="ttdeci">int32 lscr</div><div class="ttdoc">Language model score. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00185">pocketsphinx_internal.h:185</a></div></div>
<div class="ttc" id="structphmm__s_html_aee52956004053c676230cd8567366b60"><div class="ttname"><a href="structphmm__s.html#aee52956004053c676230cd8567366b60">phmm_s::pid</a></div><div class="ttdeci">s3pid_t pid</div><div class="ttdoc">Phone id (temp. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00062">allphone_search.h:62</a></div></div>
<div class="ttc" id="structmdef__entry__s_html_a90758df5d6eb00d3a70135ac4475c7a1"><div class="ttname"><a href="structmdef__entry__s.html#a90758df5d6eb00d3a70135ac4475c7a1">mdef_entry_s::tmat</a></div><div class="ttdeci">int32 tmat</div><div class="ttdoc">Transition matrix ID. </div><div class="ttdef"><b>Definition:</b> <a href="bin__mdef_8h_source.html#l00075">bin_mdef.h:75</a></div></div>
<div class="ttc" id="acmod_8c_html_a2a7f67d462279b2bc4774c7967ae61c7"><div class="ttname"><a href="acmod_8c.html#a2a7f67d462279b2bc4774c7967ae61c7">acmod_activate_hmm</a></div><div class="ttdeci">void acmod_activate_hmm(acmod_t *acmod, hmm_t *hmm)</div><div class="ttdoc">Activate senones associated with an HMM. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8c_source.html#l01233">acmod.c:1233</a></div></div>
<div class="ttc" id="structhistory__s_html_a0e9457246e140d8af571eea044178551"><div class="ttname"><a href="structhistory__s.html#a0e9457246e140d8af571eea044178551">history_s::hist</a></div><div class="ttdeci">int32 hist</div><div class="ttdoc">Previous history entry. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00086">allphone_search.h:86</a></div></div>
<div class="ttc" id="structphmm__s_html_aad9f810256dea9ee491d21eb3a349d1c"><div class="ttname"><a href="structphmm__s.html#aad9f810256dea9ee491d21eb3a349d1c">phmm_s::lc</a></div><div class="ttdeci">bitvec_t * lc</div><div class="ttdoc">Set (bit-vector) of left context phones seen for this PHMM. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00064">allphone_search.h:64</a></div></div>
<div class="ttc" id="structhistory__s_html_af24720abad5e2e17a99c5aeffa7dc95e"><div class="ttname"><a href="structhistory__s.html#af24720abad5e2e17a99c5aeffa7dc95e">history_s::score</a></div><div class="ttdeci">int32 score</div><div class="ttdoc">Path score for this path. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00083">allphone_search.h:83</a></div></div>
<div class="ttc" id="s3types_8h_html_af9c51863cdbb10d58b6aad21e896666b"><div class="ttname"><a href="s3types_8h.html#af9c51863cdbb10d58b6aad21e896666b">BAD_S3CIPID</a></div><div class="ttdeci">#define BAD_S3CIPID</div><div class="ttdoc">Ci phone id. </div><div class="ttdef"><b>Definition:</b> <a href="s3types_8h_source.html#l00064">s3types.h:64</a></div></div>
<div class="ttc" id="structps__seg__s_html_a97a0dc7db931c7e3f98d23d21ce27f04"><div class="ttname"><a href="structps__seg__s.html#a97a0dc7db931c7e3f98d23d21ce27f04">ps_seg_s::word</a></div><div class="ttdeci">char const * word</div><div class="ttdoc">Word string (pointer into dictionary hash) </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00181">pocketsphinx_internal.h:181</a></div></div>
<div class="ttc" id="structps__seg__s_html_a14168ddcb60e094dad36c7c920a79bb3"><div class="ttname"><a href="structps__seg__s.html#a14168ddcb60e094dad36c7c920a79bb3">ps_seg_s::search</a></div><div class="ttdeci">ps_search_t * search</div><div class="ttdoc">Search object from whence this came. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00180">pocketsphinx_internal.h:180</a></div></div>
<div class="ttc" id="pocketsphinx__internal_8h_html_a9e0d66662ea7c64f8bddbbfe57496896"><div class="ttname"><a href="pocketsphinx__internal_8h.html#a9e0d66662ea7c64f8bddbbfe57496896">ps_search_init</a></div><div class="ttdeci">void ps_search_init(ps_search_t *search, ps_searchfuncs_t *vt, const char *type, const char *name, cmd_ln_t *config, acmod_t *acmod, dict_t *dict, dict2pid_t *d2p)</div><div class="ttdoc">Initialize base structure. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx_8c_source.html#l01397">pocketsphinx.c:1397</a></div></div>
<div class="ttc" id="structallphone__search__s_html_a9021eb4d9645cc3138535dfad8272601"><div class="ttname"><a href="structallphone__search__s.html#a9021eb4d9645cc3138535dfad8272601">allphone_search_s::ci2lmwid</a></div><div class="ttdeci">int32 * ci2lmwid</div><div class="ttdoc">Mapping of CI phones to LM word IDs. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00117">allphone_search.h:117</a></div></div>
<div class="ttc" id="structallphone__search__s_html_ac4f20ffb4acb7c36a8e04cf7b88eafb2"><div class="ttname"><a href="structallphone__search__s.html#ac4f20ffb4acb7c36a8e04cf7b88eafb2">allphone_search_s::inspen</a></div><div class="ttdeci">int32 inspen</div><div class="ttdoc">Language weights. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00120">allphone_search.h:120</a></div></div>
<div class="ttc" id="structbin__mdef__s_html"><div class="ttname"><a href="structbin__mdef__s.html">bin_mdef_s</a></div><div class="ttdef"><b>Definition:</b> <a href="bin__mdef_8h_source.html#l00117">bin_mdef.h:117</a></div></div>
<div class="ttc" id="hmm_8h_html_a24ed030b10cb07e12173b45d3800db4b"><div class="ttname"><a href="hmm_8h.html#a24ed030b10cb07e12173b45d3800db4b">hmm_vit_eval</a></div><div class="ttdeci">int32 hmm_vit_eval(hmm_t *hmm)</div><div class="ttdoc">Viterbi evaluation of given HMM. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8c_source.html#l00789">hmm.c:789</a></div></div>
<div class="ttc" id="structmdef__entry__s_html_a24e5db7af5e705b310e82154055043ec"><div class="ttname"><a href="structmdef__entry__s.html#a24e5db7af5e705b310e82154055043ec">mdef_entry_s::ci</a></div><div class="ttdeci">struct mdef_entry_s::@0::@1 ci</div><div class="ttdoc">&lt; CI phone information - attributes (just &quot;filler&quot; for now) </div></div>
<div class="ttc" id="structhistory__s_html_a59e1a1053ba224c4d015f08192c7fd96"><div class="ttname"><a href="structhistory__s.html#a59e1a1053ba224c4d015f08192c7fd96">history_s::ef</a></div><div class="ttdeci">frame_idx_t ef</div><div class="ttdoc">End frame. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00085">allphone_search.h:85</a></div></div>
<div class="ttc" id="structacmod__s_html_ac08227365e3ed4354e26f013bc0df2bd"><div class="ttname"><a href="structacmod__s.html#ac08227365e3ed4354e26f013bc0df2bd">acmod_s::compallsen</a></div><div class="ttdeci">uint8 compallsen</div><div class="ttdoc">Compute all senones? </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8h_source.html#l00188">acmod.h:188</a></div></div>
<div class="ttc" id="structphmm__s_html_a94ead49959a95398643178d8dc1609f8"><div class="ttname"><a href="structphmm__s.html#a94ead49959a95398643178d8dc1609f8">phmm_s::rc</a></div><div class="ttdeci">bitvec_t * rc</div><div class="ttdoc">Set (bit-vector) of right context phones seen for this PHMM. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00065">allphone_search.h:65</a></div></div>
<div class="ttc" id="hmm_8h_html_a4d6e2799cbe290112e8517adcab1b038"><div class="ttname"><a href="hmm_8h.html#a4d6e2799cbe290112e8517adcab1b038">hmm_context_init</a></div><div class="ttdeci">hmm_context_t * hmm_context_init(int32 n_emit_state, uint8 **const *tp, int16 const *senscore, uint16 *const *sseq)</div><div class="ttdoc">Create an HMM context. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8c_source.html#l00056">hmm.c:56</a></div></div>
<div class="ttc" id="pocketsphinx__internal_8h_html_a39db3228c813a2943d47ff3f13e6ef08"><div class="ttname"><a href="pocketsphinx__internal_8h.html#a39db3228c813a2943d47ff3f13e6ef08">ps_search_base_free</a></div><div class="ttdeci">void ps_search_base_free(ps_search_t *search)</div><div class="ttdoc">Free search. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx_8c_source.html#l01428">pocketsphinx.c:1428</a></div></div>
<div class="ttc" id="structallphone__search__s_html"><div class="ttname"><a href="structallphone__search__s.html">allphone_search_s</a></div><div class="ttdoc">Implementation of allphone search structure. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00110">allphone_search.h:110</a></div></div>
<div class="ttc" id="structacmod__s_html_a3563f4d0bdc48d3ee140b9e28806279d"><div class="ttname"><a href="structacmod__s.html#a3563f4d0bdc48d3ee140b9e28806279d">acmod_s::config</a></div><div class="ttdeci">cmd_ln_t * config</div><div class="ttdoc">Configuration. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8h_source.html#l00150">acmod.h:150</a></div></div>
<div class="ttc" id="s3types_8h_html_ae5f70241ce62a79747f0611029a6409d"><div class="ttname"><a href="s3types_8h.html#ae5f70241ce62a79747f0611029a6409d">s3cipid_t</a></div><div class="ttdeci">int16 s3cipid_t</div><div class="ttdoc">Size definitions for more semantially meaningful units. </div><div class="ttdef"><b>Definition:</b> <a href="s3types_8h_source.html#l00063">s3types.h:63</a></div></div>
<div class="ttc" id="hmm_8h_html_a833f100ee293ad0f1c03f2a5ef9be77a"><div class="ttname"><a href="hmm_8h.html#a833f100ee293ad0f1c03f2a5ef9be77a">WORST_SCORE</a></div><div class="ttdeci">#define WORST_SCORE</div><div class="ttdoc">Large &quot;bad&quot; score. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8h_source.html#l00084">hmm.h:84</a></div></div>
<div class="ttc" id="structacmod__s_html_aaa3982184a49f0d61e397ba89f486259"><div class="ttname"><a href="structacmod__s.html#aaa3982184a49f0d61e397ba89f486259">acmod_s::tmat</a></div><div class="ttdeci">tmat_t * tmat</div><div class="ttdoc">Transition matrices. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8h_source.html#l00160">acmod.h:160</a></div></div>
<div class="ttc" id="structps__seg__s_html_ab25ecc6af8d2695c6097cf7e934eadd4"><div class="ttname"><a href="structps__seg__s.html#ab25ecc6af8d2695c6097cf7e934eadd4">ps_seg_s::ef</a></div><div class="ttdeci">frame_idx_t ef</div><div class="ttdoc">End frame. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00183">pocketsphinx_internal.h:183</a></div></div>
<div class="ttc" id="structps__seg__s_html_a6f7706ec4c0d0ec8ecafaf0f29f41f4b"><div class="ttname"><a href="structps__seg__s.html#a6f7706ec4c0d0ec8ecafaf0f29f41f4b">ps_seg_s::ascr</a></div><div class="ttdeci">int32 ascr</div><div class="ttdoc">Acoustic score. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00184">pocketsphinx_internal.h:184</a></div></div>
<div class="ttc" id="structhistory__s_html_a09096eb94eba8ad29dc19f231192a24b"><div class="ttname"><a href="structhistory__s.html#a09096eb94eba8ad29dc19f231192a24b">history_s::tscore</a></div><div class="ttdeci">int32 tscore</div><div class="ttdoc">Transition score for this path. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00084">allphone_search.h:84</a></div></div>
<div class="ttc" id="structallphone__search__s_html_aa82fce72da16af69af92aeca29beed3d"><div class="ttname"><a href="structallphone__search__s.html#aa82fce72da16af69af92aeca29beed3d">allphone_search_s::hmmctx</a></div><div class="ttdeci">hmm_context_t * hmmctx</div><div class="ttdoc">HMM context. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00113">allphone_search.h:113</a></div></div>
<div class="ttc" id="hmm_8h_html_a7285d01d533996d750c78e0d96042716"><div class="ttname"><a href="hmm_8h.html#a7285d01d533996d750c78e0d96042716">hmm_enter</a></div><div class="ttdeci">void hmm_enter(hmm_t *h, int32 score, int32 histid, int frame)</div><div class="ttdoc">Enter an HMM with the given path score and history ID. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8c_source.html#l00201">hmm.c:201</a></div></div>
<div class="ttc" id="structphseg__iter__s_html"><div class="ttname"><a href="structphseg__iter__s.html">phseg_iter_s</a></div><div class="ttdoc">Segment iterator over list of phseg. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00102">allphone_search.h:102</a></div></div>
<div class="ttc" id="acmod_8c_html_aed43f033f434e34fd90c975909d81cb2"><div class="ttname"><a href="acmod_8c.html#aed43f033f434e34fd90c975909d81cb2">acmod_clear_active</a></div><div class="ttdeci">void acmod_clear_active(acmod_t *acmod)</div><div class="ttdoc">Clear set of active senones. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8c_source.html#l01217">acmod.c:1217</a></div></div>
<div class="ttc" id="mdef_8h_html_a87b279af2566a60666495e16d09a8aee"><div class="ttname"><a href="mdef_8h.html#a87b279af2566a60666495e16d09a8aee">S3_SILENCE_CIPHONE</a></div><div class="ttdeci">#define S3_SILENCE_CIPHONE</div><div class="ttdoc">Hard-coded silence CI phone name. </div><div class="ttdef"><b>Definition:</b> <a href="mdef_8h_source.html#l00081">mdef.h:81</a></div></div>
<div class="ttc" id="structplink__s_html_a835ba35ee1605a314eefbef9db68c033"><div class="ttname"><a href="structplink__s.html#a835ba35ee1605a314eefbef9db68c033">plink_s::next</a></div><div class="ttdeci">struct plink_s * next</div><div class="ttdoc">Next link for parent PHMM node. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00075">allphone_search.h:75</a></div></div>
<div class="ttc" id="hmm_8h_html_a44d0b5515cb269bf9b95f62aada18cbb"><div class="ttname"><a href="hmm_8h.html#a44d0b5515cb269bf9b95f62aada18cbb">hmm_context_set_senscore</a></div><div class="ttdeci">#define hmm_context_set_senscore(ctx, senscr)</div><div class="ttdoc">Change the senone score array for a context. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8h_source.html#l00227">hmm.h:227</a></div></div>
<div class="ttc" id="hmm_8h_html_af94da16e3e5b550b9be05b0f07402cc7"><div class="ttname"><a href="hmm_8h.html#af94da16e3e5b550b9be05b0f07402cc7">SENSCR_SHIFT</a></div><div class="ttdeci">#define SENSCR_SHIFT</div><div class="ttdoc">Shift count for senone scores. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8h_source.html#l00073">hmm.h:73</a></div></div>
<div class="ttc" id="structdict__t_html"><div class="ttname"><a href="structdict__t.html">dict_t</a></div><div class="ttdoc">a structure for a dictionary. </div><div class="ttdef"><b>Definition:</b> <a href="dict_8h_source.html#l00076">dict.h:76</a></div></div>
<div class="ttc" id="structallphone__search__s_html_a9ad3ecc228af52131028fb91927563dc"><div class="ttname"><a href="structallphone__search__s.html#a9ad3ecc228af52131028fb91927563dc">allphone_search_s::ascale</a></div><div class="ttdeci">float32 ascale</div><div class="ttdoc">Acoustic score scale for posterior probabilities. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00123">allphone_search.h:123</a></div></div>
<div class="ttc" id="structallphone__search__s_html_a83712f4d89a500720b5bb3e8b2b67297"><div class="ttname"><a href="structallphone__search__s.html#a83712f4d89a500720b5bb3e8b2b67297">allphone_search_s::n_tot_frame</a></div><div class="ttdeci">int32 n_tot_frame</div><div class="ttdoc">Total number of frames processed. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00125">allphone_search.h:125</a></div></div>
<div class="ttc" id="structallphone__search__s_html_ac1220a564a57a418312800df44bd95ca"><div class="ttname"><a href="structallphone__search__s.html#ac1220a564a57a418312800df44bd95ca">allphone_search_s::lm</a></div><div class="ttdeci">ngram_model_t * lm</div><div class="ttdoc">Ngram model set. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00114">allphone_search.h:114</a></div></div>
<div class="ttc" id="structps__lattice__s_html"><div class="ttname"><a href="structps__lattice__s.html">ps_lattice_s</a></div><div class="ttdoc">Word graph structure used in bestpath/nbest search. </div><div class="ttdef"><b>Definition:</b> <a href="ps__lattice__internal_8h_source.html#l00061">ps_lattice_internal.h:61</a></div></div>
<div class="ttc" id="structphmm__s_html_a829311265f8df700c9fb628f5bdff0ad"><div class="ttname"><a href="structphmm__s.html#a829311265f8df700c9fb628f5bdff0ad">phmm_s::hmm</a></div><div class="ttdeci">hmm_t hmm</div><div class="ttdoc">Base HMM structure. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00061">allphone_search.h:61</a></div></div>
<div class="ttc" id="hmm_8h_html_af4c0cefb23087a0b1731b34048cfdaf9"><div class="ttname"><a href="hmm_8h.html#af4c0cefb23087a0b1731b34048cfdaf9">hmm_clear</a></div><div class="ttdeci">void hmm_clear(hmm_t *h)</div><div class="ttdoc">Reset the states of the HMM to the invalid condition. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8c_source.html#l00183">hmm.c:183</a></div></div>
<div class="ttc" id="structps__search__s_html_aa398c736a887af97e42b2a562359adc3"><div class="ttname"><a href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">ps_search_s::hyp_str</a></div><div class="ttdeci">char * hyp_str</div><div class="ttdoc">Current hypothesis string. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00109">pocketsphinx_internal.h:109</a></div></div>
<div class="ttc" id="structallphone__search__s_html_ab4d9470249d15abca8e9fd01f1d437a7"><div class="ttname"><a href="structallphone__search__s.html#ab4d9470249d15abca8e9fd01f1d437a7">allphone_search_s::ci_only</a></div><div class="ttdeci">int32 ci_only</div><div class="ttdoc">Use context-independent phones for decoding. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00115">allphone_search.h:115</a></div></div>
<div class="ttc" id="structallphone__search__s_html_a24d1b4b58c797ff488651b6238040433"><div class="ttname"><a href="structallphone__search__s.html#a24d1b4b58c797ff488651b6238040433">allphone_search_s::n_hmm_eval</a></div><div class="ttdeci">int32 n_hmm_eval</div><div class="ttdoc">Total HMMs evaluated this utt. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00126">allphone_search.h:126</a></div></div>
<div class="ttc" id="structphmm__s_html_a152d26f99b39098c8027cd2d8372e05c"><div class="ttname"><a href="structphmm__s.html#a152d26f99b39098c8027cd2d8372e05c">phmm_s::succlist</a></div><div class="ttdeci">struct plink_s * succlist</div><div class="ttdoc">List of predecessor PHMM nodes. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00067">allphone_search.h:67</a></div></div>
<div class="ttc" id="structphmm__s_html"><div class="ttname"><a href="structphmm__s.html">phmm_s</a></div><div class="ttdoc">Models a single unique &lt;senone-sequence, tmat&gt; pair. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00060">allphone_search.h:60</a></div></div>
<div class="ttc" id="structhistory__s_html_a548a5d7505c78278114ab9b1d5e0ceaa"><div class="ttname"><a href="structhistory__s.html#a548a5d7505c78278114ab9b1d5e0ceaa">history_s::phmm</a></div><div class="ttdeci">phmm_t * phmm</div><div class="ttdoc">PHMM ending this path. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00082">allphone_search.h:82</a></div></div>
<div class="ttc" id="structplink__s_html_a6499a81fb81dd9c295318ad323a0740f"><div class="ttname"><a href="structplink__s.html#a6499a81fb81dd9c295318ad323a0740f">plink_s::phmm</a></div><div class="ttdeci">phmm_t * phmm</div><div class="ttdoc">Successor PHMM node. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00074">allphone_search.h:74</a></div></div>
<div class="ttc" id="hmm_8h_html_ab66534ad7970d49527f1b2a1e76bb05e"><div class="ttname"><a href="hmm_8h.html#ab66534ad7970d49527f1b2a1e76bb05e">hmm_context_free</a></div><div class="ttdeci">void hmm_context_free(hmm_context_t *ctx)</div><div class="ttdoc">Free an HMM context. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8c_source.html#l00080">hmm.c:80</a></div></div>
<div class="ttc" id="structallphone__search__s_html_af1c69cfc6361bfed4ed0726cbdd4fbfa"><div class="ttname"><a href="structallphone__search__s.html#af1c69cfc6361bfed4ed0726cbdd4fbfa">allphone_search_s::pbeam</a></div><div class="ttdeci">int32 pbeam</div><div class="ttdoc">Effective beams after applying beam_factor. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00119">allphone_search.h:119</a></div></div>
<div class="ttc" id="structacmod__s_html_a351548ff5547c29b4a684e10434a51dd"><div class="ttname"><a href="structacmod__s.html#a351548ff5547c29b4a684e10434a51dd">acmod_s::mdef</a></div><div class="ttdeci">bin_mdef_t * mdef</div><div class="ttdoc">Model definition. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8h_source.html#l00159">acmod.h:159</a></div></div>
<div class="ttc" id="structps__searchfuncs__s_html"><div class="ttname"><a href="structps__searchfuncs__s.html">ps_searchfuncs_s</a></div><div class="ttdoc">V-table for search algorithm. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00082">pocketsphinx_internal.h:82</a></div></div>
<div class="ttc" id="structbin__mdef__s_html_a2c73ae900d198460a30bce4f641d8398"><div class="ttname"><a href="structbin__mdef__s.html#a2c73ae900d198460a30bce4f641d8398">bin_mdef_s::phone</a></div><div class="ttdeci">mdef_entry_t * phone</div><div class="ttdoc">All phone structures. </div><div class="ttdef"><b>Definition:</b> <a href="bin__mdef_8h_source.html#l00133">bin_mdef.h:133</a></div></div>
<div class="ttc" id="structallphone__search__s_html_a6f01de182b60ca03ab9fed3bc63fadc5"><div class="ttname"><a href="structallphone__search__s.html#a6f01de182b60ca03ab9fed3bc63fadc5">allphone_search_s::history</a></div><div class="ttdeci">blkarray_list_t * history</div><div class="ttdoc">List of history nodes allocated in each frame. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00130">allphone_search.h:130</a></div></div>
<div class="ttc" id="structps__seg__s_html"><div class="ttname"><a href="structps__seg__s.html">ps_seg_s</a></div><div class="ttdoc">Base structure for hypothesis segmentation iterator. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00178">pocketsphinx_internal.h:178</a></div></div>
<div class="ttc" id="structbin__mdef__s_html_a84d5f7acc6d85ba8c7611945f9c5e4e7"><div class="ttname"><a href="structbin__mdef__s.html#a84d5f7acc6d85ba8c7611945f9c5e4e7">bin_mdef_s::n_ciphone</a></div><div class="ttdeci">int32 n_ciphone</div><div class="ttdoc">Number of base (CI) phones. </div><div class="ttdef"><b>Definition:</b> <a href="bin__mdef_8h_source.html#l00119">bin_mdef.h:119</a></div></div>
<div class="ttc" id="structps__search__s_html_aa6e3e18165bbc70084a06575d5703042"><div class="ttname"><a href="structps__search__s.html#aa6e3e18165bbc70084a06575d5703042">ps_search_s::config</a></div><div class="ttdeci">cmd_ln_t * config</div><div class="ttdoc">Configuration. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00105">pocketsphinx_internal.h:105</a></div></div>
<div class="ttc" id="structallphone__search__s_html_a2646c8ad402da8a644ecebd28386de0d"><div class="ttname"><a href="structallphone__search__s.html#a2646c8ad402da8a644ecebd28386de0d">allphone_search_s::ci_phmm</a></div><div class="ttdeci">phmm_t ** ci_phmm</div><div class="ttdoc">PHMM lists (for each CI phone) </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00116">allphone_search.h:116</a></div></div>
<div class="ttc" id="structps__segfuncs__s_html"><div class="ttname"><a href="structps__segfuncs__s.html">ps_segfuncs_s</a></div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00170">pocketsphinx_internal.h:170</a></div></div>
<div class="ttc" id="structacmod__s_html"><div class="ttname"><a href="structacmod__s.html">acmod_s</a></div><div class="ttdoc">Acoustic model structure. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8h_source.html#l00148">acmod.h:148</a></div></div>
<div class="ttc" id="structphseg__s_html"><div class="ttname"><a href="structphseg__s.html">phseg_s</a></div><div class="ttdoc">Phone level segmentation information. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00092">allphone_search.h:92</a></div></div>
<div class="ttc" id="structdict2pid__t_html"><div class="ttname"><a href="structdict2pid__t.html">dict2pid_t</a></div><div class="ttdoc">Building composite triphone (as well as word internal triphones) with the dictionary. </div><div class="ttdef"><b>Definition:</b> <a href="dict2pid_8h_source.html#l00084">dict2pid.h:84</a></div></div>
<div class="ttc" id="structplink__s_html"><div class="ttname"><a href="structplink__s.html">plink_s</a></div><div class="ttdoc">List of links from a PHMM node to its successors; one link per successor. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00073">allphone_search.h:73</a></div></div>
<div class="ttc" id="structps__seg__s_html_a885a599726cd0efba573d106d016e6e2"><div class="ttname"><a href="structps__seg__s.html#a885a599726cd0efba573d106d016e6e2">ps_seg_s::sf</a></div><div class="ttdeci">frame_idx_t sf</div><div class="ttdoc">Start frame. </div><div class="ttdef"><b>Definition:</b> <a href="pocketsphinx__internal_8h_source.html#l00182">pocketsphinx_internal.h:182</a></div></div>
<div class="ttc" id="acmod_8c_html_acd78e9bae06724df9c53f844d90c1c8a"><div class="ttname"><a href="acmod_8c.html#acd78e9bae06724df9c53f844d90c1c8a">acmod_score</a></div><div class="ttdeci">int16 const * acmod_score(acmod_t *acmod, int *inout_frame_idx)</div><div class="ttdoc">Score one frame of data. </div><div class="ttdef"><b>Definition:</b> <a href="acmod_8c_source.html#l01126">acmod.c:1126</a></div></div>
<div class="ttc" id="structallphone__search__s_html_a458aad951cc506c072d67d8d9f163fd7"><div class="ttname"><a href="structallphone__search__s.html#a458aad951cc506c072d67d8d9f163fd7">allphone_search_s::frame</a></div><div class="ttdeci">frame_idx_t frame</div><div class="ttdoc">Current frame. </div><div class="ttdef"><b>Definition:</b> <a href="allphone__search_8h_source.html#l00122">allphone_search.h:122</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_8d034a1e03e98d9b7ac467250bbebdea.html">libpocketsphinx</a></li><li class="navelem"><b>allphone_search.c</b></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>