<?php $isip_window_title = "ISIP Homepage"; ?>
<?php include("/data/isip/www/templates/documentation/header/header.html"); ?>

<!--#set var="isip_page_title" value="Hypothesis" -->
<?php include("/data/isip/www/templates/documentation/body/index_class.html"); ?>
<?php include("/data/isip/www/templates/documentation/body/bar.html"); ?>

<a name="name">
<b>
name:
<a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h">Hypothesis</a>
</b>

<br><br>

<a name="synopsis">
<b>synopsis:</b>

<blockquote>
<pre>
g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_search.a

#include &lt;Hypothesis.h&gt;

~Hypothesis();
Hypothesis();
Hypothesis(const Hypothesis& copy_hyp);
Hypothesis(const String& hyp);
</pre>
</blockquote>

<a name="quick_start">
<b>quick start:</b>

<blockquote>
<pre>
#include &lt;Hypothesis.h&gt;

Trace new_trace;
float socre = -793.83;
Hypothesis hyp(new_trace, score);

Stack<Hypothesis> stack;
stack.push(&hypothesis);
</pre>
</blockquote>

<a name="description"> 
<b>description:</b>
<br><br>

The Hypothesis class represents a word level search hypothesis in the
stack search algorithm. It consists of a trace pointer and an estimate
of the total score of this search hypothesis. The Hypothesis object is
stored in the PriorityQueue of the StackSearch object. It is not
enough to store only a Trace pointer in the PriorityQueue of
StackSearch, because the Trace contains only exact score of the path
so far. Since we need an estimate of the total score, we use
Hypothesis, which contains an estimate of total score of the path (the
score to the goal node).

<br><br>

<a name="dependencies">
<b>dependencies:</b>
<br><br>

<ul>
  <li> <a href="../Trace/index.html">Trace</a>
</ul>

<a name="constants">
<b>public constants:</b>
<br><br>

<ul>
  <li> define the class name:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/hyp_00.cc&constant=CLASS_NAME">static const String CLASS_NAME;</a></pre>

</ul>
	 
<a name="error">
<b>error codes:</b>
<br><br>

<ul>
  <li> error code indicating a general error:
       
       <pre><a href="/perl/ifc_document.pl?err=00090200">static const long ERR = 90200;</a></pre>
  <li> error code indicating an i/o error:
       <pre><a href="/perl/ifc_document.pl?err=00090201">static const long READ = 90201;</a></pre>

</ul>

<a name="protected">
<b>protected data:</b>
<br><br>

<ul>
  <li> hypothesis score, estimates distance to taret

       <pre> float score_d;</pre>

  <li> pointer to word level trace

       <pre> Trace* trace_d;</pre>

  <li> memory manager
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/hyp_00.cc&static=mgr_d">static MemoryManager mgr_d;</a></pre>
       
  <li> debug level
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/hyp_00.cc&static=debug_level_d">static Integral::DEBUG debug_level_d;</a></pre>

</ul>

<a name="public">
<b>required public methods:</b>
<br><br>

<ul>
  <li> static methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=name">static const String& name();</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/hyp_02.cc&method=diagnose">static boolean diagnose(Integral::DEBUG debug_level);</a></pre>

  <li> debug methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/hyp_01.cc&method=debug">boolean debug(const unichar* message) const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=setDebug">static boolean setDebug(Integral::DEBUG debug_level);</a></pre>

  <li> destructor/constructor(s):
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=destructor">~Hypothesis();</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=default+constructor">Hypothesis(Trace* trace = NULL, float score = 0);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=copy+constructor">Hypothesis(const Hypothesis& arg);</a></pre>

  <li> assign methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=assign">boolean assign(const Hypothesis& copy_hyp);</a></pre>

  <li> operator= (assignment) methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=operator+%3D&instance=0">Hypothesis& operator = (const Hypothesis& arg);</a></pre>

  <li> relational methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=operator&instance=1">boolean operator > (const Hypothesis& arg);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=operator&instance=2">boolean operator < (const Hypothesis& arg);</a></pre>

  <li> i/o methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=sofSize">long sofSize() const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=read">boolean read(Sof& sof, long tag, const String& name = CLASS_NAME);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=write">boolean write(Sof& sof, long tag, const String& name = CLASS_NAME) const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=readData">boolean readData(Sof& sof, const String& pname = String::EMPTY, long size = SofParser::FULL_OBJECT, boolean param = true, boolean nested = false);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=writeData">boolean writeData(Sof& sof, const String& pname = DEF_PARAM) const;</a></pre>

  <li> memory management methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=new">static void* operator new(size_t size);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=new[]">static void* operator new[](size_t size);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=delete">static void operator delete(void* ptr);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=delete[]">static void operator delete[](void* ptr);</a></pre>  
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=setGrowSize">static boolean setGrowSize(long grow_size);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=clear">boolean clear(Integral::CMODE ctype = Integral::DEF_CMODE);</a></pre>
       
</ul>

<a name="specific">
<b>class-specific public methods:</b>
<br><br>

<ul>
  <li> get methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=getScore&instance=0">float getScore();</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/Hypothesis/Hypothesis.h&method=getTrace&instance=0">Trace* getTrace();</a></pre>

</ul>

<a name="examples">
<b>examples:</b>
<br><br>

<ul>
  <li> none
</ul>

<a name="notes">
<b>notes:</b>
<br><br>

<ul>
  <li> none
</ul>

<!--#include virtual="/hse/ies/templates/documentation/footer/footer.html" -->
