Opened 15 years ago
Closed 15 years ago
#91 closed bug (fixed)
Change return type of variables from list to ideal
Reported by: | gorzel | Owned by: | hannes |
---|---|---|---|
Priority: | major | Milestone: | Release 3-1-0 |
Component: | singular-kernel | Version: | 3-0-5 |
Keywords: | return type of variables | Cc: |
Description
Please, change the return type of the command variables
from list to ideal!
This command is not widely used yet, but
list is MAPLE-style and not SINGULAR-style
Der Befehl variables ist insgesamt nuetzlich, so etwas hat sich manch eine selbst als proc geschrieben.
Jedoch sollte der Rueckgabewert des Befehls variables vom Typ ideal
und nicht list sein !
Begruendungen:
- ideal ist der kanonische Datentyp, wenn es um eine Ansammlung
von Polynomen geht.
- list wird nur benoetigt, wenn man gemischte Datentypen zusammen-
fasse moechte
- mit dem Returntyp ideal kann variables sofort wieder als
Eingabe fuer weitere Befehle verwendet werden
- zum Datentyp ideal gibt es implizite Typkonversionen,
bei list stehen diese nicht zur Verfuegung stehen.
- list ist generell eine langsamere Datenstruktur als ideal.
Fuer ein konstantes Polynom waere dann der Returnwert
ein
ideal I=0;anstelle einer leeren Liste.
Bisher wird "variables" nur in redgs.lib und in bfun.lib verwendet:
gorzelc@linux:~/Desktop/Singular/3-1-0/LIB> grep "variables(" *.lib bfun.lib: if (size(variables(f)) == 0) // f is constant redcgs.lib: for (i=1;i<=ncols(J);i++){if (size(variables(J[i])) !=0){j++; K[j]= J[i];}} redcgs.lib: if ((memberpos(@A,variables(l[1][i]))[1]) or (memb erpos(@B,variables(l[1][i]))[1]))
Der Aufruf in bfun.lib wuerde genauso funktionieren, alternativ kann man auch einfach
if ( deg(f)<=0 ) // f is constantabfragen.
Der Aufruf in der proc memberpos aus redcgs.lib wuerde auch funktionieren, da die proc sehr allgemein gehalten ist.
variables(..) returns ideal