[SCM] an open source computer algebra system branch, cleanedupstream, updated. 6125e540ca6d66c307958938a9d53b245507c323

Bernhard R. Link brlink at debian.org
Tue Apr 24 15:54:11 UTC 2012


The following commit has been merged in the cleanedupstream branch:
commit 89448ee77caa5aa2d207f960f1cbea20b16ea5ba
Author: Hans Schoenemann <hannes at mathematik.uni-kl.de>
Date:   Wed Mar 14 17:18:23 2012 +0100

    fix: some names of blackbox operations

diff --git a/Singular/blackbox.cc b/Singular/blackbox.cc
index f7f2e5f..5ba118e 100644
--- a/Singular/blackbox.cc
+++ b/Singular/blackbox.cc
@@ -88,12 +88,12 @@ BOOLEAN blackboxDefaultOp2(int op,leftv l, leftv r1, leftv r2)
   return WrongOp("blackbox_Op2", op, r1);
 }
 
-BOOLEAN blackbox_default_Op3(int op,leftv l, leftv r1,leftv r2, leftv r3)
+BOOLEAN blackboxDefaultOp3(int op,leftv l, leftv r1,leftv r2, leftv r3)
 {
   return WrongOp("blackbox_Op3", op, r1);
 }
 
-BOOLEAN blackbox_default_OpM(int op,leftv res, leftv args)
+BOOLEAN blackboxDefaultOpM(int op,leftv res, leftv args)
 {
   if (op==LIST_CMD)
   {
@@ -161,8 +161,8 @@ int setBlackboxStuff(blackbox *bb, const char *n)
     if (bb->blackbox_Copy==NULL)    bb->blackbox_Copy=blackbox_default_Copy;
     if (bb->blackbox_Op1==NULL)     bb->blackbox_Op1=blackboxDefaultOp1;
     if (bb->blackbox_Op2==NULL)     bb->blackbox_Op2=blackboxDefaultOp2;
-    if (bb->blackbox_Op3==NULL)     bb->blackbox_Op3=blackbox_default_Op3;
-    if (bb->blackbox_OpM==NULL)     bb->blackbox_OpM=blackbox_default_OpM;
+    if (bb->blackbox_Op3==NULL)     bb->blackbox_Op3=blackboxDefaultOp3;
+    if (bb->blackbox_OpM==NULL)     bb->blackbox_OpM=blackboxDefaultOpM;
     if (bb->blackbox_Check==NULL)   bb->blackbox_Check=blackbox_default_Check;
     if (bb->blackbox_serialize==NULL) bb->blackbox_serialize=blackbox_default_serialize;
     if (bb->blackbox_deserialize==NULL) bb->blackbox_deserialize=blackbox_default_deserialize;
diff --git a/Singular/blackbox.h b/Singular/blackbox.h
index 97e13b6..4e46950 100644
--- a/Singular/blackbox.h
+++ b/Singular/blackbox.h
@@ -52,7 +52,7 @@ BOOLEAN blackboxDefaultOp1(int op,leftv l, leftv r);
 BOOLEAN blackboxDefaultOp2(int op,leftv l, leftv r1, leftv r2);
 
 /// default procedure blackboxDefaultOpM, to be called as "default:" branch
-BOOLEAN blackbox_default_OpM(int op,leftv l, leftv r);
+BOOLEAN blackboxDefaultOpM(int op,leftv l, leftv r);
 
 /// default procedure blackbox_default_Print: print the string
 void blackbox_default_Print(blackbox *b,void *d);
diff --git a/Singular/newstruct.cc b/Singular/newstruct.cc
index 8b24a3d..e2a697f 100644
--- a/Singular/newstruct.cc
+++ b/Singular/newstruct.cc
@@ -299,6 +299,7 @@ BOOLEAN newstruct_OpM(int op, leftv res, leftv args)
 {
   // interpreter: args->1. arg is newstruct
   blackbox *a=getBlackboxStuff(args->Typ());
+  newstruct_desc nt=(newstruct_desc)a->data;
   switch(op)
   {
     case STRING_CMD:
@@ -308,10 +309,30 @@ BOOLEAN newstruct_OpM(int op, leftv res, leftv args)
       return FALSE;
     }
     default:
-      return blackbox_default_OpM(op,res,args);
       break;
   }
-  return TRUE;
+  newstruct_proc p=nt->procs;
+  while((p!=NULL) &&(p->t=op)&&(p->args!=4)) p=p->next;
+  if (p!=NULL)
+  {
+    leftv sl;
+    sleftv tmp;
+    memset(&tmp,0,sizeof(sleftv));
+    tmp.Copy(args);
+    idrec hh;
+    memset(&hh,0,sizeof(hh));
+    hh.id=Tok2Cmdname(p->t);
+    hh.typ=PROC_CMD;
+    hh.data.pinf=p->p;
+    sl=iiMake_proc(&hh,NULL,&tmp);
+    if (sl==NULL) return TRUE;
+    else
+    {
+      res->Copy(sl);
+      return FALSE;
+    }
+  }
+  return blackboxDefaultOpM(op,res,args);
 }
 
 void newstruct_destroy(blackbox *b, void *d)

-- 
an open source computer algebra system



More information about the debian-science-commits mailing list