Annotation of OpenXM/src/kan96xx/Doc/kanlib1.c, Revision 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>