[BACK]Return to kanlib1.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Doc

File: [local] / OpenXM / src / kan96xx / Doc / kanlib1.c (download)

Revision 1.1.1.1 (vendor branch), Fri Oct 8 02:12:02 1999 UTC (24 years, 7 months ago) by maekawa
Branch: OpenXM, MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, RELEASE_20000124, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9, ALPHA
Changes since 1.1: +0 -0 lines

o import OpenXM sources

/* 1996, 1/5
   kanlib1.c : an example of how to use kan from your C-program.
*/

#include <stdio.h>
#include "datatype.h"
#include "stackm.h"
#include "extern.h"
#include "extern2.h"
#include "lookup.h"
#include "matrix.h"
#include "gradedset.h"

main() {
  struct object of;
  POLY f;
  extern int Quiet;
  Quiet = 1;
  KSstart();   /********  initialize ***********/
  /* Call setjmp(EnvOfStackMachine) for error handling. cf. scanner() in
   Kan/stackmachine.c */

  /* First, define ring Q[x,y] and put ff = Expand[(x+y)^10]; */
  KSexecuteString("[(x,y) ring_of_polynomials ( ) elimination_order 0] define_ring");
  KSexecuteString("( (x+y)^10 ).  /ff set  ff print newline");

  /* Put f = ff and compute f*f by calling ppMult() in kanlib.a. */
  printf("\n\n");
  KSexecuteString("ff"); of = KSpop();
  f = of.lc.poly;
  f = ppMult(f,f); /* Now, f = (x+y)^10 * (x+y)^10. */
  printf("(x+y)^20= %s\n",POLYToString(f,' ',0));


  KSstop(); /* closing */
}