[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