source: git/dyn_modules/pcv/pcv/pcv.cc @ 6ce030f

spielwiese
Last change on this file since 6ce030f 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: 10.1 KB
Line 
1/*
2 * This was automaticly generated by modgen
3 * version 0.2
4 * module pcv
5 * Don't edit this file
6 */
7
8
9#line 10 "pcv.cc"
10#include <stdlib.h>
11#include <stdio.h>
12#include <string.h>
13#include <ctype.h>
14
15
16#include <locals.h>
17#include "pcv.h"
18#line 19 "pcv.cc"
19
20idhdl enter_id(char *name, char *value, idtyp t)
21{
22  idhdl h;
23
24  h=enterid(mstrdup(name),0, t, &IDROOT, TRUE/*FALSE*/);
25  if(h!=NULL) {
26     switch(t) {
27         case STRING_CMD: IDSTRING(h) = mstrdup(value);break;
28         case PACKAGE_CMD: break;
29         case PROC_CMD: break;
30     }
31  } else 
32      Warn("Cannot create '%s'\n", name);
33  return(h);
34}
35
36#line 37 "pcv.cc"
37
38idhdl add_singular_proc(char *procname, int line,
39                       long pos, long end, BOOLEAN pstatic)
40{
41  idhdl h;
42  procinfov pi;
43
44  h = enter_id(procname, NULL, PROC_CMD);
45  if(h == NULL) return NULL;
46
47  pi->procname = mstrdup(procname);
48  pi->language = LANG_SINGULAR;
49  pi->ref = 1;
50  pi->is_static = pstatic;
51  pi->data.s.proc_start = pos;
52  pi->data.s.def_end    = pos;
53  pi->data.s.help_start = 0L;
54  pi->data.s.help_end   = 0L;
55  pi->data.s.body_start = pos;
56  pi->data.s.body_end   = end;
57  pi->data.s.proc_end   = end;
58  pi->data.s.example_start = 0L;
59  pi->data.s.proc_lineno = line;
60  pi->data.s.body_lineno = line;
61  pi->data.s.example_lineno = 0;
62  pi->data.s.body = NULL;
63  pi->data.s.help_chksum = 0;
64 
65  return(h);
66}
67
68void fill_help_package(idhdl pl);
69void fill_example_package(idhdl pl);
70
71#line 2 "pcv.mod"
72/*
73 *
74 *  Test mod fuer modgen
75 */
76
77#include <stdio.h>
78#include "Pcv.h"
79#line 11 "pcv.mod"
80
81
82#line 84 "pcv.cc"
83extern "C"
84int mod_init(int(*iiAddCproc)())
85{
86  idhdl h;
87  idhdl helphdl = enter_id("Help", NULL, PACKAGE_CMD);
88  idhdl examplehdl = enter_id("Example", NULL, PACKAGE_CMD);
89
90 
91   if( helphdl == NULL)
92     Warn("Cannot create help-package\n");
93   else fill_help_package(helphdl);
94 
95   if( examplehdl == NULL)
96     Warn("Cannot create example-package\n");
97   else fill_example_package(examplehdl);
98#line 15 "pcv.mod"
99  enter_id("version","$Id$", STRING_CMD);
100#line 25 "pcv.mod"
101  enter_id("info","
102LIBRARY: pcv.so  CONVERSION BETWEEN POLYS AND COEF VECTORS
103AUTHOR:  Mathias Schulze, email: mschulze@mathematik.uni-kl.de
104
105 MinDeg(p);      min deg of monomials of poly p
106 P2CV(l,d0,d1);  list of coef vectors from deg d0 to d1 of polys in list l
107 CV2P(l,d0,d1);  list of polys with coef vectors from deg d0 to d1 in list l
108 Dim(d0,d1);     number of monomials from deg d0 to d1
109 Basis(d0,d1);   list of monomials from deg d0 to d1
110", STRING_CMD);
111
112#line 31 "pcv.mod"
113  iiAddCproc("pcv","MinDeg",FALSE, mod_MinDeg);
114
115#line 37 "pcv.mod"
116  iiAddCproc("pcv","P2CV",FALSE, mod_P2CV);
117
118#line 51 "pcv.mod"
119  iiAddCproc("pcv","CV2P",FALSE, mod_CV2P);
120
121#line 66 "pcv.mod"
122  iiAddCproc("pcv","Dim",FALSE, mod_Dim);
123
124#line 81 "pcv.mod"
125  iiAddCproc("pcv","Basis",FALSE, mod_Basis);
126
127  return 0;
128}
129
130#line 132 "pcv.cc"
131/* Help section */
132void fill_help_package(idhdl pl) {
133  namespaceroot->push(IDPACKAGE(pl), IDID(pl));
134
135#line 137 "pcv.cc"
136  namespaceroot->pop();
137}  /* End of Help section */
138
139/* Example section */
140void fill_example_package(idhdl pl) {
141  namespaceroot->push(IDPACKAGE(pl), IDID(pl));
142
143#line 145 "pcv.cc"
144  namespaceroot->pop();
145} /* End of Example section */
146
147#line 31 "pcv.mod"
148BOOLEAN mod_MinDeg(leftv res, leftv h)
149{
150#line 31 "pcv.mod"
151#line 153 "pcv.cc"
152
153#line 32 "pcv.mod"
154#line 156 "pcv.cc"
155  leftv v = h, v_save;
156  int tok = NONE, index = 0;
157  sleftv sp; leftv zp = &sp;
158  poly p;
159#line 32 "pcv.mod"
160
161
162#line 33 "pcv.mod"
163#line 165 "pcv.cc"
164  if(v==NULL) goto mod_MinDeg_error;
165  tok = v->Typ();
166  if((index=iiTestConvert(tok, POLY_CMD))==0)
167     goto mod_MinDeg_error;
168  v_save = v->next;
169  v->next = NULL;
170  if(iiConvert(tok, POLY_CMD, index, v, zp))
171     goto mod_MinDeg_error;
172  v = v_save;
173  p = (poly)zp->Data();
174  if(v!=NULL) { tok = v->Typ(); goto mod_MinDeg_error; }
175
176#line 33 "pcv.mod"
177
178#line 34 "pcv.mod"
179#line 181 "pcv.cc"
180  res->rtyp = INT_CMD;
181  res->data = (void *)pcvMinDeg(p);
182  if(res->data != NULL) return FALSE;
183  else return TRUE;
184
185
186  mod_MinDeg_error:
187    Werror("MinDeg(`%s`) is not supported", Tok2Cmdname(tok));
188    Werror("expected MinDeg('poly')");
189    return TRUE;
190}
191
192#line 37 "pcv.mod"
193BOOLEAN mod_P2CV(leftv res, leftv h)
194{
195#line 37 "pcv.mod"
196#line 198 "pcv.cc"
197
198#line 38 "pcv.mod"
199#line 201 "pcv.cc"
200  leftv v = h, v_save;
201  int tok = NONE, index = 0;
202  sleftv spl; leftv zpl = &spl;
203  lists pl;
204  sleftv sd0; leftv zd0 = &sd0;
205  int d0;
206  sleftv sd1; leftv zd1 = &sd1;
207  int d1;
208#line 38 "pcv.mod"
209
210
211
212  /* check if current RingHandle is set */
213  if(currRingHdl == NULL)
214  {
215    WerrorS("no ring active");
216    return TRUE;
217  }
218 
219#line 47 "pcv.mod"
220#line 222 "pcv.cc"
221  if(v==NULL) goto mod_P2CV_error;
222  tok = v->Typ();
223  if((index=iiTestConvert(tok, LIST_CMD))==0)
224     goto mod_P2CV_error;
225  v_save = v->next;
226  v->next = NULL;
227  if(iiConvert(tok, LIST_CMD, index, v, zpl))
228     goto mod_P2CV_error;
229  v = v_save;
230  pl = (lists)zpl->Data();
231  if(v==NULL) goto mod_P2CV_error;
232  tok = v->Typ();
233  if((index=iiTestConvert(tok, INT_CMD))==0)
234     goto mod_P2CV_error;
235  v_save = v->next;
236  v->next = NULL;
237  if(iiConvert(tok, INT_CMD, index, v, zd0))
238     goto mod_P2CV_error;
239  v = v_save;
240  d0 = (int)zd0->Data();
241  if(v==NULL) goto mod_P2CV_error;
242  tok = v->Typ();
243  if((index=iiTestConvert(tok, INT_CMD))==0)
244     goto mod_P2CV_error;
245  v_save = v->next;
246  v->next = NULL;
247  if(iiConvert(tok, INT_CMD, index, v, zd1))
248     goto mod_P2CV_error;
249  v = v_save;
250  d1 = (int)zd1->Data();
251  if(v!=NULL) { tok = v->Typ(); goto mod_P2CV_error; }
252
253#line 47 "pcv.mod"
254
255#line 48 "pcv.mod"
256#line 258 "pcv.cc"
257  res->rtyp = LIST_CMD;
258  res->data = (void *)pcvP2CV(pl, d0, d1);
259  if(res->data != NULL) return FALSE;
260  else return TRUE;
261
262
263  mod_P2CV_error:
264    Werror("P2CV(`%s`) is not supported", Tok2Cmdname(tok));
265    Werror("expected P2CV('list','int','int')");
266    return TRUE;
267}
268
269#line 51 "pcv.mod"
270BOOLEAN mod_CV2P(leftv res, leftv h)
271{
272#line 52 "pcv.mod"
273#line 275 "pcv.cc"
274
275#line 53 "pcv.mod"
276#line 278 "pcv.cc"
277  leftv v = h, v_save;
278  int tok = NONE, index = 0;
279  sleftv spl; leftv zpl = &spl;
280  lists pl;
281  sleftv sd0; leftv zd0 = &sd0;
282  int d0;
283  sleftv sd1; leftv zd1 = &sd1;
284  int d1;
285#line 53 "pcv.mod"
286
287
288
289  /* check if current RingHandle is set */
290  if(currRingHdl == NULL)
291  {
292    WerrorS("no ring active");
293    return TRUE;
294  }
295 
296#line 62 "pcv.mod"
297#line 299 "pcv.cc"
298  if(v==NULL) goto mod_CV2P_error;
299  tok = v->Typ();
300  if((index=iiTestConvert(tok, LIST_CMD))==0)
301     goto mod_CV2P_error;
302  v_save = v->next;
303  v->next = NULL;
304  if(iiConvert(tok, LIST_CMD, index, v, zpl))
305     goto mod_CV2P_error;
306  v = v_save;
307  pl = (lists)zpl->Data();
308  if(v==NULL) goto mod_CV2P_error;
309  tok = v->Typ();
310  if((index=iiTestConvert(tok, INT_CMD))==0)
311     goto mod_CV2P_error;
312  v_save = v->next;
313  v->next = NULL;
314  if(iiConvert(tok, INT_CMD, index, v, zd0))
315     goto mod_CV2P_error;
316  v = v_save;
317  d0 = (int)zd0->Data();
318  if(v==NULL) goto mod_CV2P_error;
319  tok = v->Typ();
320  if((index=iiTestConvert(tok, INT_CMD))==0)
321     goto mod_CV2P_error;
322  v_save = v->next;
323  v->next = NULL;
324  if(iiConvert(tok, INT_CMD, index, v, zd1))
325     goto mod_CV2P_error;
326  v = v_save;
327  d1 = (int)zd1->Data();
328  if(v!=NULL) { tok = v->Typ(); goto mod_CV2P_error; }
329
330#line 62 "pcv.mod"
331
332#line 63 "pcv.mod"
333#line 335 "pcv.cc"
334  res->rtyp = LIST_CMD;
335  res->data = (void *)pcvCV2P(pl, d0, d1);
336  if(res->data != NULL) return FALSE;
337  else return TRUE;
338
339
340  mod_CV2P_error:
341    Werror("CV2P(`%s`) is not supported", Tok2Cmdname(tok));
342    Werror("expected CV2P('list','int','int')");
343    return TRUE;
344}
345
346#line 66 "pcv.mod"
347BOOLEAN mod_Dim(leftv res, leftv h)
348{
349#line 67 "pcv.mod"
350#line 352 "pcv.cc"
351
352#line 68 "pcv.mod"
353#line 355 "pcv.cc"
354  leftv v = h, v_save;
355  int tok = NONE, index = 0;
356  sleftv sd0; leftv zd0 = &sd0;
357  int d0;
358  sleftv sd1; leftv zd1 = &sd1;
359  int d1;
360#line 68 "pcv.mod"
361
362
363
364  /* check if current RingHandle is set */
365  if(currRingHdl == NULL)
366  {
367    WerrorS("no ring active");
368    return TRUE;
369  }
370 
371#line 77 "pcv.mod"
372#line 374 "pcv.cc"
373  if(v==NULL) goto mod_Dim_error;
374  tok = v->Typ();
375  if((index=iiTestConvert(tok, INT_CMD))==0)
376     goto mod_Dim_error;
377  v_save = v->next;
378  v->next = NULL;
379  if(iiConvert(tok, INT_CMD, index, v, zd0))
380     goto mod_Dim_error;
381  v = v_save;
382  d0 = (int)zd0->Data();
383  if(v==NULL) goto mod_Dim_error;
384  tok = v->Typ();
385  if((index=iiTestConvert(tok, INT_CMD))==0)
386     goto mod_Dim_error;
387  v_save = v->next;
388  v->next = NULL;
389  if(iiConvert(tok, INT_CMD, index, v, zd1))
390     goto mod_Dim_error;
391  v = v_save;
392  d1 = (int)zd1->Data();
393  if(v!=NULL) { tok = v->Typ(); goto mod_Dim_error; }
394
395#line 77 "pcv.mod"
396
397#line 78 "pcv.mod"
398#line 400 "pcv.cc"
399  res->rtyp = INT_CMD;
400  res->data = (void *)pcvDim(d0, d1);
401  if(res->data != NULL) return FALSE;
402  else return TRUE;
403
404
405  mod_Dim_error:
406    Werror("Dim(`%s`) is not supported", Tok2Cmdname(tok));
407    Werror("expected Dim('int','int')");
408    return TRUE;
409}
410
411#line 81 "pcv.mod"
412BOOLEAN mod_Basis(leftv res, leftv h)
413{
414#line 82 "pcv.mod"
415#line 417 "pcv.cc"
416
417#line 83 "pcv.mod"
418#line 420 "pcv.cc"
419  leftv v = h, v_save;
420  int tok = NONE, index = 0;
421  sleftv sd0; leftv zd0 = &sd0;
422  int d0;
423  sleftv sd1; leftv zd1 = &sd1;
424  int d1;
425#line 83 "pcv.mod"
426
427
428
429  /* check if current RingHandle is set */
430  if(currRingHdl == NULL)
431  {
432    WerrorS("no ring active");
433    return TRUE;
434  }
435 
436#line 92 "pcv.mod"
437#line 439 "pcv.cc"
438  if(v==NULL) goto mod_Basis_error;
439  tok = v->Typ();
440  if((index=iiTestConvert(tok, INT_CMD))==0)
441     goto mod_Basis_error;
442  v_save = v->next;
443  v->next = NULL;
444  if(iiConvert(tok, INT_CMD, index, v, zd0))
445     goto mod_Basis_error;
446  v = v_save;
447  d0 = (int)zd0->Data();
448  if(v==NULL) goto mod_Basis_error;
449  tok = v->Typ();
450  if((index=iiTestConvert(tok, INT_CMD))==0)
451     goto mod_Basis_error;
452  v_save = v->next;
453  v->next = NULL;
454  if(iiConvert(tok, INT_CMD, index, v, zd1))
455     goto mod_Basis_error;
456  v = v_save;
457  d1 = (int)zd1->Data();
458  if(v!=NULL) { tok = v->Typ(); goto mod_Basis_error; }
459
460#line 92 "pcv.mod"
461
462#line 93 "pcv.mod"
463#line 465 "pcv.cc"
464  res->rtyp = LIST_CMD;
465  res->data = (void *)pcvBasis(d0, d1);
466  if(res->data != NULL) return FALSE;
467  else return TRUE;
468
469
470  mod_Basis_error:
471    Werror("Basis(`%s`) is not supported", Tok2Cmdname(tok));
472    Werror("expected Basis('int','int')");
473    return TRUE;
474}
475
476
477#line 478 "pcv.cc"
Note: See TracBrowser for help on using the repository browser.