 # Boost :

From: Michael Walter (michael.walter_at_[hidden])
Date: 2004-11-07 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> 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,
> >> point-point 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