Artifact 9b1053e7a0a18e0fa7790770e1e3182435aaaabff23f774cb6a1c86250df7d8b:
- Executable file
r37/packages/excalc/vecanlys.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1178) [annotate] [blame] [check-ins using] [more...]
- Executable file
r38/packages/excalc/vecanlys.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1178) [annotate] [blame] [check-ins using]
module vecanlys; %author: Eberhard Schruefer; symbolic procedure basis u; cofram(for each j in u collect cdr j,nil); rlistat '(basis); symbolic procedure simpgrad u; simp!*('d . u); put('grad,'simpfn,'simpgrad); symbolic procedure simpcurl u; simp!* list('hodge,'d . u); put('curl,'simpfn,'simpcurl); symbolic procedure simpdiv u; simp!* list('hodge,list('d,'hodge . u)); put('div,'simpfn,'simpdiv); newtok '((!. !* !.) crossprod); infix crossprod; symbolic procedure simpcrossprod u; simp!* list('hodge,'wedge . u); put('crossprod,'simpfn,'simpcrossprod); symbolic procedure simpdotprod u; simp!* list('hodge,list('wedge,car u,list('hodge,cadr u))); put('cons,'simpfn,'simpdotprod); symbolic procedure hodge3dpri u; %converts the form notation to vector notation for output; if caar u eq 'd then if eqcar(cadar u,'hodge) then maprin('div . cdadar u) else maprin('curl . cdar u) else if caar u eq 'wedge then if eqcar(cadar u,'hodge) then inprint('cons,0,cdadar u) else inprint('crossprod,0,cdar u); endmodule; end;