2011-08-31 13 views
6

Sto cercando un sistema di biblioteca o computer algebra che aiuterà le operazioni di calcolo su polinomi sul ringper calcoli affini k-algebra?

F_2[x_1, ..., x_n]/<f^2 - f> 

dove F_2 è il campo finito 2-elemento e <f^2 - f> è l'ideale generato dagli elementi f^2 - f per tutti f in F_2[...]. (Penso/spero/sono abbastanza sicuro che questo sia l'anello algebrico booleano che usa xor come + e e come * [wikipedia]).

Per esempio,

x_1 = poly_xn 1 
x_2 = poly_xn 2 
x_1 * x_2 * x_1 -- returns "x_1 * x_2" 
x_1 + x_1 + x_2 -- returns "x_2" 

ho scritto codice per questo in Haskell, ma purtroppo la prestazione non è molto buona.

Nota: il titolo "affine k-algebra" deriva dall'algebra commutativa di Eisenbud con un libro di View Toward Algebraic Geometry p. 35; se c'è un nome migliore per favore modifica la domanda, grazie!

risposta

2

Ho fatto molto lavoro in questo settore nel corso degli anni e mi sono ritrovato a usare Sage come il mio sistema preferito [http://www.sagemath.org/]. È estremamente efficiente e ha un linguaggio naturale per schemi e altre strutture algebriche. Altri che ho usato e che mi piacciono sono OpenAxiom e Magma. Tendo ad evitare MathCad e Mathematica, poiché tendono ad avere un sacco se sovraccarico nel loro parser e forniscono un sacco di bloat relativo alle loro interfacce non correlate al calcolo dei calcoli.

Un esempio del supporto per schemi affini può essere visto a http://www.sagemath.org/doc/reference/sage/schemes/generic/affine_space.html?highlight=affine#sage.schemes.generic.affine_space