{"title":"两个计算几何库:LEDA和CGAL","authors":"Lutz Kettner, S. Näher","doi":"10.1201/9781420035315.ch65","DOIUrl":null,"url":null,"abstract":"Over the past decades, two major software libraries that support a wide range of geometric computing have been developed: Leda, the Library of Efficient Data Types and Algorithms, and Cgal, the Computational Geometry Algorithms Library. We start with an introduction of common aspects of both libraries and major differences. We continue with sections that describe each library in detail. Both libraries are written in C++. Leda is based on the object-oriented paradigm and Cgal is based on the generic programming paradigm. They provide a collection of flexible, efficient, and correct software components for computational geometry. Users should be able to easily include existing functionality into their programs. Additionally, both libraries have been designed to serve as platforms for the implementation of new algorithms. Correctness is of crucial importance for a library, even more so in the case of geometric algorithms where correctness is harder to achieve than in other areas of software construction. Two well-known reasons are the exact arithmetic assumption and the nondegeneracy assumption that are often used in geometric algorithms. However, both assumptions usually do not hold: floating point arithmetic is not exact and inputs are frequently degenerate. See Chapter 45 for details.","PeriodicalId":156768,"journal":{"name":"Handbook of Discrete and Computational Geometry, 2nd Ed.","volume":"160 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"30","resultStr":"{\"title\":\"Two computational geometry libraries: LEDA and CGAL\",\"authors\":\"Lutz Kettner, S. Näher\",\"doi\":\"10.1201/9781420035315.ch65\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Over the past decades, two major software libraries that support a wide range of geometric computing have been developed: Leda, the Library of Efficient Data Types and Algorithms, and Cgal, the Computational Geometry Algorithms Library. We start with an introduction of common aspects of both libraries and major differences. We continue with sections that describe each library in detail. Both libraries are written in C++. Leda is based on the object-oriented paradigm and Cgal is based on the generic programming paradigm. They provide a collection of flexible, efficient, and correct software components for computational geometry. Users should be able to easily include existing functionality into their programs. Additionally, both libraries have been designed to serve as platforms for the implementation of new algorithms. Correctness is of crucial importance for a library, even more so in the case of geometric algorithms where correctness is harder to achieve than in other areas of software construction. Two well-known reasons are the exact arithmetic assumption and the nondegeneracy assumption that are often used in geometric algorithms. However, both assumptions usually do not hold: floating point arithmetic is not exact and inputs are frequently degenerate. See Chapter 45 for details.\",\"PeriodicalId\":156768,\"journal\":{\"name\":\"Handbook of Discrete and Computational Geometry, 2nd Ed.\",\"volume\":\"160 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2004-04-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"30\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Handbook of Discrete and Computational Geometry, 2nd Ed.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1201/9781420035315.ch65\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Handbook of Discrete and Computational Geometry, 2nd Ed.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1201/9781420035315.ch65","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Two computational geometry libraries: LEDA and CGAL
Over the past decades, two major software libraries that support a wide range of geometric computing have been developed: Leda, the Library of Efficient Data Types and Algorithms, and Cgal, the Computational Geometry Algorithms Library. We start with an introduction of common aspects of both libraries and major differences. We continue with sections that describe each library in detail. Both libraries are written in C++. Leda is based on the object-oriented paradigm and Cgal is based on the generic programming paradigm. They provide a collection of flexible, efficient, and correct software components for computational geometry. Users should be able to easily include existing functionality into their programs. Additionally, both libraries have been designed to serve as platforms for the implementation of new algorithms. Correctness is of crucial importance for a library, even more so in the case of geometric algorithms where correctness is harder to achieve than in other areas of software construction. Two well-known reasons are the exact arithmetic assumption and the nondegeneracy assumption that are often used in geometric algorithms. However, both assumptions usually do not hold: floating point arithmetic is not exact and inputs are frequently degenerate. See Chapter 45 for details.