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

<!--#set var="isip_page_title" value="SearchNode" -->
<?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/SearchNode/SearchNode.h">SearchNode</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;SearchNode.h&gt;

~SearchNode();
SearchNode();
SearchNode(const SearchNode& copy_sym);
SearchNode(const String& symbol);
</pre>
</blockquote>

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

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

SearchNode search_node;

SearchSymbol state_sym_1;
state_sym_1.assign(L"ae_1");

search_node.setSymbol(state_sym_1);

GaussianModel gauss_model;
search_node.setStatisticalModel(&gauss_model);

Trace new_trace;
search_node.addTrace(&new_trace);
search_node.clearTraceList();
</pre>
</blockquote>

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

The SearchNode class specifies a location in a search space.

<br><br>

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

<ul>
  <li> <a href="../../math/scalar/Long/index.html">Long</a>
  <li> <a href="../../math/vector/VectorDouble/index.html">VectorDouble</a>
  <li> <a href="../../stat/StatisticalModel/index.html">StatisticalModel</a>
  <li> <a href="../SearchSymbol/index.html">SearchSymbol</a>
  <li> <a href="../SearchLevel/index.html">SearchLevel</a>
  <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/SearchNode/snod_00.cc&constant=CLASS_NAME">static const String CLASS_NAME;</a></pre>

  <li> define i/o related constants:

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

  <li> define default value(s) of the class data:
       <pre>static const long DEF_SYMBOL_ID = -1;</pre>
       <pre>static const long DEF_DUMMY_SYMBOL_ID = -100;</pre>
       <pre>static const long DEF_TIMESTAMP = -1;</pre>
       <pre>static const float INACTIVE_SCORE = -11111111111111.0f;</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=00090300">static const long ERR = 90300;</a></pre>
</ul>

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

<ul>
  <li> define the symbol that is represented by this node:

       <pre> Long symbol_id_d;</pre>

  <li> define the underlying statistical model for this node:

       <pre> StatisticalModel* stat_model_d;</pre>

  <li> define the level this node exists at in the main graph:

       <pre> SearchLevel* level_d;</pre>

  <li> define the set of traces at this node in the search:

       <pre> DoubleLinkedList&lt;Trace&gt; traces_d;</pre>

  <li> define the current time stamp for this node:

       <pre> long timestamp_d;</pre>

  <li> define the current score:

       <pre> float score_d;</pre>
       
  <li> define the memory manager:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_00.cc&static=mgr_d">static MemoryManager mgr_d;</a></pre>
       
  <li> define the debug level:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_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/SearchNode/SearchNode.h&method=name">static const String& name();</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_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/SearchNode/snod_01.cc&method=debug">boolean debug(const unichar* message) const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.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/SearchNode/SearchNode.h&method=destructor">~SearchNode();</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_00.cc&method=default constructor">SearchNode();</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_00.cc&method=copy+constructor">SearchNode(const SearchNode& arg);</a></pre>

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

  <li> i/o methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=sofSize">long sofSize() const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.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/SearchNode/SearchNode.h&method=readData">boolean readData(Sof& sof, const String& pname = DEF_PARAM, long size = SofParser::FULL_OBJECT, boolean param = true, boolean nested = false);</a></pre>       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.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/SearchNode/SearchNode.h&method=writeData">boolean writeData(Sof& sof, const String& pname = DEF_PARAM) const;</a></pre>

  <li> equality methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_05.cc&method=eq&instance=0">boolean eq(const SearchNode& compare_node) const;</a></pre>

  <li> memory management methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=new">static void* operator new(size_t size);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=new[]">static void* operator new[](size_t size);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=delete">static void operator delete(void* ptr);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=delete[]">static void operator delete[](void* ptr);</a></pre>  
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=setGrowSize">static boolean setGrowSize(long grow_size);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_05.cc&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> declare symbol id methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_08.cc&method=setSymbolId&instance=0">boolean setSymbolId(long symbol_id);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=getSymbolId&instance=0">long getSymbolId() const;</a></pre>

  <li> declare symbol access methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_08.cc&method=setSymbol&instance=0">boolean setSymbol(const SearchSymbol& symbol);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_08.cc&method=getSymbol&instance=0">boolean getSymbol(SearchSymbol& output_symbol) const;</a></pre>

  <li> declare statistical model methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=setStatisticalModel&instance=0">boolean setStatisticalModel(StatisticalModel* model);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=getStatisticalModel&instance=0">StatisticalModel* getStatisticalModel() const;</a></pre>

  <li> declare symbol likelihood methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=setScore&instance=0">boolean setScore(float score);</a></pre>

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

  <li> declare search level methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=setSearchLevel&instance=0">boolean setSearchLevel(SearchLevel* level);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=getSearchLevel&instance=0">SearchLevel* getSearchLevel() const;</a></pre>

  <li> declare lexical tree methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=setLexicalTree&instance=0">boolean setLexicalTree(LexicalTree* lex_tree_a);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=getLexicalTree&instance=0">LexicalTree* getLexicalTree() const;</a></pre>

  <li> declare hypothesis path methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=addTrace&instance=0">boolean addTrace(Trace* trace, long timestamp, Trace*& ptr);</a></pre>

      <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=mergeTrace&instance=0">boolean mergeTrace(Trace* trace, long timestamp, Trace*& pt, long nsymbol_index, long nsymbol_orderr);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=removeTrace&instance=0">boolean removeTrace(Trace* trace);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=clearTraceList&instance=0">boolean clearTraceList();</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=addInstance&instance=0">boolean addInstance(Instance* instance, long timestamp, Instance*& ptr);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_09.cc&method=insertInstance&instance=0">boolean insertInstance(Instance* instance, long timestamp, Instance*& ptr);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=mergeInstance&instance=0">boolean mergeInstance(Instance* instance, long timestamp, Instance*& ptr, long nsymbol_index, long nsymbol_order);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=removeInstance&instance=0">boolean removeInstance(Instance* instance);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=clearInstanceList&instance=0">boolean clearInstanceList();</a></pre>

  <li> declare likelihood evaluation methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_07.cc&method=evaluateData&instance=0">float evaluateData(VectorFloat& data, long timestamp);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/SearchNode.h&method=isDummyNode&instance=0">boolean isDummyNode() const;</a></pre>

</ul>

<a name="private">
<b>private methods:</b>
<br><br>

<ul>
  
  <li> trace tracking methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=addWithViterbi&instance=0">boolean addWithViterbi(Trace* trace, Trace*& ptr);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=addWithBaumWelch&instance=0">boolean addWithBaumWelch(Trace* trace, Trace*& ptr);</a></pre>

  <li> instance tracking methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=addWithViterbi&instance=1">boolean addWithViterbi(Instance* instance, Instance*& ptr);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_09.cc&method=insertWithViterbi&instance=0">boolean insertWithViterbi(Instance* instance, Instance*& ptr);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/search/SearchNode/snod_06.cc&method=addWithBaumWelch&instance=1">boolean addWithBaumWelch(Instance* instance, Instance*& ptr);</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" -->
