Results 1  10
of
91
Similarity Indexing: Algorithms and Performance
 In Proceedings SPIE Storage and Retrieval for Image and Video Databases
, 1996
"... Efficient indexing support is essential to allow contentbased image and video databases using similaritybased retrieval to scale to large databases (tens of thousands up to millions of images). In this paper, we take an in depth look at this problem. One of the major difficulties in solving this pr ..."
Abstract

Cited by 111 (1 self)
 Add to MetaCart
Efficient indexing support is essential to allow contentbased image and video databases using similaritybased retrieval to scale to large databases (tens of thousands up to millions of images). In this paper, we take an in depth look at this problem. One of the major difficulties in solving this problem is the high dimension (6100) of the feature vectors that are used to represent objects. We provide an overview of the work in computational geometry on this problem and highlight the results we found are most useful in practice, including the use of approximate nearest neighbor algorithms. We also present a variant of the optimized kd tree we call the VAM kd tree, and provide algorithms to create an optimized Rtree we call the VAMSplit Rtree. We found that the VAMSplit Rtree provided better overall performance than all competing structures we tested for main memory and secondary memory applications. We observed large improvements in performance relative to the R*tree and SStree in secondary memory applications, and modest improvements relative to optimized kd tree variants.Nearest Neighbor Search
On the design of CGAL a computational geometry algorithms library
 Softw. – Pract. Exp
, 1998
"... CGAL is a Computational Geometry Algorithms Library written in C++, which is being developed by research groups in Europe and Israel. The goal is to make the large body of geometric algorithms developed in the field of computational geometry available for industrial application. We discuss the major ..."
Abstract

Cited by 90 (15 self)
 Add to MetaCart
CGAL is a Computational Geometry Algorithms Library written in C++, which is being developed by research groups in Europe and Israel. The goal is to make the large body of geometric algorithms developed in the field of computational geometry available for industrial application. We discuss the major design goals for CGAL, which are correctness, flexibility, easeofuse, efficiency, and robustness, and present our approach to reach these goals. Generic programming using templates in C++ plays a central role in the architecture of CGAL. We give a short introduction to generic programming in C++, compare it to the objectoriented programming paradigm, and present examples where both paradigms are used effectively in CGAL. Moreover, we give an overview of the current structure of the CGALlibrary and consider software engineering aspects in the CGALproject. Copyright c ○ 1999 John Wiley & Sons, Ltd. KEY WORDS: computational geometry; software library; C++; generic programming;
Using Generic Programming for Designing a Data Structure for Polyhedral Surfaces
 Comput. Geom. Theory Appl
, 1999
"... Appeared in Computational Geometry  Theory and Applications 13, 1999, 6590. Software design solutions are presented for combinatorial data structures, such as polyhedral surfaces and planar maps, tailored for program libraries in computational geometry. Design issues considered are flexibility, ..."
Abstract

Cited by 47 (6 self)
 Add to MetaCart
Appeared in Computational Geometry  Theory and Applications 13, 1999, 6590. Software design solutions are presented for combinatorial data structures, such as polyhedral surfaces and planar maps, tailored for program libraries in computational geometry. Design issues considered are flexibility, time and space efficiency, and easeofuse. We focus on topological aspects of polyhedral surfaces and evaluate edgebased representations with respect to our design goals. A design for polyhedral surfaces in a halfedge data structure is developed following the generic programming paradigm known from the Standard Template Library STL for C++. Connections are shown to planar maps and facebased structures. Key words: Library design; Generic programming; Combinatorial data structure; Polyhedral surface; Halfedge data structure 1 Introduction Combinatorial structures, such as planar maps, are fundamental in computational geometry. In order to be useful in practice, a solid library for compu...
Bamboo  A Portable System for Dynamically Extensible, Realtime, Networked, Virtual Environments
 APPEARS IN THE PROCEEDINGS FOR THE 1998 IEEE VIRTUAL REALITY ANNUAL INTERNATIONAL SYMPOSIUM (VRAIS'98), HELD MARCH 1418, 1998 IN ATLANTA, GEORGIA.
, 1998
"... Bamboo is a portable system supporting realtime, networked, virtual environments. Unlike previous efforts, this design focuses on the ability for the system to dynamically configure itself without explicit user interaction, allowing applications to take on new functionality after execution. In part ..."
Abstract

Cited by 45 (3 self)
 Add to MetaCart
Bamboo is a portable system supporting realtime, networked, virtual environments. Unlike previous efforts, this design focuses on the ability for the system to dynamically configure itself without explicit user interaction, allowing applications to take on new functionality after execution. In particular, this framework facilitates the discovery of virtual environments on the network at runtime. Fundamentally, Bamboo offers a compatible set of mechanisms needed for a wide variety of realtime, networked applications. Also included is a particular combination of these mechanisms supporting a dynamically extensible runtime environment. This paper serves as a general introduction to Bamboo. It describes the system's architecture, implementation, and future directions. It also shows how the system can facilitate the rapid development of robust applications by promoting code reuse via communitywide exchange.
The Design and Implementation of Planar Maps in CGAL
 Special Issue, selected papers of the Workshop on Algorithm Engineering (WAE
, 1999
"... this paper has been supported in part by ESPRIT IV LTR Projects No. 21957 (CGAL) and No. 28155 (GALIA), by the USAIsrael Binational Science Foundation, by The Israel Science Foundation founded by the Israel Academy of Sciences and Humanities (Center for Geometric Computing and its Applications), by ..."
Abstract

Cited by 39 (17 self)
 Add to MetaCart
this paper has been supported in part by ESPRIT IV LTR Projects No. 21957 (CGAL) and No. 28155 (GALIA), by the USAIsrael Binational Science Foundation, by The Israel Science Foundation founded by the Israel Academy of Sciences and Humanities (Center for Geometric Computing and its Applications), by a FrancoIsraeli research grant "factory of the future" (monitored by AFIRST/France and The Israeli Ministry of Science), and by the Hermann Minkowski  Minerva Center for Geometry at Tel Aviv University
Introspective Sorting and Selection Algorithms
 Software Practice and Experience
, 1997
"... Quicksort is the preferred inplace sorting algorithm in many contexts, since its average computing time on uniformly distributed inputs is \Theta(N log N) and it is in fact faster than most other sorting algorithms on most inputs. Its drawback is that its worstcase time bound is \Theta(N ). Previo ..."
Abstract

Cited by 39 (1 self)
 Add to MetaCart
Quicksort is the preferred inplace sorting algorithm in many contexts, since its average computing time on uniformly distributed inputs is \Theta(N log N) and it is in fact faster than most other sorting algorithms on most inputs. Its drawback is that its worstcase time bound is \Theta(N ). Previous attempts to protect against the worst case by improving the way quicksort chooses pivot elements for partitioning have increased the average computing time too muchone might as well use heapsort, which has a \Theta(N log N) worstcase time bound but is on the average 2 to 5 times slower than quicksort. A similar dilemma exists with selection algorithms (for finding the ith largest element) based on partitioning. This paper describes a simple solution to this dilemma: limit the depth of partitioning, and for subproblems that exceed the limit switch to another algorithm with a better worstcase bound. Using heapsort as the "stopper" yields a sorting algorithm that is just as fast as quicksort in the average case but also has an \Theta(N log N) worst case time bound. For selection, a hybrid of Hoare's find algorithm, which is linear on average but quadratic in the worst case, and the BlumFloydPrattRivestTarjan algorithm is as fast as Hoare's algorithm in practice, yet has a linear worstcase time bound. Also discussed are issues of implementing the new algorithms as generic algorithms and accurately measuring their performance in the framework of the C++ Standard Template Library.
Test Oracles
, 2001
"... All software testing methods depend on the availability of an oracle, that is, some method for checking whether the system under test has behaved correctly on a particular execution. An ideal oracle would provide an unerring pass/fail judgment for any possible program execution, judged against a ..."
Abstract

Cited by 32 (0 self)
 Add to MetaCart
All software testing methods depend on the availability of an oracle, that is, some method for checking whether the system under test has behaved correctly on a particular execution. An ideal oracle would provide an unerring pass/fail judgment for any possible program execution, judged against a natural specification of intended behavior. Practical approaches must make compromises to balance tradeoffs and provide useful capabilities. This report surveys proposed approaches to the oracle problem that are general in the sense that they require neither precomputed input/output pairs nor a previous version of the system under test. The survey is not encyclopedic, but discusses representative examples of the main approaches and tactics for solving common problems. Partially supported by the Italian National Research Council (CNR). This work has also been supported by the Defense Advanced Research Projects Agency and Rome Laboratory, Air Force Materiel Command, USAF, under agreement number F306029720034. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation thereon. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the Defense Advanced Research Projects Agency, Rome Laboratory, or the U.S. Government. 1 Contents 1
Designing a Data Structure for Polyhedral Surfaces
 In Proc. 14th Annu. ACM Sympos. Comput. Geom
, 1998
"... Design solutions for a program library are presented for combinatorial data structures in computational geometry, such as planar maps and polyhedral surfaces. Design issues considered are genericity, flexibility, time and space efficiency, and easeofuse. We focus on topological aspects of polyhedr ..."
Abstract

Cited by 31 (2 self)
 Add to MetaCart
Design solutions for a program library are presented for combinatorial data structures in computational geometry, such as planar maps and polyhedral surfaces. Design issues considered are genericity, flexibility, time and space efficiency, and easeofuse. We focus on topological aspects of polyhedral surfaces. Edgebased representations for polyhedrons are evaluated with respect to the design goals. A design for polyhedral surfaces in a halfedge data structure is developed following the generic programming paradigm known from the Standard Template Library STL for C++. Connections are shown to planar maps and facebased structures managing holes in facets. 1 Introduction Combinatorial structures, such as planar maps, are fundamental in computational geometry. In order to use computational geometry in practice, a solid library must provide generic and flexible solutions as one of its fundamental cornerstones. Other design criteria are time and space efficiency. Easeofuse is necessar...
FOXBOX: A System for Manipulating Symbolic Objects in Black Box Representation
, 1998
"... The FOXBOX system puts in practice the black box representation of symbolic objects and provides algorithms for performing the symbolic calculus with such representations. Black box objects are stored as functions. For instance: a black box polynomial is a procedure that takes values for the variabl ..."
Abstract

Cited by 29 (12 self)
 Add to MetaCart
The FOXBOX system puts in practice the black box representation of symbolic objects and provides algorithms for performing the symbolic calculus with such representations. Black box objects are stored as functions. For instance: a black box polynomial is a procedure that takes values for the variables as input and evaluates the polynomial at that given point. FOXBOX can compute the greatest common divisor and factorize polynomials in black box representation, producing as output new black boxes. It also can compute the standard sparse distributed representation of a black box polynomial, for example, one which was computed for an irreducible factor. We establish that the black box representation of objects can push the size of symbolic expressions far beyond what standard data structures could handle before. Furthermore, FOXBOX demonstrates the generic program design methodology. The FOXBOX system is written in C++. C++ template arguments provide for abstract domain types. Currently, F...