
Boost : 
From: Michael Walter (michael.walter_at_[hidden])
Date: 20041107 03:52:01
On Sun, 7 Nov 2004 00:26:26 +0000, Valentin Samko <boost_at_[hidden]> wrote:
> MW> The Euclidean space is E^3, the vector space is R^3.
> MW> Please see: http://www.ma.umist.ac.uk/kd/curves/node3.html
> MW> Note also: "Not all books make this distinction so you need to be
> MW> prepared to encounter the unstated identification E^3 = R^n"
> MW> Mathworld is using this _unstated_ _identification_; it is imprecise at least.
>
> It's not just Mathworld, it's thousands of books/articles. In any
> case, don't we assume, the gui library will use R^2 space?
Most of the books/articles I have seen so far regard points as
something different than vectors. It is even the way it's taught in
High School ;)
Usually you will read something like "a point can be
specified/represented by a vector" (identification E^3=R^3).
Everything else uses abovementioned identification, which, when
unstatedly used, is at least imprecise.
> >> In C++ sence  yes, it's a different point. In mathematical sense,
> >> pointpoint depends on how this operation is defined in your
> >> particular space, and in Euclidean space, the result of this
> >> operations is the same as difference of corresponding vectors.
> MW> Yes. But the result is a *vector*. IOW, the difference between 2
> MW> points is a mapping from two points in Euclidean space to a vector in
> MW> a vector space:
> MW> difference :: E^n x E^n > R^n
> I just do not get this. Why would you have a difference between two
> points in E^n defined as a point in R^n?
Please read what I wrote: ".. to a vector in a vector space.". R^n is
a *vector* space, hence the difference between two points in E^n is a
*vector* in R^n.
> MW> difference :: E^n x E^n > R^n
This is analogue to:
vector<n> difference(point<n>, point<n>);
in C++ (the point being that it is not a "C++ sense" thing, but that
it naturally occurs like this in C++ because it represents the
mathematical idea behind it).
Now, you can state the identification between points and vectors: E^n = R^n
Again, in C++:
typedef vector<n> point<n>;
Cheers,
Michael
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk