[comp.sources.misc] v16i020: Jgraph - A filter for plotting postscript graphs, Part01/01

jsp@Princeton.EDU (James Plank) (01/05/91)

Submitted-by: James Plank <jsp@Princeton.EDU>
Posting-number: Volume 16, Issue 20
Archive-name: jgraph/part01

Jgraph takes the description of a graph or graphs in the standard
input, and produces a postscript file on the standard output.  Jgraph
is ideal for plotting any mixture of scatter point graphs, line
graphs, and/or bar graphs, and embedding the output into LaTeX, or
any other text processing system which can read postscript.

The graph description language is simple enough to get nice looking
graphs with a minimum of effort, yet powerful enough to give the user
the flexibility to tailor the appearance of the graph to his or her
individual preferences.  This includes plotting multiple graphs and
laying them out separately on the page. 

The program is written in C, and shouldn't take anything too fancy
or machine-dependent.  It has been tested on VAX mipsel's and mipseb's,
sun3's and SPARC's.

There is a makefile, a man page (in jgraph.1), source code, and 
example graphs.

Please send me comments and/or bug reports.

Author:	Jim Plank
Email:	jsp@princeton.edu
USmail:	Department of Computer Science
	Princeton University
	35 Olden St.
	Princeton, Nj 08544-2087
        


# To unbundle, "sed '1,/^# To unbundle/d' < thisfile | sh"
# Fri Jan  4 15:20:59 EST 1991
echo README 1>&2
sed 's/^-//' >'README' <<'End of README'
-Jgraph takes the description of a graph or graphs in the standard
-input, and produces a postscript file on the standard output.  Jgraph
-is ideal for plotting any mixture of scatter point graphs, line
-graphs, and/or bar graphs, and embedding the output into LaTeX, or
-any other text processing system which can read postscript.
-
-The graph description language is simple enough to get nice looking
-graphs with a minimum of effort, yet powerful enough to give the user
-the flexibility to tailor the appearance of the graph to his or her
-individual preferences.  This includes plotting multiple graphs and
-laying them out separately on the page. 
-
-The program is written in C, and shouldn't take anything too fancy
-or machine-dependent.  It has been tested on VAX mipsel's and mipseb's,
-sun3's and SPARC's.
-
-There is a makefile, a man page (in jgraph.1), source code, and 
-example graphs.
-
-Please send me comments and/or bug reports.
-
-Author: Jim Plank
-Email:  jsp@princeton.edu
-USmail:	Department of Computer Science
-	Princeton University
-	35 Olden St.
-	Princeton, Nj 08544-2087
-        
-
-  
-
End of README
echo acc.jgr 1>&2
sed 's/^-//' >'acc.jgr' <<'End of acc.jgr'
-(* Graph #6: Kbytes processed each second
- *)
-
-newgraph
-
-yaxis size 2.5 min 0 max 100
-  label fontsize 8 : Percentage of bus utilization
-
-xaxis size 1.8 min 0 max 5
-  no_draw_hash_marks no_draw_axis_label no_draw_hash_labels
-
-(* 100% of utilization == 6510.4166 Kb/sec *)
-
-newcurve
-  label : DB
-  marktype xbar fill .9 marksize .4
-  pts 
-    1   3.3573  (* 218.5792 Kb/sec *)
-
-newcurve
-  label : QS
-  marktype xbar fill .6 marksize .4
-  pts
-    2   8.0665  (* 525.1688 Kb/sec *)
-
-newcurve
-  label : GE
-  marktype xbar fill .3 marksize .4
-  pts
-    3   7.9602  (* 518.2473 Kb/sec *)
-
-newcurve
-  label : RNG
-  marktype xbar fill 0 marksize .4
-  pts
-    4   8.2876  (* 539.5619 Kb/sec *)
-
-
-
End of acc.jgr
echo acc.tex 1>&2
sed 's/^-//' >'acc.tex' <<'End of acc.tex'
-
-\documentstyle[12pt]{report}
-\input{psfig}
-
-\begin{document}
-
-
-A scatter plot with plotted text:
-
-\begin{figure}[h]
-\centerline{\psfig{figure=/u/jsp/src/jgraph/graphs/acc.jps}}
-\end{figure}
-
-\end{document}
-
End of acc.tex
echo draw.c 1>&2
sed 's/^-//' >'draw.c' <<'End of draw.c'
-/* $Log:	draw.c,v $
- * Revision 1.6  90/12/03  16:48:24  jsp
- * Added the -P option to print postscript suitable for direct piping to lpr.
- * 
- * Revision 1.5  90/10/18  12:43:35  jsp
- * First release version.
- * 
- * Revision 1.4  90/10/14  19:52:38  jsp
- * Moved processing of hash lines & labels to process.c.
- * 
- * Made Marktypes into a global array.
- * 
- * Revision 1.3  90/10/14  14:23:02  jsp
- * Added code for bar graphs
- * 
- * Revision 1.2  90/10/14  13:35:57  jsp
- * Updated to use error_header, as defined in token.c 1.2.
- * 
- * Revision 1.1  90/10/12  18:09:31  jsp
- * Initial revision
- * 
- *
- * Module for drawing graphs using the postscript drawing
- * routines in printline.c
- */
-
-#include "jgraph.h"
-
-#include <stdio.h>
-#include <math.h>
-
-float ctop(val, axis)
-float val;
-Axis axis;
-{
-  if (axis->is_lg) {
-    if (val <= 0.0) {
-      error_header();
-      fprintf(stderr, 
-              "Value of %f is at negative infinity with logrhythmic %c axis\n", 
-              val, (axis->is_x) ? 'x' : 'y'); 
-       exit(1);
-    }
-    return (log(val) / axis->logfactor - axis->logmin) * axis->factor;
-  } else {
-    return (val - axis->min) * axis->factor;
-  }
-}
-
-float disttop(val, axis)
-float val;
-Axis axis;
-{
-  if (axis->is_lg) {
-    return FCPI * val;
-  } else {
-    return (val - axis->min) * axis->factor;
-  }
-}
-
-float intop(val)
-float val;
-{
-  return FCPI * val;
-}
-
-#define MAXIMUM(a,b) ((a > b) ? a : b)
-
-draw_axis(a)
-Axis a;
-{
-  char orientation;
-  Hash h;
-  String s;
-
-  orientation = (a->is_x) ? 'x' : 'y';
-  setlinewidth(1.0);
-  if (a->draw_axis_line) {
-    comment("Drawing Axis");
-    printline(0.0, a->draw_at, a->psize, a->draw_at, orientation);
-  }
-  if (a->draw_hash_marks) {
-    comment("Drawing Hash Marks");
-    for (h = first(a->hash_lines); h != nil(a->hash_lines); h = next(h)) {
-      printline(h->loc, 
-                a->draw_hash_marks_at, 
-                h->loc, 
-                a->draw_hash_marks_at + (h->size * a->hash_scale), 
-                orientation);
-    }
-  }
-  if (a->draw_hash_labels) {
-    comment("Drawing Hash Labels");
-    for (s = first(a->hash_labels); s != nil(a->hash_labels); s = next(s)) {
-      a->hl->label = s->s->label;
-      if (a->is_x) {
-        a->hl->x = s->s->x;
-      } else {
-        a->hl->y = s->s->y;
-      }
-      draw_label(a->hl);
-    }
-  }
-  if (a->draw_axis_label) {
-    comment("Drawing Axis Label");
-    draw_label(a->label);
-  }
-}
-
-
-draw_label(l)
-Label l;
-{
-  if (l->label == CNULL) return;
-  comment(l->label);
-  print_text(l->label, l->x, l->y, l->hj, l->vj, l->rotate, l->font, l->fontsize);
-}
-
-draw_curves(g)
-Graph g;
-{
-  Curve c;
-
-  for(c = first(g->curves); c != nil(g->curves); c = next(c)) {
-    draw_curve(c, g);
-  }
-}
-
-draw_curve(c, g)
-Curve c;
-Graph g;
-{
-  Point p;
-  int i;
-
-  if (c->linetype != '0') {
-    comment("Drawing Curve Lines");
-    
-    i = 0;
-    for (p = first(c->pts);
-         p != nil(c->pts);
-         p = next(p)) {
-      if (i == 0) {
-        start_line(ctop(p->x, g->x_axis), ctop(p->y, g->y_axis), 
-                        c->linethick, c->linetype);
-      } else {
-        cont_line(ctop(p->x, g->x_axis), ctop(p->y, g->y_axis));
-      } 
-      if (i == 100) {
-        end_line();
-        p = prev(p);
-        i = 0;
-      } else i++;
-    }
-    if (i != 0) end_line();
-  }
-  comment("Drawing Curve points");
-  for (p = first(c->pts);
-       p != nil(c->pts);
-       p = next(p)) {
-      draw_mark(ctop(p->x, g->x_axis), ctop(p->y, g->y_axis), c, g);
-    }
-}
-
-draw_mark(x, y, c, g)
-float x, y;
-Curve c;
-Graph g;
-{
-  Point p;
-  float ms0, ms1;
-
-  ms0 = c->marksize[0] / 2.0;
-  ms1 = c->marksize[1] / 2.0;
-
-  switch (c->marktype) {
-    case 'n': break;
-    case 'c': printline(x-ms0, y, x+ms0, y, 'x');
-              printline(y-ms1, x, y+ms1, x, 'y');
-              break;
-    case 'b': start_poly(x-ms0, y-ms1);
-              cont_poly(x+ms0, y-ms1);
-              cont_poly(x+ms0, y+ms1);
-              cont_poly(x-ms0, y+ms1);
-              end_poly(c->fill);
-              break;
-    case 'd': start_poly(x-ms0, y);
-              cont_poly(x, y-ms1);
-              cont_poly(x+ms0, y);
-              cont_poly(x, y+ms1);
-              end_poly(c->fill);
-              break;
-    case 'g': p = first(c->general_marks);
-              if (p == nil(c->general_marks)) return;
-              if (next(p) == nil(c->general_marks)) return;
-              start_poly(x+p->x*ms0, y+p->y*ms1);
-              for(p = next(p); p != nil(c->general_marks); p = next(p))
-                cont_poly(x+p->x*ms0, y+p->y*ms1);
-              end_poly(c->fill);
-              break;
-    case 'x': printline(x-ms0, y-ms1, x+ms0, y+ms1, 'x');
-              printline(x-ms0, y+ms1, x+ms0, y-ms1, 'x');
-              break;
-    case 'o': printellipse(x, y, ms0, ms0, c->fill);
-              break;
-    case 'e': printellipse(x, y, ms0, ms1, c->fill);
-              break;
-    case 't': start_poly(x+ms0, y-ms1);
-              cont_poly(x, y+ms1);
-              cont_poly(x-ms0, y-ms1);
-              end_poly(c->fill);
-              break;
-    case 'X': start_poly(x+ms0, y);
-              cont_poly(x-ms0, y);
-              cont_poly(x-ms0, g->x_axis->draw_at);
-              cont_poly(x+ms0, g->x_axis->draw_at);
-              end_poly(c->fill);
-              break;
-    case 'Y': start_poly(x, y+ms1);
-              cont_poly(x, y-ms1);
-              cont_poly(g->y_axis->draw_at, y-ms1);
-              cont_poly(g->y_axis->draw_at, y+ms1);
-              end_poly(c->fill);
-              break;
-    default: error_header(); 
-             fprintf(stderr, "Unknown mark: %c\n", c->marktype);
-             break;
-  }
-}
-
-draw_legend(g)
-Graph g;
-{
-  Curve c;
-  Legend l;
-  float x, y;
-
-  l = g->legend;
-  comment("Drawing legend");
-  if (l->type == 'n') return;
-  for (c = first(g->curves); c != nil(g->curves); c = next(c)) {
-    if (c->l->label != CNULL) {
-      y = c->l->y - (c->l->fontsize / 2.0 * FCPI / FPPI);
-      if (l->anylines) {
-        if (c->linetype != '0') {
-          x = c->l->x - l->midspace - l->linelength;
-          start_line(x, y, c->linethick, c->linetype); 
-          cont_line(x+l->linelength, y);
-          end_line();
-        }
-        x = c->l->x - l->midspace - l->linelength / 2.0;
-      } else x = c->l->x - l->midspace;
-      if (c->marktype == 'X' || c->marktype == 'Y') {
-        char old;
-        old = c->marktype;
-        c->marktype = 'b'; 
-        draw_mark(x, y, c, g); 
-        c->marktype = old;
-      } else {
-        draw_mark(x, y, c, g);
-      }
-      draw_label(c->l);
-    }
-  }
-}
-
-draw_strings(g)
-Graph g;
-{
-  String s;
-
-  comment("Drawing strings");
-  for (s = first(g->strings); s != nil(g->strings); s = next(s))
-    draw_label(s->s);
-}
-
-draw_graph(g)
-Graph g;
-{
-  comment("Drawing New Graph");
-  printf("%f %f translate\n", g->x_translate - g->x_axis->psize / 2.0, 
-          g->y_translate);
-  draw_axis(g->x_axis);
-  draw_axis(g->y_axis);
-  draw_label(g->title);
-  draw_curves(g);
-  draw_legend(g);
-  draw_strings(g);
-  printf("%f %f translate\n", - g->x_translate + g->x_axis->psize / 2.0, 
-          - g->y_translate);
-
-}
-
-draw_graphs(gs)
-Graphs gs;
-{
-  Graph g;
-
-  draw_header(gs);
-  for (g = first(gs->g); g != nil(gs->g); g = next(g)) {
-    draw_graph(g);
-  }
-  draw_footer(gs);
-}
-
-draw_header(gs)
-Graphs gs;
-{
-  printf("%%!\n");
-  printf("%%%%Pages: 0\n");
-  printf("%%%%BoundingBox: %f %f %f %f\n", gs->bb[0], gs->bb[1], gs->bb[2], gs->bb[3]);
-  printf("%%%%EndComments\n");
-  printf("/$F2psDict 32 dict def $F2psDict begin\t$F2psDict /mtrx matrix put\n");
-  printf("/DrawEllipse {\t/endangle exch def\t/startangle exch def");
-  printf("\t/yrad exch def\t/xrad exch def\t/y exch def\t/x exch def");
-  printf("\t/savematrix mtrx currentmatrix def");
-  printf("\tx y translate xrad yrad scale 0 0 1 startangle endangle arc");
-  printf("\tsavematrix setmatrix\t} def\n");
-  printf("\tend\t/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def");
-  printf("\t/$F2psEnd\n");
-  printf("{$F2psEnteredState restore end} def\t%%%%EndProlog\n");
-  printf("$F2psBegin\n");
-  printf("%f 0 translate\n", gs->width / 2.0);
-  if (gs->printable_postscript)
-    printf("%f %f translate\n",
-      ((8.5 * FCPI) - (gs->bb[2] - gs->bb[0])) / 2.0,     
-      (gs->bb[3] > (5.5*FCPI)) ? (11*FCPI) - gs->bb[3] : (5.5*FCPI));
-  printf("1 setlinecap 1 setlinejoin\n");
-  printf("0.700 setlinewidth\n");
-}
-
-draw_footer(gs)
-Graphs gs;
-{
-  printf("$F2psEnd\n");
-  if (gs->printable_postscript) printf("showpage\n");
-}
End of draw.c
echo edit.c 1>&2
sed 's/^-//' >'edit.c' <<'End of edit.c'
-/* $Log:	edit.c,v $
- * Revision 1.7  90/12/03  16:49:28  jsp
- * Who knows why this is any different from 1.6.
- * 
- * Revision 1.6  90/10/18  12:44:44  jsp
- * First release version
- * 
- * Changes include the addition of logrhythmic axes, better hash mark
- * editing, etc.
- * 
- * Revision 1.5  90/10/14  21:26:15  jsp
- * Allows user-inputted hash lines and hash labels
- * 
- * Revision 1.4  90/10/14  19:53:36  jsp
- * Incorporated the global array MARKTYPES, etc, into the editing procedure.
- * 
- * Added no_hash_label option.
- * 
- * Revision 1.3  90/10/14  14:23:29  jsp
- * Added code for bar graphs
- * 
- * Revision 1.2  90/10/14  13:36:39  jsp
- * Updated to use error_header, as defined in token.c 1.2.
- * 
- * Revision 1.1  90/10/12  18:10:46  jsp
- * Initial revision
- * 
- * Module for taking the tokens from token.c and using them to 
- * edit the graph structs.
- */
-
-
-#include <stdio.h>
-
-#include "jgraph.h"
-
-#define MAX(a,b) ((a > b) ? a : b)
-#define MIN(a,b) ((a < b) ? a : b)
-
-edit_label(l)
-Label l;
-{
-  char *txt, inp_str[80];
-  float f;
-
-  while ( getstring(inp_str) ) {
-    if (strcmp(inp_str, ":") == 0) {
-      if ((txt = getlabel()) == CNULL) return;
-      l->label = txt;
-    } else if (strcmp(inp_str, "x") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else l->x = f;
-    } else if (strcmp(inp_str, "y") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else l->y = f;
-    } else if (strcmp(inp_str, "fontsize") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else l->fontsize = f;
-    } else if (strcmp(inp_str, "hjl") == 0) {
-      l->hj = 'l';
-    } else if (strcmp(inp_str, "hjc") == 0) {
-      l->hj = 'c';
-    } else if (strcmp(inp_str, "hjr") == 0) {
-      l->hj = 'r';
-    } else if (strcmp(inp_str, "vjc") == 0) {
-      l->vj = 'c';
-    } else if (strcmp(inp_str, "vjt") == 0) {
-      l->vj = 't';
-    } else if (strcmp(inp_str, "vjb") == 0) {
-      l->vj = 'b';
-    } else if (strcmp(inp_str, "font") == 0) {
-      if (!getstring(inp_str)) return;
-      txt = (char *) malloc (sizeof(char)*strlen(inp_str)+2);
-      strcpy(txt, inp_str);
-      l->font = txt;
-    } else if (strcmp(inp_str, "rotate") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else l->rotate = f;
-    } else {
-      rejecttoken();
-      return;
-    }
-  }
-}
-
-copy_label(l1, l2) /* Copies label l1 to l2 */
-Label l1, l2;
-{
-  l1->label = l2->label;
-  l1->x = l2->x;
-  l1->y = l2->y;
-  l1->rotate = l2->rotate;
-  l1->font = l2->font;
-  l1->fontsize = l2->fontsize;
-  l1->hj = l2->hj;
-  l1->vj = l2->vj;
-}
-
-copy_axis(a1, a2) /* Copies axis a2 to a1 */
-Axis a1, a2;
-{
-  copy_label(a1->label, a2->label);
-  copy_label(a1->hl, a2->hl);
-  a1->max = a2->max;
-  a1->min = a2->min;
-  a1->pmax = a2->pmax;
-  a1->pmin = a2->pmin;
-  a1->size = a2->size;
-  a1->hash_interval = a2->hash_interval;
-  a1->hash_start = a2->hash_start;
-  a1->log_base = a2->log_base;
-  a1->draw_hash_marks_at = a2->draw_hash_marks_at;
-  a1->draw_hash_labels_at = a2->draw_hash_labels_at;
-  a1->draw_at = a2->draw_at;
-  a1->draw_hash_labels = a2->draw_hash_labels;
-  a1->draw_axis_line = a2->draw_axis_line;
-  a1->draw_hash_marks = a2->draw_hash_marks;
-  a1->draw_axis_label = a2->draw_axis_label;
-  a1->auto_hash_labels = a2->auto_hash_labels;
-  a1->auto_hash_marks = a2->auto_hash_marks;
-  a1->minor_hashes = a2->minor_hashes;
-  a1->hash_scale = a2->hash_scale;
-  a1->precision = a2->precision;
-  a1->start_given = a2->start_given;
-  a1->is_lg = a2->is_lg;
-  a1->is_x = a2->is_x;
-}
-
-inherit_axes(g, gs)
-Graph g;
-Graphs gs;
-{
-  if (prev(g) == nil(gs->g)) {
-    error_header(); 
-    fprintf(stderr, "First graph cannot inherit axes\n");
-    exit(1);
-  }
-  copy_axis(g->x_axis, prev(g)->x_axis);
-  copy_axis(g->y_axis, prev(g)->y_axis);
-  g->x_translate = prev(g)->x_translate;
-  g->y_translate = prev(g)->y_translate;
-}
-
-edit_curve(c, g)
-Curve c;
-Graph g;
-{
-  char inp_str[256];
-  float x, y, f;
-  Point p;
-  int i;
-
-  while ( getstring(inp_str) ) {
-    if (strcmp(inp_str, "pts") == 0) {
-      while (getfloat(&x)) {
-        if (!getfloat(&y)) {
-          error_header(); 
-          fprintf(stderr, "Reading Points, no y value for x=%f\n", x);
-          exit(1);
-        }
-        p = (Point) get_node(c->pts);
-        p->x = x;
-        p->y = y;
-        if (g->x_axis->pmax == FSIG) {
-          g->x_axis->pmax = p->x;
-          g->x_axis->pmin = p->x;
-          g->y_axis->pmax = p->y;
-          g->y_axis->pmin = p->y;
-        } else {
-          g->x_axis->pmax = MAX(g->x_axis->pmax, p->x);
-          g->x_axis->pmin = MIN(g->x_axis->pmin, p->x);
-          g->y_axis->pmax = MAX(g->y_axis->pmax, p->y);
-          g->y_axis->pmin = MIN(g->y_axis->pmin, p->y);
-        }
-        insert(p, c->pts, 0);
-      }
-      rejecttoken();
-    } else if (strcmp(inp_str, "label") == 0) {
-      edit_label(c->l);
-    } else if (strcmp(inp_str, "marksize") == 0) {
-      if (!getfloat(&f)) rejecttoken(); 
-      else {
-        c->marksize[0] = f;
-        if (!getfloat(&f)) rejecttoken(); 
-        else c->marksize[1] = f;
-      }
-    } else if (strcmp(inp_str, "gmarks") == 0) {
-      while (getfloat(&x)) {
-        if (!getfloat(&y)) {
-          error_header(); 
-          fprintf(stderr, "Reading GMarks, no y value for x=%f\n", x);
-          exit(1);
-        }
-        p =  (Point) get_node(c->general_marks);
-        p->x = x;
-        p->y = y;
-        insert(p, c->general_marks);
-      }
-      rejecttoken();
-    } else if (strcmp(inp_str, "fill") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else c->fill = f;
-    } else if (strcmp(inp_str, "marktype") == 0) {
-      if (!getstring(inp_str)) return;
-      for (i = 0; i < NMARKTYPES && strcmp(inp_str, MARKTYPESTRS[i]) != 0; i++) ;
-      if (i == NMARKTYPES) {
-        error_header(); fprintf(stderr, "Bad mark: %s\n", inp_str);
-        fprintf(stderr, "             Valid marks are:");
-        for (i = 0; i < NMARKTYPES; i++) fprintf(stderr, " %s", MARKTYPESTRS[i]);
-        fprintf(stderr, "\n");
-        exit(1);
-      } else c->marktype = MARKTYPES[i];
-    } else if (strcmp(inp_str, "linetype") == 0) {
-      if (!getstring(inp_str)) return;
-      if (strcmp(inp_str, "none") == 0) c->linetype = '0';
-      else if (strcmp(inp_str, "solid") == 0) c->linetype = 's';
-      else if (strcmp(inp_str, "dotted") == 0) c->linetype = '.';
-      else if (strcmp(inp_str, "dashed") == 0) c->linetype = '-';
-      else {
-        error_header(); fprintf(stderr, "Bad line type: %s\n", inp_str);
-        error_header(); fprintf(stderr, "             Valid marks are %s.\n", 
-          "solid, dottted, dashed, none");
-        exit(1);
-      }
-    } else if (strcmp(inp_str, "linethickness") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else c->linethick = f;
-    } else {
-      rejecttoken();
-      return;
-    }
-  }
-}
-
-edit_hash_label(a)
-Axis a;
-{
-  float at, f;
-  char *s;
-  char inp_str[256];
-  String st;
-
-  s = CNULL;
-
-  at = (first(a->hash_lines) == nil(a->hash_lines)) ? FSIG
-          : first(a->hash_lines)->loc;
-  while (getstring(inp_str)) {
-    if (strcmp(inp_str, ":") == 0) {
-      if ((s = getlabel()) == CNULL) return;
-    } else if (strcmp(inp_str, "at") == 0) {
-      if (getfloat(&f)) at = f; else rejecttoken();
-    } else {
-      rejecttoken();
-      if (s == CNULL) return;
-      if (at == FSIG) {
-        error_header();
-        fprintf(stderr, 
-          "hash_label either needs \"at\" or an associated \"hash_at\"\n");
-        exit(1);
-      }
-      st = (String) get_node(a->hash_labels);
-      st->s = new_label();
-      st->s->label = s;
-      st->s->x = at;
-      st->s->y = at;
-      insert(st, a->hash_labels);
-      return;
-    }
-  }
-}
-
-edit_axis(a)
-Axis a;
-{
-  char inp_str[256];
-  float f;
-  int i;
-  Hash h;
-
-  while ( getstring(inp_str) ) {
-
-    if (strcmp(inp_str, "size") == 0) {
-      if ( getfloat(&f)) a->size = f; else rejecttoken();
-    } else if (strcmp(inp_str, "max") == 0) {
-      if ( getfloat(&f)) a->max = f; else rejecttoken();
-    } else if (strcmp(inp_str, "min") == 0) {
-      if ( getfloat(&f)) a->min = f; else rejecttoken();
-    } else if (strcmp(inp_str, "hash") == 0) {
-      if ( getfloat(&f)) a->hash_interval = f; else rejecttoken();
-    } else if (strcmp(inp_str, "shash") == 0) {
-      if ( getfloat(&f)) {
-        a->hash_start = f;
-        a->start_given = 1;
-        } 
-      else rejecttoken();
-    } else if (strcmp(inp_str, "mhash") == 0) {
-      if (getint(&i)) a->minor_hashes = i; else rejecttoken();
-    } else if (strcmp(inp_str, "precision") == 0) {
-      if (getint(&i)) a->precision = i; else rejecttoken();
-    } else if (strcmp(inp_str, "label") == 0) {
-      edit_label(a->label);
-    } else if (strcmp(inp_str, "hash_labels") == 0) {
-      edit_label(a->hl);
-    } else if (strcmp(inp_str, "log_base") == 0) {
-      if (getfloat(&f)) {
-        if (f <= 1.0) {
-          error_header();
-          fprintf(stderr, "\"log_base %f\": log_base must be > 1.0\n", f);
-          exit(1);
-        } else a->log_base = f; 
-      } else rejecttoken();
-    } else if (strcmp(inp_str, "draw_at") == 0) {
-      if ( getfloat(&f)) a->draw_at = f; else rejecttoken();
-    } else if (strcmp(inp_str, "log") == 0) {
-      a->is_lg = 1;
-    } else if (strcmp(inp_str, "linear") == 0) {
-      a->is_lg = 0;
-    } else if (strcmp(inp_str, "nodraw") == 0) {
-      a->draw_hash_labels = 0;
-      a->draw_axis_line = 0;
-      a->draw_hash_marks = 0;
-      a->draw_axis_label = 0;
-    } else if (strcmp(inp_str, "draw") == 0) {
-      a->draw_hash_labels = 1;
-      a->draw_axis_line = 1;
-      a->draw_hash_marks = 1;
-      a->draw_axis_label = 1;
-    } else if (strcmp(inp_str, "hash_at") == 0 ||
-               strcmp(inp_str, "mhash_at") == 0) {
-      if (getfloat(&f)) {
-        h = (Hash) get_node (a->hash_lines);
-        h->loc = f;
-        h->size = (inp_str[0] == 'h') ? HASH_SIZE : MHASH_SIZE;
-        insert(h, a->hash_lines);
-      } else rejecttoken();
-    } else if (strcmp(inp_str, "hash_label") == 0) {
-      edit_hash_label(a);       
-    } else if (strcmp(inp_str, "hash_scale") == 0) {
-      if ( getfloat(&f)) a->hash_scale = f; else rejecttoken();
-    } else if (strcmp(inp_str, "auto_hash_marks") == 0) {
-      a->auto_hash_marks = 1;
-    } else if (strcmp(inp_str, "no_auto_hash_marks") == 0) {
-      a->auto_hash_marks = 0;
-    } else if (strcmp(inp_str, "auto_hash_labels") == 0) {
-      a->auto_hash_labels = 1;
-    } else if (strcmp(inp_str, "no_auto_hash_labels") == 0) {
-      a->auto_hash_labels = 0;
-    } else if (strcmp(inp_str, "draw_hash_labels_at") == 0) {
-      if (getfloat(&f)) a->draw_hash_labels_at = f; else rejecttoken();
-    } else if (strcmp(inp_str, "draw_hash_marks_at") == 0) {
-      if (getfloat(&f)) a->draw_hash_marks_at = f; else rejecttoken();
-    } else if (strcmp(inp_str, "no_draw_hash_labels") == 0) {
-      a->draw_hash_labels = 0;
-    } else if (strcmp(inp_str, "draw_hash_labels") == 0) {
-      a->draw_hash_labels = 1;
-    } else if (strcmp(inp_str, "no_draw_axis_line") == 0) {
-      a->draw_axis_line = 0;
-    } else if (strcmp(inp_str, "draw_axis_line") == 0) {
-      a->draw_axis_line = 1;
-    } else if (strcmp(inp_str, "no_draw_hash_marks") == 0) {
-      a->draw_hash_marks = 0;
-    } else if (strcmp(inp_str, "draw_hash_marks") == 0) {
-      a->draw_hash_marks = 1;
-    } else if (strcmp(inp_str, "no_draw_axis_label") == 0) {
-      a->draw_axis_label = 0;
-    } else if (strcmp(inp_str, "draw_axis_label") == 0) {
-      a->draw_axis_label = 1;
-    } else {
-      rejecttoken(); 
-      return;
-    }
-  }
-}
-
-edit_legend(l)
-Legend l;
-{
-  char inp_str[256];
-  float f;
-
-  while ( getstring(inp_str) ) {
-    if (strcmp(inp_str, "x") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else {l->x = f; l->type = 'u';}
-    } else if (strcmp(inp_str, "y") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else {l->y = f; l->type = 'u';}
-    } else if (strcmp(inp_str, "right") == 0) {
-      l->type = 'r';
-    } else if (strcmp(inp_str, "off") == 0) {
-      l->type = 'n';
-    } else if (strcmp(inp_str, "top") == 0) {
-      l->type = 't';
-    } else if (strcmp(inp_str, "on") == 0) {
-      l->type = 'r';
-    } else if (strcmp(inp_str, "custom") == 0) {
-      l->type = 'c';
-    } else if (strcmp(inp_str, "linelength") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else l->linelength = f;
-    } else if (strcmp(inp_str, "linebreak") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else l->linebreak = f;
-    } else if (strcmp(inp_str, "midspace") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else l->midspace = f;
-    } else {
-      rejecttoken();
-      return;
-    }
-  }
-}
-
-edit_graph(g, gs)
-Graph g;
-Graphs gs;
-{
-  char inp_str[80];
-  int num;
-  String s;
-  float f;
-
-  while ( getstring(inp_str) ) {
-    if (strcmp(inp_str, "xaxis") == 0)
-      edit_axis(g->x_axis);
-    else if (strcmp(inp_str, "yaxis") == 0)
-      edit_axis(g->y_axis);
-    else if (strcmp(inp_str, "curve") == 0) {
-      if (!getint(&num)) {
-        error_header(); fprintf(stderr, "\"curve\" not followed by number\n");
-        exit(1);
-      }
-      edit_curve(get_curve(g->curves, num), g);
-    } else if (strcmp(inp_str, "newcurve") == 0) {
-      if (first(g->curves) == nil(g->curves))
-        edit_curve(new_curve(g->curves, 0), g);
-      else edit_curve(new_curve(g->curves, last(g->curves)->num + 1), g);
-    } else if (strcmp(inp_str, "title") == 0) {
-      edit_label(g->title);
-    } else if (strcmp(inp_str, "legend") == 0) {
-      edit_legend(g->legend);
-    } else if (strcmp(inp_str, "x_translate") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else g->x_translate = f;
-    } else if (strcmp(inp_str, "y_translate") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else g->y_translate = f;
-    } else if (strcmp(inp_str, "string") == 0) {
-      if (!getint(&num)) {
-        error_header(); fprintf(stderr, "\"string\" not followed by number\n");
-        exit(1);
-      }
-      s = get_string(g->strings, num);
-      edit_label(s->s);
-    } else if (strcmp(inp_str, "newstring") == 0) {
-      if (first(g->strings) == nil(g->strings))
-        s = new_string(g->strings, 0);
-      else s = new_string(g->strings, last(g->strings)->num + 1);
-      edit_label(s->s);
-    } else if (strcmp(inp_str, "inherit_axes") == 0) {
-      inherit_axes(g, gs);
-    } else if (strcmp(inp_str, "Y") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else gs->height = f;
-    } else if (strcmp(inp_str, "X") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else gs->width = f;
-    } else {
-      rejecttoken();
-      return;
-    } 
-  }
-}
-
-edit_graphs(gs)
-Graphs gs;
-{
-  char inp_str[80];
-  float f;
-  int num;
-
-  while ( getstring(inp_str) ) {
-    if (strcmp(inp_str, "graph") == 0) {
-      if (!getint(&num)) {
-        error_header(); fprintf(stderr, "\"graph\" not followed by number\n");
-        exit(1);
-      }
-      edit_graph(get_graph(gs->g, num), gs);
-    } else if (strcmp(inp_str, "newgraph") == 0) {
-      if (first(gs->g) == nil(gs->g))
-        edit_graph(new_graph(gs->g, 0), gs);
-      else edit_graph(new_graph(gs->g, last(gs->g)->num + 1), gs);
-    } else if (strcmp(inp_str, "Y") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else gs->height = f;
-    } else if (strcmp(inp_str, "X") == 0) {
-      if (!getfloat(&f)) rejecttoken(); else gs->width = f;
-    } else {
-      error_header(); fprintf(stderr, "Bad token: %s\n", inp_str);
-      exit(1);
-    } 
-  }
-}
End of edit.c
echo fprio_list.c 1>&2
sed 's/^-//' >'fprio_list.c' <<'End of fprio_list.c'
-/* $Log:	prio_list.c,v $
- * Revision 1.1  90/10/12  17:52:01  jsp
- * Initial revision
- * 
- */
-
-/* Jim Plank
- * prio_list.c
- * Prioirity list manipulation */
- 
-#include "list.h"
-#include "prio_list.h"
-#include <stdio.h>
-
-typedef int Boolean;
-
-/* A prioirity list is any list with the first three fields being flink, 
- * blink and prio.  Use the routines of list.c to do everything except
- * insertion */
- 
-typedef struct prio_list {
-  struct prio_list *flink;
-  struct prio_list *blink;
-  float prio;
-} *Prio_list;
-
-/* Prio_insert inserts nodes into their proper places in priority lists.  It first 
- * checks for inserting into the head or tail, and then proceeds sequentially.
- * Thus, it is worst case linear, but for most cases constant time (right). */
-
-fprio_insert(node, list, desc)
-Prio_list node;
-Prio_list list;
-Boolean desc;
-{
-  Prio_list p;
-
-  /* Check nil and head of list */
-  if (first(list) == nil(list) || 
-      (!desc && first(list)->prio >= node->prio) ||
-      (desc  && first(list)->prio <= node->prio) ) {
-    node->blink = list;
-    node->flink = list->flink;
-    list->flink->blink = node;
-    list->flink = node;
-    return;
-  }
-  /* Check tail of list */
-  if ((desc  && last(list)->prio >= node->prio) ||
-      (!desc && last(list)->prio <= node->prio) ) {
-    node->flink = list;
-    node->blink = list->blink;
-    list->blink->flink = node;
-    list->blink = node;
-    return;
-  }
-  /* Check the rest of the list sequentially */
-  for(p = next(first(list));  ; p = next(p)) {
-    if (p == nil(list)) fprintf(stderr, "inserting into tail did not work\n");
-    if ((!desc && p->prio >= node->prio) ||
-        (desc  && p->prio <= node->prio)) {
-      node->flink = p;
-      node->blink = p->blink;
-      p->blink->flink = node;
-      p->blink = node;
-      return;
-    }
-  }
-}
-      
-
-  
End of fprio_list.c
echo fprio_list.h 1>&2
sed 's/^-//' >'fprio_list.h' <<'End of fprio_list.h'
-/* $Log:	prio_list.h,v $
- * Revision 1.1  90/10/12  17:52:29  jsp
- * Initial revision
- * 
- */
-
-/* Jim Plank
- * prio_list.h
- * Prioirity list manipulation header file */
-
-/* Priority lists are just like normal lists of list.h and list.c, except
- * that their third field is a (float) prioriy.  The routines of list.c should all
- * be used except for insert, because it will always put an item at the 
- * end of a list.  Instead, use prio_insert, which will put the item
- * into its proper place in the list.  The last argument of prio_insert should
- * be TRUE if the list is to be kept in descending order; it should be FALSE
- * for ascending order.
-
- * Priority list should be:
-
-struct prio_list {
-  struct prio_list *flink;
-  struct prio_list *blink;
-  float prio;
-  ...
-  }
-
-*/
-
-/* void prio_insert(node, list, descending); */
-
End of fprio_list.h
echo g8.jgr 1>&2
sed 's/^-//' >'g8.jgr' <<'End of g8.jgr'
-(* $Log:	g8.jgr,v $
- * Revision 1.1  90/10/12  17:33:33  jsp
- * Initial revision
- * 
- *)
-
-Y 3
-
-(* Graph #8: Frequency of Traps.   This graph shows examples of plotting
- * character strings. *) 
-
-newgraph
-
-yaxis size 1.9 min 0 max 10 hash 1 mhash 0
-  hash_labels fontsize 7
-  label fontsize 8 : Traps per 0.1 second Interval
-
-xaxis size 2.14 min 0 max 2.6001 hash .5 mhash 4 precision 1
-  hash_labels fontsize 7
-  label fontsize 8 : Starting Time of 0.1 second interval (sec)
-
-title fontsize 10 : Graph 8: Frequency of Traps.
-
-newcurve
-  marktype circle fill 0
-  linetype none
-  pts 
-    0.0 9
-    0.1 3
-    0.2 5
-    0.3 6
-    0.4 6
-    0.5 5
-    0.6 6
-    0.7 6
-    0.8 6 
-    0.9 6
-    1.0 6
-    1.1 4 
-    1.2 5
-    1.3 3
-    1.4 4
-    1.5 5
-    1.6 3
-    1.7 5
-    1.8 5
-    1.9 4
-    2.0 3
-    2.1 4
-    2.2 5
-    2.3 5
-    2.4 4
-    2.5 0
-    2.6 0
-
-newstring 
-  : Average Trap Time = 0.015 seconds
-  x 2.6 y 10
-  hjr vjc
-  fontsize 7
-
-newstring
-  : ...
-  x 2.7 y 0
-  hjl vjb
-  fontsize 7
-
End of g8.jgr
echo g8.tex 1>&2
sed 's/^-//' >'g8.tex' <<'End of g8.tex'
-
-\documentstyle[12pt]{report}
-\input{psfig}
-
-\begin{document}
-
-
-A scatter plot with plotted text:
-
-\begin{figure}[h]
-\centerline{\psfig{figure=/u/jsp/src/jgraph/graphs/g8.jps}}
-\end{figure}
-
-\end{document}
-
End of g8.tex
echo g9n10.jgr 1>&2
sed 's/^-//' >'g9n10.jgr' <<'End of g9n10.jgr'
-(* This file plots two graphs side by side with a tricky legend format:
- * There are 5 legend entries, one of which is of a curve containing a
- * line.  The desire is to make the legend have two columns, the first
- * with the first three legend entries, and the second with the last
- * two.
- * 
- * The way that this is done is to actually plot four graphs -- two sets
- * of two graphs superimposed on each other.  The first of the two
- * graphs has the first three curves, and the second has the last two. 
- * Thus, the first can set its legend to be the first column, and the
- * second can set its legend to be the second column.
- * 
- * The way I went about doing this was to first set the legend of the
- * first graph to "legend top", and then run jgraph with the -p option. 
- * That told me that the y value of the legend was near 48, so I simply
- * made it 48.  Thus, to make the two columns line up, the second graph
- * sets its legend to be at y=48.
- * 
- * A problem with this method is that the first legend has a curve with
- * a line in it, while the second does not.  Therefore, if no
- * adjustments are made, the marks in the second legend will be closer
- * to the legend text than the in the first.  To compensate, again -p is
- * used to figure out the values of linelength and midspace in the first
- * legend.  From those, the midspace entry of the second legend is set
- * to midspace1 + linelength1/2. Thus, the two legends look right
- * together. *)
-
-Y 3
-
-(* Set up the axes of the first graph.  Translate it to the left of the 
- * page *)
-
-newgraph
-x_translate -1.37
-yaxis size 1.9 min 0 max 40 precision 0 hash 10 mhash 1
-  hash_labels fontsize 7
-  label : Time (sec)
-    fontsize 8
-xaxis size 2.14 min 0 max 10 hash 2 mhash 1
-  hash_labels fontsize 7
-  label : Heap Size (MBytes)
-    fontsize 8
-title : Graph 9: Checkpoint Time of Other Benchmarks.
-  fontsize 10
-
-(* Draw the first three curves *)
-newcurve
-  label : Merge Sort
-    fontsize 7
-  marktype circle fill 0.0 
-  linetype solid
-  pts 
-    .789 5.5414
-   2.985 13.9958
-   3.962 17.2362
-   4.938 21.0804
-   7.868 32.4082
-   9.821 39.8312
-newcurve
-  label : Travelling Salesman
-    fontsize 7
-  marktype triangle fill 0 
-  linetype none
-  pts 
-.064 2.359
-newcurve
-  label : Pattern Match
-    fontsize 7
-  marktype diamond fill 1.0 
-  linetype none
-  pts 
-1.233 6.374
-
-(* set the legend *)
-legend x 0 y 48
-
-(* Now make a second graph for the second curve with the same axes *)
-newgraph
-inherit_axes
-xaxis nodraw
-yaxis nodraw
-
-(* Draw the last two curves *)
-newcurve
-  label : Bubble Sort
-    fontsize 7
-  marktype cross fill 1.0 
-  linetype none
-  pts 
-.513 3.91
-newcurve
-  label : Matrix Multiplication
-    fontsize 7
-  marktype box fill 1 
-  linetype none
-  pts 
-3 14.71
-
-(* set the second legend to be a second column from the first *)
-legend x 5.8 y 48 midspace 0.525710
-
-
-(* The second of these graphs is just like the first only it is translated
-to the right *)
-
-newgraph
-inherit_axes
-x_translate 1.7
-xaxis draw
-yaxis draw
-yaxis min 0 max 5 hash 1 mhash 1
-title : Graph 10: Checkpoint Overhead of Other Benchmarks.
-  fontsize 10
-
-newcurve
-  label : Merge Sort
-    fontsize 7
-  marktype circle fill 0.0 
-  linetype solid
-  pts 
-    .789 0.5954
-   2.985 3.8368
-   3.962 3.3598
-   4.938 3.6288
-   7.868 4.3096
-   9.821 4.377
-
-newcurve
-  label : Travelling Salesman
-    fontsize 7
-  marktype triangle fill 0 
-  linetype none
-  pts 
-.064 0.17
-
-newcurve
-  label : Pattern Match
-    fontsize 7
-  marktype diamond fill 1.0 
-  linetype none
-  pts 
-1.233 0.07
-
-legend x 0 y 6
-
-
-newgraph
-inherit_axes
-xaxis nodraw
-yaxis nodraw
-
-newcurve
-  label : Bubble Sort
-    fontsize 7
-  marktype cross fill 1.0 
-  linetype none
-  pts 
-.513 0.07
-
-newcurve
-  label : Matrix Multiplication
-    fontsize 7
-  marktype box fill 1 
-  linetype none
-  pts 
-3 0.75
-
-legend x 5.8 y 6 midspace 0.52571
End of g9n10.jgr
echo g9n10.tex 1>&2
sed 's/^-//' >'g9n10.tex' <<'End of g9n10.tex'
-
-\documentstyle[12pt]{report}
-\input{psfig}
-
-\begin{document}
-
-
-A more advanced graph with two graphs and split legends:
-
-\begin{figure}[h]
-\centerline{\psfig{figure=/u/jsp/src/jgraph/graphs/g9n10.jps}}
-\end{figure}
-
-\end{document}
-
End of g9n10.tex
echo graphs 1>&2
sed 's/^-//' >'graphs' <<'End of graphs'
End of graphs
echo hypercube.jgr 1>&2
sed 's/^-//' >'hypercube.jgr' <<'End of hypercube.jgr'
-newgraph
-xaxis size 2.5 min 0 max 2.5 nodraw
-yaxis size 2 min 0 max 2 nodraw
-legend x 2.4 y 1.25
-
-newcurve pts
-  0 0
-  1.5 0
-  marktype none
-  linetype solid
-newcurve pts
-  0 1.5 
-  1.5 1.5
-  marktype none
-  linetype solid
-newcurve pts
-  .5 .5
-  2.0 .5
-  marktype none
-  linetype solid
-newcurve pts
-  2 2
-  .5 2
-  marktype none
-  linetype solid
-  label : Dimension 0 links
-
-newcurve pts
-  0 0
-  0 1.5
-  marktype none
-  linetype dashed
-newcurve pts
-  1.5 0
-  1.5 1.5
-  marktype none
-  linetype dashed
-newcurve pts
-  .5 .5
-  .5 2.0
-  marktype none
-  linetype dashed
-newcurve pts
-  2 2
-  2 .5
-  marktype none
-  linetype dashed
-  label : Dimension 1 links
-
-newcurve pts
-  0 0
-  .5 .5
-  marktype none
-  linetype dotted
-newcurve pts
-  0 1.5 
-  .5 2
-  marktype none
-  linetype dotted
-newcurve pts
-  1.5 0
-  2.0 .5
-  marktype none
-  linetype dotted
-newcurve pts
-  1.5 1.5
-  2 2
-  marktype none
-  linetype dotted
-  label : Dimension 2 links
-
-newcurve pts 
-  0 0
-  0 1.5
-  1.5 0
-  1.5 1.5
-  marksize .35
-  marktype circle
-  fill 1
-newcurve pts
-  .5 .5
-  .5 2
-  2 .5
-  2 2
-  marksize .27
-  marktype circle
-  fill 1
-
-newstring : 000
-  x 0 y 0 hjc vjc
-newstring : 001
-  x 1.5 y 0 hjc vjc
-newstring : 010
-  x 0 y 1.5 hjc vjc
-newstring : 011
-  x 1.5 y 1.5 hjc vjc
-newstring : 100
-  x .5 y .5 hjc vjc
-newstring : 101
-  x 2 y .5 hjc vjc
-newstring : 110
-  x .5 y 2 hjc vjc
-newstring : 111
-  x 2 y 2 hjc vjc
-
-
End of hypercube.jgr
echo jgraph.1 1>&2
sed 's/^-//' >'jgraph.1' <<'End of jgraph.1'
-.\" SCCSID: @(#)jgraph.1	1.1	10/23/89
-.\" SCCSID: @(#)jgraph.1	1.1	10/23/89
-.TH jgraph 1
-.SH NAME
-jgraph \- filter for graph plotting to postscript
-.SH SYNTAX
-.B jgraph 
-[\-\fIp\fR\|]
-[\-\fIP\fR\|]
-.SH DESCRIPTION
-\fBJgraph\fR
-takes the description of a graph or graphs in the standard
-input, and produces a postscript file on the standard output.  
-\fBJgraph\fR
-is ideal for plotting any mixture of scatter point graphs, line
-graphs, and/or bar graphs, and embedding the output into LaTeX, or
-any other text processing system which can read postscript.
-.sp
-The graph description language is simple enough to get nice looking
-graphs with a minimum of effort, yet powerful enough to give the user
-the flexibility to tailor the appearance of the graph to his or her
-individual preferences.  This includes plotting multiple graphs and
-laying them out separately on the page.
-.sp
-As an example, if the user wanted to simply plot the points (2,3),
-(4,5), (1,6), the following would be enough of a specification file:
-.EX
-newgraph
-newcurve pts 2 3 4 5 1 6
-.EE
-Now, if the user wanted to spruce the graph up by adding labels to
-the axes, connecting the points, and titling the graph, then the
-input could change to:
-.EX
-newgraph
-newcurve pts 2 3 4 5 1 6 linetype solid
-xaxis label : X axis
-yaxis label : Y axis
-title : This is an example graph
-.EE
-If the user instead wanted this to be a bar graph with different
-endpoints on the axes, he/she could simply change the input to:
-.EX
-newgraph
-xaxis min 0 max 5 label : X axis
-yaxis min 0 max 6 label : Y axis
-newcurve pts 2 3 4 5 1 6 marktype xbar
-title : This is an example bar graph
-.EE
-There are many more features of the description language, which are
-described below in the next section.  Features which are not embedded
-within the description language are: line and function interpolation,
-function plotting, and pie graphs.  The latter is impossible to do
-with the aid of 
-\fBjgraph, \fR
-however, the others can be effected with
-\fBjgraph \fR
-mixed with awk or c.  See 
-FUNCTION PLOTTING AND OTHER NON-INHERENT FEATURES 
-below.
-.sp
-Also below is a section 
-HINTS AND EXAMPLE GRAPHS, which may give good
-ideas on how to use 
-\fBjgraph \fR
-more effectively.
-.SH OPTIONS
-.TP
-.B \-P
-The 
-\fB\-P\fR
-option produces postscript which can be piped directly to 
-\fBlpr.\fR  
-Without this option, the output should be embedded within 
-\fBLaTeX\fR
-or a similar text processing system.
-.TP
-.B \-p
-The 
-\fB\-p\fR
-option re-prints the input on the standard output, only
-with all the defaults made explicit.  This is useful for letting the
-user do his/her own special formatting, as it shows the explicit
-values that the defaults assume, so that they can be manipulated.
-.SH THE DESCRIPTION LANGUAGE
-The description language is essentially keywords followed by
-attributes.  All keywords and attributes except for string attributes
-are tokens -- non-white-space characters surrounded by white-space. 
-Special tokens are 
-``(*'', ``*)'', ``include'' and ``:'', which denote
-comments, include-file statments, and string identifiers:
-.TP 
-.B Comments
-Comments are surrounded by the tokens ``(*'' ``*)'' as in
-Modula-2 (except that here, the tokens must be surrounded by white-
-space).  Comments may be nested.  If the comment runs to the end of a
-file, the last ``*)'' may be omitted.
-.TP 
-.B Include\-file statements
-The token following an ``include'' token is
-expected to be a file name.  The result of the statement is to
-include the contents of the file at that point.  Include-file
-statments can be nested within included files.
-.TP 
-.B Strings
-In places where strings are required (as in graph and
-curve labels), they are denoted by the token ``:''.  The second
-character after the ``:'' starts the string, and the next newline
-character terminates it.  Notice that in strings white-space is not
-ignored.  Thus, the string ``Graph #1'' can be denoted as:
-.EX
-: Graph #1<newline>
-.EE
-or
-.EX
-:<newline>
-Graph #1<newline>
-.EE
-This way of denoting strings allows the user to embed leading and
-trailing spaces, as well as the null string.  For example, the
-null string ``'' is represented by:
-.EX
-: <newline>
-.EE
-Once a string has been started, it may contain any character besides
-a newline.  Specifically, it may contain the sequence ``(*'' or
-``include'' without starting a comment or including a file.
-.TP
-.B Notation
-In the descriptions below: 
-.RS
-.TP
-\fBtk \|{\fIinteger\fB\|}\fR
-means that token
-\fBtk \fR
-must be followed by an integer.  
-.TP
-\fBtk \|[\fIinteger\fB\|]\fR
-means that 
-\fBtk\fR
-may be followed by an integer, but doesn't have to.  In most cases, if
-\fBtk\fR
-is not followed by an integer, then the command denoted by
-\fBtk \fR
-is ignored.  
-.TP
-\fBtk \|[\|{\fIinteger\fB\|} \|{\fIinteger\fB\|}\|]*
-means that 
-\fBtk\fR
-must be
-followed by an even number of integers.  
-.PD
-.LP
-Supported types other than
-integer are: 
-\fB\|{\fIfloat\fB\|} \fR
-for floating point entries, 
-\fB\|{\fItoken\fB\|} \fR
-for any
-token, and 
-\fB\|{\fIstring\fB\|} \fR
-for a string as defined above.
-.RE
-.TP
-.B TOP-LEVEL DESCRIPTION COMMANDS
-.RS
-.TP
-.B newgraph
-This starts editing a new graph (see GRAPH EDITING
-COMMANDS).  Note that multiple graphs may be drawn.
-.TP
-\fBgraph \|{\fIinteger\fB\|}\fR
-This edits the graph denoted by 
-\fB\|{\fIinteger\fB\|}.  \fR
-If the graph doesn't exist, then this command creates it and starts
-editing it.  
-\fBNewgraph\fR
-is simply an abbreviation for 
-\fB\fIgraph\fB \fIn\fB\fR
-where n=0 if this is the first graph, otherwise n=m+1, where m is the
-largest number of any graph so far.
-.TP
-\fBX \|[\fIfloat\fB\|]\fR
-.br
-.ns
-.TP
-\fBY \|[\fIfloat\fB\|]\fR
-Postscript files to be embedded in LaTeX
-must contain a line specifying their height and width.  Usually,
-\fBjgraph \fR
-will automatically create one for the user, however, the user
-may specify the height and width in inches using 
-\fBY\fR
-and
-\fBX\fR
-respectively.
-.PD
-.RE
-.LP
-.TP
-.B GRAPH EDITING COMMANDS
-These commands act on the current graph. 
-Graph editing is terminated when one of the top-level description
-commands is given.
-.RS
-.TP
-\fBxaxis\fR
-.br
-.ns
-.TP
-\fByaxis\fR
-Edit the x or y axis (see AXIS EDITING COMMANDS)
-.TP
-\fBnewcurve\fR  
-This starts editing a new curve of the graph (see CURVE
-EDITING COMMANDS).
-.TP
-\fBcurve \|{\fIinteger\fB\|}\fR   
-This edits the curve denoted by 
-\fB\|{\fIinteger\fB\|}.  \fR
-If the curve doesn't exist, then this command creates it and starts
-editing it.  
-\fBNewcurve\fR
-and 
-\fBcurve\fR
-interact as 
-\fBnewgraph\fR
-and
-\fBgraph\fR
-do.
-.TP
-\fBtitle\fR   
-This edits the title of the graph (see LABEL EDITING
-COMMANDS).  The title is given a default location centered beneath
-the graph, and a default font size of 12, however, as with all
-labels, this can be changed.
-.TP
-\fBlegend\fR   
-The edits the legend of the graph (see LEGEND EDITING
-COMMANDS).  As a default, the graph will contain a legend
-if any of its curves have labels.
-.TP
-\fBnewstring\fR   
-This edits a new text string (see LABEL EDITING
-COMMANDS).  This is useful as it allows the user to plot text on the
-graph as well as curves.
-.TP
-\fBstring \|{\fIinteger\fB\|}\fR   
-This is to 
-\fBnewstring\fR
-as
-\fBcurve\fR
-is to
-\fBnewcurve.\fR
-.TP
-\fBinherit_axes\fR   
-This lets the user ``inherit'' the values of the last
-graph's axes.  It copies all the attributes of the previous graph's x
-and y axes, as well as the x_translate and y_translate values. 
-(Actually, this is a little bit of a lie, as it does not copy the
-values of the 
-\fB\fIhash_at\fB, \fImhash_at\fB,\fR
-and 
-\fB\fI\fIhash_label\fB\fR 
-attributes). 
-The previous graph is the graph with the largest number greater than
-the currrent graph's number.  If the current graph has the smallest
-number, then this command will flag an error.
-.TP
-\fBx_translate \|[\fIfloat\fB\|]\fR   
-By default, graphs are drawn centered at the
-bottom of the page.  This command lets the user move the graph
-horizontally 
-\fB\|[\fIfloat\fB\|] \fR
-inches.
-.TP
-\fBy_translate \|[\fIfloat\fB\|]\fR   
-This moves the graph 
-\fB\|[\fIfloat\fB\|] \fR
-inches vertically.
-.TP
-\fBX \|[\fIfloat\fB\|]\fR
-.br
-.ns
-.TP
-\fBY \|[\fIfloat\fB\|]\fR   
-These are the same as 
-\fBX\fR
-and 
-\fBY\fR
-in the
-Top-level commands, except that they let the user continue editing
-the current graph.
-.PD
-.RE
-.LP
-.TP
-.B SIMPLE AXIS EDITING COMMANDS
-These commands act on the current
-axis as chosen by 
-\fBxaxis\fR
-or
-\fByaxis\fR
-(see GRAPH EDITING COMMANDS). 
-Axis editing terminates when a graph or top-level command is given. 
-There are more advanced axis editing commands given below which have
-to do with moving the hash marks, adding new hash marks and labels,
-etc.  See ADVANCED AXIS EDITING COMMANDS.
-.RS
-.TP
-\fBlinear\fR
-.br
-.ns
-.TP
-.B log
-Set the axis to be linear or logarithmic. The
-default is linear.  If the axis is set to be logarithmic, then values
-<= 0.0 will be disallowed, as they are at negative infinity on the
-axis.
-.TP
-\fBmin \|[\fIfloat\fB\|]\fR
-.br
-.ns
-.TP
-\fBmax \|[\fIfloat\fB\|]\fR   
-Set the minimum and maximum values of
-this axis.  Defaults depend on the points given.  They can be seen by
-using the 
-\fB\-p \fR
-option.  Unless stated, all units (for example point
-plotting, string plotting, etc.) will be in terms of the
-\fBmin\fR
-and
-\fBmax\fR
-values of the x and y axes.
-.TP
-\fBsize \|[\fIfloat\fB\|]\fR   
-Set the size of this axis in inches.
-.TP
-\fBlog_base \|[\fIfloat\fB\|]\fR   
-Set the base of the logarithmic axis. Default =
-10.  What this means is that the distance from \fB\fIlog_base\fB\fR^i and
-\fB\fIlog_base\fB\fR^(i+1) will be the same as from \fB\fIlog_base\fB\fR^(i+1) to
-\fB\fIlog_base\fB\fR(i+2).  It is also the value which determines which hash
-marks and hash labels are automatically produced.
-.TP
-\fBhash \|[\fIfloat\fB\|]\fR   
-Hash marks will be 
-\fB\|[\fIfloat\fB\|] \fR
-units apart.  Default = -1.  
-If this value equals 0, then there will be no hash marks.  If
-this value is less than 0, then the hash marks will be automatically
-set by 
-\fBjgraph \fR
-(see 
-\fB\-p \fR
-for the value).  By default, each hash mark
-will be labeled with its value.  
-\fBHash\fR
-and 
-\fBshash\fR
-are ignored if
-the axes are logarithmic.
-.TP
-\fBshash \|[\fIfloat\fB\|]\fR   
-Make sure there is a hash mark at the point
-\fB\|[\fIfloat\fB\|] \fR
-along the axis.  The default is set by 
-\fBjgraph\fR
-if
-\fBhash\fR
-= -1.
-If 
-\fBhash\fR
-is set by the user, 
-\fBshash\fR
-is defaulted to
-\fBmin.\fR
-.TP
-\fBmhash \|[\fIinteger\fB\|]\fR   
-Put 
-\fB\|[\fIinteger\fB\|] \fR
-minor hash marks between the above
-hash marks.  Default = -1.  If this value equals 0, then there will
-be no minor hash marks.  If this value is negative, then the value
-will be chosen by 
-\fBjgraph \fR
-(see 
-\fB\-p\fR
-for the value).
-.TP
-\fBprecision \|[\fIinteger\fB\|]\fR   
-Make the label have 
-\fB\|[\fIinteger\fB\|] \fR
-digits after
-the decimal point.  Default = -1.  If this value is negative, then
-\fBjgraph \fR
-will choose one.
-.TP
-\fBlabel\fR   
-Edit the label of this axis (see LABEL EDITING COMMANDS). 
-By default, the label is in font ``Times-Bold'', and has a font size of
-10.  If the user doesn't change any of the plotting attributes of the
-label, 
-\fBjgraph \fR
-chooses an appropriate place for the axis label.
-.TP
-\fBdraw_at \|[\fIfloat\fB\|]\fR   
-Draw the axis at this point on the other axis. 
-The default is usually the other axis's 
-\fBmin, \fR
-however if 
-\fBhash_scale \fR
-is positive (see 
-\fBhash_scale \fR
-under ADVANCED AXIS EDITING), it will be
-the other axis's 
-\fBmax.\fR
-.TP
-\fBnodraw\fR   
-Do not draw the axis, the hash marks or any labels.  This
-is useful for plotting points with no axes, and for overlaying graphs
-on top of one another with no clashes.  This is equivalent to
-\fBno_draw_axis_line,\fR
-\fBno_draw_axis_label,\fR
-\fBno_draw_hash_marks,\fR
-and
-\fBno_draw_hash_labels.\fR
-.TP
-\fBdraw\fR   
-Cancels the effect of 
-\fBnodraw.  \fR
-Default = 
-\fBdraw. This is\fR
-equivalent to 
-\fBdraw_axis_line,\fR
-\fBdraw_axis_label,\fR
-\fBdraw_hash_marks,\fR
-and 
-\fBdraw_hash_labels.\fR
-.PD
-.RE
-.LP
-.TP
-.B CURVE EDITING COMMANDS 
-These commands act on the current curve as
-chosen by 
-\fBnewcurve \fR
-or 
-\fBcurve \fR
-(see GRAPH EDITING COMMANDS).  Curve
-editing terminates when a graph or top-level command is given.
-.RS
-.TP
-\fBpts \|[\|{\fIfloat\fB\|} \|{\fIfloat\fB\|}\|]*\fR   
-This sets the points to plot in this
-curve.  The first value is the x point, and the second is the y
-point.  This command stops reading points when a non-float is given.
-.TP
-\fBmarktype\fR   
-This sets the kind of mark that is plotted for this
-curve.  Valid marks are: ``circle'', ``box'', ``diamond'', ``triangle'', ``x'',
-``cross'', ``ellipse'', ``xbar'', ``ybar'', ``general'', and ``none''.  Most of these are
-self-explanatory, except for the last three.  ``Xbar'' makes the curve
-into a bar graph with the bars going to the x axis.  ``Ybar'' has the bars
-going to the y axis.  ``General'' lets the user define the marks using the
-\fBgmarks\fR
-command defined below.  ``None'' means that no mark will be
-plotted (this is useful for drawing lines).  By default, a new mark
-is chosen for each curve.
-.TP
-\fBmarksize \|[\fIfloat\fB\|] \|[\fIfloat\fB\|]\fR   
-This sets the size of the mark.  The
-first 
-\fB\|[\fIfloat\fB\|] \fR
-is the width of the mark, and the second is the height. 
-Units are those of the x and y axes respectively, unless that axis is
-logarithmic, in which case the units are inches.  Negative marksizes
-are allowed (e.g.  a negative height will flip a ``triangle'' mark). 
-The default mark size can be determined using the 
-\fB\-p\fR
-option of
-\fBjgraph\fR
-.TP
-\fBfill \|[\fIfloat\fB\|]\fR   
-This sets the filling of marks which define an area
-to fill (e.g.  ``box'', ``circle'', ``xbar'').  1.0 fills the mark with
-white.  0.0 fills it with black.  Anything in between is differing
-levels of gray.  Anything negative fills it with nothing (i.e.  makes
-it see-through).  The default fill can be determined using the 
-\fB\-p\fR
-option of 
-\fBjgraph.\fR
-.TP
-\fBgmarks \|[\|{\fIfloat\fB\|} \|{\fIfloat\fB\|}\|]*\fR   
-\fBGmarks\fR
-is a way for the user to
-define custom marks.  For each mark on 
-\fB(x,y),\fR 
-Each pair of 
-\fB\|{\fIfloat_x\fB\|}, \|{\fIfloat_y\fB\|}, \fR
-will define a point on the mark (x + 
-\fB(\fIfloat_x\fB * \fImarksize_x\fB), y + (\fIfloat_y\fB * \fImarksize_y\fB)).\fR
-  Thus, for example, the
-``box'' mark could be defined as ``\fIgmarks\fB -1 -1 -1 1 1 1 1 -1''.
-.TP
-\fBlinetype \|[\fItoken\fB\|]\fR   
-This defines the type of the line connecting
-the points.  Valid entries are ``solid'', ``dotted'', ``dashed'', and
-``none''.  The default is ``none''.  Points are connected in the order in
-which they are inserted using the 
-\fBpts\fR
-command.
-.TP
-\fBlinethickness \|[\fIfloat\fB\|]\fR   
-This defines the line thickness (in
-absolute postscript units) of the connecting line.  Default = 1.0.
-.TP
-\fBlabel\fR   
-This edits the label of this curve for the purposed of
-drawing a legend.  (see LABEL EDITING COMMANDS and LEGEND EDITING
-COMMANDS).  Unless the legend entry is 
-\fBcustom\fR
-setting the x and y
-coordinates of the label will have no effect.
-.PD
-.RE
-.LP
-.TP
-.B LABEL EDITING COMMANDS
-The following commands are used for editing
-labels.  Unless stated otherwise, the defaults are written with each
-command.  Label editing terminates when one of these tokens is not
-given.
-.RS
-.TP
-\fB: \|{\fIstring\fB\|}\fR   
-This sets the string of the label.  If no string is
-set, the label will not be printed.
-.TP
-\fBx \|[\fIfloat\fB\|]\fR
-.br
-.ns
-.TP
-\fBy \|[\fIfloat\fB\|]\fR   
-This sets the x or y coordinate of the
-label.  Units are the units of the x and y axes respectively.
-.TP
-\fBfont \|[\fItoken\fB\|]\fR   
-This sets the font.  Default is usually ``Times-Roman''.
-.TP
-\fBfontsize \|[\fIfloat\fB\|]\fR   
-This sets the fontsize in points.  Default is usually 9.
-.TP
-\fBhjl\fR
-.br
-.ns
-.TP
-\fBhjc\fR
-.br
-.ns
-.TP
-\fBhjr\fR   
-These set the horizontal justification to left,
-center, and right, respectively.  Default = 
-\fBhjc.\fR
-.TP
-\fBvjt\fR
-.br
-.ns
-.TP
-\fBvjc\fR
-.br
-.ns
-.TP
-\fBvjb\fR   
-These set the vertical justification to top
-center, and bottom, respectively.  Default = 
-\fBvjb.\fR
-.TP
-\fBrotate \|[\fIfloat\fB\|]\fR   
-This will rotate the string 
-\fB\|[\fIfloat\fB\|] \fR
-degrees.  At
-the moment, the only rotations which work cleanly are: 0, 90 & 
-\fBvjc,\fR
--90 and 
-\fBvjc,\fR
-and anything else where rotation should be around the left, bottom corner
-of the string. 
-.PD
-.RE
-.LP
-.TP
-.B LEGEND EDITING COMMANDS
-These commands allow the user to alter the
-appearance of the legend.  Legends are printed out for each curve
-having a non-null label.  The legends are printed out in the order of
-ascending curve numbers.
-Legend editing terminates when a graph command or top level command
-is issued.
-.RS
-.TP
-\fBon\fR
-.br
-.ns
-.TP
-\fBright\fR   
-These will automatically produce a legend to the
-right of the graph.  Use the output of the 
-\fB\-p\fR
-option to see what
-these values really are.  This is the default.
-.TP
-\fBtop\fR
-This will automatically produce a legend on the top left of
-the graph.  Use the output of the 
-\fB\-p\fR
-option to see what these values
-really are.
-.TP
-\fBoff\fR   
-This will supress 
-\fBjgraph \fR
-from printing out a legend.
-.TP
-\fBx \|[\fIfloat\fB\|]\fR
-.br
-.ns
-.TP
-\fBy \|[\fIfloat\fB\|]\fR   
-This will set the top, left corner of the
-legend to the corresponding values.  If only one of 
-\fBx\fR
-or 
-\fBy\fR
-is used, then the other is initialized to 0.  Units are, as always, the
-units of the x and y axes.
-.TP
-\fBcustom\fR   
-This lets the user control where each individual legend
-entry goes.  Each entry is printed at the 
-\fBx\fR
-and
-\fBy\fR
-values of the curve label.  Justification other than 
-\fBvjt\fR
-and
-\fBhjl\fR
-may produce amusing results.
-.TP
-\fBlinelength \|[\fIfloat\fB\|]\fR   
-This sets the length of the line printed in
-front of legend entries corresponding to curves which have lines. 
-Units are those of the x axis, unless the x axis is logarithmic, in
-which case the units are inches.  The default may be gotten using the
-\fB\-p\fR
-option.
-.TP
-\fBlinebreak \|[\fIfloat\fB\|]\fR   
-This sets the vertical distance between
-individual legend entries.  Units are those of the y axis, unless the
-y axis is logarithmic, in which case the units are inches.  The
-default may be gotten using the 
-\fB\-p\fR
-option.
-.TP
-\fBmidspace \|[\fIfloat\fB\|]\fR   
-This sets one of two things.  If any of the
-legend entries have lines in them, then this sets the distance
-between the end of the line and the legend entry text.  Otherwise,
-this sets the distance between center of the mark and the legend
-entry text.  Units are those of the x axis, unless the x axis is
-logarithmic, in which case the units are inches.  The default may be
-gotten using the 
-\fB\-p\fR
-option.
-.PD
-.RE
-.LP
-.TP
-.B ADVANCED AXIS EDITING 
-These are more advanced commands for
-editing an axis.  This includes drawing explicit hash marks and
-labels, moving the hash marks, axes, and labels, not drawing the hash
-marks, labels, axes, etc.
-.RS
-.TP
-\fBhash_at \|[\fIfloat\fB\|]\fR   
-Draw a hash mark at this point.  No label is
-made for this hash mark.
-.TP
-\fBmhash_at \|[\fIfloat\fB\|]\fR   
-Draw a minor hash mark at this point.
-.TP
-\fBhash_label\fR   
-Edit a hash label (see HASH LABEL EDITING COMMANDS).
-.TP
-\fBhash_labels\fR   
-Edit the default characteristics of the hash labels. 
-This is so that the user can change the fontsize, justification,
-etc., of the hash labels.  Editing 
-\fBhash_labels \fR
-is just like editing
-normal labels (see LABEL EDITING COMMANDS), except that the 
-\fB:,\fR
-\fBx,\fR
-and
-\fBy\fR
-values are all ignored. Defaults for hash labels are as
-follows: Fontsize=9, Font=``Times-Roman'', Justification is dependent
-on whether it is the x or y axis and whether 
-\fBhash_scale \fR
-is positive or negative.
-.TP
-\fBhash_scale \|[\fIfloat\fB\|]\fR   
-This is to change the size and orientation of
-the hash marks.  Default = -1.0.  Changing this to -2.0 will double
-the length of the hash marks.  Changing this to +1.0 will make the
-hash marks come above or to the right of the axis.
-.TP
-\fBdraw_hash_marks_at \|[\fIfloat\fB\|]\fR   
-By default, the hash marks are drawn
-either above or below the axis.  This command changes where they are
-drawn.  
-\fBHash_scale\fR
-still determines whether they are drawn above or
-below this point, and their size.
-.TP
-\fBdraw_hash_labels_at \|[\fIfloat\fB\|]\fR   
-By default, the hash labels are
-drawn either above or below the hash marks (again, this is dependent
-on 
-\fBhash_scale).  \fR
-This command changes where they are drawn. 
-Justification and fontsize, etc., can be changed with the
-\fBhash_labels \fR
-command.
-.TP
-\fBauto_hash_marks\fR
-.br
-.ns
-.TP
-\fBno_auto_hash_marks\fR   
-This toggles whether or
-not 
-\fBjgraph \fR
-will automatically create hash marks according to 
-\fBhash,\fR
-\fBmhash\fR
-and
-\fBshash\fR
-(or 
-\fBlog_base\fR
-and
-\fBmhash\fR
-for logarithmic axes). 
-The default is 
-\fBauto_hash_marks.\fR
-.TP
-\fBauto_hash_labels\fR
-.br
-.ns
-.TP
-\fBno_auto_hash_labels\fR   
-This toggles whether or
-not 
-\fBjgraph \fR
-will automatically create hash labels for the
-\fBauto_hash_marks. \fR
-Default = 
-\fBauto_hash_labels.\fR
-.TP
-\fBdraw_axis\fR
-.br
-.ns
-.TP
-\fBno_draw_axis\fR   
-This toggles whether or not the axis
-line is drawn.  Default = 
-\fBdraw_axis.\fR
-.TP
-\fBdraw_axis_label\fR
-.br
-.ns
-.TP
-\fBno_draw_axis_label\fR   
-This toggles whether or
-not the axis label (as editted by the 
-\fBlabel \fR
-command) is drawn.
-Default = 
-\fBdraw_axis_label.\fR
-.TP
-\fBdraw_hash_marks\fR
-.br
-.ns
-.TP
-\fBno_draw_hash_marks\fR   
-This toggles whether or
-not the hash marks (both automatic and those created with 
-\fBhash_at\fR
-and 
-\fBmhash_at) \fR
-are drawn.  Default = 
-\fBdraw_hash_marks.\fR
-.TP
-\fBdraw_hash_labels\fR
-.br
-.ns
-.TP
-\fBno_draw_hash_labels\fR   
-This toggles whether or
-not the hash labels are drawn.  Default = 
-\fBdraw_hash_labels.\fR
-.PD
-.RE
-.LP
-.TP
-.B HASH LABEL EDITING COMMANDS
-Hash labels are simply strings printed
-along the appropriate axis.  As a default, they are printed at the
-place denoted by the most recent 
-\fBhash_at\fR
-or 
-\fBmhash_at\fR
-for this
-axis, but this can be changed by the 
-\fBat\fR
-command.  If there has been
-no 
-\fBhash_at\fR
-or 
-\fBmhash_at,\fR
-then an
-\fBat\fR
-command must be given, or
-there will be an error.  Hash editing terminates when either one of
-these commands is not given.
-.RS
-.TP
-\fB: \|{\fIstring\fB\|}\fR   
-This sets the string of the hash label (see 
-\fBStrings\fR
-above under THE DESCRIPTION LANGUAGE).
-.TP
-\fBat \|[\fIfloat\fB\|]\fR   
-This sets the location of the hash label along the
-current axis.
-.PD
-.RE
-.LP
-.SH FUNCTION PLOTTING AND OTHER NON-INHERENT FEATURES
-Although 
-\fBjgraph \fR
-doesn't have any built-in functions for interpolation
-or function plotting, both can be effected in 
-\fBjgraph \fR
-with a little outside help:
-.TP
-\fBFunction plotting\fR
-With the 
-\fBinclude\fR
-statement, it's easy to
-create a file of points of a function with a c or awk program, and
-include it into a graph.  See the section HINTS AND EXAMPLE GRAPHS
-for an example of a sin graph produced in this manner.
-.TP
-\fBLine drawing\fR
-Drawing lines is the same as plotting curves with
-``marktype none'' and ``linetype solid''.  As the legend will only print
-curves with labels, omitting a line omits the legend entry for the
-curve.
-.TP
-\fBPoint interpolation\fR
-Point interpolation is essentially the same as
-function plotting, and therefore is left out of 
-\fBjgraph.  \fR
-Maybe in a future release.
-.SH HINTS AND EXAMPLE GRAPHS
-\fBJgraph \fR
-should be able to draw any kind of scatter/line/bar graph that
-a user desires.  To embellish the graph with extra text, axes, lines,
-etc., it is helpful to use 
-\fBnewgraph\fR
-and 
-\fBinherit_axes.\fR
-The following example graphs show how this can be done.  All graphs are
-in the directory HOMEDIRECTORY/graphs.
-.sp
-- sin.jgr shows how a sin function can be plotted using a simple c
-program to produce the sin wave.  Moreover, this file shows a use of
-\fBnewgraph\fR
-and
-\fBinherit_axes\fR
-to plot an extra x and y axis at the 0 point.
-.sp
-- sin1.jgr is a further extension of sin.jgr only with one x and y
-axis at 0, but with the axis labels at the left and the bottom of the
-graph.
-.sp
-- sin2.jgr is a different sin wave with a logarithmic x axis.
-.sp
-- sin3.jgr shows how a bizarre effect can be gotten by sorting the
-points in a different manner.
-.sp
-- g9n10.jgr shows a rather complex usage of 
-\fBjgraph \fR
-to plot two graphs
-side by side, with the legend split into two columns.
-.sp
-- g8.jgr shows how 
-\fBjgraph \fR
-can be used to plot text as well as points.
-- hypercube.jgr shows an interesting use of
-\fBjgraph \fR
-for picture-drawing.
-.sp
-To print these graphs pipe the output of jgraph -P directly to lpr.
-.SH EMBEDDING THE OUTPUT IN LATEX
-I haven't read the manuals, but the way I've been loading these files
-into LaTeX has been as follows:
-.EX
-1.  Toward the beginning of my LaTeX file, I've had ``\\input{psfig}''
-2.  Where I've wanted my file, I've put:
-
-    \\begin{figure}
-    \\centerline{\\psfig{figure=<path-name><filename-of-jgraph-output>}}
-    \\end{figure}
-
-3.  After running latex on the file, do
-
-    lpr -d file.dvi
-
-4.  If that doesn't work, try dvips-ing the file and printing the postscript,
-    and if that still doesn't work, try doing everything on a sun.
-
-.EE
-.SH BUGS
-If the 
-\fBhash_scale \fR
-value is greater than 0, then the automatic plotting of the
-legend will most likely look bad.  In this case, the user should plot
-the legend him/herself.
-.sp
-Logarithmic axes cannot contain points <= 0.  If I have 
-enough complaints to convince me that this is a bug, I'll try to fix it.
-.sp
-There may well be loads of other bugs.  Send to jsp@princeton.edu.
End of jgraph.1
echo jgraph.c 1>&2
sed 's/^-//' >'jgraph.c' <<'End of jgraph.c'
-/* $Log:	jgraph.c,v $
- * Revision 1.5  90/12/03  16:49:58  jsp
- * Added the -P option to print postscript suitable for direct piping to lpr.
- * 
- * Revision 1.4  90/10/18  12:45:21  jsp
- * First release version
- * 
- * Changes include the addition of logrhythmic axes, better hash mark
- * editing, etc.
- * 
- * Revision 1.3  90/10/14  19:54:36  jsp
- * Made the new MARKTYPES array, and set default marktypes accordingly.
- * 
- * Updated to account for the new hash_lines and hash_labels fields 
- * in struct curve.
- * 
- * Revision 1.2  90/10/14  14:23:42  jsp
- * Added code for bar graphs
- * 
- * Revision 1.1  90/10/12  18:12:51  jsp
- * Initial revision
- * 
- *
- * Module with the main() routine, and with routines to allocate
- * memory and initialize the structs defined in jgraph.h.
- */
-
-#include <stdio.h>
-
-#include "jgraph.h"
-
-int NMARKTYPES = 11;
-int NORMALMARKTYPES = 6;
-
-char *MARKTYPESTRS[] = { "circle", "box", "diamond", "triangle", "x", "cross", 
-                         "ellipse", "general", "xbar", "ybar", "none" };
-char MARKTYPES[] = { 'o', 'b', 'd', 't', 'x', 'c', 'e', 'g', 'X', 'Y', 'n' };
-
-
-
-Label new_label()
-{
-  Label l;
-
-  l = (Label) malloc (sizeof(struct label));
-  l->label = CNULL;
-  l->hj = 'c';
-  l->vj = 'b';
-  l->font = "Times-Roman";
-  l->fontsize = 9.0;
-  l->rotate = 0;
-
-  return l;
-}
-
-
-Curve new_curve(c, num)
-Curve c;
-int num;
-{
-  Curve new_c;
-  int i;
-
-  new_c = (Curve) get_node(c);
-  new_c->num = num;
-  new_c->l = new_label();
-  
-  new_c->pts = (Point) make_list(sizeof(struct point));
-  new_c->marktype = MARKTYPES[num % NORMALMARKTYPES];
-  new_c->linetype = '0';
-  new_c->linethick = 1.0;
-  new_c->marksize[0] = FSIG;
-  new_c->marksize[1] = FSIG;
-  new_c->general_marks = (Point) make_list(sizeof(struct point));
-  i = num / NORMALMARKTYPES;
-  if (i == 0) new_c->fill = 0.0;
-  else if (i == 1) new_c->fill = 1.0;
-  else new_c->fill = -1.0;
-  prio_insert(new_c, c, 0);
-  return new_c;
-}
-
-Curve get_curve(c, num)
-Curve c;
-int num;
-{
-  Curve new_c;
-  for(new_c = last(c); new_c != nil(c) && new_c->num > num; new_c = prev(new_c));
-  if (new_c == nil(c) || new_c->num < num) return new_curve(c, num);
-  return new_c;
-}
-
-Axis new_axis(is_x)
-int is_x;
-{
-  Axis a;
-  a = (Axis) malloc (sizeof(struct axis));
-  a->label = new_label();
-  a->label->x = FSIG;
-  a->label->y = FSIG;
-  a->label->font = "Times-Bold";
-  a->label->fontsize = 10.0;
-  a->label->rotate = FSIG;
-  a->label->hj = (is_x) ? 'c' : 'c';
-  a->label->vj = (is_x) ? 't' : 'c';
-  a->size = 3.0;
-  a->max = FSIG;
-  a->min = FSIG;
-  a->pmax = FSIG;
-  a->pmin = FSIG;
-  a->hash_interval = -1.0;
-  a->log_base = 10.0;
-  a->minor_hashes = -1;
-  a->precision = -1;
-  a->hl = new_label();
-  a->hl->label = "";
-  a->hl->font = "Times-Roman";
-  a->hl->fontsize = 9.0;
-  a->hl->rotate = 0.0;
-  a->hl->hj = '0';
-  a->hl->vj = '0';
-  a->draw_at = FSIG;
-  a->draw_hash_marks_at = FSIG;
-  a->draw_hash_labels_at = FSIG;
-  a->draw_hash_labels = 1;
-  a->draw_axis_line = 1;
-  a->draw_hash_marks = 1;
-  a->draw_axis_label = 1;
-  a->auto_hash_labels = 1;
-  a->auto_hash_marks = 1;
-  a->start_given = 0;
-  a->hash_scale = -1.0;
-  a->is_x = is_x;
-  a->is_lg = 0;
-  a->hash_labels = (String) make_list (sizeof(struct string));
-  a->hash_lines = (Hash) make_list (sizeof(struct hash));
-  return a;
-}
-
-Legend new_legend()
-{
-  Legend l;
-  l = (Legend) malloc (sizeof(struct legend));
-  l->x = 0.0;
-  l->y = 0.0;
-  l->linelength = FSIG;
-  l->linebreak = FSIG;
-  l->midspace = FSIG;
-  l->type = 'r';
-  return l;
-}
-
-Label new_title()
-{
-  Label t;
-
-  t = new_label();
-  t->x = FSIG;
-  t->y = FSIG;
-  t->rotate = 0.0;
-  t->hj = 'c';
-  t->vj = 't';
-  t->fontsize = 12.0;
-  return t;
-}
-
-String new_string(s, num)
-String s;
-int num;
-{
-  String new_s;
-
-  new_s = (String) get_node(s);
-  new_s->num = num;
-  new_s->s = new_label();
-  prio_insert(new_s, s, 0);
-  return new_s;
-}
-
-String get_string(s, num)
-String s;
-int num;
-{
-  String new_s;
-  for(new_s = last(s); new_s != nil(s) && new_s->num > num; new_s = prev(new_s));
-  if (new_s == nil(s) || new_s->num < num) return new_string(s, num);
-  return new_s;
-}
-
-Graph new_graph(gs, num)
-Graph gs;
-int num;
-{
-  Graph g;
-
-  g = (Graph) get_node(gs);
-  g->num = num;
-  g->x_axis = new_axis(1);
-  g->y_axis = new_axis(0);
-  g->x_translate = 0.0;
-  g->y_translate = 0.0;
-  g->curves = (Curve) make_list(sizeof(struct curve));
-  g->strings = (String) make_list(sizeof(struct string));
-  g->title = new_title();
-  g->legend = new_legend();
-  prio_insert(g, gs, 0);
-  return g;
-}
-
-Graph get_graph(g, num)
-Graph g;
-int num;
-{
-  Graph new_g;
-  for(new_g = last(g); new_g != nil(g) && new_g->num > num; new_g = prev(new_g));
-  if (new_g == nil(g) || new_g->num < num) return new_graph(g, num);
-  return new_g;
-}
-
-main(argc, argv)
-int argc;
-char **argv;
-{
-  struct graphs gs;
-  int i;
-  char show;
-
-  show = 0;
-  gs.g = (Graph) make_list(sizeof(struct graph));
-  gs.height = 0.0;
-  gs.printable_postscript = 0;
-  edit_graphs(&gs);
-  process_graphs(&gs);
-  for (i = 1; i < argc; i++) {
-    if (strcmp(argv[i], "-p") == 0) show = 1;
-    else if (strcmp(argv[i], "-P") == 0) gs.printable_postscript = 1;
-  }
-  if (show) show_graphs(&gs); else draw_graphs(&gs);
-}
-
-
End of jgraph.c
echo jgraph.h 1>&2
sed 's/^-//' >'jgraph.h' <<'End of jgraph.h'
-/* $Log:	jgraph.h,v $
- * Revision 1.5  90/12/03  16:50:45  jsp
- * Added the -P option to print postscript suitable for direct piping to lpr.
- * 
- * Revision 1.4  90/11/26  17:14:22  jsp
- * Fixed include parameter so that the directory must be specified by -I
- * command line option
- * 
- * Revision 1.3  90/10/18  12:47:18  jsp
- * First release version
- * 
- * Changes include the addition of logrhythmic axes, better hash mark
- * editing, etc.
- * 
- * Revision 1.2  90/10/14  19:58:28  jsp
- * Added the new fields hash_lines and hash_labels to struct curve so that
- *   processing of the hash lines & labels could be done in process.c.
- * 
- * Added extern declarations for MARKTYPES, etc., to clean up the 
- *   editing of marktypes.
- * 
- * Revision 1.1  90/10/12  18:15:00  jsp
- * Initial revision
- * 
- * This is the main header file which defines all the 
- * structs and macro definitions of the jgraph program.
- *
- * All of the structures which have flink and blink fields
- * are meant to be used with the list manipulation routines
- * in /u/jsp/src/list.
- */
-
-#include "list.h"
-#include "prio_list.h"
-#include "fprio_list.h"
-
-#define PPI 120
-#define FPPI 120.0
-#define CPI 72.0
-#define FCPI 72.0
-#define CNULL ((char *)0)
-#define FSIG -10010.0
-#define HASH_SIZE 5.0
-#define MHASH_SIZE 2.0
-
-typedef struct point {
-  struct point *flink;
-  struct point *blink;
-  float x;
-  float y;
-} *Point;
-
-typedef struct label {
-  char *label;
-  float x;
-  float y;
-  float rotate;
-  char *font;
-  float fontsize;
-  char hj;
-  char vj;
-} *Label;
-
-typedef struct curve {
-  struct curve *flink;
-  struct curve *blink;
-  int num;
-  Label l;
-  Point pts;
-  Point general_marks;
-  float marksize[2];
-  float fill;
-  float linethick;
-  char marktype;
-  char linetype;
-} *Curve;
-
-typedef struct string {
-  struct string *flink;
-  struct string *blink;
-  int num;
-  Label s;
-} *String;
-
-typedef struct hash {
-  struct hash *flink;
-  struct hash *blink;
-  float loc;
-  float size;
-} *Hash;
-
-typedef struct axis {
-  Label label;
-  Label hl;
-  float max;
-  float min;
-  float pmax;
-  float pmin;
-  float logmin;
-  float logfactor;
-  float size;
-  float psize;
-  float factor;
-  float hash_interval;
-  float hash_start;
-  float hash_scale;
-  float log_base;
-  float draw_hash_marks_at;
-  float draw_hash_labels_at;
-  float draw_at;
-  int draw_hash_labels;
-  int draw_axis_line;
-  int draw_hash_marks;
-  int draw_axis_label;
-  int auto_hash_labels;
-  int auto_hash_marks;
-  int minor_hashes;
-  int precision;
-  int start_given;
-  String hash_labels;
-  Hash hash_lines;
-  int is_x;
-  int is_lg;
-} *Axis;
-
-typedef struct legend {
-  float x, y;
-  float linelength;
-  float linebreak;
-  float size;
-  int anylines;
-  float midspace;
-  char type; /* 'n' = off, 't' = top, 'r' = right, 'u' = userdefined, 'c' = custom */
-} *Legend;
-
-typedef struct graph {
-  struct graph *flink;
-  struct graph *blink;
-  int num;
-  float minval;
-  float x_translate;
-  float y_translate;
-  Axis x_axis;
-  Axis y_axis;
-  Curve curves;
-  Legend legend;
-  String strings;
-  Label title;
-} *Graph;
-
-typedef struct graphs {
-  Graph g;
-  float height;
-  float width;
-  float bb[4]; /* Bounding box */
-  char printable_postscript;
-} *Graphs;
-
-extern float ctop();
-extern float disttop();
-extern float intop();
-extern float ptoc();
-extern float ptodist();
-
-extern char *getlabel();
-
-/* Stuff defined in jgraph.c */
-
-extern Curve new_curve();
-extern Curve get_curve();
-extern Graph new_graph();
-extern Graph get_graph();
-extern String new_string();
-extern String get_string();
-extern Label new_label();
-extern char *MARKTYPESTRS[];
-extern char MARKTYPES[];
-extern int NMARKTYPES;
-extern int NORMALMARKTYPES;
End of jgraph.h
echo list.c 1>&2
sed 's/^-//' >'list.c' <<'End of list.c'
-/* $Log:	list.c,v $
- * Revision 1.1  90/10/12  17:51:13  jsp
- * Initial revision
- * 
- */
-
-#include <stdio.h>    /* Basic includes and definitions */
-#include "list.h"
-
-#define boolean int
-#define TRUE 1
-#define FALSE 0
-
-
-/*---------------------------------------------------------------------*
- * PROCEDURES FOR MANIPULATING DOUBLY LINKED LISTS 
- * Each list contains a sentinal node, so that     
- * the first item in list l is l->flink.  If l is  
- * empty, then l->flink = l->blink = l.            
- * The sentinal contains extra information so that these operations
- * can work on lists of any size and type.
- * Memory management is done explicitly to avoid the slowness of
- * malloc and free.  The node size and the free list are contained
- * in the sentinal node.
- *---------------------------------------------------------------------*/
-
-typedef struct int_list {  /* Information held in the sentinal node */
-  struct int_list *flink;
-  struct int_list *blink;
-  int size;
-  List free_list;
-} *Int_list;
-
-insert(item, list)	/* Inserts to the end of a list */
-List item;
-List list;
-{
-  List last_node;
-
-  last_node = list->blink;
-
-  list->blink = item;
-  last_node->flink = item;
-  item->blink = last_node;
-  item->flink = list;
-}
-
-delete(item)		/* Deletes an arbitrary iterm */
-List item;
-{
-  item->flink->blink = item->blink;
-  item->blink->flink = item->flink;
-}
-
-List make_list(size)	/* Creates a new list */
-int size;
-{
-  Int_list l;
-
-  l = (Int_list) malloc(sizeof(struct int_list));
-  l->flink = l;
-  l->blink = l;
-  l->size = size;
-  l->free_list = (List) malloc (sizeof(struct list));
-  l->free_list->flink = l->free_list;
-  return (List) l;
-}
-  
-List get_node(list)   /* Allocates a node to be inserted into the list */
-List list;
-{
-  Int_list l;
-  List to_return;
-
-  l = (Int_list) list;
-  if (l->free_list->flink == l->free_list) {
-    return (List) malloc(l->size);
-  } else {
-    to_return = l->free_list;
-    l->free_list = to_return->flink;
-    return to_return;
-  }
-}
-
-free_node(node, list)    /* Deallocates a node from the list */
-List node;
-List list;
-{
-  Int_list l;
-  
-  l = (Int_list) list;
-  node->flink = l->free_list;
-  l->free_list = node;
-}
End of list.c
echo list.h 1>&2
sed 's/^-//' >'list.h' <<'End of list.h'
-/* $Log:	list.h,v $
- * Revision 1.1  90/10/12  17:51:31  jsp
- * Initial revision
- * 
- */
-
-/* Jim Plank
- * list.h
- * List manipulation header file */
-
-/* This is the header file for the list manipulation routines in list.c.
- * Any struct can be turned into a list as long as its first two fields are
- * flink and blink. */
-
-typedef struct list {
-  struct list *flink;
-  struct list *blink;
-} *List;
-
-/* Nil, first, next, and prev are macro expansions for list traversal 
- * primitives. */
-
-#define nil(l) (l)
-#define first(l) (l->flink)
-#define last(l) (l->blink)
-#define next(n) (n->flink)
-#define prev(n) (n->blink)
-
-/* These are the routines for manipluating lists */
-
-/* void insert(node list);     Inserts a node to the end of a list */
-/* void delete(node);          Deletes an arbitrary node */
-/* List make_list(node_size);  Creates a new list */
-/* List get_node(list);        Allocates a node to be inserted into the list */
-/* void free_node(node, list); Deallocates a node from the list */
-
End of list.h
echo makefile 1>&2
sed 's/^-//' >'makefile' <<'End of makefile'
-LISTSOURCE = /u/jsp/src/list
-CC = cc
-
-OBJS = list.o prio_list.o fprio_list.o jgraph.o token.o printline.o draw.o process.o edit.o show.o
-
-all: jgraph
-
-.SUFFIXES: .c .o .h .jgr .jps .tex .dvi
-
-.jgr.jps:
-	jgraph < $*.jgr > *.jps
-
-.tex.dvi:
-	latex $*.tex
-.c.o: 
-	$(CC)  -c -g $*.c
-
-
-jgraph: $(OBJS)
-	$(CC) -g $(OBJS) -lm
-
End of makefile
echo printline.c 1>&2
sed 's/^-//' >'printline.c' <<'End of printline.c'
-/* $Log:	printline.c,v $
- * Revision 1.2  90/10/18  12:45:49  jsp
- * First release version
- * 
- * 
- * Revision 1.1  90/10/12  18:16:16  jsp
- * Initial revision
- * 
- *
- * Module to put postscript commands to the standard output
- */
-
-#include "jgraph.h"
-
-#include <stdio.h>
-
-#define LINEWIDTHFACTOR 0.700
-
-printline(x1, y1,x2, y2, orientation)
-float x1, y1, x2, y2;
-char orientation;
-{
-  if (orientation == 'x') 
-    printf("newpath %f %f moveto %f %f lineto stroke\nstroke\n",
-          x1, y1, x2, y2);
-  else
-    printf("newpath %f %f moveto %f %f lineto stroke\nstroke\n",
-          y1, x1, y2, x2);} 
-
-start_line(x1, y1, thickness, style)
-float x1, y1, thickness;
-char style;
-{
-  setlinewidth(thickness);
-  setlinestyle(style);
-  printf("%f %f moveto ", x1, y1);
-}
-
-cont_line(x1, y1)
-float x1, y1;
-{
-  printf("  %f %f lineto\n", x1, y1);
-}
-
-end_line()
-{
-  printf("stroke\n stroke\n");
-  setlinewidth(1.0);
-  setlinestyle('s');
-
-}
-
-
-start_poly(x1, y1)
-float x1, y1;
-{
-  printf("newpath %f %f moveto ", x1, y1);
-}
-
-cont_poly(x1, y1)
-float x1, y1;
-{
-  printf("  %f %f lineto\n", x1, y1);
-}
-
-end_poly(fill)
-float fill;
-{
-  if (fill < 0.0) printf("closepath stroke\n");
-  else {
-    printf("closepath gsave  %f setgray ", fill);
-    printf("fill grestore stroke\n");
-  }
-}
-
-printellipse(x, y, radius1, radius2, fill)
-float x, y, radius1, radius2, fill;
-{
-  printf("newpath %f %f %f %f 0 360 DrawEllipse ", x, y, radius1, radius2);
-  if (fill < 0)
-    printf("stroke\n");
-    else printf("gsave  %f setgray fill grestore stroke\n", fill);
-}
-
-comment(s)
-char *s;
-{
-  printf("%% %s\n", s);
-}
-
-printline_c(x1, y1, x2, y2, g)
-float x1, y1, x2, y2;
-Graph g;
-{
-  printline(ctop(x1, g->x_axis), ctop(y1, g->y_axis),
-            ctop(x2, g->x_axis), ctop(y2, g->y_axis), 'x');
-}
-
-print_text(s, x, y, hj, vj, r, font, size)
-char *s;
-float x;
-float y;
-char vj, hj;
-float r;
-char *font;
-float size;
-{
-  printf("/%s findfont %f scalefont setfont\n", font, size);
-  printf("%f %f moveto\n", x, y);
-  printf("(%s)", s);
-  if (r == 90.0 && vj == 'c') {
-    if (hj == 'c') printf("%f 0 rmoveto ", -size * FCPI / FPPI / 2.0);
-    printf("dup stringwidth pop 2 div neg 0 exch rmoveto ");
-  } else if (r == -90.0 && vj == 'c') {
-    if (hj == 'c') printf("%f 0 rmoveto ", -size * FCPI / FPPI / 2.0);
-    printf("dup stringwidth pop 2 div 0 exch rmoveto ");
-  } else {
-    if (hj == 'c') {
-      printf("dup stringwidth pop 2 div neg 0 rmoveto ");
-    } else if (hj == 'r') {
-      printf("dup stringwidth pop neg 0 rmoveto ");
-    }
-    if (vj == 'c') {
-      printf("0 %f rmoveto ", -size * FCPI / FPPI / 2.0);
-    } else if (vj == 't') {
-      printf("0 %f rmoveto ", -size * FCPI / FPPI);
-    }
-  }
-  printf(" gsave  %f rotate show grestore\n", r);
-}
-
-setlinewidth(size)
-float size;
-{
-  printf("%f setlinewidth\n", size * LINEWIDTHFACTOR);
-}
-
-setlinestyle(style)
-char style;
-{
-  switch(style) {
-    case '0': 
-    case 's': printf("\t[] 0 setdash\n"); break;
-    case '.': printf("\t [1 3.200000] 0 setdash\n"); break;
-    case '-': printf("\t [4.00000] 0 setdash\n"); break;
-    default: fprintf(stderr, "Error: Unknown line type: %c\n", style);
-             exit(1);
-             break;
-  }
-}
-
End of printline.c
echo prio_list.c 1>&2
sed 's/^-//' >'prio_list.c' <<'End of prio_list.c'
-/* $Log:	prio_list.c,v $
- * Revision 1.1  90/10/12  17:52:01  jsp
- * Initial revision
- * 
- */
-
-/* Jim Plank
- * prio_list.c
- * Prioirity list manipulation */
- 
-#include "list.h"
-#include "prio_list.h"
-#include <stdio.h>
-
-typedef int Boolean;
-
-/* A prioirity list is any list with the first three fields being flink, 
- * blink and prio.  Use the routines of list.c to do everything except
- * insertion */
- 
-typedef struct prio_list {
-  struct prio_list *flink;
-  struct prio_list *blink;
-  int prio;
-} *Prio_list;
-
-/* Prio_insert inserts nodes into their proper places in priority lists.  It first 
- * checks for inserting into the head or tail, and then proceeds sequentially.
- * Thus, it is worst case linear, but for most cases constant time (right). */
-
-prio_insert(node, list, desc)
-Prio_list node;
-Prio_list list;
-Boolean desc;
-{
-  Prio_list p;
-
-  /* Check nil and head of list */
-  if (first(list) == nil(list) || 
-      (!desc && first(list)->prio >= node->prio) ||
-      (desc  && first(list)->prio <= node->prio) ) {
-    node->blink = list;
-    node->flink = list->flink;
-    list->flink->blink = node;
-    list->flink = node;
-    return;
-  }
-  /* Check tail of list */
-  if ((desc  && last(list)->prio >= node->prio) ||
-      (!desc && last(list)->prio <= node->prio) ) {
-    node->flink = list;
-    node->blink = list->blink;
-    list->blink->flink = node;
-    list->blink = node;
-    return;
-  }
-  /* Check the rest of the list sequentially */
-  for(p = next(first(list));  ; p = next(p)) {
-    if (p == nil(list)) fprintf(stderr, "inserting into tail did not work\n");
-    if ((!desc && p->prio >= node->prio) ||
-        (desc  && p->prio <= node->prio)) {
-      node->flink = p;
-      node->blink = p->blink;
-      p->blink->flink = node;
-      p->blink = node;
-      return;
-    }
-  }
-}
-      
-
-  
End of prio_list.c
echo prio_list.h 1>&2
sed 's/^-//' >'prio_list.h' <<'End of prio_list.h'
-/* $Log:	prio_list.h,v $
- * Revision 1.1  90/10/12  17:52:29  jsp
- * Initial revision
- * 
- */
-
-/* Jim Plank
- * prio_list.h
- * Prioirity list manipulation header file */
-
-/* Priority lists are just like normal lists of list.h and list.c, except
- * that their third field is a (int) prioriy.  The routines of list.c should all
- * be used except for insert, because it will always put an item at the 
- * end of a list.  Instead, use prio_insert, which will put the item
- * into its proper place in the list.  The last argument of prio_insert should
- * be TRUE if the list is to be kept in descending order; it should be FALSE
- * for ascending order.
-
- * Priority list should be:
-
-struct prio_list {
-  struct prio_list *flink;
-  struct prio_list *blink;
-  int prio;
-  ...
-  }
-
-*/
-
-/* void prio_insert(node, list, descending); */
-
End of prio_list.h
echo process.c 1>&2
sed 's/^-//' >'process.c' <<'End of process.c'
-/* $Log:	process.c,v $
- * Revision 1.8  90/12/04  13:51:14  jsp
- * Fixed a bug in the automatic spacing of legend entries.
- * 
- * Revision 1.7  90/11/26  17:11:55  jsp
- * Changed so that default legends for curves with large marksizes will
- * look ok.  Previously, this was a problem, especially bad with bar graphs.
- * 
- * Revision 1.6  90/10/18  12:46:12  jsp
- * First release version
- * 
- * Changes include the addition of logrhythmic axes, better hash mark
- * editing, etc.
- * 
- * Revision 1.5  90/10/14  21:26:59  jsp
- * Changed to process user-inputted hash lines and has labels
- * 
- * Revision 1.4  90/10/14  19:55:49  jsp
- * Took over the processing of hash lines and labels to use the new
- * hash_lines and hash_labels fields of struct curve.  Also, took over
- * almost all processing that was previously done in draw.c.
- * 
- * Revision 1.3  90/10/14  14:23:19  jsp
- * Added code for bar graphs
- * 
- * Revision 1.2  90/10/14  13:36:24  jsp
- * Updated to use error_header, as defined in token.c 1.2.
- * 
- * Revision 1.1  90/10/12  18:17:55  jsp
- * Initial revision
- * 
- *
- * Module to process the data structures after they've been 
- * editted by the routines in edit.c
- */
-
-#include <stdio.h>
-
-#include <math.h>
-
-#include "jgraph.h"
-
-#define ABS(a) ((a > 0.0) ? (a) : (-a))
-#define MAX(a, b) ((a > b) ? (a) : (b))
-#define MIN(a, b) ((a < b) ? (a) : (b))
-#define AXIS_CHAR(a) ((a->is_x) ? 'x' : 'y')
-#define HASH_DIR(a) ((a->hash_scale > 0.0) ? 1 : -1)
-
-process_title(g)
-Graph g;
-{
-
-  if (g->title->x == FSIG) g->title->x = g->x_axis->psize / 2.0;
-    else g->title->x = ctop(g->title->x, g->x_axis);
-  g->minval = 0.0;
-  if (g->x_axis->draw_axis_label) 
-    g->minval = MIN(g->minval, g->x_axis->label->y - 
-                    g->x_axis->label->fontsize);
-  if (g->x_axis->draw_hash_labels)
-    g->minval = MIN(g->minval, g->x_axis->draw_hash_labels_at
-                   - g->x_axis->hl->fontsize);
-  if (g->x_axis->draw_hash_marks)
-    g->minval = MIN(g->minval, g->x_axis->draw_hash_marks_at - HASH_SIZE);
-  g->minval -= 10.0;
-  if (g->title->y == FSIG) {
-    g->title->y = g->minval;
-  } else g->title->y = ctop(g->title->y, g->y_axis);
-}
-
-process_legend(g)
-Graph g;
-{
-  Legend l;
-  float height, hdist, y, maxmark;
-  Curve c;
-
-  l = g->legend;
-  if (l->type == 'n') return;
-  if (l->linebreak == FSIG)
-    l->linebreak = 4.0;
-    else l->linebreak = disttop(l->linebreak, g->y_axis);
-  l->anylines = 0;
-  maxmark = 0.0;
-  height = -l->linebreak;
-  for (c = first(g->curves); c != nil(g->curves); c = next(c)) {
-    if (c->l->label != CNULL) {
-      maxmark = MAX(maxmark, ABS(c->marksize[0]));
-      if (c->linetype != '0') l->anylines = 1;
-      height = height + c->l->fontsize + l->linebreak;
-    }
-  }
-  if (l->linelength == FSIG)
-    l->linelength = (l->anylines) ? (MAX(maxmark + 6.0, 12.0)) : 0.0;
-    else l->linelength = disttop(l->linelength, g->x_axis);
-  if (l->midspace == FSIG)
-    l->midspace = (l->anylines) ? 4.0 : (maxmark / 2.0) + 4.0;
-    else l->midspace = disttop(l->midspace, g->x_axis);
-
-  if (l->type == 'c') {
-    for (c = first(g->curves); c != nil(g->curves); c = next(c)) {
-      if (c->l->label != CNULL) process_label(c->l, g);
-    }
-    return;
-  }
-  if (l->type == 'r') {
-    l->x = g->x_axis->psize + 15.0;
-    l->y = (g->y_axis->psize / 2.0) + (height / 2.0);
-  } else if (l->type == 't') {
-    l->x = 0.0;
-    l->y = g->y_axis->psize + height + 0.0;
-  } else if (l->type == 'u') {
-    l->x = ctop(l->x, g->x_axis);
-    l->y = ctop(l->y, g->y_axis);
-  }
-
-  hdist = (l->anylines) ? l->midspace + l->linelength : l->midspace;
-  y = l->y;
-  for (c = first(g->curves); c != nil(g->curves); c = next(c)) {
-    if (c->l->label != CNULL) {
-      c->l->x = hdist + l->x;
-      c->l->y = y;
-      y = y - c->l->fontsize - l->linebreak;
-      c->l->vj = 't';
-      c->l->hj = 'l';
-      c->l->rotate = 0.0;
-    }
-  }
-}
-
-float find_reasonable_hash_interval(a) 
-Axis a;
-{
-  float s, d;
-
-  if (a->is_lg) return 0.0;
-  s = a->max - a->min;
-  d = 1.0;
-  if (s > 5.0) {
-    while(1) {
-      if (s / d < 6.0) return d;
-      d *= 2.0;
-      if (s / d < 6.0) return d;
-      d *= 2.5;
-      if (s / d < 6.0) return d;
-      d *= 2.0;
-    }
-  } else {
-    while(1) {
-      if (s / d > 2.0) return d;
-      d /= 2.0;
-      if (s / d > 2.0) return d;
-      d /= 2.5;
-      if (s / d > 2.0) return d;
-      d /= 2.0;
-    }
-  }
-}
-
-float find_reasonable_hash_start(a)
-Axis a;
-{
-  int i;
-  
-  if (a->is_lg) return 0.0;
-  if (a->max > 0.0 && a->min < 0.0) return 0.0;
-  i = ((int) (a->min / a->hash_interval));
-  return ((float) i) * a->hash_interval;
-}
-
-int find_reasonable_precision(a)
-Axis a;
-{
-  int i, b, b2, done;
-  float x, x2;
-
-  x2 = 0.0;
-  b = 0;
-  x = a->hash_interval;
-
-  done = 0;
-  while(b < 6 && !done) {
-    i = (int) ((x - x2));
-    x2 = i;
-    if (x2 - x < .0000001 && x - x2 < .0000001) done = 1;
-    else {
-      b++;
-      x2 *= 10.0;
-      x *= 10.0;
-    }
-  }
-
-  x2 = 0.0;
-  b2 = 0;
-  x = a->hash_start;
-
-  done = 0;
-  while(b2 < 6 && !done) {
-    i = (int) (x - x2);
-    x2 = i;
-    if (x2 - x < .0000001 && x - x2 < .0000001) done = 1;
-    else {
-      b2++;
-      x2 *= 10.0;
-      x *= 10.0;
-    }
-  }
-  return MAX(b, b2);
-}
-
-int find_reasonable_minor_hashes(a)
-Axis a;
-{
-  float d;  
-  int i;
-  
-  if (a->is_lg) {
-    d = a->log_base;
-    while(d > 10.0) d /= 10.0;
-    while(d <= 1.0) d *= 10.0;
-    i = (int) d;
-    return MAX((i - 2), 0);
-  } else {
-    d = a->hash_interval;
-    if (d == 0.0) return 0;
-    while(d > 10.0) d /= 10.0;
-    while(d <= 1.0) d *= 10.0;
-    i = (int) d;
-    if (((float) i) != d) return 0;
-    return i-1;
-  }
-}
-
-process_axis1(a, g)
-Axis a;
-Graph g;
-{
-  float tmp;
-
-  if (a->min == FSIG) {
-    if (a->pmin == FSIG) {
-      error_header();
-      fprintf(stderr, 
-              "Graph %d: %c axis has no minimum, and cannot derive one\n",
-              g->num, AXIS_CHAR(a));
-      fprintf(stderr, "  Use %caxis min\n", AXIS_CHAR(a));
-      exit(1);
-    } else if (a->pmin <= 0.0 && a->is_lg) {
-      error_header();
-      fprintf(stderr, "Graph %d: Trying to derive %c axis\n", AXIS_CHAR(a));
-      fprintf(stderr, 
-        "        Minimum value %f will be -infinity with log axes\n", a->pmin);
-      exit(1);
-    } else a->min = a->pmin;
-  }
-  if (a->max == FSIG) {
-    if (a->pmax == FSIG) {
-      error_header();
-      fprintf(stderr, 
-              "Graph %d: %c axis has no maximum, and cannot derive one\n",
-              g->num, AXIS_CHAR(a));
-      fprintf(stderr, "  Use %caxis max\n", AXIS_CHAR(a));
-      exit(1);
-    } else if (a->pmax <= 0.0 && a->is_lg) {
-      error_header();
-      fprintf(stderr, "Graph %d: Trying to derive %c axis\n", AXIS_CHAR(a));
-      fprintf(stderr, 
-        "        Maximum value %f will be -infinity with log axes\n", a->pmax);
-      exit(1);
-    } else a->max = a->pmax;
-  }
-  if (a->max < a->min) {
-    tmp = a->max;  a->max = a->min;  a->min = tmp;
-  } else if (a->max == a->min) {
-    if (!a->is_lg) a->min -= 1;
-    a->max += 1;
-  }
-  a->psize = intop(a->size);
-  if (a->is_lg) {
-    if (a->min <= 0.0) {
-      error_header();
-      fprintf(stderr, 
-        "Graph %d, %c axis: Min value = %f.  This is -infinity with logrhythmic axes\n", 
-        g->num, (a->is_x) ? 'x' : 'y', a->min);
-      exit(1);
-    }
-    a->logfactor = log(a->log_base);
-    a->logmin = log(a->min) / a->logfactor;
-    a->factor = a->psize / (log(a->max) / a->logfactor - a->logmin);
-  } else {
-    a->factor = a->psize / (a->max - a->min);
-  }
-}
-
-process_axis2(a, g)
-Axis a;
-Graph g;
-{
-  float t1, t2, t3, minor_hashes, hloc, tmp;
-  int prec, i1, sl, maxsl;
-  Hash h;
-  String s;
-  Axis other;
-
-  other = (a->is_x) ? g->y_axis : g->x_axis;
-  if (a->draw_at == FSIG) 
-    a->draw_at = (HASH_DIR(a) == -1) ? 0.0 : other->psize;
-  else a->draw_at = ctop(a->draw_at, other);
-
-  if (a->hash_interval < 0.0) {
-    a->hash_interval = find_reasonable_hash_interval(a);
-    if (!a->start_given)
-      a->hash_start = find_reasonable_hash_start(a);
-  } else if (!a->start_given) a->hash_start = a->min;
-  if (a->minor_hashes < 0) {
-    a->minor_hashes = find_reasonable_minor_hashes(a);
-  }
-  if (a->precision < 0 && !a->is_lg)
-    a->precision = find_reasonable_precision(a);
-
-  for (h = first(a->hash_lines) ; h != nil(a->hash_lines); h = next(h)) {
-    h->loc = ctop(h->loc, a);
-  }
-  
-  for (s = first(a->hash_labels); s != nil(a->hash_labels); s = next(s)) {
-    s->s->x = ctop(s->s->x, a);
-    s->s->y = ctop(s->s->y, a);
-  }
-
-  if (((a->hash_interval != 0.0 && !a->is_lg) || a->is_lg) && a->auto_hash_marks) {
-    if (a->is_lg) {
-      for (t1 = 1.0; t1 > a->min; t1 /= a->log_base) ;
-      t2 = t1 * a->log_base - t1;
-    } else {
-      for (t1 = a->hash_start; t1 > a->min; t1 -= a->hash_interval) ;
-      t2 = a->hash_interval;
-    }
-    while (t1 <= a->max) {
-      hloc = ctop(t1, a);
-      if (hloc > -.05 && hloc < a->psize + .05) {
-        h = (Hash) get_node(a->hash_lines);
-        h->loc = hloc;
-        h->size = HASH_SIZE;
-        insert(h, a->hash_lines);
-        if (a->auto_hash_labels) {
-          s = (String) get_node (a->hash_labels);
-          s->s = new_label();
-          s->s->x = hloc;
-          s->s->y = hloc;
-          s->s->label = (char *) malloc (80);
-          if (a->precision >= 0) {
-            prec = a->precision;
-          } else {
-            if (ABS(t1) >= 1.0 || t1 == 0.0) prec = 0;
-            else {
-              tmp = ABS(t1);
-              prec = 2;
-              while(tmp < 0.0) {tmp *= 10.0; prec++;}
-            }
-          }
-          sprintf(s->s->label, "%.*f", prec, t1);
-          insert(s, a->hash_labels);
-        }
-      }
-      minor_hashes = t2 / ((float) (a->minor_hashes + 1));
-      t3 = t1;
-      for (i1 = 1; i1 <= a->minor_hashes; i1++) {
-        t3 += minor_hashes;
-        hloc = ctop(t3, a);
-        if (hloc > -.05 && hloc < a->psize + .05) {
-          h = (Hash) get_node(a->hash_lines);
-          h->loc = hloc;
-          h->size = MHASH_SIZE;
-          insert(h, a->hash_lines);
-        }
-      }
-      if (a->is_lg) {
-        t1 *= a->log_base;
-        t2 = t1 * a->log_base - t1;
-      } else t1 += t2;
-    }
-  }
-
-  maxsl = 0;
-  for (s = first(a->hash_labels); s != nil(a->hash_labels); s = next(s)) {
-    sl = strlen(s->s->label);
-    if (sl > maxsl) maxsl = sl;
-  }
-  if (a->draw_hash_marks_at == FSIG)
-    a->draw_hash_marks_at = a->draw_at;
-  else a->draw_hash_marks_at = ctop(a->draw_hash_marks_at, other);
-  if (a->draw_hash_labels_at == FSIG)
-    a->draw_hash_labels_at = a->draw_hash_marks_at +
-      a->hash_scale * HASH_SIZE + HASH_DIR(a) * 3.0;
-  else a->draw_hash_labels_at = ctop(a->draw_hash_labels_at, other);
-
-  if (a->is_x) {
-    a->hl->y = a->draw_hash_labels_at;
-    if (a->hl->hj == '0')
-      a->hl->hj = 'c';
-    if (a->hl->vj == '0')
-      a->hl->vj = (HASH_DIR(a) == -1) ? 't' : 'b';
-    if (a->label->x == FSIG) 
-      a->label->x = a->psize / 2.0;
-      else a->label->x = ctop(a->label->x, g->x_axis);
-    if (a->label->y == FSIG) {
-      if (a->draw_hash_labels) {
-        tmp = a->draw_hash_labels_at + 
-          HASH_DIR(a) * (a->hl->fontsize + 5.0);
-      } else if (a->draw_hash_marks) {
-        tmp = a->draw_hash_marks_at + 
-          a->hash_scale * HASH_SIZE + HASH_DIR(a) * 5.0;
-      } else tmp = 0.0;
-      if (HASH_DIR(a) == -1) {
-        a->label->y = MIN(tmp, -7.0);
-      } else {
-        a->label->y = MAX(tmp, 7.0 + other->psize) + a->label->fontsize;
-      }
-    } else a->label->y = ctop(a->label->y, g->y_axis);
-    if (a->label->rotate == FSIG) a->label->rotate = 0.0;
-  } else {
-    a->hl->x = a->draw_hash_labels_at;
-    if (a->hl->vj == '0') a->hl->vj = 'c';
-    if (a->hl->hj == '0')
-      a->hl->hj = (HASH_DIR(a) == -1) ? 'r' : 'l';
-    if (a->label->y == FSIG) 
-      a->label->y = a->psize / 2.0;
-      else a->label->y = ctop(a->label->y, g->y_axis);
-    if (a->label->x == FSIG) {
-      if (a->draw_hash_labels) {
-        tmp = a->draw_hash_labels_at + 
-              HASH_DIR(a) * (maxsl * a->hl->fontsize *.75 + 5.0);
-      } else if (a->draw_hash_marks) {
-        tmp = a->draw_hash_marks_at + 
-          a->hash_scale * HASH_SIZE + HASH_DIR(a) * 5.0;
-      } else tmp = 0.0;
-      if (HASH_DIR(a) == -1) {
-        a->label->x = MIN(tmp, -7.0);
-      } else {
-        a->label->x = MAX(tmp, 7.0 + other->psize) + a->label->fontsize;
-      }
-    } else a->label->x = ctop(a->label->x, g->x_axis);
-    if (a->label->rotate == FSIG) {
-      a->label->rotate = (HASH_DIR(a) == -1) ? 90.0 : -90.0;
-    }
-  }
-}
-
-process_label(l, g)
-Label l;
-Graph g;
-{
-  l->x = ctop(l->x, g->x_axis);
-  l->y = ctop(l->y, g->y_axis);
-}
-
-process_strings(g)
-Graph g;
-{
-  String s;
-
-  for(s = first(g->strings); s != nil(g->strings); s = next(s)) {
-    process_label(s->s, g);
-  }
-}
-
-process_curve(c, g)
-Curve c;
-Graph g;
-{
-  c->marksize[0] = (c->marksize[0] == FSIG) ? 
-                   4.0 : disttop(c->marksize[0], g->x_axis);
-  c->marksize[1] = (c->marksize[1] == FSIG) ? 
-                   4.0 : disttop(c->marksize[1], g->y_axis);
-}
-
-process_curves(g)
-Graph g;
-{
-  Curve c;
-  for(c = first(g->curves); c != nil(g->curves); c = next(c)) {
-    process_curve(c, g);
-  }
-}
- 
-process_graph(g)
-Graph g;
-{
-  g->x_translate = intop(g->x_translate);
-  g->y_translate = intop(g->y_translate);
-  process_axis1(g->x_axis, g);
-  process_axis1(g->y_axis, g);
-  process_axis2(g->x_axis, g);
-  process_axis2(g->y_axis, g);
-  process_curves(g);
-  process_legend(g);
-  process_strings(g);
-  process_title(g);
-}
-
-process_graphs(gs)
-Graphs gs;
-{
-  Graph g;
-  float tmp_x, x, max_y, min_y;
-
-  for (g = first(gs->g); g != nil(gs->g); g = next(g)) process_graph(g);
-  x = 0.0;
-  max_y = 0.0;
-  min_y = 0.0;
-  for (g = first(gs->g); g != nil(gs->g); g = next(g)) {
-    tmp_x = ABS(g->x_translate) * 2.0 + g->x_axis->psize;
-    x = MAX(x, tmp_x);
-    max_y = MAX(max_y, g->y_translate + g->y_axis->psize);
-    if (g->y_translate > 0.0)
-      min_y = MIN(min_y, g->y_translate + g->minval);
-    else
-      min_y = MIN(min_y, g->minval);
-  }
-  if (gs->height <= 0.00) gs->height = max_y - min_y; else gs->height *= FCPI;
-  if (gs->width <= 0.00) gs->width = x; else gs->width *= FCPI;
-  gs->bb[0] = 0.0;
-  gs->bb[1] = min_y;
-  gs->bb[2] = gs->width;
-  gs->bb[3] = gs->height + min_y;
-}
End of process.c
echo show.c 1>&2
sed 's/^-//' >'show.c' <<'End of show.c'
-/* $Log:	show.c,v $
- * Revision 1.5  90/11/26  17:12:53  jsp
- * Fixed a bug (faulty comment printed out)
- * 
- * Revision 1.4  90/10/18  12:46:59  jsp
- * First release version
- * 
- * Changes include the addition of logrhythmic axes, better hash mark
- * editing, etc.
- * 
- * Revision 1.3  90/10/14  21:27:41  jsp
- * Changed to show hash line and label defaults
- * 
- * Revision 1.2  90/10/14  19:57:01  jsp
- * Updated to reflect changes in edit.c.
- * 
- * Revision 1.1  90/10/12  18:29:39  jsp
- * Initial revision
- * 
- *
- * Module to pretty-print / show the defaults of the input, 
- * as flagged by the -p option.
- */ 
-
-#include <stdio.h>
-
-#include <math.h>
-#include "jgraph.h"
-
-static int spaces(nsp)
-int nsp;
-{
-  while(nsp-- > 0) putchar(' ');
-}
-
-float ptoin(p)
-float p;
-{
-  return p / FCPI;
-}
-
-float ptoc(p, a)
-float p;
-Axis a;
-{
-  if (a->is_lg) {
-    return (float) exp((p / a->factor + a->logmin) * a->logfactor);
-  } else {
-    return (p / a->factor) + a->min;
-  }
-}
-
-float ptodist(p, a)
-float p;
-Axis a;
-{
-  if (a->is_lg) {
-    return p  / FCPI;
-  } else {
-    return (p / a->factor) + a->min;
-  }
-}
-
-
-show_label(l, nsp, g)
-Label l;
-int nsp;
-Graph g;
-{
-  char txt[300];
-  old_unprintable_text(l->label, txt);
-  spaces(nsp); printf(": %s\n", txt);
-  spaces(nsp); printf("x %f ", ptoc(l->x, g->x_axis));
-               printf("y %f\n", ptoc(l->y, g->y_axis));
-  spaces(nsp); printf("hj%c vj%c ", l->hj, l->vj);
-               printf("rotate %f\n", l->rotate);
-  spaces(nsp); printf("font %s ", l->font);
-               printf("fontsize %f\n", l->fontsize);
-  return;
-}
-
-show_curve(c, nsp, g)
-Curve c;
-int nsp;
-Graph g;
-{
-  Point p;
-  int i;
-
-  if (c->l->label != CNULL) {
-    spaces(nsp); printf("label\n");
-    spaces(nsp+2);
-    printf("(* unless <legend custom>, this label\'s x\'s and y\'s will be ignored *)\n");
-    show_label(c->l, nsp+2, g);
-  }
-  spaces(nsp); printf("pts\n");
-  spaces(nsp);
-  for(p = first(c->pts); p != nil(c->pts); p = next(p))
-    printf("  %f %f", p->x, p->y);
-  printf("\n");
-  spaces(nsp); printf("marktype ");
-  for (i = 0; i < NMARKTYPES && c->marktype != MARKTYPES[i]; i++) ;
-  if (i == NMARKTYPES) {
-    error_header();
-    fprintf(stderr, "Unknown mark type %c\n", c->marktype);
-    exit(1);
-  } else printf("%s ", MARKTYPESTRS[i]);
-  printf("marksize %f %f ", ptodist(c->marksize[0], g->x_axis), 
-                            ptodist(c->marksize[1], g->y_axis));
-  printf("fill %f\n", c->fill);
-  if (c->marktype == 'g') {
-    spaces(nsp); printf("gmarks");
-    for(p = first(c->general_marks); p != nil(c->general_marks); p = next(p))
-      printf(" %f %f ", p->x, p->y);
-    printf("\n");
-  }
-  spaces(nsp); printf("linetype ");
-  if (c->linetype == '0')  printf("none ");
-  else if (c->linetype == 's') printf("solid ");
-  else if (c->linetype == '.') printf("dotted");
-  else if (c->linetype == '-') printf("dashed ");
-  printf("linethickness %f\n", c->linethick);
-}
-
-show_axis(a, nsp, g)
-Axis a;
-int nsp;
-Graph g;
-{
-  Axis other;
-  Hash h;
-  String s;
-
-  if (a->is_x) other = g->y_axis; else other = g->x_axis;
-  spaces(nsp); printf("size %f\n", a->size);
-  spaces(nsp); printf("min %f max %f %s\n", a->min, a->max,
-                      (a->is_lg) ? "log" : "linear");
-  if (!(a->draw_hash_labels || a->draw_axis_line ||
-        a->draw_hash_marks || a->draw_axis_label)) {
-    spaces(nsp);
-    printf("nodraw\n");
-    return;
-  }
-  spaces(nsp); printf("draw_at %f\n", ptoc(a->draw_at, other));
-  if (a->label->label != CNULL) {
-    spaces(nsp); printf("label\n");
-    show_label(a->label, nsp+2, g);
-  }
-  spaces(nsp); 
-  printf("%sdraw_hash_labels\n", (a->draw_hash_labels) ? "" : "no_");
-  spaces(nsp); 
-  printf("%sdraw_axis_line\n", (a->draw_axis_line) ? "" : "no_");
-  spaces(nsp); 
-  printf("%sdraw_hash_marks\n", (a->draw_hash_marks) ? "" : "no_");
-  spaces(nsp); 
-  printf("%sdraw_axis_label\n", (a->draw_axis_label) ? "" : "no_");
-  spaces(nsp);
-
-  printf("(* The real settings for generating auto_hash_labels:\n");
-  spaces(nsp+5);
-  printf("%sauto_hash_marks ", (a->auto_hash_marks) ? "" : "no_");
-  printf("%sauto_hash_labels\n", (a->auto_hash_labels) ? "" : "no_");
-  spaces(nsp+5); printf("hash %f shash %f mhash %d\n", a->hash_interval, 
-                       a->hash_start, a->minor_hashes);
-  spaces(nsp+5);
-  if (a->is_lg) {
-    printf("log_base %f ", a->log_base);
-  }
-  printf("hash_scale %f ", a->hash_scale);
-  printf("precision %d\n", a->precision);
-  spaces(nsp+3);
-  printf("The following are explicit and implicit hash marks and labels *)\n");
-  
-  spaces(nsp); 
-  printf("hash 0 draw_hash_marks_at %f draw_hash_labels_at %f\n",
-         ptoc(a->draw_hash_marks_at, other), 
-         ptoc(a->draw_hash_labels_at, other));
-  spaces(nsp); printf("hash_labels (* The :, x, and y values are ignored *)\n");
-  show_label(a->hl, nsp + 2, g);
-  
-  for (h = first(a->hash_lines); h != nil(a->hash_lines); h = next(h)) {
-    spaces(nsp);
-    printf("%s %f\n", ((h->size == HASH_SIZE) ? "hash_at" : "mhash_at"),
-           ptoc(h->loc, a));
-  }
-  { char txt[300];
-    for (s = first(a->hash_labels); s != nil(a->hash_labels); s = next(s)) {
-      spaces(nsp);
-      old_unprintable_text(s->s->label, txt);
-      printf("hash_label at %f : %s\n", ptoc(s->s->x, a), txt);
-    }
-  }
-}
-
-show_legend(l, nsp, g)
-Legend l;
-int nsp;
-Graph g;
-{
-  if (l->type == 'c') {
-    spaces(nsp); printf("custom\n");
-  } else if (l->type == 'n') {
-    spaces(nsp); printf("off\n");
-  } else {
-    spaces(nsp); printf("x %f y %f\n", ptoc(l->x, g->x_axis), ptoc(l->y, g->y_axis));
-  }
-  spaces(nsp); printf("linelength %f linebreak %f midspace %f\n",
-     ptodist(l->linelength, g->x_axis), ptodist(l->linebreak, g->y_axis),
-     ptodist(l->midspace, g->x_axis));
-}
-
-show_graph(g, nsp)
-Graph g;
-int nsp;
-{
-
-  Curve c;
-  String s;    
-  spaces(nsp); printf("x_translate %f y_translate %f\n", 
-                       ptoin(g->x_translate), ptoin(g->y_translate));
-  spaces(nsp); printf("xaxis\n"); show_axis(g->x_axis, nsp+2, g);
-  spaces(nsp); printf("yaxis\n"); show_axis(g->y_axis, nsp+2, g);
-  for (c = first(g->curves); c != nil(g->curves); c = next(c)) {
-    spaces(nsp);
-    printf("curve %d\n", c->num);
-    show_curve(c, nsp+2, g);
-  }
-  spaces(nsp); printf("legend\n");
-  show_legend(g->legend, nsp+2, g);
-  if (g->title->label != CNULL) {
-    spaces(nsp);
-    printf("title\n");
-    show_label(g->title, nsp+2, g);
-  }
-  for (s = first(g->strings); s != nil(g->strings); s = next(s)) {
-    spaces(nsp);
-    printf("string %d\n", s->num);
-    show_label(s, nsp+2, g);
-  }
-}
-
-show_graphs(gs)
-Graphs gs;
-{
-  Graph g;
-
-  printf("X %f Y %f\n", ptoin(gs->width), ptoin(gs->height));
-  for (g = first(gs->g); g != nil(gs->g); g = next(g)) {
-    printf("graph %d\n", g->num);
-    show_graph(g, 2);
-  }
-}
-
-
End of show.c
echo sin.c 1>&2
sed 's/^-//' >'sin.c' <<'End of sin.c'
-#include <math.h>
-     main()
-     {
-       double x;
-       for (x = -10.0; x < 10.0; x += .03)
-         printf("%f %f\n", x, sin(x));
-     }
End of sin.c
echo sin.jgr 1>&2
sed 's/^-//' >'sin.jgr' <<'End of sin.jgr'
-(* This is a file to draw sin(i) for i going from -10 to 10.  The actual
- * points were created by a c program which is included below. *) 
-
-newgraph 
-
-yaxis min -1 max 1 label : sin(i)
-xaxis min -10 max 10 label : i
-
-(* Plot the sin curve *)
-curve 1 
-  marktype none
-  linetype solid
-  pts include sin.pts
-   (* sin.pts was created by the following c program:
-
-     #include <math.h>
-     main();
-     {
-       double x;
-       for (x = -10.0; x < 10.0; x += .03)
-         printf("%f %f\n", x, sin(x));
-     }
-     
-   *)
End of sin.jgr
echo sin.pts 1>&2
sed 's/^-//' >'sin.pts' <<'End of sin.pts'
--10.000000 0.544021
--9.970000 0.518608
--9.940000 0.492728
--9.910000 0.466405
--9.880000 0.439662
--9.850000 0.412523
--9.820000 0.385013
--9.790000 0.357157
--9.760000 0.328979
--9.730000 0.300505
--9.700000 0.271761
--9.670000 0.242772
--9.640000 0.213564
--9.610000 0.184165
--9.580000 0.154599
--9.550000 0.124895
--9.520000 0.095078
--9.490000 0.065176
--9.460000 0.035215
--9.430000 0.005222
--9.400000 -0.024775
--9.370000 -0.054751
--9.340000 -0.084676
--9.310000 -0.114526
--9.280000 -0.144273
--9.250000 -0.173889
--9.220000 -0.203350
--9.190000 -0.232627
--9.160000 -0.261695
--9.130000 -0.290527
--9.100000 -0.319098
--9.070000 -0.347382
--9.040000 -0.375353
--9.010000 -0.402987
--8.980000 -0.430257
--8.950000 -0.457141
--8.920000 -0.483613
--8.890000 -0.509650
--8.860000 -0.535228
--8.830000 -0.560325
--8.800000 -0.584917
--8.770000 -0.608983
--8.740000 -0.632501
--8.710000 -0.655450
--8.680000 -0.677809
--8.650000 -0.699557
--8.620000 -0.720677
--8.590000 -0.741147
--8.560000 -0.760951
--8.530000 -0.780070
--8.500000 -0.798487
--8.470000 -0.816185
--8.440000 -0.833149
--8.410000 -0.849363
--8.380000 -0.864813
--8.350000 -0.879484
--8.320000 -0.893364
--8.290000 -0.906440
--8.260000 -0.918701
--8.230000 -0.930134
--8.200000 -0.940731
--8.170000 -0.950480
--8.140000 -0.959375
--8.110000 -0.967406
--8.080000 -0.974566
--8.050000 -0.980850
--8.020000 -0.986251
--7.990000 -0.990764
--7.960000 -0.994385
--7.930000 -0.997112
--7.900000 -0.998941
--7.870000 -0.999872
--7.840000 -0.999902
--7.810000 -0.999033
--7.780000 -0.997265
--7.750000 -0.994599
--7.720000 -0.991038
--7.690000 -0.986585
--7.660000 -0.981244
--7.630000 -0.975021
--7.600000 -0.967920
--7.570000 -0.959947
--7.540000 -0.951111
--7.510000 -0.941419
--7.480000 -0.930880
--7.450000 -0.919503
--7.420000 -0.907299
--7.390000 -0.894278
--7.360000 -0.880452
--7.330000 -0.865834
--7.300000 -0.850437
--7.270000 -0.834274
--7.240000 -0.817361
--7.210000 -0.799712
--7.180000 -0.781343
--7.150000 -0.762271
--7.120000 -0.742513
--7.090000 -0.722087
--7.060000 -0.701011
--7.030000 -0.679305
--7.000000 -0.656987
--6.970000 -0.634077
--6.940000 -0.610597
--6.910000 -0.586568
--6.880000 -0.562011
--6.850000 -0.536948
--6.820000 -0.511401
--6.790000 -0.485395
--6.760000 -0.458951
--6.730000 -0.432095
--6.700000 -0.404850
--6.670000 -0.377240
--6.640000 -0.349291
--6.610000 -0.321028
--6.580000 -0.292476
--6.550000 -0.263660
--6.520000 -0.234607
--6.490000 -0.205344
--6.460000 -0.175895
--6.430000 -0.146288
--6.400000 -0.116549
--6.370000 -0.086706
--6.340000 -0.056784
--6.310000 -0.026811
--6.280000 0.003185
--6.250000 0.033179
--6.220000 0.063143
--6.190000 0.093051
--6.160000 0.122874
--6.130000 0.152587
--6.100000 0.182163
--6.070000 0.211574
--6.040000 0.240795
--6.010000 0.269800
--5.980000 0.298562
--5.950000 0.327055
--5.920000 0.355254
--5.890000 0.383133
--5.860000 0.410667
--5.830000 0.437832
--5.800000 0.464602
--5.770000 0.490955
--5.740000 0.516865
--5.710000 0.542311
--5.680000 0.567269
--5.650000 0.591716
--5.620000 0.615630
--5.590000 0.638991
--5.560000 0.661776
--5.530000 0.683966
--5.500000 0.705540
--5.470000 0.726480
--5.440000 0.746765
--5.410000 0.766379
--5.380000 0.785303
--5.350000 0.803520
--5.320000 0.821014
--5.290000 0.837769
--5.260000 0.853771
--5.230000 0.869004
--5.200000 0.883455
--5.170000 0.897111
--5.140000 0.909959
--5.110000 0.921989
--5.080000 0.933189
--5.050000 0.943549
--5.020000 0.953060
--4.990000 0.961713
--4.960000 0.969501
--4.930000 0.976416
--4.900000 0.982453
--4.870000 0.987605
--4.840000 0.991869
--4.810000 0.995240
--4.780000 0.997715
--4.750000 0.999293
--4.720000 0.999971
--4.690000 0.999749
--4.660000 0.998628
--4.630000 0.996608
--4.600000 0.993691
--4.570000 0.989880
--4.540000 0.985178
--4.510000 0.979589
--4.480000 0.973119
--4.450000 0.965773
--4.420000 0.957558
--4.390000 0.948481
--4.360000 0.938551
--4.330000 0.927776
--4.300000 0.916166
--4.270000 0.903732
--4.240000 0.890484
--4.210000 0.876435
--4.180000 0.861597
--4.150000 0.845984
--4.120000 0.829609
--4.090000 0.812488
--4.060000 0.794636
--4.030000 0.776068
--4.000000 0.756802
--3.970000 0.736856
--3.940000 0.716246
--3.910000 0.694991
--3.880000 0.673111
--3.850000 0.650625
--3.820000 0.627554
--3.790000 0.603918
--3.760000 0.579738
--3.730000 0.555037
--3.700000 0.529836
--3.670000 0.504159
--3.640000 0.478027
--3.610000 0.451466
--3.580000 0.424498
--3.550000 0.397148
--3.520000 0.369441
--3.490000 0.341401
--3.460000 0.313054
--3.430000 0.284426
--3.400000 0.255541
--3.370000 0.226427
--3.340000 0.197108
--3.310000 0.167612
--3.280000 0.137966
--3.250000 0.108195
--3.220000 0.078327
--3.190000 0.048388
--3.160000 0.018406
--3.130000 -0.011592
--3.100000 -0.041581
--3.070000 -0.071532
--3.040000 -0.101418
--3.010000 -0.131213
--2.980000 -0.160890
--2.950000 -0.190423
--2.920000 -0.219784
--2.890000 -0.248947
--2.860000 -0.277886
--2.830000 -0.306575
--2.800000 -0.334988
--2.770000 -0.363100
--2.740000 -0.390885
--2.710000 -0.418318
--2.680000 -0.445375
--2.650000 -0.472031
--2.620000 -0.498262
--2.590000 -0.524044
--2.560000 -0.549355
--2.530000 -0.574172
--2.500000 -0.598472
--2.470000 -0.622234
--2.440000 -0.645435
--2.410000 -0.668056
--2.380000 -0.690075
--2.350000 -0.711473
--2.320000 -0.732231
--2.290000 -0.752331
--2.260000 -0.771753
--2.230000 -0.790480
--2.200000 -0.808496
--2.170000 -0.825785
--2.140000 -0.842330
--2.110000 -0.858118
--2.080000 -0.873133
--2.050000 -0.887362
--2.020000 -0.900793
--1.990000 -0.913413
--1.960000 -0.925212
--1.930000 -0.936177
--1.900000 -0.946300
--1.870000 -0.955572
--1.840000 -0.963983
--1.810000 -0.971527
--1.780000 -0.978197
--1.750000 -0.983986
--1.720000 -0.988890
--1.690000 -0.992904
--1.660000 -0.996024
--1.630000 -0.998248
--1.600000 -0.999574
--1.570000 -1.000000
--1.540000 -0.999526
--1.510000 -0.998152
--1.480000 -0.995881
--1.450000 -0.992713
--1.420000 -0.988652
--1.390000 -0.983701
--1.360000 -0.977865
--1.330000 -0.971148
--1.300000 -0.963558
--1.270000 -0.955101
--1.240000 -0.945784
--1.210000 -0.935616
--1.180000 -0.924606
--1.150000 -0.912764
--1.120000 -0.900100
--1.090000 -0.886627
--1.060000 -0.872355
--1.030000 -0.857299
--1.000000 -0.841471
--0.970000 -0.824886
--0.940000 -0.807558
--0.910000 -0.789504
--0.880000 -0.770739
--0.850000 -0.751280
--0.820000 -0.731146
--0.790000 -0.710353
--0.760000 -0.688921
--0.730000 -0.666870
--0.700000 -0.644218
--0.670000 -0.620986
--0.640000 -0.597195
--0.610000 -0.572867
--0.580000 -0.548024
--0.550000 -0.522687
--0.520000 -0.496880
--0.490000 -0.470626
--0.460000 -0.443948
--0.430000 -0.416871
--0.400000 -0.389418
--0.370000 -0.361615
--0.340000 -0.333487
--0.310000 -0.305059
--0.280000 -0.276356
--0.250000 -0.247404
--0.220000 -0.218230
--0.190000 -0.188859
--0.160000 -0.159318
--0.130000 -0.129634
--0.100000 -0.099833
--0.070000 -0.069943
--0.040000 -0.039989
--0.010000 -0.010000
-0.020000 0.019999
-0.050000 0.049979
-0.080000 0.079915
-0.110000 0.109778
-0.140000 0.139543
-0.170000 0.169182
-0.200000 0.198669
-0.230000 0.227978
-0.260000 0.257081
-0.290000 0.285952
-0.320000 0.314567
-0.350000 0.342898
-0.380000 0.370920
-0.410000 0.398609
-0.440000 0.425939
-0.470000 0.452886
-0.500000 0.479426
-0.530000 0.505533
-0.560000 0.531186
-0.590000 0.556361
-0.620000 0.581035
-0.650000 0.605186
-0.680000 0.628793
-0.710000 0.651834
-0.740000 0.674288
-0.770000 0.696135
-0.800000 0.717356
-0.830000 0.737931
-0.860000 0.757843
-0.890000 0.777072
-0.920000 0.795602
-0.950000 0.813416
-0.980000 0.830497
-1.010000 0.846832
-1.040000 0.862404
-1.070000 0.877201
-1.100000 0.891207
-1.130000 0.904412
-1.160000 0.916803
-1.190000 0.928369
-1.220000 0.939099
-1.250000 0.948985
-1.280000 0.958016
-1.310000 0.966185
-1.340000 0.973485
-1.370000 0.979908
-1.400000 0.985450
-1.430000 0.990105
-1.460000 0.993868
-1.490000 0.996738
-1.520000 0.998710
-1.550000 0.999784
-1.580000 0.999958
-1.610000 0.999232
-1.640000 0.997606
-1.670000 0.995083
-1.700000 0.991665
-1.730000 0.987354
-1.760000 0.982154
-1.790000 0.976071
-1.820000 0.969109
-1.850000 0.961275
-1.880000 0.952576
-1.910000 0.943020
-1.940000 0.932615
-1.970000 0.921371
-2.000000 0.909297
-2.030000 0.896406
-2.060000 0.882707
-2.090000 0.868215
-2.120000 0.852940
-2.150000 0.836899
-2.180000 0.820104
-2.210000 0.802571
-2.240000 0.784316
-2.270000 0.765355
-2.300000 0.745705
-2.330000 0.725384
-2.360000 0.704411
-2.390000 0.682803
-2.420000 0.660581
-2.450000 0.637765
-2.480000 0.614374
-2.510000 0.590431
-2.540000 0.565956
-2.570000 0.540972
-2.600000 0.515501
-2.630000 0.489567
-2.660000 0.463191
-2.690000 0.436399
-2.720000 0.409214
-2.750000 0.381661
-2.780000 0.353764
-2.810000 0.325549
-2.840000 0.297041
-2.870000 0.268266
-2.900000 0.239249
-2.930000 0.210017
-2.960000 0.180596
-2.990000 0.151013
-3.020000 0.121293
-3.050000 0.091465
-3.080000 0.061554
-3.110000 0.031587
-3.140000 0.001593
-3.170000 -0.028404
-3.200000 -0.058374
-3.230000 -0.088292
-3.260000 -0.118131
-3.290000 -0.147863
-3.320000 -0.177462
-3.350000 -0.206902
-3.380000 -0.236155
-3.410000 -0.265196
-3.440000 -0.293998
-3.470000 -0.322536
-3.500000 -0.350783
-3.530000 -0.378715
-3.560000 -0.406306
-3.590000 -0.433531
-3.620000 -0.460366
-3.650000 -0.486787
-3.680000 -0.512769
-3.710000 -0.538291
-3.740000 -0.563327
-3.770000 -0.587857
-3.800000 -0.611858
-3.830000 -0.635308
-3.860000 -0.658186
-3.890000 -0.680473
-3.920000 -0.702146
-3.950000 -0.723188
-3.980000 -0.743579
-4.010000 -0.763301
-4.040000 -0.782336
-4.070000 -0.800667
-4.100000 -0.818277
-4.130000 -0.835151
-4.160000 -0.851273
-4.190000 -0.866630
-4.220000 -0.881206
-4.250000 -0.894989
-4.280000 -0.907967
-4.310000 -0.920128
-4.340000 -0.931461
-4.370000 -0.941955
-4.400000 -0.951602
-4.430000 -0.960392
-4.460000 -0.968319
-4.490000 -0.975373
-4.520000 -0.981550
-4.550000 -0.986844
-4.580000 -0.991249
-4.610000 -0.994763
-4.640000 -0.997381
-4.670000 -0.999102
-4.700000 -0.999923
-4.730000 -0.999845
-4.760000 -0.998867
-4.790000 -0.996990
-4.820000 -0.994216
-4.850000 -0.990547
-4.880000 -0.985986
-4.910000 -0.980538
-4.940000 -0.974208
-4.970000 -0.967001
-5.000000 -0.958924
-5.030000 -0.949984
-5.060000 -0.940189
-5.090000 -0.929548
-5.120000 -0.918070
-5.150000 -0.905767
-5.180000 -0.892648
-5.210000 -0.878725
-5.240000 -0.864012
-5.270000 -0.848522
-5.300000 -0.832267
-5.330000 -0.815264
-5.360000 -0.797527
-5.390000 -0.779073
-5.420000 -0.759917
-5.450000 -0.740077
-5.480000 -0.719572
-5.510000 -0.698418
-5.540000 -0.676637
-5.570000 -0.654246
-5.600000 -0.631267
-5.630000 -0.607719
-5.660000 -0.583625
-5.690000 -0.559005
-5.720000 -0.533882
-5.750000 -0.508279
-5.780000 -0.482218
-5.810000 -0.455724
-5.840000 -0.428819
-5.870000 -0.401529
-5.900000 -0.373877
-5.930000 -0.345888
-5.960000 -0.317589
-5.990000 -0.289003
-6.020000 -0.260157
-6.050000 -0.231078
-6.080000 -0.201790
-6.110000 -0.172321
-6.140000 -0.142697
-6.170000 -0.112944
-6.200000 -0.083089
-6.230000 -0.053160
-6.260000 -0.023183
-6.290000 0.006815
-6.320000 0.036806
-6.350000 0.066765
-6.380000 0.096664
-6.410000 0.126475
-6.440000 0.156173
-6.470000 0.185730
-6.500000 0.215120
-6.530000 0.244316
-6.560000 0.273293
-6.590000 0.302024
-6.620000 0.330482
-6.650000 0.358644
-6.680000 0.386483
-6.710000 0.413973
-6.740000 0.441092
-6.770000 0.467813
-6.800000 0.494113
-6.830000 0.519969
-6.860000 0.545357
-6.890000 0.570254
-6.920000 0.594637
-6.950000 0.618486
-6.980000 0.641778
-7.010000 0.664493
-7.040000 0.686609
-7.070000 0.708108
-7.100000 0.728969
-7.130000 0.749174
-7.160000 0.768705
-7.190000 0.787545
-7.220000 0.805675
-7.250000 0.823081
-7.280000 0.839746
-7.310000 0.855655
-7.340000 0.870794
-7.370000 0.885149
-7.400000 0.898708
-7.430000 0.911458
-7.460000 0.923388
-7.490000 0.934487
-7.520000 0.944745
-7.550000 0.954152
-7.580000 0.962701
-7.610000 0.970384
-7.640000 0.977193
-7.670000 0.983123
-7.700000 0.988168
-7.730000 0.992324
-7.760000 0.995587
-7.790000 0.997954
-7.820000 0.999423
-7.850000 0.999992
-7.880000 0.999662
-7.910000 0.998431
-7.940000 0.996303
-7.970000 0.993277
-8.000000 0.989358
-8.030000 0.984549
-8.060000 0.978853
-8.090000 0.972277
-8.120000 0.964825
-8.150000 0.956506
-8.180000 0.947325
-8.210000 0.937292
-8.240000 0.926415
-8.270000 0.914705
-8.300000 0.902172
-8.330000 0.888827
-8.360000 0.874681
-8.390000 0.859749
-8.420000 0.844043
-8.450000 0.827577
-8.480000 0.810367
-8.510000 0.792427
-8.540000 0.773774
-8.570000 0.754425
-8.600000 0.734397
-8.630000 0.713708
-8.660000 0.692377
-8.690000 0.670422
-8.720000 0.647865
-8.750000 0.624724
-8.780000 0.601021
-8.810000 0.576777
-8.840000 0.552014
-8.870000 0.526755
-8.900000 0.501021
-8.930000 0.474836
-8.960000 0.448224
-8.990000 0.421209
-9.020000 0.393815
-9.050000 0.366066
-9.080000 0.337988
-9.110000 0.309605
-9.140000 0.280944
-9.170000 0.252031
-9.200000 0.222890
-9.230000 0.193549
-9.260000 0.164033
-9.290000 0.134370
-9.320000 0.104586
-9.350000 0.074708
-9.380000 0.044763
-9.410000 0.014777
-9.440000 -0.015221
-9.470000 -0.045207
-9.500000 -0.075151
-9.530000 -0.105028
-9.560000 -0.134810
-9.590000 -0.164471
-9.620000 -0.193984
-9.650000 -0.223323
-9.680000 -0.252460
-9.710000 -0.281371
-9.740000 -0.310028
-9.770000 -0.338406
-9.800000 -0.366479
-9.830000 -0.394223
-9.860000 -0.421612
-9.890000 -0.448621
-9.920000 -0.475227
-9.950000 -0.501405
-9.980000 -0.527132
End of sin.pts
echo sin.tex 1>&2
sed 's/^-//' >'sin.tex' <<'End of sin.tex'
-
-\documentstyle[12pt]{report}
-\input{psfig}
-
-\begin{document}
-
-
-A simple sin wave:
-
-\begin{figure}[h]
-\centerline{\psfig{figure=/u/jsp/src/jgraph/graphs/sin.jps}}
-\caption{\sl A sin graph from sin.jgr}
-\end{figure}
-
-\end{document}
-
End of sin.tex
echo sin1.jgr 1>&2
sed 's/^-//' >'sin1.jgr' <<'End of sin1.jgr'
-(* This is an extension of sin.jgr only this time, the axes are at
-x = 0 and y = 0.  The hash labels are printed at the left and bottom. *)
-
-newgraph 
-
-yaxis min -1 max 1 label : sin(i) 
-  no_draw_hash_marks no_draw_axis_line
-
-xaxis min -10 max 10 label : i
-  no_draw_hash_marks no_draw_axis_line
-
-(* Plot the sin curve *)
-curve 1 
-  marktype none
-  linetype solid
-  pts include sin.pts
-   (* sin.pts was created by the following c program:
-
-     #include <math.h>
-     main();
-     {
-       double x;
-       for (x = -10.0; x < 10.0; x += .03)
-         printf("%f %f\n", x, sin(x));
-     }
-     
-   *)
-
-(* Now, create a new graph with the same dimensions, but with the
- * x & y axes in a different place, and with no axis or hash labels.
- * Also, make the hash marks smaller. *)
-
-newgraph
-inherit_axes
-xaxis draw draw_at 0 hash_scale -.5 no_draw_hash_labels no_draw_axis_label
-yaxis draw draw_at 0 hash_scale -.5 no_draw_hash_labels no_draw_axis_label
-
-(* Finally, we want the hash marks to be centered around the axes,
- * so draw them again with a scaling of +5.
- *)
-
-newgraph
-inherit_axes
-xaxis hash_scale .5
-yaxis hash_scale .5
-
End of sin1.jgr
echo sin1.tex 1>&2
sed 's/^-//' >'sin1.tex' <<'End of sin1.tex'
-
-\documentstyle[12pt]{report}
-\input{psfig}
-
-\begin{document}
-
-
-A simple sin wave with axes at x = 0 and y = 0:
-
-\begin{figure}[h]
-\centerline{\psfig{figure=/u/jsp/src/jgraph/graphs/sin1.jps}}
-\caption{\sl A sin graph from sin1.jgr}
-\end{figure}
-
-\end{document}
-
End of sin1.tex
echo sin2.c 1>&2
sed 's/^-//' >'sin2.c' <<'End of sin2.c'
-#include <math.h>
-     main()
-     {
-       double x;
-       for (x = 0.1; x < 100.0; x += .03)
-         printf("%f %f\n", x, sin(x));
-     }
End of sin2.c
echo sin2.jgr 1>&2
sed 's/^-//' >'sin2.jgr' <<'End of sin2.jgr'
-(* Now this is a sin wave from 0.1 to 100 with logarithmic axes *)
-
-newgraph 
-
-yaxis min -1 max 1 
-  label : sin(i)
-xaxis log 
-  label : i
-
-title : I vs sin(i);
-
-(* Plot the sin curve *)
-curve 1 
-  marktype none
-  linetype solid
-  pts include sin2.pts
-   (* sin2.pts was created by the following c program:
-
-     #include <math.h>
-     main();
-     {
-       double x;
-       for (x = 0.1; x < 100.0; x += .03)
-         printf("%f %f\n", x, sin(x));
-     }
-     
-   *)
-
End of sin2.jgr
echo sin2.pts 1>&2
sed 's/^-//' >'sin2.pts' <<'End of sin2.pts'
-0.100000 0.099833
-0.130000 0.129634
-0.160000 0.159318
-0.190000 0.188859
-0.220000 0.218230
-0.250000 0.247404
-0.280000 0.276356
-0.310000 0.305059
-0.340000 0.333487
-0.370000 0.361615
-0.400000 0.389418
-0.430000 0.416871
-0.460000 0.443948
-0.490000 0.470626
-0.520000 0.496880
-0.550000 0.522687
-0.580000 0.548024
-0.610000 0.572867
-0.640000 0.597195
-0.670000 0.620986
-0.700000 0.644218
-0.730000 0.666870
-0.760000 0.688921
-0.790000 0.710353
-0.820000 0.731146
-0.850000 0.751280
-0.880000 0.770739
-0.910000 0.789504
-0.940000 0.807558
-0.970000 0.824886
-1.000000 0.841471
-1.030000 0.857299
-1.060000 0.872355
-1.090000 0.886627
-1.120000 0.900100
-1.150000 0.912764
-1.180000 0.924606
-1.210000 0.935616
-1.240000 0.945784
-1.270000 0.955101
-1.300000 0.963558
-1.330000 0.971148
-1.360000 0.977865
-1.390000 0.983701
-1.420000 0.988652
-1.450000 0.992713
-1.480000 0.995881
-1.510000 0.998152
-1.540000 0.999526
-1.570000 1.000000
-1.600000 0.999574
-1.630000 0.998248
-1.660000 0.996024
-1.690000 0.992904
-1.720000 0.988890
-1.750000 0.983986
-1.780000 0.978197
-1.810000 0.971527
-1.840000 0.963983
-1.870000 0.955572
-1.900000 0.946300
-1.930000 0.936177
-1.960000 0.925212
-1.990000 0.913413
-2.020000 0.900793
-2.050000 0.887362
-2.080000 0.873133
-2.110000 0.858118
-2.140000 0.842330
-2.170000 0.825785
-2.200000 0.808496
-2.230000 0.790480
-2.260000 0.771753
-2.290000 0.752331
-2.320000 0.732231
-2.350000 0.711473
-2.380000 0.690075
-2.410000 0.668056
-2.440000 0.645435
-2.470000 0.622234
-2.500000 0.598472
-2.530000 0.574172
-2.560000 0.549355
-2.590000 0.524044
-2.620000 0.498262
-2.650000 0.472031
-2.680000 0.445375
-2.710000 0.418318
-2.740000 0.390885
-2.770000 0.363100
-2.800000 0.334988
-2.830000 0.306575
-2.860000 0.277886
-2.890000 0.248947
-2.920000 0.219784
-2.950000 0.190423
-2.980000 0.160890
-3.010000 0.131213
-3.040000 0.101418
-3.070000 0.071532
-3.100000 0.041581
-3.130000 0.011592
-3.160000 -0.018406
-3.190000 -0.048388
-3.220000 -0.078327
-3.250000 -0.108195
-3.280000 -0.137966
-3.310000 -0.167612
-3.340000 -0.197108
-3.370000 -0.226427
-3.400000 -0.255541
-3.430000 -0.284426
-3.460000 -0.313054
-3.490000 -0.341401
-3.520000 -0.369441
-3.550000 -0.397148
-3.580000 -0.424498
-3.610000 -0.451466
-3.640000 -0.478027
-3.670000 -0.504159
-3.700000 -0.529836
-3.730000 -0.555037
-3.760000 -0.579738
-3.790000 -0.603918
-3.820000 -0.627554
-3.850000 -0.650625
-3.880000 -0.673111
-3.910000 -0.694991
-3.940000 -0.716246
-3.970000 -0.736856
-4.000000 -0.756802
-4.030000 -0.776068
-4.060000 -0.794636
-4.090000 -0.812488
-4.120000 -0.829609
-4.150000 -0.845984
-4.180000 -0.861597
-4.210000 -0.876435
-4.240000 -0.890484
-4.270000 -0.903732
-4.300000 -0.916166
-4.330000 -0.927776
-4.360000 -0.938551
-4.390000 -0.948481
-4.420000 -0.957558
-4.450000 -0.965773
-4.480000 -0.973119
-4.510000 -0.979589
-4.540000 -0.985178
-4.570000 -0.989880
-4.600000 -0.993691
-4.630000 -0.996608
-4.660000 -0.998628
-4.690000 -0.999749
-4.720000 -0.999971
-4.750000 -0.999293
-4.780000 -0.997715
-4.810000 -0.995240
-4.840000 -0.991869
-4.870000 -0.987605
-4.900000 -0.982453
-4.930000 -0.976416
-4.960000 -0.969501
-4.990000 -0.961713
-5.020000 -0.953060
-5.050000 -0.943549
-5.080000 -0.933189
-5.110000 -0.921989
-5.140000 -0.909959
-5.170000 -0.897111
-5.200000 -0.883455
-5.230000 -0.869004
-5.260000 -0.853771
-5.290000 -0.837769
-5.320000 -0.821014
-5.350000 -0.803520
-5.380000 -0.785303
-5.410000 -0.766379
-5.440000 -0.746765
-5.470000 -0.726480
-5.500000 -0.705540
-5.530000 -0.683966
-5.560000 -0.661776
-5.590000 -0.638991
-5.620000 -0.615630
-5.650000 -0.591716
-5.680000 -0.567269
-5.710000 -0.542311
-5.740000 -0.516865
-5.770000 -0.490955
-5.800000 -0.464602
-5.830000 -0.437832
-5.860000 -0.410667
-5.890000 -0.383133
-5.920000 -0.355254
-5.950000 -0.327055
-5.980000 -0.298562
-6.010000 -0.269800
-6.040000 -0.240795
-6.070000 -0.211574
-6.100000 -0.182163
-6.130000 -0.152587
-6.160000 -0.122874
-6.190000 -0.093051
-6.220000 -0.063143
-6.250000 -0.033179
-6.280000 -0.003185
-6.310000 0.026811
-6.340000 0.056784
-6.370000 0.086706
-6.400000 0.116549
-6.430000 0.146288
-6.460000 0.175895
-6.490000 0.205344
-6.520000 0.234607
-6.550000 0.263660
-6.580000 0.292476
-6.610000 0.321028
-6.640000 0.349291
-6.670000 0.377240
-6.700000 0.404850
-6.730000 0.432095
-6.760000 0.458951
-6.790000 0.485395
-6.820000 0.511401
-6.850000 0.536948
-6.880000 0.562011
-6.910000 0.586568
-6.940000 0.610597
-6.970000 0.634077
-7.000000 0.656987
-7.030000 0.679305
-7.060000 0.701011
-7.090000 0.722087
-7.120000 0.742513
-7.150000 0.762271
-7.180000 0.781343
-7.210000 0.799712
-7.240000 0.817361
-7.270000 0.834274
-7.300000 0.850437
-7.330000 0.865834
-7.360000 0.880452
-7.390000 0.894278
-7.420000 0.907299
-7.450000 0.919503
-7.480000 0.930880
-7.510000 0.941419
-7.540000 0.951111
-7.570000 0.959947
-7.600000 0.967920
-7.630000 0.975021
-7.660000 0.981244
-7.690000 0.986585
-7.720000 0.991038
-7.750000 0.994599
-7.780000 0.997265
-7.810000 0.999033
-7.840000 0.999902
-7.870000 0.999872
-7.900000 0.998941
-7.930000 0.997112
-7.960000 0.994385
-7.990000 0.990764
-8.020000 0.986251
-8.050000 0.980850
-8.080000 0.974566
-8.110000 0.967406
-8.140000 0.959375
-8.170000 0.950480
-8.200000 0.940731
-8.230000 0.930134
-8.260000 0.918701
-8.290000 0.906440
-8.320000 0.893364
-8.350000 0.879484
-8.380000 0.864813
-8.410000 0.849363
-8.440000 0.833149
-8.470000 0.816185
-8.500000 0.798487
-8.530000 0.780070
-8.560000 0.760951
-8.590000 0.741147
-8.620000 0.720677
-8.650000 0.699557
-8.680000 0.677809
-8.710000 0.655450
-8.740000 0.632501
-8.770000 0.608983
-8.800000 0.584917
-8.830000 0.560325
-8.860000 0.535228
-8.890000 0.509650
-8.920000 0.483613
-8.950000 0.457141
-8.980000 0.430257
-9.010000 0.402987
-9.040000 0.375353
-9.070000 0.347382
-9.100000 0.319098
-9.130000 0.290527
-9.160000 0.261695
-9.190000 0.232627
-9.220000 0.203350
-9.250000 0.173889
-9.280000 0.144273
-9.310000 0.114526
-9.340000 0.084676
-9.370000 0.054751
-9.400000 0.024775
-9.430000 -0.005222
-9.460000 -0.035215
-9.490000 -0.065176
-9.520000 -0.095078
-9.550000 -0.124895
-9.580000 -0.154599
-9.610000 -0.184165
-9.640000 -0.213564
-9.670000 -0.242772
-9.700000 -0.271761
-9.730000 -0.300505
-9.760000 -0.328979
-9.790000 -0.357157
-9.820000 -0.385013
-9.850000 -0.412523
-9.880000 -0.439662
-9.910000 -0.466405
-9.940000 -0.492728
-9.970000 -0.518608
-10.000000 -0.544021
-10.030000 -0.568945
-10.060000 -0.593356
-10.090000 -0.617234
-10.120000 -0.640556
-10.150000 -0.663302
-10.180000 -0.685450
-10.210000 -0.706982
-10.240000 -0.727878
-10.270000 -0.748118
-10.300000 -0.767686
-10.330000 -0.786562
-10.360000 -0.804731
-10.390000 -0.822175
-10.420000 -0.838880
-10.450000 -0.854829
-10.480000 -0.870010
-10.510000 -0.884407
-10.540000 -0.898009
-10.570000 -0.910802
-10.600000 -0.922775
-10.630000 -0.933919
-10.660000 -0.944221
-10.690000 -0.953674
-10.720000 -0.962269
-10.750000 -0.969998
-10.780000 -0.976854
-10.810000 -0.982830
-10.840000 -0.987923
-10.870000 -0.992126
-10.900000 -0.995436
-10.930000 -0.997851
-10.960000 -0.999367
-10.990000 -0.999984
-11.020000 -0.999702
-11.050000 -0.998519
-11.080000 -0.996438
-11.110000 -0.993461
-11.140000 -0.989589
-11.170000 -0.984826
-11.200000 -0.979178
-11.230000 -0.972648
-11.260000 -0.965243
-11.290000 -0.956969
-11.320000 -0.947834
-11.350000 -0.937846
-11.380000 -0.927014
-11.410000 -0.915348
-11.440000 -0.902858
-11.470000 -0.889555
-11.500000 -0.875452
-11.530000 -0.860561
-11.560000 -0.844896
-11.590000 -0.828470
-11.620000 -0.811299
-11.650000 -0.793398
-11.680000 -0.774782
-11.710000 -0.755470
-11.740000 -0.735477
-11.770000 -0.714823
-11.800000 -0.693525
-11.830000 -0.671603
-11.860000 -0.649077
-11.890000 -0.625967
-11.920000 -0.602293
-11.950000 -0.578077
-11.980000 -0.553342
-12.010000 -0.528108
-12.040000 -0.502399
-12.070000 -0.476237
-12.100000 -0.449647
-12.130000 -0.422653
-12.160000 -0.395278
-12.190000 -0.367548
-12.220000 -0.339486
-12.250000 -0.311119
-12.280000 -0.282473
-12.310000 -0.253571
-12.340000 -0.224442
-12.370000 -0.195111
-12.400000 -0.165604
-12.430000 -0.135948
-12.460000 -0.106170
-12.490000 -0.076296
-12.520000 -0.046354
-12.550000 -0.016370
-12.580000 0.013629
-12.610000 0.043616
-12.640000 0.073563
-12.670000 0.103444
-12.700000 0.133232
-12.730000 0.162900
-12.760000 0.192422
-12.790000 0.221770
-12.820000 0.250919
-12.850000 0.279842
-12.880000 0.308513
-12.910000 0.336907
-12.940000 0.364997
-12.970000 0.392759
-13.000000 0.420167
-13.030000 0.447197
-13.060000 0.473825
-13.090000 0.500027
-13.120000 0.525778
-13.150000 0.551056
-13.180000 0.575838
-13.210000 0.600103
-13.240000 0.623827
-13.270000 0.646989
-13.300000 0.669570
-13.330000 0.691548
-13.360000 0.712903
-13.390000 0.733617
-13.420000 0.753671
-13.450000 0.773046
-13.480000 0.791726
-13.510000 0.809693
-13.540000 0.826932
-13.570000 0.843426
-13.600000 0.859162
-13.630000 0.874124
-13.660000 0.888300
-13.690000 0.901676
-13.720000 0.914240
-13.750000 0.925982
-13.780000 0.936891
-13.810000 0.946957
-13.840000 0.956170
-13.870000 0.964523
-13.900000 0.972008
-13.930000 0.978618
-13.960000 0.984347
-13.990000 0.989190
-14.020000 0.993144
-14.050000 0.996203
-14.080000 0.998366
-14.110000 0.999631
-14.140000 0.999996
-14.170000 0.999461
-14.200000 0.998027
-14.230000 0.995694
-14.260000 0.992466
-14.290000 0.988344
-14.320000 0.983333
-14.350000 0.977436
-14.380000 0.970661
-14.410000 0.963011
-14.440000 0.954495
-14.470000 0.945121
-14.500000 0.934895
-14.530000 0.923828
-14.560000 0.911930
-14.590000 0.899211
-14.620000 0.885683
-14.650000 0.871358
-14.680000 0.856249
-14.710000 0.840369
-14.740000 0.823733
-14.770000 0.806355
-14.800000 0.788252
-14.830000 0.769440
-14.860000 0.749935
-14.890000 0.729755
-14.920000 0.708918
-14.950000 0.687444
-14.980000 0.665351
-15.010000 0.642659
-15.040000 0.619388
-15.070000 0.595561
-15.100000 0.571197
-15.130000 0.546319
-15.160000 0.520950
-15.190000 0.495112
-15.220000 0.468828
-15.250000 0.442122
-15.280000 0.415019
-15.310000 0.387542
-15.340000 0.359716
-15.370000 0.331566
-15.400000 0.303118
-15.430000 0.274398
-15.460000 0.245430
-15.490000 0.216242
-15.520000 0.186858
-15.550000 0.157307
-15.580000 0.127614
-15.610000 0.097807
-15.640000 0.067911
-15.670000 0.037954
-15.700000 0.007963
-15.730000 -0.022035
-15.760000 -0.052013
-15.790000 -0.081945
-15.820000 -0.111802
-15.850000 -0.141560
-15.880000 -0.171189
-15.910000 -0.200665
-15.940000 -0.229960
-15.970000 -0.259048
-16.000000 -0.287903
-16.030000 -0.316499
-16.060000 -0.344810
-16.090000 -0.372811
-16.120000 -0.400476
-16.150000 -0.427781
-16.180000 -0.454701
-16.210000 -0.481212
-16.240000 -0.507290
-16.270000 -0.532911
-16.300000 -0.558052
-16.330000 -0.582692
-16.360000 -0.606807
-16.390000 -0.630375
-16.420000 -0.653377
-16.450000 -0.675791
-16.480000 -0.697596
-16.510000 -0.718774
-16.540000 -0.739304
-16.570000 -0.759170
-16.600000 -0.778352
-16.630000 -0.796834
-16.660000 -0.814599
-16.690000 -0.831630
-16.720000 -0.847913
-16.750000 -0.863433
-16.780000 -0.878177
-16.810000 -0.892129
-16.840000 -0.905279
-16.870000 -0.917615
-16.900000 -0.929124
-16.930000 -0.939797
-16.960000 -0.949625
-16.990000 -0.958598
-17.020000 -0.966708
-17.050000 -0.973948
-17.080000 -0.980312
-17.110000 -0.985794
-17.140000 -0.990388
-17.170000 -0.994092
-17.200000 -0.996900
-17.230000 -0.998811
-17.260000 -0.999824
-17.290000 -0.999937
-17.320000 -0.999150
-17.350000 -0.997463
-17.380000 -0.994880
-17.410000 -0.991400
-17.440000 -0.987029
-17.470000 -0.981769
-17.500000 -0.975626
-17.530000 -0.968605
-17.560000 -0.960712
-17.590000 -0.951954
-17.620000 -0.942340
-17.650000 -0.931878
-17.680000 -0.920577
-17.710000 -0.908448
-17.740000 -0.895501
-17.770000 -0.881748
-17.800000 -0.867202
-17.830000 -0.851876
-17.860000 -0.835782
-17.890000 -0.818937
-17.920000 -0.801354
-17.950000 -0.783051
-17.980000 -0.764043
-18.010000 -0.744347
-18.040000 -0.723981
-18.070000 -0.702964
-18.100000 -0.681314
-18.130000 -0.659051
-18.160000 -0.636195
-18.190000 -0.612766
-18.220000 -0.588786
-18.250000 -0.564276
-18.280000 -0.539258
-18.310000 -0.513755
-18.340000 -0.487790
-18.370000 -0.461385
-18.400000 -0.434566
-18.430000 -0.407355
-18.460000 -0.379778
-18.490000 -0.351859
-18.520000 -0.323623
-18.550000 -0.295096
-18.580000 -0.266303
-18.610000 -0.237271
-18.640000 -0.208026
-18.670000 -0.178593
-18.700000 -0.148999
-18.730000 -0.119271
-18.760000 -0.089436
-18.790000 -0.059521
-18.820000 -0.029552
-18.850000 0.000444
-18.880000 0.030439
-18.910000 0.060407
-18.940000 0.090321
-18.970000 0.120153
-19.000000 0.149877
-19.030000 0.179466
-19.060000 0.208894
-19.090000 0.238134
-19.120000 0.267159
-19.150000 0.295944
-19.180000 0.324463
-19.210000 0.352690
-19.240000 0.380599
-19.270000 0.408166
-19.300000 0.435365
-19.330000 0.462173
-19.360000 0.488565
-19.390000 0.514517
-19.420000 0.540006
-19.450000 0.565009
-19.480000 0.589504
-19.510000 0.613468
-19.540000 0.636880
-19.570000 0.659718
-19.600000 0.681964
-19.630000 0.703595
-19.660000 0.724593
-19.690000 0.744939
-19.720000 0.764615
-19.750000 0.783603
-19.780000 0.801885
-19.810000 0.819446
-19.840000 0.836270
-19.870000 0.852340
-19.900000 0.867644
-19.930000 0.882167
-19.960000 0.895896
-19.990000 0.908819
-20.020000 0.920924
-20.050000 0.932200
-20.080000 0.942637
-20.110000 0.952226
-20.140000 0.960958
-20.170000 0.968825
-20.200000 0.975821
-20.230000 0.981938
-20.260000 0.987171
-20.290000 0.991516
-20.320000 0.994969
-20.350000 0.997526
-20.380000 0.999186
-20.410000 0.999946
-20.440000 0.999807
-20.470000 0.998768
-20.500000 0.996830
-20.530000 0.993995
-20.560000 0.990265
-20.590000 0.985644
-20.620000 0.980136
-20.650000 0.973747
-20.680000 0.966480
-20.710000 0.958345
-20.740000 0.949346
-20.770000 0.939493
-20.800000 0.928795
-20.830000 0.917261
-20.860000 0.904902
-20.890000 0.891728
-20.920000 0.877751
-20.950000 0.862985
-20.980000 0.847442
-21.010000 0.831137
-21.040000 0.814083
-21.070000 0.796297
-21.100000 0.777794
-21.130000 0.758591
-21.160000 0.738706
-21.190000 0.718156
-21.220000 0.696959
-21.250000 0.675136
-21.280000 0.652704
-21.310000 0.629686
-21.340000 0.606100
-21.370000 0.581970
-21.400000 0.557315
-21.430000 0.532159
-21.460000 0.506524
-21.490000 0.480433
-21.520000 0.453910
-21.550000 0.426978
-21.580000 0.399662
-21.610000 0.371987
-21.640000 0.343977
-21.670000 0.315657
-21.700000 0.287053
-21.730000 0.258190
-21.760000 0.229096
-21.790000 0.199795
-21.820000 0.170314
-21.850000 0.140680
-21.880000 0.110920
-21.910000 0.081060
-21.940000 0.051126
-21.970000 0.021147
-22.000000 -0.008851
-22.030000 -0.038842
-22.060000 -0.068797
-22.090000 -0.098691
-22.120000 -0.128495
-22.150000 -0.158184
-22.180000 -0.187731
-22.210000 -0.217109
-22.240000 -0.246291
-22.270000 -0.275252
-22.300000 -0.303965
-22.330000 -0.332404
-22.360000 -0.360544
-22.390000 -0.388360
-22.420000 -0.415827
-22.450000 -0.442919
-22.480000 -0.469612
-22.510000 -0.495883
-22.540000 -0.521708
-22.570000 -0.547063
-22.600000 -0.571926
-22.630000 -0.596274
-22.660000 -0.620085
-22.690000 -0.643339
-22.720000 -0.666013
-22.750000 -0.688088
-22.780000 -0.709544
-22.810000 -0.730362
-22.840000 -0.750522
-22.870000 -0.770007
-22.900000 -0.788798
-22.930000 -0.806880
-22.960000 -0.824236
-22.990000 -0.840850
-23.020000 -0.856707
-23.050000 -0.871793
-23.080000 -0.886095
-23.110000 -0.899599
-23.140000 -0.912294
-23.170000 -0.924168
-23.200000 -0.935210
-23.230000 -0.945410
-23.260000 -0.954760
-23.290000 -0.963250
-23.320000 -0.970874
-23.350000 -0.977624
-23.380000 -0.983494
-23.410000 -0.988479
-23.440000 -0.992574
-23.470000 -0.995776
-23.500000 -0.998082
-23.530000 -0.999490
-23.560000 -0.999998
-23.590000 -0.999606
-23.620000 -0.998315
-23.650000 -0.996126
-23.680000 -0.993040
-23.710000 -0.989060
-23.740000 -0.984190
-23.770000 -0.978434
-23.800000 -0.971798
-23.830000 -0.964288
-23.860000 -0.955909
-23.890000 -0.946671
-23.920000 -0.936580
-23.950000 -0.925647
-23.980000 -0.913880
-24.010000 -0.901291
-24.040000 -0.887891
-24.070000 -0.873692
-24.100000 -0.858707
-24.130000 -0.842949
-24.160000 -0.826432
-24.190000 -0.809172
-24.220000 -0.791183
-24.250000 -0.772483
-24.280000 -0.753087
-24.310000 -0.733013
-24.340000 -0.712280
-24.370000 -0.690906
-24.400000 -0.668910
-24.430000 -0.646312
-24.460000 -0.623132
-24.490000 -0.599392
-24.520000 -0.575112
-24.550000 -0.550315
-24.580000 -0.525022
-24.610000 -0.499257
-24.640000 -0.473043
-24.670000 -0.446403
-24.700000 -0.419361
-24.730000 -0.391942
-24.760000 -0.364170
-24.790000 -0.336070
-24.820000 -0.307668
-24.850000 -0.278989
-24.880000 -0.250059
-24.910000 -0.220904
-24.940000 -0.191550
-24.970000 -0.162024
-25.000000 -0.132352
-25.030000 -0.102561
-25.060000 -0.072677
-25.090000 -0.042728
-25.120000 -0.012741
-25.150000 0.017258
-25.180000 0.047241
-25.210000 0.077182
-25.240000 0.107053
-25.270000 0.136828
-25.300000 0.166480
-25.330000 0.195982
-25.360000 0.225308
-25.390000 0.254430
-25.420000 0.283324
-25.450000 0.311963
-25.480000 0.340321
-25.510000 0.368373
-25.540000 0.396094
-25.570000 0.423458
-25.600000 0.450441
-25.630000 0.477018
-25.660000 0.503166
-25.690000 0.528862
-25.720000 0.554081
-25.750000 0.578802
-25.780000 0.603002
-25.810000 0.626659
-25.840000 0.649752
-25.870000 0.672261
-25.900000 0.694165
-25.930000 0.715444
-25.960000 0.736079
-25.990000 0.756051
-26.020000 0.775343
-26.050000 0.793938
-26.080000 0.811818
-26.110000 0.828967
-26.140000 0.845371
-26.170000 0.861013
-26.200000 0.875881
-26.230000 0.889961
-26.260000 0.903239
-26.290000 0.915705
-26.320000 0.927347
-26.350000 0.938154
-26.380000 0.948117
-26.410000 0.957226
-26.440000 0.965474
-26.470000 0.972854
-26.500000 0.979358
-26.530000 0.984980
-26.560000 0.989716
-26.590000 0.993562
-26.620000 0.996513
-26.650000 0.998567
-26.680000 0.999723
-26.710000 0.999979
-26.740000 0.999335
-26.770000 0.997792
-26.800000 0.995351
-26.830000 0.992014
-26.860000 0.987785
-26.890000 0.982666
-26.920000 0.976663
-26.950000 0.969782
-26.980000 0.962027
-27.010000 0.953407
-27.040000 0.943928
-27.070000 0.933601
-27.100000 0.922433
-27.130000 0.910435
-27.160000 0.897617
-27.190000 0.883992
-27.220000 0.869571
-27.250000 0.854368
-27.280000 0.838396
-27.310000 0.821669
-27.340000 0.804203
-27.370000 0.786014
-27.400000 0.767116
-27.430000 0.747529
-27.460000 0.727269
-27.490000 0.706354
-27.520000 0.684803
-27.550000 0.662637
-27.580000 0.639874
-27.610000 0.616535
-27.640000 0.592641
-27.670000 0.568214
-27.700000 0.543276
-27.730000 0.517848
-27.760000 0.491955
-27.790000 0.465619
-27.820000 0.438864
-27.850000 0.411714
-27.880000 0.384193
-27.910000 0.356327
-27.940000 0.328140
-27.970000 0.299658
-28.000000 0.270906
-28.030000 0.241910
-28.060000 0.212697
-28.090000 0.183292
-28.120000 0.153722
-28.150000 0.124014
-28.180000 0.094194
-28.210000 0.064290
-28.240000 0.034327
-28.270000 0.004334
-28.300000 -0.025663
-28.330000 -0.055637
-28.360000 -0.085561
-28.390000 -0.115408
-28.420000 -0.145152
-28.450000 -0.174764
-28.480000 -0.204219
-28.510000 -0.233491
-28.540000 -0.262552
-28.570000 -0.291377
-28.600000 -0.319940
-28.630000 -0.348215
-28.660000 -0.376176
-28.690000 -0.403799
-28.720000 -0.431059
-28.750000 -0.457931
-28.780000 -0.484390
-28.810000 -0.510414
-28.840000 -0.535978
-28.870000 -0.561060
-28.900000 -0.585637
-28.930000 -0.609687
-28.960000 -0.633189
-28.990000 -0.656120
-29.020000 -0.678461
-29.050000 -0.700192
-29.080000 -0.721292
-29.110000 -0.741743
-29.140000 -0.761527
-29.170000 -0.780626
-29.200000 -0.799021
-29.230000 -0.816698
-29.260000 -0.833640
-29.290000 -0.849832
-29.320000 -0.865259
-29.350000 -0.879907
-29.380000 -0.893763
-29.410000 -0.906815
-29.440000 -0.919051
-29.470000 -0.930460
-29.500000 -0.941031
-29.530000 -0.950756
-29.560000 -0.959625
-29.590000 -0.967630
-29.620000 -0.974765
-29.650000 -0.981022
-29.680000 -0.986397
-29.710000 -0.990884
-29.740000 -0.994479
-29.770000 -0.997179
-29.800000 -0.998982
-29.830000 -0.999886
-29.860000 -0.999889
-29.890000 -0.998994
-29.920000 -0.997199
-29.950000 -0.994506
-29.980000 -0.990919
-30.010000 -0.986440
-30.040000 -0.981073
-30.070000 -0.974823
-30.100000 -0.967696
-30.130000 -0.959698
-30.160000 -0.950837
-30.190000 -0.941119
-30.220000 -0.930555
-30.250000 -0.919154
-30.280000 -0.906925
-30.310000 -0.893880
-30.340000 -0.880031
-30.370000 -0.865389
-30.400000 -0.849969
-30.430000 -0.833784
-30.460000 -0.816849
-30.490000 -0.799178
-30.520000 -0.780788
-30.550000 -0.761696
-30.580000 -0.741918
-30.610000 -0.721473
-30.640000 -0.700378
-30.670000 -0.678653
-30.700000 -0.656317
-30.730000 -0.633390
-30.760000 -0.609894
-30.790000 -0.585848
-30.820000 -0.561276
-30.850000 -0.536198
-30.880000 -0.510638
-30.910000 -0.484618
-30.940000 -0.458162
-30.970000 -0.431294
-31.000000 -0.404038
-31.030000 -0.376418
-31.060000 -0.348459
-31.090000 -0.320187
-31.120000 -0.291626
-31.150000 -0.262803
-31.180000 -0.233744
-31.210000 -0.204474
-31.240000 -0.175020
-31.270000 -0.145409
-31.300000 -0.115667
-31.330000 -0.085821
-31.360000 -0.055897
-31.390000 -0.025924
-31.420000 0.004073
-31.450000 0.034067
-31.480000 0.064030
-31.510000 0.093935
-31.540000 0.123755
-31.570000 0.153465
-31.600000 0.183036
-31.630000 0.212442
-31.660000 0.241657
-31.690000 0.270655
-31.720000 0.299409
-31.750000 0.327894
-31.780000 0.356084
-31.810000 0.383953
-31.840000 0.411476
-31.870000 0.438630
-31.900000 0.465388
-31.930000 0.491728
-31.960000 0.517626
-31.990000 0.543057
-32.020000 0.568000
-32.050000 0.592431
-32.080000 0.616330
-32.110000 0.639674
-32.140000 0.662442
-32.170000 0.684614
-32.200000 0.706169
-32.230000 0.727090
-32.260000 0.747356
-32.290000 0.766949
-32.320000 0.785853
-32.350000 0.804049
-32.380000 0.821521
-32.410000 0.838254
-32.440000 0.854233
-32.470000 0.869443
-32.500000 0.883870
-32.530000 0.897503
-32.560000 0.910327
-32.590000 0.922332
-32.620000 0.933507
-32.650000 0.943842
-32.680000 0.953328
-32.710000 0.961956
-32.740000 0.969718
-32.770000 0.976607
-32.800000 0.982618
-32.830000 0.987744
-32.860000 0.991981
-32.890000 0.995326
-32.920000 0.997775
-32.950000 0.999326
-32.980000 0.999977
-33.010000 0.999729
-33.040000 0.998581
-33.070000 0.996534
-33.100000 0.993591
-33.130000 0.989753
-33.160000 0.985025
-33.190000 0.979410
-33.220000 0.972914
-33.250000 0.965542
-33.280000 0.957302
-33.310000 0.948199
-33.340000 0.938244
-33.370000 0.927444
-33.400000 0.915810
-33.430000 0.903351
-33.460000 0.890079
-33.490000 0.876007
-33.520000 0.861146
-33.550000 0.845510
-33.580000 0.829113
-33.610000 0.811970
-33.640000 0.794096
-33.670000 0.775508
-33.700000 0.756222
-33.730000 0.736255
-33.760000 0.715625
-33.790000 0.694352
-33.820000 0.672454
-33.850000 0.649950
-33.880000 0.626862
-33.910000 0.603210
-33.940000 0.579014
-33.970000 0.554298
-34.000000 0.529083
-34.030000 0.503391
-34.060000 0.477247
-34.090000 0.450673
-34.120000 0.423694
-34.150000 0.396333
-34.180000 0.368615
-34.210000 0.340566
-34.240000 0.312211
-34.270000 0.283574
-34.300000 0.254682
-34.330000 0.225561
-34.360000 0.196237
-34.390000 0.166737
-34.420000 0.137086
-34.450000 0.107312
-34.480000 0.077442
-34.510000 0.047501
-34.540000 0.017518
-34.570000 -0.012480
-34.600000 -0.042468
-34.630000 -0.072417
-34.660000 -0.102302
-34.690000 -0.132094
-34.720000 -0.161767
-34.750000 -0.191294
-34.780000 -0.220650
-34.810000 -0.249807
-34.840000 -0.278739
-34.870000 -0.307420
-34.900000 -0.335825
-34.930000 -0.363927
-34.960000 -0.391702
-34.990000 -0.419124
-35.020000 -0.446170
-35.050000 -0.472813
-35.080000 -0.499032
-35.110000 -0.524801
-35.140000 -0.550097
-35.170000 -0.574899
-35.200000 -0.599183
-35.230000 -0.622929
-35.260000 -0.646113
-35.290000 -0.668716
-35.320000 -0.690718
-35.350000 -0.712097
-35.380000 -0.732836
-35.410000 -0.752915
-35.440000 -0.772317
-35.470000 -0.791024
-35.500000 -0.809019
-35.530000 -0.826286
-35.560000 -0.842809
-35.590000 -0.858574
-35.620000 -0.873566
-35.650000 -0.887772
-35.680000 -0.901179
-35.710000 -0.913775
-35.740000 -0.925548
-35.770000 -0.936489
-35.800000 -0.946587
-35.830000 -0.955833
-35.860000 -0.964219
-35.890000 -0.971737
-35.920000 -0.978381
-35.950000 -0.984144
-35.980000 -0.989021
-36.010000 -0.993009
-36.040000 -0.996103
-36.070000 -0.998300
-36.100000 -0.999599
-36.130000 -0.999999
-36.160000 -0.999498
-36.190000 -0.998098
-36.220000 -0.995800
-36.250000 -0.992606
-36.280000 -0.988518
-36.310000 -0.983541
-36.340000 -0.977678
-36.370000 -0.970936
-36.400000 -0.963320
-36.430000 -0.954837
-36.460000 -0.945495
-36.490000 -0.935302
-36.520000 -0.924267
-36.550000 -0.912401
-36.580000 -0.899713
-36.610000 -0.886216
-36.640000 -0.871921
-36.670000 -0.856841
-36.700000 -0.840991
-36.730000 -0.824383
-36.760000 -0.807034
-36.790000 -0.788958
-36.820000 -0.770173
-36.850000 -0.750694
-36.880000 -0.730540
-36.910000 -0.709728
-36.940000 -0.688277
-36.970000 -0.666208
-37.000000 -0.643538
-37.030000 -0.620290
-37.060000 -0.596483
-37.090000 -0.572139
-37.120000 -0.547281
-37.150000 -0.521930
-37.180000 -0.496109
-37.210000 -0.469842
-37.240000 -0.443152
-37.270000 -0.416063
-37.300000 -0.388600
-37.330000 -0.360787
-37.360000 -0.332650
-37.390000 -0.304213
-37.420000 -0.275502
-37.450000 -0.246543
-37.480000 -0.217363
-37.510000 -0.187987
-37.540000 -0.158441
-37.570000 -0.128753
-37.600000 -0.098950
-37.630000 -0.069057
-37.660000 -0.039102
-37.690000 -0.009112
-37.720000 0.020887
-37.750000 0.050866
-37.780000 0.080800
-37.810000 0.110661
-37.840000 0.140423
-37.870000 0.170058
-37.900000 0.199540
-37.930000 0.228842
-37.960000 0.257939
-37.990000 0.286803
-38.020000 0.315410
-38.050000 0.343732
-38.080000 0.371745
-38.110000 0.399424
-38.140000 0.426743
-38.170000 0.453678
-38.200000 0.480205
-38.230000 0.506299
-38.260000 0.531938
-38.290000 0.557099
-38.320000 0.581758
-38.350000 0.605893
-38.380000 0.629483
-38.410000 0.652507
-38.440000 0.674944
-38.470000 0.696773
-38.500000 0.717975
-38.530000 0.738530
-38.560000 0.758422
-38.590000 0.777630
-38.620000 0.796139
-38.650000 0.813932
-38.680000 0.830992
-38.710000 0.847304
-38.740000 0.862853
-38.770000 0.877627
-38.800000 0.891610
-38.830000 0.904791
-38.860000 0.917157
-38.890000 0.928699
-38.920000 0.939404
-38.950000 0.949264
-38.980000 0.958270
-39.010000 0.966414
-39.040000 0.973687
-39.070000 0.980085
-39.100000 0.985600
-39.130000 0.990229
-39.160000 0.993966
-39.190000 0.996809
-39.220000 0.998755
-39.250000 0.999802
-39.280000 0.999949
-39.310000 0.999196
-39.340000 0.997545
-39.370000 0.994995
-39.400000 0.991550
-39.430000 0.987213
-39.460000 0.981987
-39.490000 0.975877
-39.520000 0.968890
-39.550000 0.961030
-39.580000 0.952306
-39.610000 0.942724
-39.640000 0.932294
-39.670000 0.921025
-39.700000 0.908927
-39.730000 0.896012
-39.760000 0.882290
-39.790000 0.867774
-39.820000 0.852477
-39.850000 0.836412
-39.880000 0.819595
-39.910000 0.802041
-39.940000 0.783765
-39.970000 0.764783
-40.000000 0.745113
-40.030000 0.724773
-40.060000 0.703780
-40.090000 0.682154
-40.120000 0.659914
-40.150000 0.637080
-40.180000 0.613673
-40.210000 0.589714
-40.240000 0.565224
-40.270000 0.540225
-40.300000 0.514740
-40.330000 0.488792
-40.360000 0.462404
-40.390000 0.435600
-40.420000 0.408404
-40.450000 0.380840
-40.480000 0.352933
-40.510000 0.324709
-40.540000 0.296193
-40.570000 0.267410
-40.600000 0.238387
-40.630000 0.209149
-40.660000 0.179723
-40.690000 0.150135
-40.720000 0.120412
-40.750000 0.090580
-40.780000 0.060667
-40.810000 0.030700
-40.840000 0.000704
-40.870000 -0.029291
-40.900000 -0.059261
-40.930000 -0.089177
-40.960000 -0.119013
-40.990000 -0.148742
-41.020000 -0.178336
-41.050000 -0.207771
-41.080000 -0.237018
-41.110000 -0.266052
-41.140000 -0.294847
-41.170000 -0.323376
-41.200000 -0.351615
-41.230000 -0.379537
-41.260000 -0.407117
-41.290000 -0.434331
-41.320000 -0.461154
-41.350000 -0.487562
-41.380000 -0.513532
-41.410000 -0.539039
-41.440000 -0.564061
-41.470000 -0.588575
-41.500000 -0.612560
-41.530000 -0.635994
-41.560000 -0.658855
-41.590000 -0.681123
-41.620000 -0.702778
-41.650000 -0.723801
-41.680000 -0.744173
-41.710000 -0.763874
-41.740000 -0.782889
-41.770000 -0.801199
-41.800000 -0.818787
-41.830000 -0.835639
-41.860000 -0.851739
-41.890000 -0.867072
-41.920000 -0.881626
-41.950000 -0.895385
-41.980000 -0.908339
-42.010000 -0.920476
-42.040000 -0.931784
-42.070000 -0.942253
-42.100000 -0.951875
-42.130000 -0.960640
-42.160000 -0.968540
-42.190000 -0.975569
-42.220000 -0.981720
-42.250000 -0.986987
-42.280000 -0.991366
-42.310000 -0.994853
-42.340000 -0.997445
-42.370000 -0.999139
-42.400000 -0.999934
-42.430000 -0.999829
-42.460000 -0.998824
-42.490000 -0.996921
-42.520000 -0.994120
-42.550000 -0.990424
-42.580000 -0.985838
-42.610000 -0.980364
-42.640000 -0.974007
-42.670000 -0.966775
-42.700000 -0.958672
-42.730000 -0.949706
-42.760000 -0.939886
-42.790000 -0.929220
-42.820000 -0.917718
-42.850000 -0.905390
-42.880000 -0.892247
-42.910000 -0.878301
-42.940000 -0.863565
-42.970000 -0.848051
-43.000000 -0.831775
-43.030000 -0.814750
-43.060000 -0.796991
-43.090000 -0.778516
-43.120000 -0.759339
-43.150000 -0.739480
-43.180000 -0.718955
-43.210000 -0.697783
-43.240000 -0.675983
-43.270000 -0.653574
-43.300000 -0.630578
-43.330000 -0.607014
-43.360000 -0.582903
-43.390000 -0.558268
-43.420000 -0.533131
-43.450000 -0.507514
-43.480000 -0.481440
-43.510000 -0.454933
-43.540000 -0.428017
-43.570000 -0.400715
-43.600000 -0.373053
-43.630000 -0.345055
-43.660000 -0.316746
-43.690000 -0.288153
-43.720000 -0.259300
-43.750000 -0.230214
-43.780000 -0.200920
-43.810000 -0.171446
-43.840000 -0.141817
-43.870000 -0.112061
-43.900000 -0.082204
-43.930000 -0.052273
-43.960000 -0.022295
-43.990000 0.007703
-44.020000 0.037694
-44.050000 0.067651
-44.080000 0.097547
-44.110000 0.127356
-44.140000 0.157050
-44.170000 0.186603
-44.200000 0.215987
-44.230000 0.245178
-44.260000 0.274147
-44.290000 0.302870
-44.320000 0.331321
-44.350000 0.359473
-44.380000 0.387302
-44.410000 0.414782
-44.440000 0.441889
-44.470000 0.468598
-44.500000 0.494885
-44.530000 0.520727
-44.560000 0.546101
-44.590000 0.570983
-44.620000 0.595351
-44.650000 0.619184
-44.680000 0.642459
-44.710000 0.665156
-44.740000 0.687255
-44.770000 0.708735
-44.800000 0.729577
-44.830000 0.749762
-44.860000 0.769273
-44.890000 0.788092
-44.920000 0.806201
-44.950000 0.823585
-44.980000 0.840228
-45.010000 0.856114
-45.040000 0.871230
-45.070000 0.885562
-45.100000 0.899097
-45.130000 0.911823
-45.160000 0.923729
-45.190000 0.934803
-45.220000 0.945035
-45.250000 0.954418
-45.280000 0.962941
-45.310000 0.970598
-45.340000 0.977381
-45.370000 0.983285
-45.400000 0.988304
-45.430000 0.992434
-45.460000 0.995670
-45.490000 0.998010
-45.520000 0.999452
-45.550000 0.999995
-45.580000 0.999638
-45.610000 0.998381
-45.640000 0.996226
-45.670000 0.993174
-45.700000 0.989229
-45.730000 0.984393
-45.760000 0.978671
-45.790000 0.972069
-45.820000 0.964591
-45.850000 0.956246
-45.880000 0.947040
-45.910000 0.936982
-45.940000 0.926081
-45.970000 0.914346
-46.000000 0.901788
-46.030000 0.888419
-46.060000 0.874250
-46.090000 0.859295
-46.120000 0.843566
-46.150000 0.827078
-46.180000 0.809846
-46.210000 0.791885
-46.240000 0.773211
-46.270000 0.753842
-46.300000 0.733794
-46.330000 0.713086
-46.360000 0.691736
-46.390000 0.669763
-46.420000 0.647188
-46.450000 0.624030
-46.480000 0.600311
-46.510000 0.576051
-46.540000 0.551273
-46.570000 0.525999
-46.600000 0.500252
-46.630000 0.474054
-46.660000 0.447430
-46.690000 0.420403
-46.720000 0.392998
-46.750000 0.365239
-46.780000 0.337152
-46.810000 0.308761
-46.840000 0.280092
-46.870000 0.251171
-46.900000 0.222024
-46.930000 0.192677
-46.960000 0.163157
-46.990000 0.133490
-47.020000 0.103703
-47.050000 0.073823
-47.080000 0.043876
-47.110000 0.013889
-47.140000 -0.016109
-47.170000 -0.046094
-47.200000 -0.076037
-47.230000 -0.105911
-47.260000 -0.135690
-47.290000 -0.165347
-47.320000 -0.194856
-47.350000 -0.224188
-47.380000 -0.253320
-47.410000 -0.282223
-47.440000 -0.310872
-47.470000 -0.339241
-47.500000 -0.367305
-47.530000 -0.395039
-47.560000 -0.422417
-47.590000 -0.449415
-47.620000 -0.476008
-47.650000 -0.502173
-47.680000 -0.527887
-47.710000 -0.553125
-47.740000 -0.577865
-47.770000 -0.602085
-47.800000 -0.625764
-47.830000 -0.648879
-47.860000 -0.671410
-47.890000 -0.693337
-47.920000 -0.714641
-47.950000 -0.735301
-47.980000 -0.755299
-48.010000 -0.774618
-48.040000 -0.793239
-48.070000 -0.811147
-48.100000 -0.828324
-48.130000 -0.844757
-48.160000 -0.860429
-48.190000 -0.875326
-48.220000 -0.889436
-48.250000 -0.902746
-48.280000 -0.915243
-48.310000 -0.926916
-48.340000 -0.937756
-48.370000 -0.947751
-48.400000 -0.956893
-48.430000 -0.965175
-48.460000 -0.972587
-48.490000 -0.979125
-48.520000 -0.984781
-48.550000 -0.989551
-48.580000 -0.993431
-48.610000 -0.996416
-48.640000 -0.998505
-48.670000 -0.999695
-48.700000 -0.999986
-48.730000 -0.999377
-48.760000 -0.997868
-48.790000 -0.995461
-48.820000 -0.992158
-48.850000 -0.987963
-48.880000 -0.982878
-48.910000 -0.976909
-48.940000 -0.970061
-48.970000 -0.962340
-49.000000 -0.953753
-49.030000 -0.944307
-49.060000 -0.934012
-49.090000 -0.922876
-49.120000 -0.910909
-49.150000 -0.898123
-49.180000 -0.884529
-49.210000 -0.870138
-49.240000 -0.854965
-49.270000 -0.839022
-49.300000 -0.822324
-49.330000 -0.804885
-49.360000 -0.786723
-49.390000 -0.767853
-49.420000 -0.748291
-49.450000 -0.728056
-49.480000 -0.707166
-49.510000 -0.685640
-49.540000 -0.663496
-49.570000 -0.640756
-49.600000 -0.617439
-49.630000 -0.593566
-49.660000 -0.569159
-49.690000 -0.544240
-49.720000 -0.518831
-49.750000 -0.492955
-49.780000 -0.466635
-49.810000 -0.439896
-49.840000 -0.412760
-49.870000 -0.385253
-49.900000 -0.357400
-49.930000 -0.329225
-49.960000 -0.300753
-49.990000 -0.272011
-50.020000 -0.243024
-50.050000 -0.213819
-50.080000 -0.184421
-50.110000 -0.154857
-50.140000 -0.125153
-50.170000 -0.095337
-50.200000 -0.065436
-50.230000 -0.035475
-50.260000 -0.005482
-50.290000 0.024515
-50.320000 0.054491
-50.350000 0.084417
-50.380000 0.114267
-50.410000 0.144015
-50.440000 0.173633
-50.470000 0.203095
-50.500000 0.232374
-50.530000 0.261444
-50.560000 0.290278
-50.590000 0.318852
-50.620000 0.347138
-50.650000 0.375112
-50.680000 0.402748
-50.710000 0.430022
-50.740000 0.456909
-50.770000 0.483385
-50.800000 0.509426
-50.830000 0.535008
-50.860000 0.560109
-50.890000 0.584706
-50.920000 0.608777
-50.950000 0.632299
-50.980000 0.655253
-51.010000 0.677617
-51.040000 0.699371
-51.070000 0.720496
-51.100000 0.740973
-51.130000 0.760782
-51.160000 0.779907
-51.190000 0.798330
-51.220000 0.816035
-51.250000 0.833005
-51.280000 0.849226
-51.310000 0.864682
-51.340000 0.879361
-51.370000 0.893247
-51.400000 0.906330
-51.430000 0.918598
-51.460000 0.930038
-51.490000 0.940642
-51.520000 0.950399
-51.550000 0.959301
-51.580000 0.967340
-51.610000 0.974508
-51.640000 0.980799
-51.670000 0.986208
-51.700000 0.990728
-51.730000 0.994358
-51.760000 0.997092
-51.790000 0.998929
-51.820000 0.999868
-51.850000 0.999906
-51.880000 0.999044
-51.910000 0.997284
-51.940000 0.994626
-51.970000 0.991073
-52.000000 0.986628
-52.030000 0.981295
-52.060000 0.975079
-52.090000 0.967985
-52.120000 0.960020
-52.150000 0.951192
-52.180000 0.941507
-52.210000 0.930975
-52.240000 0.919606
-52.270000 0.907408
-52.300000 0.894394
-52.330000 0.880575
-52.360000 0.865964
-52.390000 0.850574
-52.420000 0.834418
-52.450000 0.817511
-52.480000 0.799868
-52.510000 0.781505
-52.540000 0.762440
-52.570000 0.742688
-52.600000 0.722267
-52.630000 0.701197
-52.660000 0.679496
-52.690000 0.657183
-52.720000 0.634279
-52.750000 0.610804
-52.780000 0.586779
-52.810000 0.562226
-52.840000 0.537167
-52.870000 0.511625
-52.900000 0.485622
-52.930000 0.459183
-52.960000 0.432330
-52.990000 0.405088
-53.020000 0.377482
-53.050000 0.349535
-53.080000 0.321275
-53.110000 0.292725
-53.140000 0.263911
-53.170000 0.234861
-53.200000 0.205598
-53.230000 0.176151
-53.260000 0.146545
-53.290000 0.116808
-53.320000 0.086965
-53.350000 0.057044
-53.380000 0.027072
-53.410000 -0.002925
-53.440000 -0.032919
-53.470000 -0.062883
-53.500000 -0.092791
-53.530000 -0.122616
-53.560000 -0.152330
-53.590000 -0.181906
-53.620000 -0.211320
-53.650000 -0.240543
-53.680000 -0.269549
-53.710000 -0.298313
-53.740000 -0.326809
-53.770000 -0.355010
-53.800000 -0.382892
-53.830000 -0.410429
-53.860000 -0.437597
-53.890000 -0.464372
-53.920000 -0.490728
-53.950000 -0.516642
-53.980000 -0.542092
-54.010000 -0.567054
-54.040000 -0.591506
-54.070000 -0.615425
-54.100000 -0.638790
-54.130000 -0.661581
-54.160000 -0.683776
-54.190000 -0.705356
-54.220000 -0.726301
-54.250000 -0.746592
-54.280000 -0.766212
-54.310000 -0.785142
-54.340000 -0.803365
-54.370000 -0.820866
-54.400000 -0.837627
-54.430000 -0.853635
-54.460000 -0.868875
-54.490000 -0.883333
-54.520000 -0.896995
-54.550000 -0.909851
-54.580000 -0.921888
-54.610000 -0.933095
-54.640000 -0.943462
-54.670000 -0.952981
-54.700000 -0.961642
-54.730000 -0.969437
-54.760000 -0.976360
-54.790000 -0.982404
-54.820000 -0.987564
-54.850000 -0.991836
-54.880000 -0.995214
-54.910000 -0.997698
-54.940000 -0.999283
-54.970000 -0.999969
-55.000000 -0.999755
-55.030000 -0.998642
-55.060000 -0.996629
-55.090000 -0.993720
-55.120000 -0.989917
-55.150000 -0.985222
-55.180000 -0.979641
-55.210000 -0.973179
-55.240000 -0.965841
-55.270000 -0.957633
-55.300000 -0.948564
-55.330000 -0.938641
-55.360000 -0.927873
-55.390000 -0.916270
-55.420000 -0.903843
-55.450000 -0.890602
-55.480000 -0.876560
-55.510000 -0.861729
-55.540000 -0.846123
-55.570000 -0.829755
-55.600000 -0.812640
-55.630000 -0.794794
-55.660000 -0.776233
-55.690000 -0.756973
-55.720000 -0.737032
-55.750000 -0.716427
-55.780000 -0.695178
-55.810000 -0.673303
-55.840000 -0.650823
-55.870000 -0.627757
-55.900000 -0.604125
-55.930000 -0.579950
-55.960000 -0.555254
-55.990000 -0.530057
-56.020000 -0.504383
-56.050000 -0.478256
-56.080000 -0.451698
-56.110000 -0.424734
-56.140000 -0.397387
-56.170000 -0.369683
-56.200000 -0.341646
-56.230000 -0.313302
-56.260000 -0.284675
-56.290000 -0.255793
-56.320000 -0.226680
-56.350000 -0.197363
-56.380000 -0.167869
-56.410000 -0.138224
-56.440000 -0.108454
-56.470000 -0.078587
-56.500000 -0.048649
-56.530000 -0.018667
-56.560000 0.011332
-56.590000 0.041320
-56.620000 0.071272
-56.650000 0.101159
-56.680000 0.130955
-56.710000 0.160633
-56.740000 0.190167
-56.770000 0.219530
-56.800000 0.248695
-56.830000 0.277636
-56.860000 0.306327
-56.890000 0.334743
-56.920000 0.362857
-56.950000 0.390645
-56.980000 0.418081
-57.010000 0.445141
-57.040000 0.471801
-57.070000 0.498036
-57.100000 0.523823
-57.130000 0.549138
-57.160000 0.573959
-57.190000 0.598263
-57.220000 0.622030
-57.250000 0.645236
-57.280000 0.667862
-57.310000 0.689886
-57.340000 0.711290
-57.370000 0.732054
-57.400000 0.752159
-57.430000 0.771587
-57.460000 0.790321
-57.490000 0.808343
-57.520000 0.825638
-57.550000 0.842190
-57.580000 0.857984
-57.610000 0.873006
-57.640000 0.887242
-57.670000 0.900680
-57.700000 0.913307
-57.730000 0.925113
-57.760000 0.936085
-57.790000 0.946216
-57.820000 0.955495
-57.850000 0.963914
-57.880000 0.971465
-57.910000 0.978142
-57.940000 0.983939
-57.970000 0.988851
-58.000000 0.992873
-58.030000 0.996001
-58.060000 0.998233
-58.090000 0.999566
-58.120000 1.000000
-58.150000 0.999534
-58.180000 0.998168
-58.210000 0.995904
-58.240000 0.992744
-58.270000 0.988691
-58.300000 0.983748
-58.330000 0.977919
-58.360000 0.971210
-58.390000 0.963628
-58.420000 0.955178
-58.450000 0.945869
-58.480000 0.935708
-58.510000 0.924705
-58.540000 0.912870
-58.570000 0.900214
-58.600000 0.886747
-58.630000 0.872483
-58.660000 0.857433
-58.690000 0.841612
-58.720000 0.825033
-58.750000 0.807712
-58.780000 0.789664
-58.810000 0.770905
-58.840000 0.751452
-58.870000 0.731323
-58.900000 0.710537
-58.930000 0.689110
-58.960000 0.667064
-58.990000 0.644417
-59.020000 0.621190
-59.050000 0.597404
-59.080000 0.573081
-59.110000 0.548242
-59.140000 0.522909
-59.170000 0.497106
-59.200000 0.470856
-59.230000 0.444181
-59.260000 0.417107
-59.290000 0.389658
-59.320000 0.361858
-59.350000 0.333733
-59.380000 0.305307
-59.410000 0.276606
-59.440000 0.247656
-59.470000 0.218484
-59.500000 0.189115
-59.530000 0.159575
-59.560000 0.129892
-59.590000 0.100093
-59.620000 0.070203
-59.650000 0.040250
-59.680000 0.010260
-59.710000 -0.019738
-59.740000 -0.049719
-59.770000 -0.079655
-59.800000 -0.109519
-59.830000 -0.139285
-59.860000 -0.168926
-59.890000 -0.198414
-59.920000 -0.227724
-59.950000 -0.256829
-59.980000 -0.285703
-60.010000 -0.314319
-60.040000 -0.342653
-60.070000 -0.370679
-60.100000 -0.398370
-60.130000 -0.425704
-60.160000 -0.452654
-60.190000 -0.479197
-60.220000 -0.505309
-60.250000 -0.530966
-60.280000 -0.556145
-60.310000 -0.580823
-60.340000 -0.604979
-60.370000 -0.628591
-60.400000 -0.651636
-60.430000 -0.674096
-60.460000 -0.695948
-60.490000 -0.717175
-60.520000 -0.737756
-60.550000 -0.757673
-60.580000 -0.776908
-60.610000 -0.795444
-60.640000 -0.813264
-60.670000 -0.830352
-60.700000 -0.846693
-60.730000 -0.862272
-60.760000 -0.877075
-60.790000 -0.891089
-60.820000 -0.904301
-60.850000 -0.916699
-60.880000 -0.928272
-60.910000 -0.939010
-60.940000 -0.948902
-60.970000 -0.957941
-61.000000 -0.966118
-61.030000 -0.973425
-61.060000 -0.979856
-61.090000 -0.985405
-61.120000 -0.990068
-61.150000 -0.993840
-61.180000 -0.996717
-61.210000 -0.998697
-61.240000 -0.999778
-61.270000 -0.999960
-61.300000 -0.999242
-61.330000 -0.997624
-61.360000 -0.995109
-61.390000 -0.991698
-61.420000 -0.987395
-61.450000 -0.982203
-61.480000 -0.976128
-61.510000 -0.969173
-61.540000 -0.961347
-61.570000 -0.952655
-61.600000 -0.943107
-61.630000 -0.932709
-61.660000 -0.921472
-61.690000 -0.909406
-61.720000 -0.896521
-61.750000 -0.882830
-61.780000 -0.868344
-61.810000 -0.853076
-61.840000 -0.837041
-61.870000 -0.820253
-61.900000 -0.802726
-61.930000 -0.784477
-61.960000 -0.765523
-61.990000 -0.745879
-62.020000 -0.725564
-62.050000 -0.704596
-62.080000 -0.682993
-62.110000 -0.660777
-62.140000 -0.637965
-62.170000 -0.614580
-62.200000 -0.590641
-62.230000 -0.566171
-62.260000 -0.541191
-62.290000 -0.515725
-62.320000 -0.489794
-62.350000 -0.463422
-62.380000 -0.436633
-62.410000 -0.409452
-62.440000 -0.381902
-62.470000 -0.354008
-62.500000 -0.325796
-62.530000 -0.297290
-62.560000 -0.268517
-62.590000 -0.239502
-62.620000 -0.210272
-62.650000 -0.180852
-62.680000 -0.151270
-62.710000 -0.121552
-62.740000 -0.091724
-62.770000 -0.061814
-62.800000 -0.031848
-62.830000 -0.001853
-62.860000 0.028143
-62.890000 0.058114
-62.920000 0.088033
-62.950000 0.117872
-62.980000 0.147606
-63.010000 0.177206
-63.040000 0.206647
-63.070000 0.235902
-63.100000 0.264945
-63.130000 0.293749
-63.160000 0.322289
-63.190000 0.350539
-63.220000 0.378474
-63.250000 0.406068
-63.280000 0.433296
-63.310000 0.460135
-63.340000 0.486559
-63.370000 0.512546
-63.400000 0.538071
-63.430000 0.563112
-63.460000 0.587646
-63.490000 0.611652
-63.520000 0.635107
-63.550000 0.657990
-63.580000 0.680282
-63.610000 0.701961
-63.640000 0.723008
-63.670000 0.743405
-63.700000 0.763133
-63.730000 0.782174
-63.760000 0.800511
-63.790000 0.818127
-63.820000 0.835008
-63.850000 0.851137
-63.880000 0.866500
-63.910000 0.881083
-63.940000 0.894873
-63.970000 0.907858
-64.000000 0.920026
-64.030000 0.931366
-64.060000 0.941868
-64.090000 0.951522
-64.120000 0.960320
-64.150000 0.968254
-64.180000 0.975316
-64.210000 0.981500
-64.240000 0.986802
-64.270000 0.991215
-64.300000 0.994736
-64.330000 0.997362
-64.360000 0.999091
-64.390000 0.999920
-64.420000 0.999849
-64.450000 0.998879
-64.480000 0.997010
-64.510000 0.994243
-64.540000 0.990582
-64.570000 0.986030
-64.600000 0.980589
-64.630000 0.974267
-64.660000 0.967068
-64.690000 0.958998
-64.720000 0.950065
-64.750000 0.940278
-64.780000 0.929644
-64.810000 0.918174
-64.840000 0.905877
-64.870000 0.892765
-64.900000 0.878850
-64.930000 0.864143
-64.960000 0.848659
-64.990000 0.832412
-65.020000 0.815415
-65.050000 0.797684
-65.080000 0.779236
-65.110000 0.760086
-65.140000 0.740252
-65.170000 0.719752
-65.200000 0.698605
-65.230000 0.676828
-65.260000 0.654443
-65.290000 0.631469
-65.320000 0.607926
-65.350000 0.583836
-65.380000 0.559221
-65.410000 0.534102
-65.440000 0.508503
-65.470000 0.482447
-65.500000 0.455956
-65.530000 0.429054
-65.560000 0.401767
-65.590000 0.374118
-65.620000 0.346133
-65.650000 0.317835
-65.680000 0.289252
-65.710000 0.260409
-65.740000 0.231331
-65.770000 0.202045
-65.800000 0.172577
-65.830000 0.142954
-65.860000 0.113203
-65.890000 0.083349
-65.920000 0.053420
-65.950000 0.023444
-65.980000 -0.006554
-66.010000 -0.036546
-66.040000 -0.066505
-66.070000 -0.096404
-66.100000 -0.126217
-66.130000 -0.155916
-66.160000 -0.185474
-66.190000 -0.214866
-66.220000 -0.244064
-66.250000 -0.273042
-66.280000 -0.301775
-66.310000 -0.330237
-66.340000 -0.358401
-66.370000 -0.386242
-66.400000 -0.413736
-66.430000 -0.440858
-66.460000 -0.467583
-66.490000 -0.493887
-66.520000 -0.519747
-66.550000 -0.545138
-66.580000 -0.570040
-66.610000 -0.594428
-66.640000 -0.618281
-66.670000 -0.641578
-66.700000 -0.664298
-66.730000 -0.686420
-66.760000 -0.707924
-66.790000 -0.728791
-66.820000 -0.749002
-66.850000 -0.768539
-66.880000 -0.787384
-66.910000 -0.805521
-66.940000 -0.822933
-66.970000 -0.839604
-67.000000 -0.855520
-67.030000 -0.870666
-67.060000 -0.885028
-67.090000 -0.898594
-67.120000 -0.911351
-67.150000 -0.923288
-67.180000 -0.934394
-67.210000 -0.944659
-67.240000 -0.954074
-67.270000 -0.962631
-67.300000 -0.970321
-67.330000 -0.977138
-67.360000 -0.983075
-67.390000 -0.988128
-67.420000 -0.992292
-67.450000 -0.995563
-67.480000 -0.997937
-67.510000 -0.999414
-67.540000 -0.999991
-67.570000 -0.999668
-67.600000 -0.998446
-67.630000 -0.996325
-67.660000 -0.993308
-67.690000 -0.989396
-67.720000 -0.984594
-67.750000 -0.978906
-67.780000 -0.972338
-67.810000 -0.964894
-67.840000 -0.956582
-67.870000 -0.947408
-67.900000 -0.937383
-67.930000 -0.926514
-67.960000 -0.914810
-67.990000 -0.902284
-68.020000 -0.888946
-68.050000 -0.874808
-68.080000 -0.859882
-68.110000 -0.844183
-68.140000 -0.827723
-68.170000 -0.810519
-68.200000 -0.792586
-68.230000 -0.773939
-68.260000 -0.754596
-68.290000 -0.734574
-68.320000 -0.713890
-68.350000 -0.692565
-68.380000 -0.670616
-68.410000 -0.648063
-68.440000 -0.624927
-68.470000 -0.601229
-68.500000 -0.576990
-68.530000 -0.552231
-68.560000 -0.526976
-68.590000 -0.501246
-68.620000 -0.475065
-68.650000 -0.448457
-68.680000 -0.421445
-68.710000 -0.394054
-68.740000 -0.366308
-68.770000 -0.338233
-68.800000 -0.309853
-68.830000 -0.281194
-68.860000 -0.252283
-68.890000 -0.223144
-68.920000 -0.193804
-68.950000 -0.164290
-68.980000 -0.134628
-69.010000 -0.104845
-69.040000 -0.074968
-69.070000 -0.045023
-69.100000 -0.015038
-69.130000 0.014961
-69.160000 0.044946
-69.190000 0.074891
-69.220000 0.104769
-69.250000 0.134552
-69.280000 0.164214
-69.310000 0.193729
-69.340000 0.223069
-69.370000 0.252208
-69.400000 0.281121
-69.430000 0.309780
-69.460000 0.338161
-69.490000 0.366237
-69.520000 0.393983
-69.550000 0.421376
-69.580000 0.448388
-69.610000 0.474998
-69.640000 0.501180
-69.670000 0.526911
-69.700000 0.552167
-69.730000 0.576927
-69.760000 0.601168
-69.790000 0.624867
-69.820000 0.648005
-69.850000 0.670559
-69.880000 0.692509
-69.910000 0.713837
-69.940000 0.734522
-69.970000 0.754546
-70.000000 0.773891
-70.030000 0.792539
-70.060000 0.810474
-70.090000 0.827680
-70.120000 0.844141
-70.150000 0.859843
-70.180000 0.874770
-70.210000 0.888911
-70.240000 0.902251
-70.270000 0.914779
-70.300000 0.926485
-70.330000 0.937356
-70.360000 0.947384
-70.390000 0.956559
-70.420000 0.964874
-70.450000 0.972320
-70.480000 0.978891
-70.510000 0.984581
-70.540000 0.989385
-70.570000 0.993299
-70.600000 0.996318
-70.630000 0.998442
-70.660000 0.999666
-70.690000 0.999991
-70.720000 0.999416
-70.750000 0.997942
-70.780000 0.995570
-70.810000 0.992301
-70.840000 0.988140
-70.870000 0.983089
-70.900000 0.977154
-70.930000 0.970339
-70.960000 0.962652
-70.990000 0.954097
-71.020000 0.944684
-71.050000 0.934421
-71.080000 0.923317
-71.110000 0.911383
-71.140000 0.898628
-71.170000 0.885064
-71.200000 0.870704
-71.230000 0.855560
-71.260000 0.839646
-71.290000 0.822977
-71.320000 0.805567
-71.350000 0.787432
-71.380000 0.768588
-71.410000 0.749053
-71.440000 0.728843
-71.470000 0.707978
-71.500000 0.686476
-71.530000 0.664355
-71.560000 0.641637
-71.590000 0.618342
-71.620000 0.594490
-71.650000 0.570103
-71.680000 0.545203
-71.710000 0.519812
-71.740000 0.493954
-71.770000 0.467651
-71.800000 0.440927
-71.830000 0.413806
-71.860000 0.386313
-71.890000 0.358472
-71.920000 0.330309
-71.950000 0.301849
-71.980000 0.273116
-72.010000 0.244138
-72.040000 0.214941
-72.070000 0.185549
-72.100000 0.155991
-72.130000 0.126293
-72.160000 0.096481
-72.190000 0.066582
-72.220000 0.036623
-72.250000 0.006631
-72.280000 -0.023367
-72.310000 -0.053344
-72.340000 -0.083272
-72.370000 -0.113126
-72.400000 -0.142878
-72.430000 -0.172502
-72.460000 -0.201970
-72.490000 -0.231256
-72.520000 -0.260335
-72.550000 -0.289179
-72.580000 -0.317763
-72.610000 -0.346061
-72.640000 -0.374047
-72.670000 -0.401697
-72.700000 -0.428985
-72.730000 -0.455887
-72.760000 -0.482379
-72.790000 -0.508437
-72.820000 -0.534038
-72.850000 -0.559157
-72.880000 -0.583774
-72.910000 -0.607865
-72.940000 -0.631409
-72.970000 -0.654385
-73.000000 -0.676772
-73.030000 -0.698550
-73.060000 -0.719699
-73.090000 -0.740201
-73.120000 -0.760036
-73.150000 -0.779188
-73.180000 -0.797638
-73.210000 -0.815371
-73.240000 -0.832369
-73.270000 -0.848619
-73.300000 -0.864105
-73.330000 -0.878813
-73.360000 -0.892730
-73.390000 -0.905844
-73.420000 -0.918143
-73.450000 -0.929616
-73.480000 -0.940252
-73.510000 -0.950042
-73.540000 -0.958976
-73.570000 -0.967048
-73.600000 -0.974250
-73.630000 -0.980574
-73.660000 -0.986017
-73.690000 -0.990572
-73.720000 -0.994235
-73.750000 -0.997004
-73.780000 -0.998876
-73.810000 -0.999848
-73.840000 -0.999921
-73.870000 -0.999094
-73.900000 -0.997368
-73.930000 -0.994744
-73.960000 -0.991225
-73.990000 -0.986814
-74.020000 -0.981515
-74.050000 -0.975333
-74.080000 -0.968273
-74.110000 -0.960341
-74.140000 -0.951546
-74.170000 -0.941894
-74.200000 -0.931394
-74.230000 -0.920056
-74.260000 -0.907890
-74.290000 -0.894907
-74.320000 -0.881119
-74.350000 -0.866538
-74.380000 -0.851177
-74.410000 -0.835050
-74.440000 -0.818172
-74.470000 -0.800557
-74.500000 -0.782222
-74.530000 -0.763182
-74.560000 -0.743456
-74.590000 -0.723061
-74.620000 -0.702016
-74.650000 -0.680338
-74.680000 -0.658048
-74.710000 -0.635166
-74.740000 -0.611713
-74.770000 -0.587709
-74.800000 -0.563176
-74.830000 -0.538136
-74.860000 -0.512612
-74.890000 -0.486626
-74.920000 -0.460203
-74.950000 -0.433365
-74.980000 -0.406138
-75.010000 -0.378545
-75.040000 -0.350611
-75.070000 -0.322362
-75.100000 -0.293823
-75.130000 -0.265019
-75.160000 -0.235977
-75.190000 -0.206722
-75.220000 -0.177282
-75.250000 -0.147682
-75.280000 -0.117948
-75.310000 -0.088109
-75.340000 -0.058191
-75.370000 -0.028220
-75.400000 0.001776
-75.430000 0.031771
-75.460000 0.061737
-75.490000 0.091648
-75.520000 0.121476
-75.550000 0.151194
-75.580000 0.180777
-75.610000 0.210197
-75.640000 0.239428
-75.670000 0.268443
-75.700000 0.297217
-75.730000 0.325723
-75.760000 0.353936
-75.790000 0.381831
-75.820000 0.409382
-75.850000 0.436564
-75.880000 0.463354
-75.910000 0.489727
-75.940000 0.515659
-75.970000 0.541127
-76.000000 0.566108
-76.030000 0.590579
-76.060000 0.614519
-76.090000 0.637906
-76.120000 0.660719
-76.150000 0.682937
-76.180000 0.704541
-76.210000 0.725511
-76.240000 0.745828
-76.270000 0.765473
-76.300000 0.784430
-76.330000 0.802681
-76.360000 0.820209
-76.390000 0.836999
-76.420000 0.853036
-76.450000 0.868306
-76.480000 0.882794
-76.510000 0.896487
-76.540000 0.909374
-76.570000 0.921442
-76.600000 0.932681
-76.630000 0.943081
-76.660000 0.952632
-76.690000 0.961326
-76.720000 0.969154
-76.750000 0.976111
-76.780000 0.982189
-76.810000 0.987383
-76.840000 0.991688
-76.870000 0.995102
-76.900000 0.997619
-76.930000 0.999239
-76.960000 0.999959
-76.990000 0.999780
-77.020000 0.998701
-77.050000 0.996723
-77.080000 0.993848
-77.110000 0.990079
-77.140000 0.985418
-77.170000 0.979871
-77.200000 0.973443
-77.230000 0.966138
-77.260000 0.957963
-77.290000 0.948927
-77.320000 0.939036
-77.350000 0.928301
-77.380000 0.916730
-77.410000 0.904334
-77.440000 0.891124
-77.470000 0.877112
-77.500000 0.862311
-77.530000 0.846734
-77.560000 0.830395
-77.590000 0.813309
-77.620000 0.795490
-77.650000 0.776956
-77.680000 0.757723
-77.710000 0.737807
-77.740000 0.717228
-77.770000 0.696003
-77.800000 0.674152
-77.830000 0.651694
-77.860000 0.628650
-77.890000 0.605040
-77.920000 0.580886
-77.950000 0.556208
-77.980000 0.531031
-78.010000 0.505375
-78.040000 0.479264
-78.070000 0.452723
-78.100000 0.425773
-78.130000 0.398441
-78.160000 0.370750
-78.190000 0.342725
-78.220000 0.314392
-78.250000 0.285776
-78.280000 0.256903
-78.310000 0.227799
-78.340000 0.198489
-78.370000 0.169001
-78.400000 0.139361
-78.430000 0.109596
-78.460000 0.079732
-78.490000 0.049796
-78.520000 0.019815
-78.550000 -0.010183
-78.580000 -0.040173
-78.610000 -0.070126
-78.640000 -0.100016
-78.670000 -0.129816
-78.700000 -0.159500
-78.730000 -0.189039
-78.760000 -0.218409
-78.790000 -0.247582
-78.820000 -0.276532
-78.850000 -0.305234
-78.880000 -0.333660
-78.910000 -0.361787
-78.940000 -0.389587
-78.970000 -0.417038
-79.000000 -0.444113
-79.030000 -0.470788
-79.060000 -0.497040
-79.090000 -0.522844
-79.120000 -0.548178
-79.150000 -0.573018
-79.180000 -0.597343
-79.210000 -0.621130
-79.240000 -0.644358
-79.270000 -0.667006
-79.300000 -0.689055
-79.330000 -0.710483
-79.360000 -0.731271
-79.390000 -0.751402
-79.420000 -0.770856
-79.450000 -0.789616
-79.480000 -0.807666
-79.510000 -0.824990
-79.540000 -0.841570
-79.570000 -0.857394
-79.600000 -0.872445
-79.630000 -0.886712
-79.660000 -0.900180
-79.690000 -0.912839
-79.720000 -0.924676
-79.750000 -0.935681
-79.780000 -0.945844
-79.810000 -0.955155
-79.840000 -0.963607
-79.870000 -0.971192
-79.900000 -0.977903
-79.930000 -0.983734
-79.960000 -0.988679
-79.990000 -0.992735
-80.020000 -0.995897
-80.050000 -0.998164
-80.080000 -0.999531
-80.110000 -1.000000
-80.140000 -0.999568
-80.170000 -0.998237
-80.200000 -0.996008
-80.230000 -0.992882
-80.260000 -0.988862
-80.290000 -0.983953
-80.320000 -0.978158
-80.350000 -0.971483
-80.380000 -0.963934
-80.410000 -0.955517
-80.440000 -0.946241
-80.470000 -0.936112
-80.500000 -0.925142
-80.530000 -0.913339
-80.560000 -0.900713
-80.590000 -0.887278
-80.620000 -0.873043
-80.650000 -0.858024
-80.680000 -0.842231
-80.710000 -0.825681
-80.740000 -0.808388
-80.770000 -0.790368
-80.800000 -0.771636
-80.830000 -0.752210
-80.860000 -0.732106
-80.890000 -0.711344
-80.920000 -0.689942
-80.950000 -0.667919
-80.980000 -0.645295
-81.010000 -0.622090
-81.040000 -0.598325
-81.070000 -0.574022
-81.100000 -0.549202
-81.130000 -0.523888
-81.160000 -0.498102
-81.190000 -0.471869
-81.220000 -0.445210
-81.250000 -0.418151
-81.280000 -0.390716
-81.310000 -0.362929
-81.340000 -0.334815
-81.370000 -0.306400
-81.400000 -0.277709
-81.430000 -0.248769
-81.460000 -0.219604
-81.490000 -0.190242
-81.520000 -0.160709
-81.550000 -0.131031
-81.580000 -0.101235
-81.610000 -0.071348
-81.640000 -0.041397
-81.670000 -0.011409
-81.700000 0.018590
-81.730000 0.048572
-81.760000 0.078510
-81.790000 0.108378
-81.820000 0.138148
-81.850000 0.167793
-81.880000 0.197288
-81.910000 0.226605
-81.940000 0.255719
-81.970000 0.284602
-82.000000 0.313229
-82.030000 0.341574
-82.060000 0.369612
-82.090000 0.397317
-82.120000 0.424664
-82.150000 0.451630
-82.180000 0.478189
-82.210000 0.504317
-82.240000 0.529992
-82.270000 0.555190
-82.300000 0.579888
-82.330000 0.604064
-82.360000 0.627697
-82.390000 0.650765
-82.420000 0.673247
-82.450000 0.695123
-82.480000 0.716374
-82.510000 0.736980
-82.540000 0.756923
-82.570000 0.776184
-82.600000 0.794747
-82.630000 0.812595
-82.660000 0.829712
-82.690000 0.846082
-82.720000 0.861690
-82.750000 0.876523
-82.780000 0.890567
-82.810000 0.903810
-82.840000 0.916240
-82.870000 0.927844
-82.900000 0.938614
-82.930000 0.948539
-82.960000 0.957611
-82.990000 0.965821
-83.020000 0.973161
-83.050000 0.979626
-83.080000 0.985209
-83.110000 0.989906
-83.140000 0.993712
-83.170000 0.996623
-83.200000 0.998638
-83.230000 0.999753
-83.260000 0.999970
-83.290000 0.999286
-83.320000 0.997703
-83.350000 0.995222
-83.380000 0.991845
-83.410000 0.987576
-83.440000 0.982418
-83.470000 0.976376
-83.500000 0.969456
-83.530000 0.961663
-83.560000 0.953004
-83.590000 0.943488
-83.620000 0.933123
-83.650000 0.921918
-83.680000 0.909883
-83.710000 0.897029
-83.740000 0.883369
-83.770000 0.868913
-83.800000 0.853675
-83.830000 0.837669
-83.860000 0.820909
-83.890000 0.803411
-83.920000 0.785189
-83.950000 0.766261
-83.980000 0.746643
-84.010000 0.726354
-84.040000 0.705410
-84.070000 0.683832
-84.100000 0.661638
-84.130000 0.638849
-84.160000 0.615485
-84.190000 0.591568
-84.220000 0.567117
-84.250000 0.542157
-84.280000 0.516708
-84.310000 0.490795
-84.340000 0.464440
-84.370000 0.437666
-84.400000 0.410499
-84.430000 0.382963
-84.460000 0.355082
-84.490000 0.326881
-84.520000 0.298386
-84.550000 0.269623
-84.580000 0.240617
-84.610000 0.211395
-84.640000 0.181982
-84.670000 0.152405
-84.700000 0.122692
-84.730000 0.092868
-84.760000 0.062960
-84.790000 0.032996
-84.820000 0.003002
-84.850000 -0.026995
-84.880000 -0.056967
-84.910000 -0.086889
-84.940000 -0.116732
-84.970000 -0.146470
-85.000000 -0.176076
-85.030000 -0.205523
-85.060000 -0.234786
-85.090000 -0.263837
-85.120000 -0.292651
-85.150000 -0.321202
-85.180000 -0.349463
-85.210000 -0.377410
-85.240000 -0.405018
-85.270000 -0.432261
-85.300000 -0.459115
-85.330000 -0.485555
-85.360000 -0.511559
-85.390000 -0.537103
-85.420000 -0.562163
-85.450000 -0.586717
-85.480000 -0.610743
-85.510000 -0.634219
-85.540000 -0.657125
-85.570000 -0.679439
-85.600000 -0.701142
-85.630000 -0.722214
-85.660000 -0.742636
-85.690000 -0.762390
-85.720000 -0.781458
-85.750000 -0.799822
-85.780000 -0.817466
-85.810000 -0.834375
-85.840000 -0.850533
-85.870000 -0.865926
-85.900000 -0.880539
-85.930000 -0.894360
-85.960000 -0.907376
-85.990000 -0.919575
-86.020000 -0.930947
-86.050000 -0.941481
-86.080000 -0.951168
-86.110000 -0.959999
-86.140000 -0.967966
-86.170000 -0.975062
-86.200000 -0.981280
-86.230000 -0.986615
-86.260000 -0.991062
-86.290000 -0.994618
-86.320000 -0.997278
-86.350000 -0.999041
-86.380000 -0.999905
-86.410000 -0.999869
-86.440000 -0.998933
-86.470000 -0.997098
-86.500000 -0.994366
-86.530000 -0.990739
-86.560000 -0.986220
-86.590000 -0.980814
-86.620000 -0.974525
-86.650000 -0.967359
-86.680000 -0.959323
-86.710000 -0.950423
-86.740000 -0.940668
-86.770000 -0.930067
-86.800000 -0.918628
-86.830000 -0.906363
-86.860000 -0.893282
-86.890000 -0.879397
-86.920000 -0.864721
-86.950000 -0.849266
-86.980000 -0.833048
-87.010000 -0.816079
-87.040000 -0.798377
-87.070000 -0.779955
-87.100000 -0.760832
-87.130000 -0.741024
-87.160000 -0.720549
-87.190000 -0.699426
-87.220000 -0.677674
-87.250000 -0.655311
-87.280000 -0.632359
-87.310000 -0.608837
-87.340000 -0.584768
-87.370000 -0.560173
-87.400000 -0.535073
-87.430000 -0.509492
-87.460000 -0.483452
-87.490000 -0.456978
-87.520000 -0.430092
-87.550000 -0.402819
-87.580000 -0.375183
-87.610000 -0.347210
-87.640000 -0.318924
-87.670000 -0.290352
-87.700000 -0.261518
-87.730000 -0.232448
-87.760000 -0.203170
-87.790000 -0.173709
-87.820000 -0.144091
-87.850000 -0.114344
-87.880000 -0.084493
-87.910000 -0.054567
-87.940000 -0.024592
-87.970000 0.005406
-88.000000 0.035398
-88.030000 0.065359
-88.060000 0.095261
-88.090000 0.125077
-88.120000 0.154781
-88.150000 0.184345
-88.180000 0.213744
-88.210000 0.242950
-88.240000 0.271937
-88.270000 0.300680
-88.300000 0.329152
-88.330000 0.357328
-88.360000 0.385183
-88.390000 0.412690
-88.420000 0.439827
-88.450000 0.466567
-88.480000 0.492888
-88.510000 0.518765
-88.540000 0.544175
-88.570000 0.569096
-88.600000 0.593504
-88.630000 0.617378
-88.660000 0.640697
-88.690000 0.663439
-88.720000 0.685584
-88.750000 0.707112
-88.780000 0.728004
-88.810000 0.748240
-88.840000 0.767803
-88.870000 0.786676
-88.900000 0.804840
-88.930000 0.822280
-88.960000 0.838980
-88.990000 0.854925
-89.020000 0.870100
-89.050000 0.884493
-89.080000 0.898089
-89.110000 0.910878
-89.140000 0.922846
-89.170000 0.933984
-89.200000 0.944282
-89.230000 0.953730
-89.260000 0.962319
-89.290000 0.970043
-89.320000 0.976893
-89.350000 0.982864
-89.380000 0.987951
-89.410000 0.992149
-89.440000 0.995454
-89.470000 0.997863
-89.500000 0.999374
-89.530000 0.999985
-89.560000 0.999697
-89.590000 0.998509
-89.620000 0.996423
-89.650000 0.993440
-89.680000 0.989562
-89.710000 0.984794
-89.740000 0.979140
-89.770000 0.972605
-89.800000 0.965195
-89.830000 0.956916
-89.860000 0.947775
-89.890000 0.937782
-89.920000 0.926945
-89.950000 0.915274
-89.980000 0.902779
-90.010000 0.889471
-90.040000 0.875363
-90.070000 0.860468
-90.100000 0.844798
-90.130000 0.828367
-90.160000 0.811192
-90.190000 0.793286
-90.220000 0.774666
-90.250000 0.755349
-90.280000 0.735353
-90.310000 0.714694
-90.340000 0.693393
-90.370000 0.671467
-90.400000 0.648937
-90.430000 0.625824
-90.460000 0.602147
-90.490000 0.577928
-90.520000 0.553189
-90.550000 0.527952
-90.580000 0.502240
-90.610000 0.476076
-90.640000 0.449483
-90.670000 0.422487
-90.700000 0.395109
-90.730000 0.367377
-90.760000 0.339313
-90.790000 0.310945
-90.820000 0.282296
-90.850000 0.253394
-90.880000 0.224263
-90.910000 0.194931
-90.940000 0.165423
-90.970000 0.135766
-91.000000 0.105988
-91.030000 0.076113
-91.060000 0.046171
-91.090000 0.016186
-91.120000 -0.013813
-91.150000 -0.043799
-91.180000 -0.073746
-91.210000 -0.103627
-91.240000 -0.133414
-91.270000 -0.163081
-91.300000 -0.192602
-91.330000 -0.221949
-91.360000 -0.251097
-91.390000 -0.280018
-91.420000 -0.308688
-91.450000 -0.337079
-91.480000 -0.365168
-91.510000 -0.392928
-91.540000 -0.420334
-91.570000 -0.447362
-91.600000 -0.473987
-91.630000 -0.500186
-91.660000 -0.525934
-91.690000 -0.551209
-91.720000 -0.575989
-91.750000 -0.600250
-91.780000 -0.623970
-91.810000 -0.647129
-91.840000 -0.669706
-91.870000 -0.691680
-91.900000 -0.713032
-91.930000 -0.733742
-91.960000 -0.753791
-91.990000 -0.773163
-92.020000 -0.791838
-92.050000 -0.809801
-92.080000 -0.827035
-92.110000 -0.843525
-92.140000 -0.859256
-92.170000 -0.874213
-92.200000 -0.888384
-92.230000 -0.901755
-92.260000 -0.914315
-92.290000 -0.926052
-92.320000 -0.936955
-92.350000 -0.947016
-92.380000 -0.956224
-92.410000 -0.964571
-92.440000 -0.972051
-92.470000 -0.978655
-92.500000 -0.984379
-92.530000 -0.989217
-92.560000 -0.993165
-92.590000 -0.996219
-92.620000 -0.998377
-92.650000 -0.999636
-92.680000 -0.999995
-92.710000 -0.999455
-92.740000 -0.998015
-92.770000 -0.995677
-92.800000 -0.992443
-92.830000 -0.988316
-92.860000 -0.983299
-92.890000 -0.977398
-92.920000 -0.970616
-92.950000 -0.962962
-92.980000 -0.954441
-93.010000 -0.945060
-93.040000 -0.934830
-93.070000 -0.923758
-93.100000 -0.911855
-93.130000 -0.899131
-93.160000 -0.885598
-93.190000 -0.871268
-93.220000 -0.856154
-93.250000 -0.840269
-93.280000 -0.823628
-93.310000 -0.806247
-93.340000 -0.788139
-93.370000 -0.769322
-93.400000 -0.749813
-93.430000 -0.729629
-93.460000 -0.708789
-93.490000 -0.687310
-93.520000 -0.665213
-93.550000 -0.642518
-93.580000 -0.619244
-93.610000 -0.595413
-93.640000 -0.571046
-93.670000 -0.546165
-93.700000 -0.520793
-93.730000 -0.494952
-93.760000 -0.468666
-93.790000 -0.441957
-93.820000 -0.414852
-93.850000 -0.387372
-93.880000 -0.359544
-93.910000 -0.331393
-93.940000 -0.302943
-93.970000 -0.274221
-94.000000 -0.245252
-94.030000 -0.216062
-94.060000 -0.186678
-94.090000 -0.157126
-94.120000 -0.127432
-94.150000 -0.097624
-94.180000 -0.067728
-94.210000 -0.037771
-94.240000 -0.007780
-94.270000 0.022219
-94.300000 0.052197
-94.330000 0.082128
-94.360000 0.111985
-94.390000 0.141741
-94.420000 0.171370
-94.450000 0.200845
-94.480000 0.230139
-94.510000 0.259226
-94.540000 0.288079
-94.570000 0.316673
-94.600000 0.344983
-94.630000 0.372982
-94.660000 0.400645
-94.690000 0.427947
-94.720000 0.454865
-94.750000 0.481373
-94.780000 0.507448
-94.810000 0.533066
-94.840000 0.558205
-94.870000 0.582841
-94.900000 0.606953
-94.930000 0.630518
-94.960000 0.653516
-94.990000 0.675926
-95.020000 0.697728
-95.050000 0.718901
-95.080000 0.739428
-95.110000 0.759289
-95.140000 0.778467
-95.170000 0.796945
-95.200000 0.814705
-95.230000 0.831732
-95.260000 0.848011
-95.290000 0.863526
-95.320000 0.878264
-95.350000 0.892212
-95.380000 0.905357
-95.410000 0.917688
-95.440000 0.929192
-95.470000 0.939860
-95.500000 0.949682
-95.530000 0.958650
-95.560000 0.966755
-95.590000 0.973990
-95.620000 0.980349
-95.650000 0.985825
-95.680000 0.990414
-95.710000 0.994111
-95.740000 0.996914
-95.770000 0.998820
-95.800000 0.999827
-95.830000 0.999935
-95.860000 0.999142
-95.890000 0.997450
-95.920000 0.994861
-95.950000 0.991376
-95.980000 0.986999
-96.010000 0.981734
-96.040000 0.975586
-96.070000 0.968559
-96.100000 0.960661
-96.130000 0.951898
-96.160000 0.942279
-96.190000 0.931811
-96.220000 0.920506
-96.250000 0.908371
-96.280000 0.895419
-96.310000 0.881662
-96.340000 0.867111
-96.370000 0.851779
-96.400000 0.835681
-96.430000 0.818831
-96.460000 0.801244
-96.490000 0.782937
-96.520000 0.763924
-96.550000 0.744224
-96.580000 0.723854
-96.610000 0.702833
-96.640000 0.681179
-96.670000 0.658913
-96.700000 0.636053
-96.730000 0.612621
-96.760000 0.588637
-96.790000 0.564124
-96.820000 0.539103
-96.850000 0.513597
-96.880000 0.487629
-96.910000 0.461222
-96.940000 0.434400
-96.970000 0.407187
-97.000000 0.379608
-97.030000 0.351687
-97.060000 0.323449
-97.090000 0.294920
-97.120000 0.266126
-97.150000 0.237093
-97.180000 0.207846
-97.210000 0.178412
-97.240000 0.148817
-97.270000 0.119089
-97.300000 0.089253
-97.330000 0.059337
-97.360000 0.029368
-97.390000 -0.000628
-97.420000 -0.030623
-97.450000 -0.060591
-97.480000 -0.090504
-97.510000 -0.120335
-97.540000 -0.150059
-97.570000 -0.179647
-97.600000 -0.209074
-97.630000 -0.238312
-97.660000 -0.267336
-97.690000 -0.296120
-97.720000 -0.324637
-97.750000 -0.352862
-97.780000 -0.380769
-97.810000 -0.408334
-97.840000 -0.435531
-97.870000 -0.462336
-97.900000 -0.488725
-97.930000 -0.514674
-97.960000 -0.540160
-97.990000 -0.565160
-98.020000 -0.589652
-98.050000 -0.613613
-98.080000 -0.637021
-98.110000 -0.659856
-98.140000 -0.682098
-98.170000 -0.703726
-98.200000 -0.724720
-98.230000 -0.745062
-98.260000 -0.764734
-98.290000 -0.783717
-98.320000 -0.801995
-98.350000 -0.819551
-98.380000 -0.836370
-98.410000 -0.852436
-98.440000 -0.867735
-98.470000 -0.882254
-98.500000 -0.895978
-98.530000 -0.908895
-98.560000 -0.920995
-98.590000 -0.932266
-98.620000 -0.942698
-98.650000 -0.952282
-98.680000 -0.961009
-98.710000 -0.968871
-98.740000 -0.975861
-98.770000 -0.981972
-98.800000 -0.987200
-98.830000 -0.991540
-98.860000 -0.994987
-98.890000 -0.997539
-98.920000 -0.999193
-98.950000 -0.999948
-98.980000 -0.999803
-99.010000 -0.998759
-99.040000 -0.996815
-99.070000 -0.993975
-99.100000 -0.990240
-99.130000 -0.985613
-99.160000 -0.980100
-99.190000 -0.973705
-99.220000 -0.966433
-99.250000 -0.958292
-99.280000 -0.949288
-99.310000 -0.939431
-99.340000 -0.928727
-99.370000 -0.917188
-99.400000 -0.904823
-99.430000 -0.891645
-99.460000 -0.877663
-99.490000 -0.862892
-99.520000 -0.847345
-99.550000 -0.831034
-99.580000 -0.813976
-99.610000 -0.796186
-99.640000 -0.777679
-99.670000 -0.758472
-99.700000 -0.738582
-99.730000 -0.718028
-99.760000 -0.696828
-99.790000 -0.675000
-99.820000 -0.652565
-99.850000 -0.629543
-99.880000 -0.605954
-99.910000 -0.581820
-99.940000 -0.557163
-99.970000 -0.532003
End of sin2.pts
echo sin2.tex 1>&2
sed 's/^-//' >'sin2.tex' <<'End of sin2.tex'
-
-\documentstyle[12pt]{report}
-\input{psfig}
-
-\begin{document}
-
-
-A simple sin wave with logarithmic axes:
-
-\begin{figure}[h]
-\centerline{\psfig{figure=/u/jsp/src/jgraph/graphs/sin2.jps}}
-\caption{\sl A sin graph from sin2.jgr}
-\end{figure}
-
-\end{document}
-
End of sin2.tex
echo sin3.jgr 1>&2
sed 's/^-//' >'sin3.jgr' <<'End of sin3.jgr'
-(* This is the same as sin.jgr only a different include file of points is
-used:  This one orders the points by ascending y value instead of ascending
-x value.  The graph looks quite different *)
-
-newgraph 
-
-yaxis min -1 max 1 label : sin(i)
-xaxis min -10 max 10 label : i
-
-(* Plot the sin curve *)
-curve 1 
-  marktype none
-  linetype solid
-  pts include sin3.pts
-   (* sin.pts was created by the following c program:
-
-     #include <math.h>
-     main();
-     {
-       double x;
-       for (x = -10.0; x < 10.0; x += .03)
-         printf("%f %f\n", x, sin(x));
-     }
-     
-   * and then the output was piped through sort -n +1 *)
End of sin3.jgr
echo sin3.pts 1>&2
sed 's/^-//' >'sin3.pts' <<'End of sin3.pts'
--1.570000 -1.000000
-4.700000 -0.999923
--7.840000 -0.999902
--7.870000 -0.999872
-4.730000 -0.999845
--1.600000 -0.999574
--1.540000 -0.999526
-4.670000 -0.999102
--7.810000 -0.999033
--7.900000 -0.998941
-4.760000 -0.998867
--1.630000 -0.998248
--1.510000 -0.998152
-4.640000 -0.997381
--7.780000 -0.997265
--7.930000 -0.997112
-4.790000 -0.996990
--1.660000 -0.996024
--1.480000 -0.995881
-4.610000 -0.994763
--7.750000 -0.994599
--7.960000 -0.994385
-4.820000 -0.994216
--1.690000 -0.992904
--1.450000 -0.992713
-4.580000 -0.991249
--7.720000 -0.991038
--7.990000 -0.990764
-4.850000 -0.990547
--1.720000 -0.988890
--1.420000 -0.988652
-4.550000 -0.986844
--7.690000 -0.986585
--8.020000 -0.986251
-4.880000 -0.985986
--1.750000 -0.983986
--1.390000 -0.983701
-4.520000 -0.981550
--7.660000 -0.981244
--8.050000 -0.980850
-4.910000 -0.980538
--1.780000 -0.978197
--1.360000 -0.977865
-4.490000 -0.975373
--7.630000 -0.975021
--8.080000 -0.974566
-4.940000 -0.974208
--1.810000 -0.971527
--1.330000 -0.971148
-4.460000 -0.968319
--7.600000 -0.967920
--8.110000 -0.967406
-4.970000 -0.967001
--1.840000 -0.963983
--1.300000 -0.963558
-4.430000 -0.960392
--7.570000 -0.959947
--8.140000 -0.959375
-5.000000 -0.958924
--1.870000 -0.955572
--1.270000 -0.955101
-4.400000 -0.951602
--7.540000 -0.951111
--8.170000 -0.950480
-5.030000 -0.949984
--1.900000 -0.946300
--1.240000 -0.945784
-4.370000 -0.941955
--7.510000 -0.941419
--8.200000 -0.940731
-5.060000 -0.940189
--1.930000 -0.936177
--1.210000 -0.935616
-4.340000 -0.931461
--7.480000 -0.930880
--8.230000 -0.930134
-5.090000 -0.929548
--1.960000 -0.925212
--1.180000 -0.924606
-4.310000 -0.920128
--7.450000 -0.919503
--8.260000 -0.918701
-5.120000 -0.918070
--1.990000 -0.913413
--1.150000 -0.912764
-4.280000 -0.907967
--7.420000 -0.907299
--8.290000 -0.906440
-5.150000 -0.905767
--2.020000 -0.900793
--1.120000 -0.900100
-4.250000 -0.894989
--7.390000 -0.894278
--8.320000 -0.893364
-5.180000 -0.892648
--2.050000 -0.887362
--1.090000 -0.886627
-4.220000 -0.881206
--7.360000 -0.880452
--8.350000 -0.879484
-5.210000 -0.878725
--2.080000 -0.873133
--1.060000 -0.872355
-4.190000 -0.866630
--7.330000 -0.865834
--8.380000 -0.864813
-5.240000 -0.864012
--2.110000 -0.858118
--1.030000 -0.857299
-4.160000 -0.851273
--7.300000 -0.850437
--8.410000 -0.849363
-5.270000 -0.848522
--2.140000 -0.842330
--1.000000 -0.841471
-4.130000 -0.835151
--7.270000 -0.834274
--8.440000 -0.833149
-5.300000 -0.832267
--2.170000 -0.825785
--0.970000 -0.824886
-4.100000 -0.818277
--7.240000 -0.817361
--8.470000 -0.816185
-5.330000 -0.815264
--2.200000 -0.808496
--0.940000 -0.807558
-4.070000 -0.800667
--7.210000 -0.799712
--8.500000 -0.798487
-5.360000 -0.797527
--2.230000 -0.790480
--0.910000 -0.789504
-4.040000 -0.782336
--7.180000 -0.781343
--8.530000 -0.780070
-5.390000 -0.779073
--2.260000 -0.771753
--0.880000 -0.770739
-4.010000 -0.763301
--7.150000 -0.762271
--8.560000 -0.760951
-5.420000 -0.759917
--2.290000 -0.752331
--0.850000 -0.751280
-3.980000 -0.743579
--7.120000 -0.742513
--8.590000 -0.741147
-5.450000 -0.740077
--2.320000 -0.732231
--0.820000 -0.731146
-3.950000 -0.723188
--7.090000 -0.722087
--8.620000 -0.720677
-5.480000 -0.719572
--2.350000 -0.711473
--0.790000 -0.710353
-3.920000 -0.702146
--7.060000 -0.701011
--8.650000 -0.699557
-5.510000 -0.698418
--2.380000 -0.690075
--0.760000 -0.688921
-3.890000 -0.680473
--7.030000 -0.679305
--8.680000 -0.677809
-5.540000 -0.676637
--2.410000 -0.668056
--0.730000 -0.666870
-3.860000 -0.658186
--7.000000 -0.656987
--8.710000 -0.655450
-5.570000 -0.654246
--2.440000 -0.645435
--0.700000 -0.644218
-3.830000 -0.635308
--6.970000 -0.634077
--8.740000 -0.632501
-5.600000 -0.631267
--2.470000 -0.622234
--0.670000 -0.620986
-3.800000 -0.611858
--6.940000 -0.610597
--8.770000 -0.608983
-5.630000 -0.607719
--2.500000 -0.598472
--0.640000 -0.597195
-3.770000 -0.587857
--6.910000 -0.586568
--8.800000 -0.584917
-5.660000 -0.583625
--2.530000 -0.574172
--0.610000 -0.572867
-3.740000 -0.563327
--6.880000 -0.562011
--8.830000 -0.560325
-5.690000 -0.559005
--2.560000 -0.549355
--0.580000 -0.548024
-3.710000 -0.538291
--6.850000 -0.536948
--8.860000 -0.535228
-5.720000 -0.533882
-9.980000 -0.527132
--2.590000 -0.524044
--0.550000 -0.522687
-3.680000 -0.512769
--6.820000 -0.511401
--8.890000 -0.509650
-5.750000 -0.508279
-9.950000 -0.501405
--2.620000 -0.498262
--0.520000 -0.496880
-3.650000 -0.486787
--6.790000 -0.485395
--8.920000 -0.483613
-5.780000 -0.482218
-9.920000 -0.475227
--2.650000 -0.472031
--0.490000 -0.470626
-3.620000 -0.460366
--6.760000 -0.458951
--8.950000 -0.457141
-5.810000 -0.455724
-9.890000 -0.448621
--2.680000 -0.445375
--0.460000 -0.443948
-3.590000 -0.433531
--6.730000 -0.432095
--8.980000 -0.430257
-5.840000 -0.428819
-9.860000 -0.421612
--2.710000 -0.418318
--0.430000 -0.416871
-3.560000 -0.406306
--6.700000 -0.404850
--9.010000 -0.402987
-5.870000 -0.401529
-9.830000 -0.394223
--2.740000 -0.390885
--0.400000 -0.389418
-3.530000 -0.378715
--6.670000 -0.377240
--9.040000 -0.375353
-5.900000 -0.373877
-9.800000 -0.366479
--2.770000 -0.363100
--0.370000 -0.361615
-3.500000 -0.350783
--6.640000 -0.349291
--9.070000 -0.347382
-5.930000 -0.345888
-9.770000 -0.338406
--2.800000 -0.334988
--0.340000 -0.333487
-3.470000 -0.322536
--6.610000 -0.321028
--9.100000 -0.319098
-5.960000 -0.317589
-9.740000 -0.310028
--2.830000 -0.306575
--0.310000 -0.305059
-3.440000 -0.293998
--6.580000 -0.292476
--9.130000 -0.290527
-5.990000 -0.289003
-9.710000 -0.281371
--2.860000 -0.277886
--0.280000 -0.276356
-3.410000 -0.265196
--6.550000 -0.263660
--9.160000 -0.261695
-6.020000 -0.260157
-9.680000 -0.252460
--2.890000 -0.248947
--0.250000 -0.247404
-3.380000 -0.236155
--6.520000 -0.234607
--9.190000 -0.232627
-6.050000 -0.231078
-9.650000 -0.223323
--2.920000 -0.219784
--0.220000 -0.218230
-3.350000 -0.206902
--6.490000 -0.205344
--9.220000 -0.203350
-6.080000 -0.201790
-9.620000 -0.193984
--2.950000 -0.190423
--0.190000 -0.188859
-3.320000 -0.177462
--6.460000 -0.175895
--9.250000 -0.173889
-6.110000 -0.172321
-9.590000 -0.164471
--2.980000 -0.160890
--0.160000 -0.159318
-3.290000 -0.147863
--6.430000 -0.146288
--9.280000 -0.144273
-6.140000 -0.142697
-9.560000 -0.134810
--3.010000 -0.131213
--0.130000 -0.129634
-3.260000 -0.118131
--6.400000 -0.116549
--9.310000 -0.114526
-6.170000 -0.112944
-9.530000 -0.105028
--3.040000 -0.101418
--0.100000 -0.099833
-3.230000 -0.088292
--6.370000 -0.086706
--9.340000 -0.084676
-6.200000 -0.083089
-9.500000 -0.075151
--3.070000 -0.071532
--0.070000 -0.069943
-3.200000 -0.058374
--6.340000 -0.056784
--9.370000 -0.054751
-6.230000 -0.053160
-9.470000 -0.045207
--3.100000 -0.041581
--0.040000 -0.039989
-3.170000 -0.028404
--6.310000 -0.026811
--9.400000 -0.024775
-6.260000 -0.023183
-9.440000 -0.015221
--3.130000 -0.011592
--0.010000 -0.010000
-3.140000 0.001593
--6.280000 0.003185
--9.430000 0.005222
-6.290000 0.006815
-9.410000 0.014777
--3.160000 0.018406
-0.020000 0.019999
-3.110000 0.031587
--6.250000 0.033179
--9.460000 0.035215
-6.320000 0.036806
-9.380000 0.044763
--3.190000 0.048388
-0.050000 0.049979
-3.080000 0.061554
--6.220000 0.063143
--9.490000 0.065176
-6.350000 0.066765
-9.350000 0.074708
--3.220000 0.078327
-0.080000 0.079915
-3.050000 0.091465
--6.190000 0.093051
--9.520000 0.095078
-6.380000 0.096664
-9.320000 0.104586
--3.250000 0.108195
-0.110000 0.109778
-3.020000 0.121293
--6.160000 0.122874
--9.550000 0.124895
-6.410000 0.126475
-9.290000 0.134370
--3.280000 0.137966
-0.140000 0.139543
-2.990000 0.151013
--6.130000 0.152587
--9.580000 0.154599
-6.440000 0.156173
-9.260000 0.164033
--3.310000 0.167612
-0.170000 0.169182
-2.960000 0.180596
--6.100000 0.182163
--9.610000 0.184165
-6.470000 0.185730
-9.230000 0.193549
--3.340000 0.197108
-0.200000 0.198669
-2.930000 0.210017
--6.070000 0.211574
--9.640000 0.213564
-6.500000 0.215120
-9.200000 0.222890
--3.370000 0.226427
-0.230000 0.227978
-2.900000 0.239249
--6.040000 0.240795
--9.670000 0.242772
-6.530000 0.244316
-9.170000 0.252031
--3.400000 0.255541
-0.260000 0.257081
-2.870000 0.268266
--6.010000 0.269800
--9.700000 0.271761
-6.560000 0.273293
-9.140000 0.280944
--3.430000 0.284426
-0.290000 0.285952
-2.840000 0.297041
--5.980000 0.298562
--9.730000 0.300505
-6.590000 0.302024
-9.110000 0.309605
--3.460000 0.313054
-0.320000 0.314567
-2.810000 0.325549
--5.950000 0.327055
--9.760000 0.328979
-6.620000 0.330482
-9.080000 0.337988
--3.490000 0.341401
-0.350000 0.342898
-2.780000 0.353764
--5.920000 0.355254
--9.790000 0.357157
-6.650000 0.358644
-9.050000 0.366066
--3.520000 0.369441
-0.380000 0.370920
-2.750000 0.381661
--5.890000 0.383133
--9.820000 0.385013
-6.680000 0.386483
-9.020000 0.393815
--3.550000 0.397148
-0.410000 0.398609
-2.720000 0.409214
--5.860000 0.410667
--9.850000 0.412523
-6.710000 0.413973
-8.990000 0.421209
--3.580000 0.424498
-0.440000 0.425939
-2.690000 0.436399
--5.830000 0.437832
--9.880000 0.439662
-6.740000 0.441092
-8.960000 0.448224
--3.610000 0.451466
-0.470000 0.452886
-2.660000 0.463191
--5.800000 0.464602
--9.910000 0.466405
-6.770000 0.467813
-8.930000 0.474836
--3.640000 0.478027
-0.500000 0.479426
-2.630000 0.489567
--5.770000 0.490955
--9.940000 0.492728
-6.800000 0.494113
-8.900000 0.501021
--3.670000 0.504159
-0.530000 0.505533
-2.600000 0.515501
--5.740000 0.516865
--9.970000 0.518608
-6.830000 0.519969
-8.870000 0.526755
--3.700000 0.529836
-0.560000 0.531186
-2.570000 0.540972
--5.710000 0.542311
--10.000000 0.544021
-6.860000 0.545357
-8.840000 0.552014
--3.730000 0.555037
-0.590000 0.556361
-2.540000 0.565956
--5.680000 0.567269
-6.890000 0.570254
-8.810000 0.576777
--3.760000 0.579738
-0.620000 0.581035
-2.510000 0.590431
--5.650000 0.591716
-6.920000 0.594637
-8.780000 0.601021
--3.790000 0.603918
-0.650000 0.605186
-2.480000 0.614374
--5.620000 0.615630
-6.950000 0.618486
-8.750000 0.624724
--3.820000 0.627554
-0.680000 0.628793
-2.450000 0.637765
--5.590000 0.638991
-6.980000 0.641778
-8.720000 0.647865
--3.850000 0.650625
-0.710000 0.651834
-2.420000 0.660581
--5.560000 0.661776
-7.010000 0.664493
-8.690000 0.670422
--3.880000 0.673111
-0.740000 0.674288
-2.390000 0.682803
--5.530000 0.683966
-7.040000 0.686609
-8.660000 0.692377
--3.910000 0.694991
-0.770000 0.696135
-2.360000 0.704411
--5.500000 0.705540
-7.070000 0.708108
-8.630000 0.713708
--3.940000 0.716246
-0.800000 0.717356
-2.330000 0.725384
--5.470000 0.726480
-7.100000 0.728969
-8.600000 0.734397
--3.970000 0.736856
-0.830000 0.737931
-2.300000 0.745705
--5.440000 0.746765
-7.130000 0.749174
-8.570000 0.754425
--4.000000 0.756802
-0.860000 0.757843
-2.270000 0.765355
--5.410000 0.766379
-7.160000 0.768705
-8.540000 0.773774
--4.030000 0.776068
-0.890000 0.777072
-2.240000 0.784316
--5.380000 0.785303
-7.190000 0.787545
-8.510000 0.792427
--4.060000 0.794636
-0.920000 0.795602
-2.210000 0.802571
--5.350000 0.803520
-7.220000 0.805675
-8.480000 0.810367
--4.090000 0.812488
-0.950000 0.813416
-2.180000 0.820104
--5.320000 0.821014
-7.250000 0.823081
-8.450000 0.827577
--4.120000 0.829609
-0.980000 0.830497
-2.150000 0.836899
--5.290000 0.837769
-7.280000 0.839746
-8.420000 0.844043
--4.150000 0.845984
-1.010000 0.846832
-2.120000 0.852940
--5.260000 0.853771
-7.310000 0.855655
-8.390000 0.859749
--4.180000 0.861597
-1.040000 0.862404
-2.090000 0.868215
--5.230000 0.869004
-7.340000 0.870794
-8.360000 0.874681
--4.210000 0.876435
-1.070000 0.877201
-2.060000 0.882707
--5.200000 0.883455
-7.370000 0.885149
-8.330000 0.888827
--4.240000 0.890484
-1.100000 0.891207
-2.030000 0.896406
--5.170000 0.897111
-7.400000 0.898708
-8.300000 0.902172
--4.270000 0.903732
-1.130000 0.904412
-2.000000 0.909297
--5.140000 0.909959
-7.430000 0.911458
-8.270000 0.914705
--4.300000 0.916166
-1.160000 0.916803
-1.970000 0.921371
--5.110000 0.921989
-7.460000 0.923388
-8.240000 0.926415
--4.330000 0.927776
-1.190000 0.928369
-1.940000 0.932615
--5.080000 0.933189
-7.490000 0.934487
-8.210000 0.937292
--4.360000 0.938551
-1.220000 0.939099
-1.910000 0.943020
--5.050000 0.943549
-7.520000 0.944745
-8.180000 0.947325
--4.390000 0.948481
-1.250000 0.948985
-1.880000 0.952576
--5.020000 0.953060
-7.550000 0.954152
-8.150000 0.956506
--4.420000 0.957558
-1.280000 0.958016
-1.850000 0.961275
--4.990000 0.961713
-7.580000 0.962701
-8.120000 0.964825
--4.450000 0.965773
-1.310000 0.966185
-1.820000 0.969109
--4.960000 0.969501
-7.610000 0.970384
-8.090000 0.972277
--4.480000 0.973119
-1.340000 0.973485
-1.790000 0.976071
--4.930000 0.976416
-7.640000 0.977193
-8.060000 0.978853
--4.510000 0.979589
-1.370000 0.979908
-1.760000 0.982154
--4.900000 0.982453
-7.670000 0.983123
-8.030000 0.984549
--4.540000 0.985178
-1.400000 0.985450
-1.730000 0.987354
--4.870000 0.987605
-7.700000 0.988168
-8.000000 0.989358
--4.570000 0.989880
-1.430000 0.990105
-1.700000 0.991665
--4.840000 0.991869
-7.730000 0.992324
-7.970000 0.993277
--4.600000 0.993691
-1.460000 0.993868
-1.670000 0.995083
--4.810000 0.995240
-7.760000 0.995587
-7.940000 0.996303
--4.630000 0.996608
-1.490000 0.996738
-1.640000 0.997606
--4.780000 0.997715
-7.790000 0.997954
-7.910000 0.998431
--4.660000 0.998628
-1.520000 0.998710
-1.610000 0.999232
--4.750000 0.999293
-7.820000 0.999423
-7.880000 0.999662
--4.690000 0.999749
-1.550000 0.999784
-1.580000 0.999958
--4.720000 0.999971
-7.850000 0.999992
End of sin3.pts
echo sin3.tex 1>&2
sed 's/^-//' >'sin3.tex' <<'End of sin3.tex'
-
-\documentstyle[12pt]{report}
-\input{psfig}
-
-\begin{document}
-
-
-A simple sin wave ordered by its y values:
-
-\begin{figure}[h]
-\centerline{\psfig{figure=/u/jsp/src/jgraph/graphs/sin3.jps}}
-\caption{\sl A sin graph from sin3.jgr}
-\end{figure}
-
-\end{document}
-
End of sin3.tex
echo token.c 1>&2
sed 's/^-//' >'token.c' <<'End of token.c'
-/* $Log:	token.c,v $
- * Revision 1.5  90/11/26  17:13:32  jsp
- * Fixed include parameter so that the directory must be specified by -I
- * command line option
- * 
- * Revision 1.4  90/10/18  12:46:43  jsp
- * First release version
- * 
- * Revision 1.3  90/10/14  13:49:47  jsp
- * Fixed bug with revision 1.2 by pushing oldchar & oldcharvalid onto
- * the iostack.
- * 
- * Revision 1.2  90/10/14  13:34:29  jsp
- * Added better error-flagging capabilities:
- *   The function "error_header" will print out <filename>,<line number>:
- *     to stderr.
- *   The Iostack struct had to be changed to accomodate this.
- *   Also, getchar/sprintf could no longer be used, as line tracking
- *     had to be incorporated.
- *   Thus, new procedures gettokenchar() and ungettokenchar() were
- *     implemented.
- * 
- * Revision 1.1  90/10/12  18:08:04  jsp
- * Initial revision
- * 
- *
- * Module for getting tokens from stdin and included files.
- */
-
-#include <math.h>
-#include <stdio.h>
-
-#include "list.h"
-
-#define CNULL ((char *)0)
-
-typedef struct iostack {
-  struct iostack *flink;
-  struct iostack *blink;
-  char *filename;
-  FILE *stream;
-  int oldcharvalid;
-  char oldchar;
-} *Iostack;
-
-static char INPUT[300];
-static int getnew = 1;
-static char oldchar = '\0';
-static oldcharvalid = 0;
-static int eof = 0;
-static int init = 0;
-static Iostack stack;
-static FILE *IOSTREAM = stdin;
-static char FILENAME[300];
-static int line = 1;
-
-#define iostackinit() {\
-                        if (init == 0) {\
-                          strcpy(FILENAME, "<stdin>"); \
-                          stack = (Iostack) make_list(sizeof(struct iostack)); \
-                          init = 1; }}
-
-error_header()
-{
-  iostackinit();
-  fprintf(stderr, "%s,%d: ", FILENAME, line);
-}
-  
-int gettokenchar()
-{
-  if (oldcharvalid == 0) oldchar = getc(IOSTREAM);
-  oldcharvalid = 0;
-  if (oldchar == '\n') line++;
-  return oldchar;
-}
-
-int ungettokenchar()
-{
-  oldcharvalid = 1;
-  if (oldchar == '\n') line--;
-}
-
-int gettoken(s)
-char *s;
-{
-  int i;
-  char c;
-
-  for (c = gettokenchar(); 
-       c == ' ' || c == '\t' || c == '\n';
-       c = gettokenchar()) ;
-  for (i = 0;
-       c != EOF && c != ' ' && c != '\t' && c != '\n';
-       c = gettokenchar()) {
-    s[i++] = c;
-  }
-  s[i] = '\0';
-  ungettokenchar();
-  return i;
-}
-
-get_comment()
-{
-  if (eof) return;
-  while (1) {
-    if (gettoken(INPUT) == 0) return;
-    else if (strcmp(INPUT, "(*") == 0)
-      get_comment();
-    else if (strcmp(INPUT, "*)") == 0) 
-      return;
-  }
-}
-
-static int iostackempty()
-{
-  iostackinit();
-  return (first(stack) == nil(stack));
-}
-
-static push_iostack()
-{
-  Iostack n;
-
-  iostackinit();
-  n = (Iostack) get_node(stack);
-  n->stream = IOSTREAM;
-  n->filename = (char *) malloc (sizeof(char)*(strlen(FILENAME)+2));
-  n->oldchar = oldchar;
-  n->oldcharvalid = oldcharvalid;
-  strcpy(n->filename, FILENAME);
-  insert(n, stack);
-  IOSTREAM = fopen(INPUT, "r");
-  if (IOSTREAM == NULL) {
-    error_header();
-    fprintf(stderr, "Include file \"%s\" does not exist\n", INPUT);
-    exit(1);
-  }
-  strcpy(FILENAME, INPUT);
-}
-
-static pop_iostack()
-{
-  Iostack n;
-
-  iostackinit();
-  fclose(IOSTREAM);
-  n = last(stack);
-  IOSTREAM = n->stream;
-  strcpy(FILENAME, n->filename);
-/*  free(n->filename); */
-  oldchar = n->oldchar;
-  oldcharvalid = n->oldcharvalid;
-  delete(n);
-  free_node(n, stack);
-}
-
-static nexttoken()
-{
-  if (eof) return;
-  if (getnew) {
-    while (1) {
-      if (gettoken(INPUT) == 0) {
-        iostackinit();
-        if (iostackempty()) {
-          eof = 1;
-          getnew = 0;
-          return;
-        } else {
-          pop_iostack();
-        }
-      } else if (strcmp(INPUT, "(*") == 0) {
-        get_comment();
-      } else if (strcmp(INPUT, "include") == 0) {
-        if (gettoken(INPUT) == 0) {
-          error_header();
-          fprintf(stderr, "Empty include statement\n");
-          exit(1);
-        } else {
-          push_iostack();
-        }
-      } else {
-        getnew = 1;
-        return;
-      }
-    }
-  }
-  getnew = 1;
-  return;
-}
-
-int getstring(s)
-char *s;
-{
-  nexttoken();
-  if (eof) return 0;
-  strcpy(s, INPUT);
-  return 1;
-}
-
-int getint(i)
-int *i;
-{
-  int j;
-
-  nexttoken();
-  if (eof) return 0;
-  *i = atoi(INPUT);
-  if (*i == 0) {
-    for (j = 0; INPUT[j] != '\0'; j++)
-      if (INPUT[j] != '0') return 0;
-  }
-  return 1;
-}
-
-int getfloat(f)
-float *f;
-{
-  int j;
-
-  nexttoken();
-  if (eof) return 0;
-  *f = (float) atof(INPUT);
-  if (*f == 0.0) {
-    for (j = 0; INPUT[j] == '-'; j++);
-    while (INPUT[j] == '0') j++;
-    if (INPUT[j] == '.') j++;
-    while (INPUT[j] == '0') j++;
-    if (INPUT[j] == 'e' || INPUT[j] == 'E') {
-      j++;
-      if (INPUT[j] == '+' || INPUT[j] == '-') j++;
-      while (INPUT[j] == '0') j++;
-    }
-    return (INPUT[j] == '\0');
-  } else return 1;
-}
-
-char *new_printable_text(s)
-char *s;
-{
-  char *new_s;
-  int to_pad, i, j;
-
-  to_pad = 0;
-  for (i = 0; s[i] != '\0'; i++) 
-    if (s[i] == '\\' || s[i] == ')' || s[i] == '(') to_pad++;
-
-  new_s = (char *) malloc (sizeof(char) * (i + to_pad + 2));
-  j = 0;
-  for (i = 0; s[i] != '\0'; i++) {
-    if (s[i] == '\\' || s[i] == ')' || s[i] == '(') {
-      new_s[j++] = '\\';
-    }
-    new_s[j++] = s[i];
-  }
-  return new_s;
-}
-
-old_unprintable_text(s, new_s)
-char *s, *new_s;
-{
-  int i, j;
-
-  j=0;
-  for (i = 0; s[i] != '\0'; i++) {
-    if (s[i] == '\\') {
-      new_s[j++] = s[++i];
-      if (s[i] == '\0') return;
-    } else {
-      new_s[j++] = s[i];
-    }
-  }
-  new_s[j] = '\0';
-  return;
-}
-
-char *getlabel()
-{
-  char c;
-  int i;
-
-  if (getnew == 0) return CNULL;
-  
-  c = gettokenchar();
-  if (c == EOF) {
-    ungettokenchar();
-    return CNULL;
-  }
-  i = 0;
-  for (c = gettokenchar(); c != EOF && c != '\n';  c = gettokenchar()) {
-    INPUT[i++] = c;
-  }
-  ungettokenchar();
-  INPUT[i] = '\0';
-  return new_printable_text(INPUT);
-}
-
-rejecttoken()
-{
-  getnew = 0;
-}
-
End of token.c

exit 0 # Just in case...
-- 
Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
Sterling Software, IMD           UUCP:     uunet!sparky!kent
Phone:    (402) 291-8300         FAX:      (402) 291-4362
Please send comp.sources.misc-related mail to kent@uunet.uu.net.