From: <cd...@us...> - 2012-09-11 09:09:40
|
Revision: 10996 http://octave.svn.sourceforge.net/octave/?rev=10996&view=rev Author: cdf Date: 2012-09-11 09:09:31 +0000 (Tue, 11 Sep 2012) Log Message: ----------- vectorize unnecessarily loopy code Modified Paths: -------------- trunk/octave-forge/main/geometry/inst/polygons2d/distancePointPolyline.m Modified: trunk/octave-forge/main/geometry/inst/polygons2d/distancePointPolyline.m =================================================================== --- trunk/octave-forge/main/geometry/inst/polygons2d/distancePointPolyline.m 2012-09-10 13:18:55 UTC (rev 10995) +++ trunk/octave-forge/main/geometry/inst/polygons2d/distancePointPolyline.m 2012-09-11 09:09:31 UTC (rev 10996) @@ -1,5 +1,6 @@ ## Copyright (C) 2003-2011 David Legland <dav...@gr...> ## Copyright (C) 2012 Adapted to Octave by Juan Pablo Carbajal <car...@if...> +## Copyright (C) 2012 Carlo de Falco (Speed up by vectorization) ## All rights reserved. ## ## Redistribution and use in source and binary forms, with or without @@ -51,18 +52,23 @@ # allocate memory for result minDist = inf * ones(Np, 1); + + ## compute distance between current each point and all edges + dist = distancePointEdge(point, edges); + ## get the minimum distance + minDist = min(dist, [], 2); + + ## original loopy verion: # process each point - for p = 1:Np - # construct the set of edges - edges = [poly(1:end-1, :) poly(2:end, :)]; - - # compute distance between current each point and all edges - dist = distancePointEdge(point(p, :), edges); + # for p = 1:Np + # # construct the set of edges + # edges = [poly(1:end-1, :) poly(2:end, :)]; + # # compute distance between current each point and all edges + # dist = distancePointEdge(point(p, :), edges); + # # update distance if necessary + # minDist(p) = min(dist); + # end - # update distance if necessary - minDist(p) = min(dist); - end - # process output arguments if nargout<=1 varargout{1} = minDist; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |