source: git/Singular/mpsr_Get.h @ 63374c

spielwiese
Last change on this file since 63374c was 63374c, checked in by Olaf Bachmann <obachman@…>, 25 years ago
* moved mpsr_RingEqual to rEqual * controled access to qideal in qrings git-svn-id: file:///usr/local/Singular/svn/trunk@3253 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.4 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/* $Id: mpsr_Get.h,v 1.6 1999-07-09 14:06:47 obachman Exp $ */
5/***************************************************************
6 *
7 * File:       mpsr_Get.h
8 * Purpose:    declarations for all the Get routines
9 * Author:     Olaf Bachmann (10/95)
10 *
11 * Change History (most recent first):
12 *
13 ***************************************************************/
14#ifdef HAVE_MPSR
15
16#ifndef __MPSR_GET__
17#define __MPSR_GET__
18
19#include "numbers.h"
20#include "polys.h"
21#include "febase.h"
22
23#include"mpsr.h"
24
25
26
27/***************************************************************
28 *
29 * Get-specific data structures
30 *
31 ***************************************************************/
32
33// the data structure which functions as external data
34typedef struct mpsr_sleftv
35{
36  leftv lv;
37  ring  r;
38} mpsr_sleftv;
39
40typedef mpsr_sleftv * mpsr_leftv;
41
42
43/***************************************************************
44 *
45 * prototypes
46 *
47 ***************************************************************/
48// from mpsr_GetMisc.cc
49extern int mpsr_rDefault(short ch, char *name, ring &r);
50extern ring mpsr_rDefault(short ch);
51extern mpsr_Status_t mpsr_MergeLeftv(mpsr_leftv mlv1, mpsr_leftv mlv2);
52extern void mpsr_MapLeftv(leftv l, ring from_ring, ring to_ring);
53extern void mpsr_SetCurrRingHdl(ring r);
54extern idhdl mpsr_FindIdhdl(char *name, ring &r);
55
56// from mpsr_GetPoly.cc
57extern mpsr_Status_t mpsr_GetRingAnnots(MPT_Node_pt node, ring &r,
58                                        BOOLEAN &mv, BOOLEAN &IsUnOrdered);
59extern mpsr_Status_t mpsr_GetPoly(MP_Link_pt link, poly &p, MP_Uint32_t nmon,
60                                ring cring);
61extern mpsr_Status_t mpsr_GetPolyVector(MP_Link_pt link, poly &p,
62                                      MP_Uint32_t nmon, ring cring);
63extern mpsr_Status_t mpsr_rSetOrdSgn(ring r);
64
65// from mpsr_Get.cc
66extern mpsr_Status_t mpsr_GetLeftv(MP_Link_pt link, mpsr_leftv mlv, short quote);
67
68extern mpsr_Status_t mpsr_GetCommonOperatorLeftv(MP_Link_pt link,
69                                               MPT_Node_pt node,
70                                               mpsr_leftv mlv,
71                                               short quote);
72extern mpsr_Status_t mpsr_GetOperatorLeftv(MP_Link_pt link,
73                                         MPT_Node_pt node,
74                                         mpsr_leftv mlv,
75                                         short quote);
76extern MPT_Status_t mpsr_GetExternalData(MP_Link_pt link,
77                                         MPT_Arg_t  *odata,
78                                         MPT_Node_pt node);
79
80
81/***************************************************************
82 *
83 * inlines
84 *
85 ***************************************************************/
86inline BOOLEAN NodeCheck(MPT_Node_pt node, MP_NodeType_t type,
87                        MP_DictTag_t dtag, MP_Common_t cv)
88{
89  mpsr_assume(node != NULL);
90  return
91    node->type == type &&
92    MP_COMMON_T(node->nvalue) == cv &&
93    node->dict == dtag;
94}
95
96inline BOOLEAN NodeCheck(MPT_Node_pt node, MP_DictTag_t dtag, MP_Common_t cv)
97{
98  mpsr_assume(node != NULL);
99  return
100    MP_COMMON_T(node->nvalue) == cv &&
101    node->dict == dtag;
102}
103
104
105inline idhdl mpsr_InitIdhdl(short tok, void *data, char *name)
106{
107  idhdl h = (idhdl) Alloc0(sizeof(idrec));
108  IDID(h) = mstrdup(name);
109  IDTYP(h) = tok;
110  IDDATA(h) = (char *) data;
111
112  return h;
113}
114
115
116#endif
117#endif
Note: See TracBrowser for help on using the repository browser.