LibBracket: Unterschied zwischen den Versionen
Aus LaborWiki
Thomas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{ProjektInfoBox |status = alpha |description = Ein einfacher algebraischer Termumformer |username = Thomas |platform = ruby |download = http://gith…“) |
Thomas (Diskussion | Beiträge) (→Links) |
||
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 43: | Zeile 43: | ||
== Links == | == Links == | ||
* http://github.com/schnittchen/ | * http://github.com/schnittchen/LibBracket |
Aktuelle Version vom 24. April 2011, 11:54 Uhr
LibBracket Release status: unknown [box doku] | |
---|---|
Description | Ein einfacher algebraischer Termumformer |
Author(s) | Thomas |
Platform | ruby |
Download | http://github.com/schnittchen/LibBracket |
„alpha“ befindet sich nicht in der Liste (experimental, beta, stable, obsolete, unknown) zulässiger Werte für das Attribut „Pr status“.
LibBracket ist ein Framework zum Bau von algebraischen Termumformern eines bestimmten Musters.
Beispiel[Bearbeiten | Quelltext bearbeiten]
require 'libbracket' module Scalars include LibBracket::IsSummable include LibBracket::IsMultipliable end module Other include LibBracket::IsSummable include LibBracket::HasScalarsFromLeft include LibBracket::ScalarMultipleOperator include LibBracket::HasInnerProduct domain_of_inner_product Scalars end f = LibBracket::Atom.from_domain_and_name Scalars, "f" A = LibBracket::Atom.from_domain_and_name Other, "A" B = LibBracket::Atom.from_domain_and_name Other, "B" C = LibBracket::Atom.from_domain_and_name Other, "C" term = C.inner_product_with(A + Other::ZERO + B*f) puts term.to_s # => <C, (A + 0) + f*B> term2 = term.canonicalize_and_replace puts term2.to_s # => <A, C> + f*<B, C>