source: git/Singular/mpsr_Get.h @ 85bcd6

spielwiese
Last change on this file since 85bcd6 was 6ce030f, checked in by Oleksandr Motsak <motsak@…>, 12 years ago
removal of the $Id$ svn tag from everywhere NOTE: the git SHA1 may be used instead (only on special places) NOTE: the libraries Singular/LIB/*.lib still contain the marker due to our current use of svn
  • Property mode set to 100644
File size: 3.5 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/***************************************************************
5 *
6 * File:       mpsr_Get.h
7 * Purpose:    declarations for all the Get routines
8 * Author:     Olaf Bachmann (10/95)
9 *
10 * Change History (most recent first):
11 *
12 ***************************************************************/
13#ifdef HAVE_MPSR
14
15#ifndef __MPSR_GET__
16#define __MPSR_GET__
17
18#include <Singular/tok.h>
19#include <coeffs/numbers.h>
20#include <kernel/polys.h>
21#include <kernel/febase.h>
22#include <Singular/ipid.h>
23
24#include"mpsr.h"
25
26
27
28/***************************************************************
29 *
30 * Get-specific data structures
31 *
32 ***************************************************************/
33
34// the data structure which functions as external data
35typedef struct mpsr_sleftv
36{
37  leftv lv;
38  ring  r;
39} mpsr_sleftv;
40
41typedef mpsr_sleftv * mpsr_leftv;
42extern omBin mpsr_sleftv_bin;
43
44/***************************************************************
45 *
46 * prototypes
47 *
48 ***************************************************************/
49// from mpsr_GetMisc.cc
50extern int mpsr_rDefault(short ch, const char *name, ring &r);
51extern ring mpsr_rDefault(short ch);
52extern mpsr_Status_t mpsr_MergeLeftv(mpsr_leftv mlv1, mpsr_leftv mlv2);
53extern void mpsr_MapLeftv(leftv l, ring from_ring, ring to_ring);
54extern void mpsr_SetCurrRingHdl(mpsr_leftv mlv);
55extern idhdl mpsr_FindIdhdl(char *name, ring &r);
56
57// from mpsr_GetPoly.cc
58extern mpsr_Status_t mpsr_GetRingAnnots(MPT_Node_pt node, ring &r,
59                                        BOOLEAN &mv, BOOLEAN &IsUnOrdered);
60extern mpsr_Status_t mpsr_GetPoly(MP_Link_pt link, poly &p, MP_Uint32_t nmon,
61                                ring cring);
62extern mpsr_Status_t mpsr_GetPolyVector(MP_Link_pt link, poly &p,
63                                      MP_Uint32_t nmon, ring cring);
64extern mpsr_Status_t mpsr_rSetOrdSgn(ring r);
65
66// from mpsr_Get.cc
67extern mpsr_Status_t mpsr_GetLeftv(MP_Link_pt link, mpsr_leftv mlv, short quote);
68
69extern mpsr_Status_t mpsr_GetCommonOperatorLeftv(MP_Link_pt link,
70                                               MPT_Node_pt node,
71                                               mpsr_leftv mlv,
72                                               short quote);
73extern mpsr_Status_t mpsr_GetOperatorLeftv(MP_Link_pt link,
74                                         MPT_Node_pt node,
75                                         mpsr_leftv mlv,
76                                         short quote);
77extern MPT_Status_t mpsr_GetExternalData(MP_Link_pt link,
78                                         MPT_Arg_t  *odata,
79                                         MPT_Node_pt node);
80
81
82/***************************************************************
83 *
84 * inlines
85 *
86 ***************************************************************/
87inline BOOLEAN NodeCheck(MPT_Node_pt node, MP_NodeType_t type,
88                        MP_DictTag_t dtag, MP_Common_t cv)
89{
90  mpsr_assume(node != NULL);
91  return
92    node->type == type &&
93    MP_COMMON_T(node->nvalue) == cv &&
94    node->dict == dtag;
95}
96
97inline BOOLEAN NodeCheck(MPT_Node_pt node, MP_DictTag_t dtag, MP_Common_t cv)
98{
99  mpsr_assume(node != NULL);
100  return
101    MP_COMMON_T(node->nvalue) == cv &&
102    node->dict == dtag;
103}
104
105
106inline idhdl mpsr_InitIdhdl(short tok, void *data, char *name)
107{
108  idhdl h = (idhdl) omAlloc0Bin(idrec_bin);
109  IDID(h) = omStrDup(name);
110  IDTYP(h) = tok;
111  IDDATA(h) = (char *) data;
112  extern int iiS2I(const char *s);
113  h->id_i=iiS2I(name);
114  return h;
115}
116
117
118#endif
119#endif
Note: See TracBrowser for help on using the repository browser.