<p>The function returns the number of real roots found. The roots are stored
to <code>root</code> array, which is padded with zeros if there is only one root.</p>
+
+<hr><h3><a name="decl_cvSolvePoly">SolvePoly</a></h3>
+<p class="Blurb">Finds real and complex roots of a polynomial equation with
+real coefficients</p>
+<pre>
+void cvSolvePoly(const CvMat* coeffs, CvMat *roots,
+ int maxiter = 10, int fig = 10);
+</pre><p><dl>
+<dt>coeffs<dd>The (degree + 1)-length array of equation coefficients (CV_32FC1 or CV_64FC1).
+<dt>roots<dd>The degree-length output array of real or complex roots (CV_32FC2 or CV_64FC2).
+<dt>maxiter<dd>The maximum number of iterations.
+<dt>fig<dd>The required figures of precision required.
+</dl><p>
+The function <code>cvSolvePoly</code> finds all real and complex roots of any
+degree polynomial with real coefficients.
+
+
<hr><h2><a name="cxcore_arrays_rng">Random Number Generation</a></h2>
<hr><h3><a name="decl_cvRNG">RNG</a></h3>
<hr><h3><a name="decl_cvSeqPush">SeqPush</a></h3>
<p class="Blurb">Adds element to sequence end</p>
<pre>
-char* cvSeqPush( CvSeq* seq, void* element=NULL );
+schar* cvSeqPush( CvSeq* seq, void* element=NULL );
</pre><p><dl>
<dt>seq<dd>Sequence.
<dt>element<dd>Added element.
<hr><h3><a name="decl_cvSeqPushFront">SeqPushFront</a></h3>
<p class="Blurb">Adds element to sequence beginning</p>
<pre>
-char* cvSeqPushFront( CvSeq* seq, void* element=NULL );
+schar* cvSeqPushFront( CvSeq* seq, void* element=NULL );
</pre><p><dl>
<dt>seq<dd>Sequence.
<dt>element<dd>Added element.
<hr><h3><a name="decl_cvSeqInsert">SeqInsert</a></h3>
<p class="Blurb">Inserts element in sequence middle</p>
<pre>
-char* cvSeqInsert( CvSeq* seq, int before_index, void* element=NULL );
+schar* cvSeqInsert( CvSeq* seq, int before_index, void* element=NULL );
</pre><p><dl>
<dt>seq<dd>Sequence.
<dt>before_index<dd>Index before which the element is inserted. Inserting before 0 (the minimal allowed value
constructed with <code>CV_RGB</code> macro or <code>cvScalar</code> function)
for color images and brightness for grayscale images.</p><p>
If a drawn figure is partially or completely outside the image, it is clipped.
-For color images the order channel is: <font color=blue>B</font>lue <font color=green>G</font>reen <font color=red>R</font>ed ...
+For color images the order channel is: <font color=blue>B</font>lue <font color=green>G</font>reen <font color=red>R</font>ed ...
If one needs a different channel order, it is possible to construct color
via <code>cvScalar</code> with the particular channel order, or
convert the image before and/or after drawing in it with
CvScalar color_tab[MAX_CLUSTERS];
IplImage* img = cvCreateImage( cvSize( 500, 500 ), 8, 3 );
CvRNG rng = cvRNG(0xffffffff);
-
+
color_tab[0] = CV_RGB(255,0,0);
color_tab[1] = CV_RGB(0,255,0);
color_tab[2] = CV_RGB(100,100,255);
<tr>
<td width="25%"><a href="#decl_cvScaleAdd">ScaleAdd</a></td>
<td width="25%"><a href="#decl_cvSetAdd">SetAdd</a></td>
-<td width="25%"><a href="#decl_cvSplit">Split</a></td>
+<td width="25%"><a href="#decl_cvSolvePoly">SolvePoly</a></td>
</tr>
<tr>
<td width="25%"><a href="#decl_cvSeqElemIdx">SeqElemIdx</a></td>
<tr>
<td width="25%"><a href="#decl_cvSeqSearch">SeqSearch</a></td>
<td width="25%"><a href="#decl_cvSetSeqBlockSize">SetSeqBlockSize</a></td>
+<td width="25%"><a href="#decl_cvSplit">Split</a></td>
<td width="25%%"></td>
</tr>
</table>