LibBracket: Unterschied zwischen den Versionen
Aus LaborWiki
Sauron (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Thomas (Diskussion | Beiträge) (Änderung 16842 von Sauron (Diskussion) rückgängig gemacht.) |
||
Zeile 44: | Zeile 44: | ||
* http://github.com/schnittchen/partialmock | * http://github.com/schnittchen/partialmock | ||
Version vom 24. April 2011, 11:53 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
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>