[geos-devel] Current project status

Yury A. Bychkov ybychkov at direct.ca
Mon Nov 25 00:17:06 EST 2002


Slight error. You didn't look far enough in my results. 7120 ms was for the
original version. The version that is in CVS now (before your inlining) has "n
Pts: 256000  Executed in   4276 ms".

Yury


----- Original Message -----
From: "Norman Vine" <nhv at cape.com>
To: "Norman Vine" <nhv at cape.com>; "GEOS Development List"
<geos-devel at geos.refractions.net>
Sent: Sunday, November 24, 2002 8:53 PM
Subject: Re: [geos-devel] Current project status


> FYI
>
> To days CVS code with following classes inlined
> Coordinate, CoordinateList, Envelope,
> RobustCGAlgorithms, RobustLineIntersector
>
> compiled with
> -O3 -fomit-frame-pointer
>
> and tweak below
>
> (PIII 733)
>
>  Pts: 1000  Executed in     20 ms.
>  Pts: 2000  Executed in     40 ms.
>  Pts: 4000  Executed in     70 ms.
>  Pts: 8000  Executed in    160 ms.
>  Pts: 16000  Executed in    351 ms.
>  Pts: 32000  Executed in    661 ms.
>  Pts: 64000  Executed in   1302 ms.
>  Pts: 128000  Executed in   2593 ms.
>  Pts: 256000  Executed in   5267 ms.
>
> Note Yury reported
>  n Pts: 256000  Executed in   7120 ms.
> on a (P4-2.53):
>
> Norman
>
> // below I am assuming this means
> //  "is on line segment"  between getAt(i) and getAt(i-1)
>
> bool RobustCGAlgorithms::isOnLine(Coordinate p,CoordinateList pt) {
>  for(int i=1;i<pt.getSize();i++) {
>   if( pt.inRange(p,i-1,i) ) {
>    lineIntersector->computeIntersection(p,pt.getAt(i-1),pt.getAt(i));
>    if (lineIntersector->hasIntersection()) {
>     return true;
>    }
>   }
>  }
>  return false;
> }
>
>
> class CoordinateList
>
> public
>
>  bool inXrange( double x, int idx1, int idx2) {
>   if( x >= (*vect)[idx1].x )
>    return x <= (*vect)[idx2].x;
>   else if( x <= (*vect)[idx1].x )
>    return x >= (*vect)[idx2].x;
>   return false;
>  }
>
>  bool inYrange( double y, int idx1, int idx2) {
>   if( y >= (*vect)[idx1].y )
>    return y <= (*vect)[idx2].y;
>   else if( y <= (*vect)[idx1].y )
>    return y >= (*vect)[idx2].y;
>   return false;
>  }
>
>  bool inRange( Coordinate &pt, int idx1, int idx2) {
>   return( inXrange(pt.x,idx1,idx2) && inYrange(pt.y,idx1,idx2) );
>  }
>
>
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel
>
>





More information about the geos-devel mailing list