Go to the source code of this file.
|
void | paCleanUp (package pack) |
|
void * | idrecDataInit (int t) |
|
idhdl | enterid (const char *s, int lev, int t, idhdl *root, BOOLEAN init, BOOLEAN search) |
|
void | killid (const char *id, idhdl *ih) |
|
void | killhdl (idhdl h, package proot) |
|
void | killhdl2 (idhdl h, idhdl *ih, ring r) |
|
idhdl | ggetid (const char *n) |
|
void | ipListFlag (idhdl h) |
|
lists | ipNameList (idhdl root) |
|
lists | ipNameListLev (idhdl root, int lev) |
|
static int | ipSwapId (idhdl tomove, idhdl &root1, idhdl &root2) |
|
void | ipMoveId (idhdl tomove) |
|
const char * | piProcinfo (procinfov pi, const char *request) |
|
BOOLEAN | piKill (procinfov pi) |
|
idhdl | packFindHdl (package r) |
|
BOOLEAN | iiAlias (leftv p) |
|
◆ enterid()
Definition at line 256 of file ipid.cc.
257{
262
264 {
266 {
268 }
269 }
270
271 if ((
h=(*root)->get_level(
s,lev))!=
NULL)
272 {
274 {
276 {
277 if (strcmp(
s,
"Top")==0)
278 {
279 goto errlabel;
280 }
282 }
283 else
284 {
286 {
288 if (strcmp(
f,
"STDIN")==0)
290 else
292 }
295 }
296 }
297 else
298 goto errlabel;
299 }
300
302 {
304 {
306 {
308 {
310 if (strcmp(
f,
"STDIN")==0)
312 else
314 }
317 }
318 else
319 goto errlabel;
320 }
321 }
322
324 {
326 {
328 {
330 {
332 if (strcmp(
f,
"STDIN")==0)
334 else
336 }
339 }
340 else
341 goto errlabel;
342 }
343 }
344 *root = (*root)->
set(
s, lev, t, init);
345#ifndef SING_NDEBUG
346 checkall();
347#endif
348 return *root;
349
350 errlabel:
351
352 Werror(
"identifier `%s` in use",
s);
353
356}
idhdl set(const char *s, int lev, int t, BOOLEAN init=TRUE)
const CanonicalForm int s
int search(const CFArray &A, const CanonicalForm &F, int i, int j)
search for F in A between index i and j
VAR char my_yylinebuf[80]
void killhdl2(idhdl h, idhdl *ih, ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void Werror(const char *fmt,...)
◆ ggetid()
Definition at line 549 of file ipid.cc.
550{
552 {
557 if (h2!=
NULL)
return h2;
558 }
559 else
560 {
563 }
567}
◆ idrecDataInit()
void * idrecDataInit |
( |
int |
t | ) |
|
Definition at line 118 of file ipid.cc.
119{
120 switch (t)
121 {
122
123#ifdef SINGULAR_4_2
125 return (
void*)n2Init(0,
NULL);
127 return (
void*)p2Init(0,
NULL);
129#endif
135 else
136 {
137 WerrorS(
"need basering for polyBucket");
139 }
142 return (
void *)
new intvec();
144 {
147 }
154 return (
void*)
idInit(1,1);
156 {
160 }
164 {
168 }
169
173 {
174 package pa=(package)omAlloc0Bin(sip_package_bin);
178 }
180 {
185 }
188
197 default:
198 {
200 {
201#ifdef BLACKBOX_DEVEL
202 Print(
"bb-type %d\n",t);
203#endif
206 return (void *)bb->blackbox_Init(bb);
207 }
208 else
209 Werror(
"unknown type in idrecDataInit:%d",t);
210 break;
211 }
212 }
213 return (void *)0L;
214}
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
CanonicalForm map(const CanonicalForm &primElem, const Variable &alpha, const CanonicalForm &F, const Variable &beta)
map from to such that is mapped onto
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
BOOLEAN pa(leftv res, leftv args)
void WerrorS(const char *s)
sBucket_pt sBucketCreate(const ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
◆ iiAlias()
Definition at line 812 of file ipid.cc.
813{
815 {
819 }
824 {
829 }
830 if ((
h->Typ()!=
p->Typ()) &&(
p->Typ()!=
DEF_CMD))
831 {
834 }
837 {
840 break;
843 break;
847 break;
850 break;
853 break;
855 {
859 }
860
865 break;
870 break;
873 break;
876 break;
877
878 default:
879 Werror(
"unknown type %d",
p->Typ());
881 }
884 int eff_typ=
h->Typ();
887 {
889 }
893}
Class used for (list of) interpreter objects.
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
void nKillChar(coeffs r)
undo all initialisations
static int RingDependend(int t)
#define idDelete(H)
delete an ideal
BOOLEAN iiAssign(leftv l, leftv r, BOOLEAN toplevel)
static int ipSwapId(idhdl tomove, idhdl &root1, idhdl &root2)
EXTERN_VAR omBin sleftv_bin
BOOLEAN lRingDependend(lists L)
The main handler for Singular numbers which are suitable for Singular polynomials.
#define omFreeBin(addr, bin)
◆ ipListFlag()
void ipListFlag |
( |
idhdl |
h | ) |
|
Definition at line 587 of file ipid.cc.
588{
590#ifdef HAVE_PLURAL
592#endif
593}
void PrintS(const char *s)
◆ ipMoveId()
void ipMoveId |
( |
idhdl |
tomove | ) |
|
Definition at line 672 of file ipid.cc.
673{
675 {
678 {
679
682 }
683 else
684 {
685
687 }
688 }
689}
◆ ipNameList()
Definition at line 595 of file ipid.cc.
596{
598
601
604
608 {
609
614 }
615 return L;
616}
INLINE_THIS void Init(int l=0)
◆ ipNameListLev()
Definition at line 618 of file ipid.cc.
619{
621
624
627
631 {
633 {
634
638 }
640 }
641 return L;
642}
◆ ipSwapId()
Definition at line 647 of file ipid.cc.
648{
650
654
657 {
659 }
660 else
661 {
665 }
666
668 root2=tomove;
670}
◆ killhdl()
Definition at line 384 of file ipid.cc.
385{
390 else
391 {
393 {
395 }
396 else
397 {
403 {
408 else
410 }
411 }
412 }
413}
◆ killhdl2()
Definition at line 415 of file ipid.cc.
416{
417
419
423 {
427 }
428 if (
h->attribute!=
NULL)
429 {
432 else
433 h->attribute->killAll(r);
435 }
437 {
439 || (strcmp(
IDID(
h),
"Top")==0))
440 {
442 return;
443 }
444
446 {
448 {
451 }
456 {
459 hdh = temp;
460 }
463 }
467 }
472
473
479 {
480
482 }
484 {
485
486 hh = *ih;
488 {
490 {
491 PrintS(
">>?<< not found for kill\n");
492 return;
493 }
496 {
498 break;
499 }
500 hh = hhh;
501 }
502 }
504}
idhdl packFindHdl(package r)
void paKill(package pack)
void iiCheckPack(package &p)
void s_internalDelete(const int t, void *d, const ring r)
◆ killid()
Definition at line 357 of file ipid.cc.
358{
360 {
362
363
365 {
367 {
370 {
372 return;
373 }
374 }
375 Werror(
"`%s` is not defined",
id);
376 return;
377 }
379 }
380 else
382}
◆ packFindHdl()
◆ paCleanUp()
Definition at line 753 of file ipid.cc.
754{
755 (pack->ref)--;
756 if (pack->ref < 0)
757 {
758 if( pack->language ==
LANG_C)
759 {
760 Print(
"//dlclose(%s)\n",pack->libname);
761#ifdef HAVE_DYNAMIC_LOADING
763#endif
764 }
768 }
769}
int dynl_close(void *handle)
◆ piKill()
Definition at line 715 of file ipid.cc.
716{
719 {
721 {
724 {
725 if (
p->pi==
pi &&
pi->ref <= 1)
726 {
727 Warn(
"`%s` in use, can not be killed",
pi->procname);
729 }
731 }
732 }
737
739 {
740 if (
pi->data.s.body !=
NULL)
742 }
744 {
745 }
747
749 }
751}
◆ piProcinfo()
Definition at line 691 of file ipid.cc.
692{
694 else if (strcmp(request,
"libname") == 0)
return pi->libname;
695 else if (strcmp(request,
"procname") == 0)
return pi->procname;
696 else if (strcmp(request, "type") == 0)
697 {
698 switch (
pi->language)
699 {
701 case LANG_C:
return "object";
break;
703 default: return "unknown language";
704 }
705 }
706 else if (strcmp(request, "ref") == 0)
707 {
709 sprintf(
p,
"%d",
pi->ref);
711 }
712 return "??";
713}
◆ basePack
◆ basePackHdl
◆ coeffs_BIGINT
◆ currPack
◆ currPackHdl
◆ currRingHdl
◆ idrec_bin
◆ procstack
◆ sip_command_bin
◆ sip_package_bin