Annotation of OpenXM/src/kan96xx/Doc/kanlib1.c, Revision 1.1.1.1
1.1 maekawa 1: /* 1996, 1/5
2: kanlib1.c : an example of how to use kan from your C-program.
3: */
4:
5: #include <stdio.h>
6: #include "datatype.h"
7: #include "stackm.h"
8: #include "extern.h"
9: #include "extern2.h"
10: #include "lookup.h"
11: #include "matrix.h"
12: #include "gradedset.h"
13:
14: main() {
15: struct object of;
16: POLY f;
17: extern int Quiet;
18: Quiet = 1;
19: KSstart(); /******** initialize ***********/
20: /* Call setjmp(EnvOfStackMachine) for error handling. cf. scanner() in
21: Kan/stackmachine.c */
22:
23: /* First, define ring Q[x,y] and put ff = Expand[(x+y)^10]; */
24: KSexecuteString("[(x,y) ring_of_polynomials ( ) elimination_order 0] define_ring");
25: KSexecuteString("( (x+y)^10 ). /ff set ff print newline");
26:
27: /* Put f = ff and compute f*f by calling ppMult() in kanlib.a. */
28: printf("\n\n");
29: KSexecuteString("ff"); of = KSpop();
30: f = of.lc.poly;
31: f = ppMult(f,f); /* Now, f = (x+y)^10 * (x+y)^10. */
32: printf("(x+y)^20= %s\n",POLYToString(f,' ',0));
33:
34:
35: KSstop(); /* closing */
36: }
37:
38:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>