source: git/Singular/mpsr_Get.h @ 400884

spielwiese
Last change on this file since 400884 was 6ae4f5, checked in by Hans Schönemann <hannes@…>, 27 years ago
* hannes: - corrected scanner.l: parsing of strings in blocks: if (1) { write("","}"); } - corrected ipassign.cc: assignment of "dummy" types: DEF, NONE - corrected sleftv::Print(_), initialisation of _ - added conversion int->def - added CopyD(DEF) - in insert(..): object should not be of type NONE (lists.cc:lInsert0) - added int*intvec, int*intmat to iparith.cc git-svn-id: file:///usr/local/Singular/svn/trunk@145 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.2 1997-04-09 12:20:02 Singular 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#include"mod2.h"
15
16#ifdef HAVE_MPSR
17
18#ifndef __MPSR_GET__
19#define __MPSR_GET__
20
21#include "numbers.h"
22#include "polys.h"
23#include "febase.h"
24
25#include"mpsr.h"
26
27
28
29/***************************************************************
30 *
31 * Get-specific data structures
32 *
33 ***************************************************************/
34
35// the data structure which functions as external data
36typedef struct mpsr_sleftv
37{
38  leftv lv;
39  ring  r;
40} mpsr_sleftv;
41
42typedef mpsr_sleftv * mpsr_leftv;
43
44
45/***************************************************************
46 *
47 * prototypes
48 *
49 ***************************************************************/
50// from mpsr_GetMisc.cc
51extern int mpsr_rDefault(short ch, char *name, ring &r);
52extern ring mpsr_rDefault(short ch);
53extern BOOLEAN mpsr_RingEqual(ring r1, ring r2);
54extern mpsr_Status_t mpsr_MergeLeftv(mpsr_leftv mlv1, mpsr_leftv mlv2);
55extern void mpsr_MapLeftv(leftv l, ring from_ring, ring to_ring);
56extern void mpsr_SetCurrRingHdl(ring r);
57extern idhdl mpsr_FindIdhdl(char *name, ring &r);
58
59// from mpsr_GetPoly.cc
60extern mpsr_Status_t mpsr_GetRingAnnots(MPT_Node_pt node, ring &r, BOOLEAN &mv);
61extern mpsr_Status_t mpsr_GetPoly(MP_Link_pt link, poly &p, MP_Uint32_t nmon,
62                                ring cring);
63extern mpsr_Status_t mpsr_GetPolyVector(MP_Link_pt link, poly &p,
64                                      MP_Uint32_t nmon, ring cring);
65extern mpsr_Status_t mpsr_rSetOrdSgn(ring r);
66
67// from mpsr_Get.cc
68extern mpsr_Status_t mpsr_GetLeftv(MP_Link_pt link, mpsr_leftv mlv, short quote);
69
70extern mpsr_Status_t mpsr_GetCommonOperatorLeftv(MP_Link_pt link,
71                                               MPT_Node_pt node,
72                                               mpsr_leftv mlv,
73                                               short quote); 
74extern mpsr_Status_t mpsr_GetOperatorLeftv(MP_Link_pt link,
75                                         MPT_Node_pt node,
76                                         mpsr_leftv mlv,
77                                         short quote); 
78extern MPT_Status_t mpsr_GetExternalData(MP_Link_pt link,
79                                         MPT_Arg_t  *odata,
80                                         MPT_Node_pt node);
81
82
83/***************************************************************
84 *
85 * inlines
86 *
87 ***************************************************************/
88inline BOOLEAN NodeCheck(MPT_Node_pt node, MP_NodeType_t type, 
89                        MP_DictTag_t dtag, MP_Common_t cv)
90{
91  mpsr_assume(node != NULL);
92  return
93    node->type == type &&
94    MP_COMMON_T(node->nvalue) == cv &&
95    node->dict == dtag;
96}
97
98inline BOOLEAN NodeCheck(MPT_Node_pt node, MP_DictTag_t dtag, MP_Common_t cv)
99{
100  mpsr_assume(node != NULL);
101  return
102    MP_COMMON_T(node->nvalue) == cv &&
103    node->dict == dtag;
104}
105
106
107inline idhdl mpsr_InitIdhdl(short tok, void *data, char *name)
108{
109  idhdl h = (idhdl) Alloc0(sizeof(idrec));
110  IDID(h) = mstrdup(name);
111  IDTYP(h) = tok;
112  IDDATA(h) = (char *) data;
113
114  return h;
115}
116
117
118#endif
119#endif
Note: See TracBrowser for help on using the repository browser.