Some text is in Italian...
Some text may be meaningful only for me


* spostare ParseGapOrderingToSingOrdering dentro ParseGapRingToSingRing

* decidere che cosa fare con RemovedNewline

* aggiungere la conversione del tipo 'res'.

# aggiungere le keywords dal sito http://orms.mfo.de/ in PackageInfo.g

controllare singular.gd , e la definizione dell'operazione GroebnerBasis

serve IndeterminateNumbers ?

<#Include SYSTEM "example.xml">
leggere /usr/local/gap_dev/4.0/pkg/gapdoc/doc/chap4.html 
e seguente.


dire che la fattorizzazione di x^128-x^112+x^80-x^64+x^48-x^16+1 richiede 14 minuti con Gap e meno di 
un secondo con Singular


*** Nell'interfaccia (codice) sarebbe utile fare:


* controllare SingularInterface (non  un bug, ma sarebbe pi carino
fare diversamente)
gap> SingularInterface( "option", "redSB", "");
#I  running SingularInterface( "option", "...", "" )...
#I  input 259: option( redSB );
#I  output 259: >
#I  input 260: string GAP_output = string ( GAP_ );;  # <-------------------------------
#I  output 260: // ** redefining GAP_output **
>
#I  input 261: GAP_Apostrophe();GAP_output;GAP_Apostrophe();
#I  output 261: '

'
>
#I  input 262: ;GAP_Done ();
#I  output 262: @
>
#I  done SingularInterface.
No output from Singular
""
gap>


* usare ReadAllLine ?

* Fornire i campi finiti tipo
ring r = (4,q), (x,y,z), (dp);
invece dell'attuale
ring r = (2,q), (x,y,z), (dp); minpoly = 1*q^2+1*q^1+1*q^0;
per una migliore performance.

If I define a ring of a finite but non prime field, I mean for instance
ring r = (4, q),(x),(dp);
which is the algorithm used to calculate the minpoly of that ring? (In
order to define the rings in that way, the minpoly should be the same as
in Gap, otherwise the ring must be defined as
ring r = (2, q),(x),(dp); minpoly ...;
where ... is a polynomial calculated by Gap.)


* gestire i messaggi di errore da singular

* ParseSingVectorToGapVector, in modo diretto, ed utilizzarlo anche per i moduli

* ParseSingRingToGapRing

* supporto per D.2.6.7 extendring , chiesto da Man Nguyen
<m.nguyen.van.minh@TUE.nl>

* Gestire il caso in cui viene chiemata ad esempio
SingularInterface("xyz", [ <ideale>, <modulo>], "def" );
ed <ideale>, <modulo> hanno BaseRing diversi; dare errore
Se invece hanno lo stesso BaseRing, allora non serve dare due volte il
comando "setring( GAP_ring );" a Singular".

* bug in ParseSingProcToGapFunction:

SingularInterface("groebner", [1], "ideal");
SingularInterface("string", "groebner", "proc");

* display Singular banner if appropriate



*** Nell'interfaccia (documentazione) sarebbe utile fare:

* citare l'esempio per David Joyner, nella mail intitolata "second part"

* documentare GapInterface e SingularCommand

* SingularType (forzabile con rec(...) )

* GBASIS pu diventare per default SINGULARGBASIS, togliendo un commento
nel codice

* dire quali campi sono supportati, e dire che con GF(non_primo)  pi
lento di quanto potrebbe

* fare la tabella dei data types

* dire quali caratteri sono riservati, le indeterminate sono x_nn




*** Quelli di Singular potrebbero fare:

* the singular people may be interested in
http://www.math.colostate.edu/~hulpke/gapproj/gapproj16.html


* per un anello di plural, serve una funzione che da le relazioni non commutative.
Si', c'e': ringlist.


* (Gia' scritto)
J. I. Farran Martin: told that there is a bug is
http://www.singular.uni-kl.de/DEMO_HTML/Examples/Coding/coding_example.html
"As far as a have checked, this example was executed with an old
 version of the package. You should change the line 
 > KLEIN=NSplaces(2,KLEIN);
 by the line 
 > KLEIN=NSplaces(1..3,KLEIN);
 which computes all the non-singular places of degrees given by 
 the intvec 1..3=1,2,3 (or the selected degrees, in general). 
 
 The example should now work by typing the commands in the same order. "


* Singular does not implement rational functions?


* un comando che fornisce, come stringa, il comando che "help" usa per
visualizzare l'help

* documentare "minpoly;"

* EliminationOrdering corrisponde ad un ordine di Singular?

* Per fare le basi di Groebner ho usato Magma, cha ha una funzione che da'
 polinomi
 g_i tale che h = g_1f_1+.... +g_tf_t, dove f_i sono i generatori
 dell'ideale,
 e h e' una funzione nell'ideale. Non ho trovato una tale funzione in
 Singular, ma
 forse non ho guardato bene.

* bug:

* with a "c:" too much

//!!! you have found a bug in singular. //!!! Please, email the following
 outut to singular@mathematik.uni-kl.de//!!!Singular Version:
ix86-Win2-0-4
 (2003042617)
 Bug Reportesd: could not get expanded executable form
 c:/cygwin/usr/local/Singular/2-0-4/ix86-Win/Singular
 occured at feResource.cc,452



* Note the Gap people are preparing a new web site, and there will be a
link to Singular, see the draft at
http://www.math.rwth-aachen.de/~Max.Neunhoeffer/WWW2/Overview/Capabilities/links.html


* Surely you know already http://www.bway.net/~lewis/calatex.html
http://www.bway.net/~lewis/fermat/FerTest.html
what is your opinion on
http://magma.maths.usyd.edu.au/users/allan/gb/


Factoring polynomials over finite fields
http://www.ams.org/journal-getitem?pii=S0025-5718-04-01691-6



*** Quelli di Gap potrebbero fare:

* polinomi non commutativi (tipo quelli di Plural)
G-algebras (or algebras of solvable type):
             K < x1,...,xn | xj xi = Cij xi xj + Dij >
 where the Cij are nonzero constants and Dij are polynomials in x1,...,xn;


* moduli (i quozienti, tipo quelli di Singular)

* estensioni trascendenti

* anelli quoziente

* servirebbe poter calcolare mp e pr nell'esempio seguente:

pol:=MinimalPolynomial(GF(5),PrimitiveRoot(GF(25)));
F:=AlgebraicExtension(GF(5), pol);
mp:= MinimalPolynomial( PrimeField(F), PrimitiveElement(F), 1 );
pr:= PrimitiveRoot(F);

* i moduli polinomiali appaiono come <additive magma>, sarebbe meglio 
qualcosa di pi esplicativo, come per il tipo "ideal"

*** Storia del package:

Ha iniziato Willem, qualche anno fa, (GroebnerBasis)

Ho continuato io, soprattutto estate 2003 (SingularInterface)

12/12/03 rilascio pubblico

marzo 2004 ringrazio Gema M. Diaz (gemadiaz@um.es) per il testing con
Windows

15/04/04 rilascio della nuova versione


*** richieste ricevute:


* Klaus Lux <klux@math.arizona.edu>

> Dear Klaus,
 > thank you for your mail. I would be glad if you send me more informations
 > about the hopf package, and about its method to handle the non-commuting
 > polynomials in Gap.
 Well,
 the package itself uses a standalone C-program for doing the actual
 Groebner basis calculation. the c-program is called Opal and was written
 by Keller. You should be able to find a mail in the GAP-archives by
 Craig Struble announcing the hopf package. However, my impression is
 that people stopped working on it. I am actually interested in
 noncommutative Groebner basis calculations. Ed Green from Virginia
 Tech, (the PhD. supervisor of both Keller and Struble) has written
 a nice survey article about noncommutative Groebner bases.
 Their applications are similar to the applications of commutative GBs.
 If you want to know more about implementarion details , i would have
 to do some research myself.......
 Best wishes,
 Klaus.
 P.S:
 I looked at the package files and here is what i found:
 in file hopf/gap/groebner.gd:

 DeclareOperation("GroebnerBasis", [IsFLMLOR, IsCollection]);


