octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem compiling __contourc__.cc


From: kahacjde
Subject: Re: Problem compiling __contourc__.cc
Date: Thu, 25 Oct 2007 02:00:00 -0700 (PDT)



Michael Goffioul-2 wrote:
> 
> On 10/25/07, kahacjde <address@hidden> wrote:
>> So, could you propose a patch here, otherwise I will look at this later
>> today.
> 
> Patch attached. Could you check I didn't screw up contourc functionality?
> 
> Michael.
> 
> Index: src/DLD-FUNCTIONS/__contourc__.cc
> ===================================================================
> RCS file: /cvs/octave/src/DLD-FUNCTIONS/__contourc__.cc,v
> retrieving revision 1.6
> diff -c -p -r1.6 __contourc__.cc
> *** src/DLD-FUNCTIONS/__contourc__.cc 19 Oct 2007 20:43:33 -0000      1.6
> --- src/DLD-FUNCTIONS/__contourc__.cc 25 Oct 2007 08:40:06 -0000
> *************** start_contour (double lvl, double x, dou
> *** 94,103 ****
>   static void
>   drawcn (const RowVector& X, const RowVector& Y, const Matrix& Z,
>       double lvl, int r, int c, double ct_x, double ct_y,
> !     uint start_edge, bool first, charMatrix& mark)
>   {
>     double px[4], py[4], pz[4], tmp;
> !   uint stop_edge, next_edge, pt[2];
>     int next_r, next_c;
>   
>     //get x, y, and z - lvl for current facet
> --- 94,103 ----
>   static void
>   drawcn (const RowVector& X, const RowVector& Y, const Matrix& Z,
>       double lvl, int r, int c, double ct_x, double ct_y,
> !     unsigned int start_edge, bool first, charMatrix& mark)
>   {
>     double px[4], py[4], pz[4], tmp;
> !   unsigned int stop_edge, next_edge, pt[2];
>     int next_r, next_c;
>   
>     //get x, y, and z - lvl for current facet
> *************** drawcn (const RowVector& X, const RowVec
> *** 127,134 ****
>     if (start_edge == 255)
>       {
>         // Find start edge.
> !       for (uint k = 0; k < 4; k++)
> !         if (static_cast<char> (pow(2, k)) & id)
>             start_edge = k;
>       }
>   
> --- 127,134 ----
>     if (start_edge == 255)
>       {
>         // Find start edge.
> !       for (unsigned int k = 0; k < 4; k++)
> !         if (static_cast<char> (1 << k) & id)
>             start_edge = k;
>       }
>   
> *************** drawcn (const RowVector& X, const RowVec
> *** 136,142 ****
>       return;
>   
>     // Decrease mark value of current facet for start edge.
> !   mark(r, c) -= static_cast<char> (pow(2, start_edge));
>   
>     // Next point (clockwise).
>     pt[0] = start_edge;
> --- 136,142 ----
>       return;
>   
>     // Decrease mark value of current facet for start edge.
> !   mark(r, c) -= static_cast<char> (1 << start_edge);
>   
>     // Next point (clockwise).
>     pt[0] = start_edge;
> *************** drawcn (const RowVector& X, const RowVec
> *** 159,172 ****
>       }
>   
>     // Find stop edge FIXME: control flow --> while.
> !   for (uint k = 1; k <= 4; k++)
>       {
>         if (start_edge == 0 || start_edge == 2)
>           stop_edge = (start_edge + k) % 4;
>         else
>           stop_edge = (start_edge - k) % 4;
>   
> !       if (static_cast<char> (pow(2, stop_edge)) & id)
>           break;
>       }
>   
> --- 159,172 ----
>       }
>   
>     // Find stop edge FIXME: control flow --> while.
> !   for (unsigned int k = 1; k <= 4; k++)
>       {
>         if (start_edge == 0 || start_edge == 2)
>           stop_edge = (start_edge + k) % 4;
>         else
>           stop_edge = (start_edge - k) % 4;
>   
> !       if (static_cast<char> (1 << stop_edge) & id)
>           break;
>       }
>   
> *************** drawcn (const RowVector& X, const RowVec
> *** 186,192 ****
>     add_point (ct_x, ct_y);
>   
>     // Decrease id value of current facet for start edge.
> !   mark(r, c) -= static_cast<char>(pow(2,stop_edge));
>   
>     // Find next facet.
>     next_c = c;
> --- 186,192 ----
>     add_point (ct_x, ct_y);
>   
>     // Decrease id value of current facet for start edge.
> !   mark(r, c) -= static_cast<char>(1 << stop_edge);
>   
>     // Find next facet.
>     next_c = c;
> *************** drawcn (const RowVector& X, const RowVec
> *** 214,233 ****
>   static void
>   mark_facets (const Matrix& Z, charMatrix& mark, double lvl)
>   {
> !   uint nr = mark.rows ();
> !   uint nc = mark.cols ();
>   
>     double f[4];
>   
> !   for (uint c = 0; c < nc; c++)
> !     for (uint r = 0; r < nr; r++)
>         {
>           f[0] = Z(r, c) - lvl;
>           f[1] = Z(r, c+1) - lvl;
>           f[3] = Z(r+1, c) - lvl;
>           f[2] = Z(r+1, c+1) - lvl;
>   
> !         for (uint i = 0; i < 4; i++)
>             if (fabs(f[i]) < DBL_EPSILON)
>               f[i] = DBL_EPSILON;
>   
> --- 214,233 ----
>   static void
>   mark_facets (const Matrix& Z, charMatrix& mark, double lvl)
>   {
> !   unsigned int nr = mark.rows ();
> !   unsigned int nc = mark.cols ();
>   
>     double f[4];
>   
> !   for (unsigned int c = 0; c < nc; c++)
> !     for (unsigned int r = 0; r < nr; r++)
>         {
>           f[0] = Z(r, c) - lvl;
>           f[1] = Z(r, c+1) - lvl;
>           f[3] = Z(r+1, c) - lvl;
>           f[2] = Z(r+1, c+1) - lvl;
>   
> !         for (unsigned int i = 0; i < 4; i++)
>             if (fabs(f[i]) < DBL_EPSILON)
>               f[i] = DBL_EPSILON;
>   
> *************** mark_facets (const Matrix& Z, charMatrix
> *** 238,252 ****
>         mark(r, c) += 8;
>         }
>   
> !   for (uint r = 0; r < nr; r++)
> !     for (uint c = 0; c < nc; c++)
>         {
>           f[0] = Z(r, c) - lvl;
>           f[1] = Z(r, c+1) - lvl;
>           f[3] = Z(r+1, c) - lvl;
>           f[2] = Z(r+1, c+1) - lvl;
>   
> !         for (uint i = 0; i < 4; i++)
>             if (fabs(f[i]) < DBL_EPSILON)
>               f[i] = DBL_EPSILON;
>   
> --- 238,252 ----
>         mark(r, c) += 8;
>         }
>   
> !   for (unsigned int r = 0; r < nr; r++)
> !     for (unsigned int c = 0; c < nc; c++)
>         {
>           f[0] = Z(r, c) - lvl;
>           f[1] = Z(r, c+1) - lvl;
>           f[3] = Z(r+1, c) - lvl;
>           f[2] = Z(r+1, c+1) - lvl;
>   
> !         for (unsigned int i = 0; i < 4; i++)
>             if (fabs(f[i]) < DBL_EPSILON)
>               f[i] = DBL_EPSILON;
>   
> *************** mark_facets (const Matrix& Z, charMatrix
> *** 261,268 ****
>   static void
>   cntr (const RowVector& X, const RowVector& Y, const Matrix& Z, double
> lvl)
>   {
> !   uint nr = Z.rows ();
> !   uint nc = Z.cols ();
>   
>     charMatrix mark (nr - 1, nc - 1, 0);
>   
> --- 261,268 ----
>   static void
>   cntr (const RowVector& X, const RowVector& Y, const Matrix& Z, double
> lvl)
>   {
> !   unsigned int nr = Z.rows ();
> !   unsigned int nc = Z.cols ();
>   
>     charMatrix mark (nr - 1, nc - 1, 0);
>   
> *************** cntr (const RowVector& X, const RowVecto
> *** 270,276 ****
>   
>     // Find contours that start at a domain edge.
>   
> !   for (uint c = 0; c < nc - 1; c++)
>       {
>         // Top.
>         if (mark(0, c) & 1)
> --- 270,276 ----
>   
>     // Find contours that start at a domain edge.
>   
> !   for (unsigned int c = 0; c < nc - 1; c++)
>       {
>         // Top.
>         if (mark(0, c) & 1)
> *************** cntr (const RowVector& X, const RowVecto
> *** 281,287 ****
>       drawcn (X, Y, Z, lvl, nr - 2, c, 0.0, 0.0, 2, true, mark);
>       }
>   
> !   for (uint r = 0; r < nr - 1; r++)
>       {
>         // Left.
>         if (mark(r, 0) & 8)
> --- 281,287 ----
>       drawcn (X, Y, Z, lvl, nr - 2, c, 0.0, 0.0, 2, true, mark);
>       }
>   
> !   for (unsigned int r = 0; r < nr - 1; r++)
>       {
>         // Left.
>         if (mark(r, 0) & 8)
> *************** cntr (const RowVector& X, const RowVecto
> *** 292,299 ****
>           drawcn (X, Y, Z, lvl, r, nc - 2, 0.0, 0.0, 1, true, mark);
>       }
>   
> !   for (uint r = 0; r < nr - 1; r++)
> !     for (uint c = 0; c < nc - 1; c++)
>         if (mark (r, c) > 0)
>           drawcn (X, Y, Z, lvl, r, c, 0.0, 0.0, 255, true, mark);
>   }
> --- 292,299 ----
>           drawcn (X, Y, Z, lvl, r, nc - 2, 0.0, 0.0, 1, true, mark);
>       }
>   
> !   for (unsigned int r = 0; r < nr - 1; r++)
> !     for (unsigned int c = 0; c < nc - 1; c++)
>         if (mark (r, c) > 0)
>           drawcn (X, Y, Z, lvl, r, c, 0.0, 0.0, 255, true, mark);
>   }
> 
> 

Thanks,
I will look at it later today.

Kai
-- 
View this message in context: 
http://www.nabble.com/Problem-compiling-__contourc__.cc-tf4689151.html#a13402661
Sent from the Octave - Maintainers mailing list archive at Nabble.com.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]