Learning by Doing: dimensioning units or geometric algebra?

Bill Baxter wbaxter at gmail.com
Tue Feb 3 14:09:36 PST 2009


On Wed, Feb 4, 2009 at 6:45 AM, Joel C. Salomon <joelcsalomon at gmail.com> wrote:
> Hello all,
>
> I'm a C programmer with some C++ experience ("C with Classes"+STL
> anyway; never did implement anything but the most trivial templates) and
> I'm looking to get stated with D. I figured a good way to do that would
> be to implement a template library, and it may as well be something I'll
> actually use. Here's what I'm thinking I could make:
>
> • a library for dimensional analysis, like boost::units, and/or

I always found this kind of thing boring, also I see it as kind of
useless overhead that I don't want in my calculations.  But it could
be a nice way to get your feet wet.

> • a set of classes for 2-dimensional Geometric Algebra (scalars,
> vectors, and pseudoscalars/imaginary numbers).

This would be very interesting.  The topic of GA did come up a few
weeks ago here.   From what I understand about GA, it's elegant from
the math point of view, but in terms of writing efficient code it
doesn't fare so well.  D can do a lot of stuff with ease at
compile-time that C++ couldn't even dream of, so it would be a great
showcase for D if someone could figure out how to make a GA lib that
rivals the performance of a classic mats & vecs approach.

I don't really know if it is possible.  Maybe the cost of the GA
abstractions cannot be automatically eliminated like that.  But if not
it would be interesting to know why.

> Should I start with D1 for now, or jump right in to D2?

D1 will give you the opportunity to build on more existing libraries.
D2 will give you the opportunity to use fancy new features that aren't
available in D1.  D2 will also likely break your code at some point as
the D2 language evolves.  D1 will not (should not anyway).

--bb


More information about the Digitalmars-d-learn mailing list