Subject: Re: [boost] Preview 3 of the Geometry Library
From: John Phillips (phillips_at_[hidden])
Date: 2008-10-21 16:08:38
Mathias Gaunard wrote:
> Apart from that, allowing multiple coordinate systems within a given
> space would be fairly useless, and in Euclidian space the Cartesian
> system is the best choice since it was made for algebra and computations.
> For example, points expressed in polar coordinates should automatically
> perform conversions from/to cartesian when using get.
I disagree with this.
The best choice of coordinate system for internal representation is
problem dependent. Imposing transformations to and from Cartesian
internally can cause both numeric stability problems and performance
Every coordinate system was created for algebra, calculus and
computations. Making the best choice of coordinates for a representation
can speed calculations by orders of magnitude, or even in some cases
make problems solvable that weren't in Cartesian coordinates (because of
a lack of an appropriate representation for the solution). This is a
huge deal in analytic calculations (See, for example the books by Morse
and Feshback, or the early editions of Arfken where chapters are
dedicated to finding and operating in the best coordinate system for the
job. Also see facilities for this work in Maple or Mathematica.), but it
is a sometimes under appreciated aspect of numeric calculation, as well.
This is a conceptually similar problem to the discussions about unit
systems from a couple of years ago. High accuracy and high performance
calculations can't afford to have hidden conversion costs in computation
and precision imposed on them. A well designed library should make such
hidden conversions possible for those who want them, while also not
making them mandatory for those who can't afford to pay for them.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk