Section: New Results
A new major release of cgal , version 3.4, will be available at the beginning of 2009. This release contains the following new package implemented by Geometrica :
3D Spherical Kernel, by Pedro Machado Manhães de Castro and Monique Teillaud. This package is an extension of the linear CGAL Kernel. It offers functionalities on spheres, circles, and circular arcs in 3D.
Also, already existing packages have been enriched:
The Kernel has a new class for circles in 3D, and attached functionalities, by Pedro Machado Manhães de Castro and Monique Teillaud. Also, a few more computations of intersections were added.
The 2D Circular Kernel now offers several new global functions and more computations of intersections. Pedro Machado Manhães de Castro is now a co-author of the package with Sylvain Pion and Monique Teillaud.
Principal Component Analysis has been enriched so as to fit (in the least squares sense) most objects from the 2D and 3D kernel objects (segments, balls, spheres, iso cuboids and rectangles, tetrahedra, triangles).
It also contains new packages implemented by our cgal partners and improvements to some existing packages, the detailed list of which can be found on the cgal web site. Major general enhancements include the switch to CMake as the building and installing tool instead of our own scripts, and a new portable graphical framework based on Qt4's GraphicsView.
Two courses devoted to the use of cgal for meshing and for computer graphics have been organized. Pierre Alliez, Efi Fogel, and Andreas Fabri organized a course at SIGGRAPH which gathered 150 attendees with a very positive feedback as the reviewers recommended this course to be offered again  . Mariette Yvinec presented a course at Meshing Roundtable  on Delaunay refinement and filtering for mesh generation.
In addition, Sylvain Pion and Andreas Fabri presented cgal at Google, Mountain View, CA, in the Google Tech Talks series, a video of which is available at http://fr.youtube.com/watch?v=3DLfkWWw_Tg .
FPG: A code generator for fast and certified geometric predicates
We present  a general purpose code analyzer and generator for filtered predicates, which are critical for geometric algorithms. While there already exist such code generators, our contribution is to generate almost static filters , a type of filter which could not be generated previously. The generated and safe filtered predicates are almost as fast as their inexact floating point counterparts, in most cases. The tool is also able to parse code closer to the original cgal C++ code of the predicates, and is able to handle some loops and varying degrees of the input variables.
Standardization of interval arithmetic
Participant : Sylvain Pion.
In collaboration with Guillaume Melquiond ( Proval project-team). This work is linked to the subject of the internship of Jihun Yu.
Geometric computations are very sensitive to numerical roundoff errors. There are efficient ways to solve this problem like static filters, but there is also a more general approach using a well-known tool which is interval arithmetic. Since the latter solution is more general and easier to use from a programming point of view, we are pushing for its standardization in the hope to get better support from hardware and compilers in the long term.
In the past years, we have worked on a proposal for standardization of interval arithmetic in C++. This year, a new standardization effort has started as IEEE-1788 to provide a language-independant standard for interval arithmetic, similar in spirit to the IEEE-754 standard for floating-point. This standard would serve as a base for implementations in various languages such as Fortran, Matlab, C++...
In order to get more insight at what could best be done to improve the situation for interval arithmetic support, we have also worked on an implementation of our proposal based on Boost.Interval, using MPFR and CRLIBM as basic building blocks.
This year, we have also submitted a proposal for addition to the C++0x language to support basic floating-point operations with directed rounding-mode. We think that this set of operations is as fundamental as the basic addition of floating-point variables as is done now, and that they deserve the same special compiler support. Compiler knowledge of the rounding modes in particular is key to efficient support of interval arithmetic. Our proposal is described in  .