A simple tool to make easy learning geometric algebra

167 views
Skip to first unread message

Bernard Eyheramendy

unread,
Aug 25, 2009, 4:43:01 PM8/25/09
to Geometric_Algebra
I am novice with geometric algebra, and have developped a simple tool,
EVA, to help me understand this large matter.
This tool is working under a nice software named SpaceTime running on
windows, mac, windows ce ( pocket PC like ipaq, Dell axiom etc ..).
This tool is available for anybody interrested by geometric algebra. I
have checked my tool by comparing the computing results with Clical
(from P. Lounesto). I need your help to be sure that what I wrote on
my EVA site (beyhfr.free.fr) is correct, what parts need to be
enhanced, and suggestions to complete the tool. My goal with EVA is to
make available to anybody interrested, a simple software for learning
GA, with easy customisation (d'ont need C++ expertise) and user
friendly interface.
SpaceTime is a good substitute for Mapple or Mathematica if no
professional use. Programming language is easy to learn (about 1 day),
and allow symbolic computation (not possible with Clical,
GaViewver ...). OpenGl.support for 3D graphics need some enhancement
to get nice presentation as (specialized) GAViewver or CLUcalc,
A 30 day trial version is available at www.spacetime.us. EVA. and
EVA_tutorial may be downloaded from www.spacetime.us/graphbook/files.

Thanks for your help.

Bernard

Peeter Joot

unread,
Aug 25, 2009, 4:58:48 PM8/25/09
to Geometric_Algebra
How do the features of your tool compare to the (completely free) GASC
gaviewer program:

http://geometricalgebra.org/gaviewer_download.html

?

Peeter

Bernard Eyheramendy

unread,
Aug 26, 2009, 10:08:26 AM8/26/09
to Geometric_Algebra
Hi Peeter,

I know that commercial SpaceTime is a problem against free tools like
GAviewer. I have first looked at free Matlab like software as LME,
SCIlab, Octave and free Mapple like as Xcas, Maxima etc .. but all
these lack of some essential functionalies : OpenGl support, symbolic
computation, easy learning programming language.

With EVA, the syntax is more compact and easy to write like a = 3e1 +
2e23 - 3e13 + e123, compare with GAviewver 3*e1 + 2*e2 ^ e3 - 3*e1 ^
e3 + e1 ^ e2 ^ e3.
You may work with symbolic expression like 3e1 + sin(x)e2 - y, x and
y variables. Functions like nabla(x1*sin(x2)e1 + x2*cos(x1)e2, x)
etc ...
You may try your own functions (i.e. there is two inverse functions
cinverse(u) and more compact cinv(u), I d'ont yet make a choice).
Have a look at beyhfr.free.fr.
If you want to explore new paradigm like APS (algebra of physical
space) from W.E. Baylis, based on para-vectors, you may write your own
functions very easily and try it.
Symbolic computation is not possible with GAviewver, and programming
new functions (if allowed) need a lot of expertise (C++) and time.
EVA has a few hundred lines of code, and may be ported easily to other
plateform. EVA is a GA sandbox for basic learning but may be used also
for testing more advanced features.

Bernard

Peeter Joot

unread,
Aug 26, 2009, 10:32:39 AM8/26/09
to Geometric_Algebra
I honestly doubt that your differences in syntax will be enough to
gain you any sales. Geometric Algebra's obscurity is going to mean
that you have a minimal customer base to start with, even if you have
the value-add. Features like symbolic computation aren't too much
harder to graft on to existing GA engines (like that of gasandbox
which backs gaviewer). I did one myself last year for Euler angle
problem when working through the Cambridge GAFP book:

http://sites.google.com/site/peeterjoot/math2009/gasand_sym.tar.gz

... add to that the fact that you can also use gasandbox to render in
opengl (or use it in a scripted fashion with programmable functions) I
think you'll need a lot more feature to have something sale-able.

Peeter

selfstudier

unread,
Aug 26, 2009, 11:31:12 AM8/26/09
to Geometric_Algebra
Also take a look at http://www.clucalc.info/

Bernard Eyheramendy

unread,
Aug 26, 2009, 4:04:59 PM8/26/09
to Geometric_Algebra
Hi Peeter,

When I enter in GAviewver simple expession as a=x*e1 + y*e2 the return
is 0! You say that it is easy to implement symbolic computation but
no GA (free) tools implement this today. How you may work on real
physical problems using only constants? The programming of the nabla
function in EVA is about 10 lines, without any particular programming
skill.
Only Maple and Mathematica offers GA package with symbolic
computation, but the price of these is over the possibilities of a
majority of students (and mine). Actual Maple or Mathematica GApackage
syntax is ugly and adding new functions difficult.

Bernard

, On 26 août, 17:31, selfstudier <gezinorg...@gmail.com> wrote:
> Also take a look athttp://www.clucalc.info/
> > Peeter- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

Bernard Eyheramendy

unread,
Aug 26, 2009, 4:25:48 PM8/26/09
to Geometric_Algebra
Same problem with Clucalc as with GAviewver : not symbolic.

Bernard

On 26 août, 17:31, selfstudier <gezinorg...@gmail.com> wrote:
> Also take a look athttp://www.clucalc.info/

Peeter Joot

unread,
Aug 26, 2009, 4:58:12 PM8/26/09
to Geometric_Algebra
> When I enter in GAviewver simple expession as a=x*e1 + y*e2 the return
> is 0!  You say that it is easy to implement symbolic computation but
> no GA (free) tools implement this today. How you may work on real
> physical problems using only constants? The programming of the nabla
> function in EVA is about 10 lines, without any particular programming
> skill.

I suppose easy is relative. In a few evenings after work I coded up
my symbolic calculator (the source for which is freely available) and
was able to do what I wanted with it (which in my case was producing
latex output), with source code that isn't too hard to use IMO.
Example:

void sphericalPolar2()
{
// half angles.
term Ct("C_\\theta") ;
term St("S_\\theta") ;
term Cp("C_\\phi") ;
term Sp("S_\\phi") ;

symbol scalarRtheta( Ct, 1 ) ;
symbol bivectorRtheta( St, _bivector( e1 ^ e2 ) ) ;

symbol scalarRphi( Cp, 1 ) ;
symbol bivectorRphi( Sp, _bivector( e1 ^ e3 ) ) ;

sum Rtheta(scalarRtheta) ; Rtheta += bivectorRtheta ;
sum Rphi(scalarRphi) ; Rphi += bivectorRphi ;

sum R(Rphi) ; //R *= Rtheta ;
sum rR = R.reverse() ;

sum rcap(rR) ; rcap *= symbol( e1 ) ; rcap *= R ;
sum thetacap(rR) ; thetacap *= symbol( e2 ) ; thetacap *= R ;
sum phicap(rR) ; phicap *= symbol( e3 ) ; phicap *= R ;

printIt( "\\rcap &=", rcap ) ;
printIt( "\\thetacap &=", thetacap ) ;
printIt( "\\phicap &=", phicap ) ;
}

This particular example was the application of spherical polar rotors
to a set of unit vectors. As a hobbist math dabbler who can't justify
the expense of fancy stuff like mathematica or maple this did the job,
and as a programmer C++ code was user friendly enough. I recall that
there was a more fully functional GNU symbolic calculation package
available, but without GA support. The symbolic complexity reduction
problems are tricky (trig reductions, expression factorization, ...)
and to do this right one ought to build on something that can already
do the basics.

Peeter

Bernard Eyheramendy

unread,
Aug 26, 2009, 6:17:39 PM8/26/09
to Geometric_Algebra
Hi Peeter,

SpaceTime already do the basics. That is the reason for my choice.
And the 3D gaphics are great. This is not true for GNU symbolic
calculators like Maxima, Xcas and others.

Regards.

Bernard

Bernard Eyheramendy

unread,
Aug 27, 2009, 3:13:40 AM8/27/09
to Geometric_Algebra
Hi Peeter,

This particular example with EVA take few seconds :
R = gp( gp( cexp(-e12*phi/2), cexp(-e23*theta/2), cexp(-e12 psi/2))

with gp(a,b) = geometric product a b

Better spend time learning GA than debugging C++

Regards.

Bernard
Reply all
Reply to author
Forward
0 new messages