
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 problems. 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. John Phillips