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

<!--#set var="isip_page_title" value="VectorComplexDouble" -->
<?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/math/vector/VectorComplexDouble/VectorComplexDouble.h">VectorComplexDouble</a> : public <a href="../MVector/index.html">MVector&lt;ComplexDouble, complexdouble&gt;</a></b>

<br><br>

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

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

#include &lt;VectorComplexDouble.h&gt;

VectorComplexDouble(long length = DEF_LENGTH, complexdouble value = DEF_VALUE);
VectorComplexDouble(const VectorComplexDouble& vector);
</pre>
</blockquote>

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

<blockquote>
<pre>
VectorComplexDouble val0(5);

complexdouble mean;
complexdouble variance;
val0.assign(L"1-1j, 2-2j, -3+3j, -4-4j, 5j");

mean = val0.mean();

if (mean != 3) {
  Error::handle(val0.name(), L"mean", Error::TEST, __FILE__, __LINE__);
  Integral::exit();
}

variance = val0.var();
</pre>
</blockquote>

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

The VectorComplexDouble class manages a vector of ComplexDouble
objects. It is derived from the <a
href="../MVector/index.html">MVector</a> class and inherits the
commonly used mathematical, logical, DSP and I/O methods from it.

<br><br>

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

<ul>
  <li> <a href="../MVector/index.html">MVector</a>
  <li> <a href="../VectorDouble/index.html">VectorDouble</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/math/vector/VectorComplexDouble/vcdbl_00.cc&constant=CLASS_NAME">static const String CLASS_NAME = L"VectorComplexDouble";</a></pre>
</ul>

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

<ul>
  <li> error code indicating VectorComplexDouble class general error:
       
       <pre><a href="/perl/ifc_document.pl?err=00023100">static const long ERR = 23100;</a></pre>
</ul>

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

<ul>
  <li> static memory manager:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/vcdbl_00.cc&static=mgr_d">static MemoryManager mgr_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/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=name">static const String& name();</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/vcdbl_02.cc&method=diagnose">static boolean diagnose(Integral::DEBUG debug_level);</a></pre>
       
  <li> debug methods:

       <pre>the setDebug method is inherited from the <a href="../MVector/index.html#public">MVector</a> template class</pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=debug">boolean debug(const unichar* message) const;</a></pre>

  <li> destructor/constructor(s):
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=destructor">~VectorComplexDouble();</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=default+constructor">VectorComplexDouble(long length = DEF_LENGTH, complexdouble value = DEF_VALUE );</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=copy+constructor">VectorComplexDouble(const VectorComplexDouble& vector);</a></pre>     

  <li> assign methods:

       <pre>these methods are inherited from the <a href="../MVector/index.html#public">MVector</a> class</pre>

  <li> operator= methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=operator%3D&instance=0">VectorComplexDouble& operator= (const VectorComplexDouble& vector);</a></pre>
       
   <li> i/o methods: the sofSize, readData and writeData methods are inherited from the <a href="../MVector/index.html#public">MVector</a> class
	
	<pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.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/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=write">boolean write(Sof& sof, long tag, const String& name = CLASS_NAME);</a></pre>
       
  <li> equality methods:

       <pre>these methods are inherited from the <a href="../MVector/index.html#public">MVector</a> class</pre>
       
  <li> memory management methods:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=new">static void* operator new(size_t size);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=new[]">static void* operator new[](size_t size);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=delete">static void operator delete(void* ptr);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=delete[]">static void operator delete[](void* ptr);</a></pre>  
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=setGrowSize">static boolean setGrowSize(long grow_size);</a></pre>  
</ul>
    
<a name="specific">
<b>class-specific public methods:</b>
<br><br>

<ul>
  <li> constructors:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=constructor&instance=0">VectorComplexDouble(const String& arg, unichar delim_a = DEF_DELIM);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=constructor&instance=1">VectorComplexDouble(const unichar* arg, unichar delim_a = DEF_DELIM);</a></pre>

  <li> operator overload methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=operator%3D&instance=1">VectorComplexDouble& operator= (complexdouble value);</a></pre>

  <li> extraction methods: these methods extract components of a complex number
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=real">boolean real(VectorDouble& arg) const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=imag">boolean imag(VectorDouble& arg) const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=mag">boolean mag(VectorDouble& arg) const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=angle">boolean angle(VectorDouble& arg) const;</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=conjugate&instance=0">boolean conjugate(const VectorComplexDouble& arg);</a></pre>
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/math/vector/VectorComplexDouble/VectorComplexDouble.h&method=conjugate&instance=1">boolean conjugate();</a></pre>
</ul>

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

<ul>
  <li> none.
</ul>

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

<ul>
  <li> This example shows how to write a VectorComplexDouble object
       to an Sof file:
       
<pre>
VectorComplexDouble val0(3);
val0.assign(L"5+5j, 7-7j, -9+9j");
String tmp_filename(L"foo");
Sof tmp_file;
tmp_file.open(tmp_filename, File::WRITE_ONLY, File::TEXT);
       
val0.write(tmp_file, (long)0);
tmp_file.close();</pre>

  <li> This example shows how to get the norm and dot product:
       
<pre>
VectorComplexDouble val0;
VectorComplexDouble val1(complexdouble(4, 3));
      
complexdouble dotp;
complexdouble norm_val;
       
val0.assign(L"+1+1j, 3+3j, 5j, +7-7j");
val1.assign(L"-2-2j, 4-4j, -6j, -3+3j");

dotp = val0.dotProduct(val1);
norm_val = val1.norm();</pre>
</ul>

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

<ul>
  <li> See <a href="../MVector/index.html#notes">MVector notes</a>.
</ul>

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