Opened 14 years ago

Closed 14 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 constant

abfragen.

Der Aufruf in der proc memberpos aus redcgs.lib wuerde auch funktionieren, da die proc sehr allgemein gehalten ist.

Change History (1)

comment:1 Changed 14 years ago by hannes

Resolution: fixed
Status: newclosed

variables(..) returns ideal

Note: See TracTickets for help on using tickets.