[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