ftp.nice.ch/pub/next/science/mathematics/workbench/Histogram.s.tar.gz#/Histogram/drawHistogram.c

This is drawHistogram.c in view mode; [Download] [Up]

/* drawHistogram.c generated from drawHistogram.psw
   by unix pswrap V1.009  Wed Apr 19 17:50:24 PDT 1989
 */

#include <dpsclient/dpsfriends.h>
#include <string.h>

#line 1 "drawHistogram.psw"
// By Judy D. Halchin, Educational Computing Services, Allegheny College.
// You may freely copy, distribute and reuse this code. 
// Allegheny College and the author disclaim any warranty of any kind, 
// expressed or implied, as to its fitness for any particular use.
// This work was partially supported by a Teacher Preparation grant from the 
// National Science Foundation.
#line 16 "drawHistogram.c"
void drawAxes(float width, float height, float leftMargin, float bottomMargin, float axisWidth, float axisHeight)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjReal obj7;
    DPSBinObjReal obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjReal obj14;
    DPSBinObjReal obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjReal obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjReal obj20;
    DPSBinObjReal obj21;
    DPSBinObjGeneric obj22;
    DPSBinObjGeneric obj23;
    DPSBinObjReal obj24;
    DPSBinObjGeneric obj25;
    DPSBinObjGeneric obj26;
    DPSBinObjGeneric obj27;
    char obj28[8];
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 28, 236,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, 8, 224},	/* setalpha */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: width */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: height */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 128},	/* rectfill */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: leftMargin */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: bottomMargin */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: axisWidth */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: leftMargin */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: bottomMargin */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: axisHeight */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {'s','e','t','a','l','p','h','a'},
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[7].val.realVal = width;
  _dpsP[8].val.realVal = height;
  _dpsP[14].val.realVal =
  _dpsP[20].val.realVal = leftMargin;
  _dpsP[15].val.realVal =
  _dpsP[21].val.realVal = bottomMargin;
  _dpsP[17].val.realVal = axisWidth;
  _dpsP[24].val.realVal = axisHeight;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,236);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 30 "drawHistogram.psw"

#line 105 "drawHistogram.c"
void drawHistogram(float leftMargin, float bottomMargin, float spacer, float axisWidth, int numBars, float barWidth, const float freqHeights[])
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjReal obj1;
    DPSBinObjReal obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjReal obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjReal obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjGeneric obj20;
    DPSBinObjGeneric obj21;
    DPSBinObjGeneric obj22;
    DPSBinObjReal obj23;
    DPSBinObjReal obj24;
    DPSBinObjGeneric obj25;
    DPSBinObjReal obj26;
    DPSBinObjGeneric obj27;
    DPSBinObjGeneric obj28;
    DPSBinObjGeneric obj29;
    DPSBinObjGeneric obj30;
    DPSBinObjGeneric obj31;
    DPSBinObjGeneric obj32;
    DPSBinObjGeneric obj33;
    DPSBinObjGeneric obj34;
    DPSBinObjGeneric obj35;
    DPSBinObjGeneric obj36;
    DPSBinObjGeneric obj37;
    DPSBinObjReal obj38;
    DPSBinObjGeneric obj39;
    DPSBinObjGeneric obj40;
    DPSBinObjGeneric obj41;
    DPSBinObjGeneric obj42;
    DPSBinObjGeneric obj43;
    DPSBinObjGeneric obj44;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 31, 364,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: leftMargin */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: spacer */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 1},	/* add */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: bottomMargin */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},	/* param: numBars */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_ARRAY, 0, 14, 248},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 72},	/* for */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0.666},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 66},	/* fill */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: leftMargin */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: bottomMargin */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: axisWidth */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 360},	/* param[var]: freqHeights */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: barWidth */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 110},	/* neg */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 360;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[1].val.realVal =
  _dpsP[23].val.realVal = leftMargin;
  _dpsP[4].val.realVal =
  _dpsP[24].val.realVal = bottomMargin;
  _dpsP[2].val.realVal = spacer;
  _dpsP[26].val.realVal = axisWidth;
  _dpsP[8].val.integerVal = numBars;
  _dpsP[38].val.realVal = barWidth;
  _dpsP[31].length = numBars;
  _dpsP[31].val.arrayVal = _dps_offset;
  _dps_offset += numBars * sizeof(DPSBinObjGeneric);

  _dpsF.nBytes = _dps_offset+4;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,364);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)freqHeights, numBars);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 62 "drawHistogram.psw"

#line 233 "drawHistogram.c"
void drawFilledBarChart(float leftMargin, float bottomMargin, float spacer, float axisWidth, int numBars, float barWidth, const float freqHeights[])
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjReal obj1;
    DPSBinObjReal obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjReal obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjReal obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjGeneric obj20;
    DPSBinObjGeneric obj21;
    DPSBinObjGeneric obj22;
    DPSBinObjReal obj23;
    DPSBinObjReal obj24;
    DPSBinObjGeneric obj25;
    DPSBinObjReal obj26;
    DPSBinObjGeneric obj27;
    DPSBinObjGeneric obj28;
    DPSBinObjGeneric obj29;
    DPSBinObjGeneric obj30;
    DPSBinObjGeneric obj31;
    DPSBinObjGeneric obj32;
    DPSBinObjGeneric obj33;
    DPSBinObjGeneric obj34;
    DPSBinObjGeneric obj35;
    DPSBinObjGeneric obj36;
    DPSBinObjGeneric obj37;
    DPSBinObjReal obj38;
    DPSBinObjGeneric obj39;
    DPSBinObjGeneric obj40;
    DPSBinObjGeneric obj41;
    DPSBinObjGeneric obj42;
    DPSBinObjGeneric obj43;
    DPSBinObjGeneric obj44;
    DPSBinObjReal obj45;
    DPSBinObjGeneric obj46;
    DPSBinObjGeneric obj47;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 31, 388,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: leftMargin */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: spacer */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 1},	/* add */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: bottomMargin */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},	/* param: numBars */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_ARRAY, 0, 17, 248},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 72},	/* for */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0.666},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 66},	/* fill */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: leftMargin */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: bottomMargin */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: axisWidth */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 384},	/* param[var]: freqHeights */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: barWidth */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 110},	/* neg */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: spacer */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 134},	/* rmoveto */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 384;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[1].val.realVal =
  _dpsP[23].val.realVal = leftMargin;
  _dpsP[4].val.realVal =
  _dpsP[24].val.realVal = bottomMargin;
  _dpsP[2].val.realVal =
  _dpsP[45].val.realVal = spacer;
  _dpsP[26].val.realVal = axisWidth;
  _dpsP[8].val.integerVal = numBars;
  _dpsP[38].val.realVal = barWidth;
  _dpsP[31].length = numBars;
  _dpsP[31].val.arrayVal = _dps_offset;
  _dps_offset += numBars * sizeof(DPSBinObjGeneric);

  _dpsF.nBytes = _dps_offset+4;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,388);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)freqHeights, numBars);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 98 "drawHistogram.psw"

#line 368 "drawHistogram.c"
void drawSolidBarChart(float leftMargin, float bottomMargin, float spacer, float axisWidth, int numBars, float barWidth, const float freqHeights[])
{
  typedef struct {
    unsigned char tokenType;
    unsigned char topLevelCount;
    unsigned short nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjReal obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjReal obj3;
    DPSBinObjReal obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjReal obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjReal obj8;
    DPSBinObjReal obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjGeneric obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjGeneric obj20;
    DPSBinObjGeneric obj21;
    DPSBinObjGeneric obj22;
    DPSBinObjGeneric obj23;
    DPSBinObjGeneric obj24;
    DPSBinObjReal obj25;
    DPSBinObjReal obj26;
    DPSBinObjGeneric obj27;
    DPSBinObjReal obj28;
    DPSBinObjGeneric obj29;
    DPSBinObjGeneric obj30;
    DPSBinObjGeneric obj31;
    DPSBinObjGeneric obj32;
    DPSBinObjGeneric obj33;
    DPSBinObjGeneric obj34;
    DPSBinObjGeneric obj35;
    DPSBinObjGeneric obj36;
    DPSBinObjGeneric obj37;
    DPSBinObjGeneric obj38;
    DPSBinObjGeneric obj39;
    DPSBinObjGeneric obj40;
    DPSBinObjReal obj41;
    DPSBinObjReal obj42;
    DPSBinObjGeneric obj43;
    DPSBinObjGeneric obj44;
    DPSBinObjGeneric obj45;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 33, 372,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: barWidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: leftMargin */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: spacer */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 1},	/* add */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: bottomMargin */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: barWidth */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0.5},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 108},	/* mul */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 134},	/* rmoveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},	/* param: numBars */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_ARRAY, 0, 13, 264},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 72},	/* for */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 155},	/* setlinewidth */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: leftMargin */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: bottomMargin */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: axisWidth */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 368},	/* param[var]: freqHeights */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 110},	/* neg */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: spacer */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: barWidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 1},	/* add */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 134},	/* rmoveto */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 368;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[3].val.realVal =
  _dpsP[25].val.realVal = leftMargin;
  _dpsP[6].val.realVal =
  _dpsP[26].val.realVal = bottomMargin;
  _dpsP[4].val.realVal =
  _dpsP[41].val.realVal = spacer;
  _dpsP[28].val.realVal = axisWidth;
  _dpsP[15].val.integerVal = numBars;
  _dpsP[1].val.realVal =
  _dpsP[8].val.realVal =
  _dpsP[42].val.realVal = barWidth;
  _dpsP[33].length = numBars;
  _dpsP[33].val.arrayVal = _dps_offset;
  _dps_offset += numBars * sizeof(DPSBinObjGeneric);

  _dpsF.nBytes = _dps_offset+4;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,372);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)freqHeights, numBars);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 133 "drawHistogram.psw"

#line 501 "drawHistogram.c"
void drawVertTicks(int numTicks, const float ticks[], float labelPosition, float tickPosition, const char *label1, const char *label2, const char *label3, const char *label4, const char *label5)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char sizeFlag;
    unsigned short topLevelCount;
    unsigned long nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjGeneric obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjReal obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjGeneric obj20;
    DPSBinObjGeneric obj21;
    DPSBinObjGeneric obj22;
    DPSBinObjGeneric obj23;
    DPSBinObjGeneric obj24;
    DPSBinObjGeneric obj25;
    DPSBinObjGeneric obj26;
    DPSBinObjReal obj27;
    DPSBinObjGeneric obj28;
    DPSBinObjGeneric obj29;
    DPSBinObjGeneric obj30;
    DPSBinObjGeneric obj31;
    DPSBinObjGeneric obj32;
    DPSBinObjGeneric obj33;
    DPSBinObjGeneric obj34;
    DPSBinObjGeneric obj35;
    DPSBinObjGeneric obj36;
    DPSBinObjGeneric obj37;
    DPSBinObjGeneric obj38;
    DPSBinObjGeneric obj39;
    DPSBinObjGeneric obj40;
    DPSBinObjGeneric obj41;
    DPSBinObjGeneric obj42;
    DPSBinObjGeneric obj43;
    DPSBinObjGeneric obj44;
    DPSBinObjGeneric obj45;
    DPSBinObjGeneric obj46;
    DPSBinObjGeneric obj47;
    DPSBinObjGeneric obj48;
    DPSBinObjGeneric obj49;
    DPSBinObjGeneric obj50;
    DPSBinObjGeneric obj51;
    DPSBinObjGeneric obj52;
    DPSBinObjGeneric obj53;
    DPSBinObjGeneric obj54;
    DPSBinObjGeneric obj55;
    DPSBinObjGeneric obj56;
    DPSBinObjGeneric obj57;
    DPSBinObjGeneric obj58;
    DPSBinObjGeneric obj59;
    DPSBinObjGeneric obj60;
    DPSBinObjReal obj61;
    DPSBinObjGeneric obj62;
    DPSBinObjGeneric obj63;
    DPSBinObjGeneric obj64;
    DPSBinObjGeneric obj65;
    DPSBinObjGeneric obj66;
    DPSBinObjGeneric obj67;
    DPSBinObjGeneric obj68;
    DPSBinObjGeneric obj69;
    DPSBinObjGeneric obj70;
    DPSBinObjGeneric obj71;
    DPSBinObjReal obj72;
    DPSBinObjGeneric obj73;
    DPSBinObjGeneric obj74;
    DPSBinObjGeneric obj75;
    DPSBinObjGeneric obj76;
    DPSBinObjGeneric obj77;
    DPSBinObjGeneric obj78;
    DPSBinObjGeneric obj79;
    DPSBinObjGeneric obj80;
    DPSBinObjGeneric obj81;
    DPSBinObjGeneric obj82;
    DPSBinObjGeneric obj83;
    DPSBinObjReal obj84;
    DPSBinObjGeneric obj85;
    DPSBinObjGeneric obj86;
    DPSBinObjGeneric obj87;
    DPSBinObjGeneric obj88;
    DPSBinObjGeneric obj89;
    DPSBinObjGeneric obj90;
    DPSBinObjGeneric obj91;
    DPSBinObjGeneric obj92;
    DPSBinObjGeneric obj93;
    DPSBinObjGeneric obj94;
    DPSBinObjReal obj95;
    DPSBinObjGeneric obj96;
    DPSBinObjGeneric obj97;
    DPSBinObjGeneric obj98;
    DPSBinObjGeneric obj99;
    DPSBinObjGeneric obj100;
    DPSBinObjGeneric obj101;
    DPSBinObjGeneric obj102;
    DPSBinObjGeneric obj103;
    DPSBinObjGeneric obj104;
    DPSBinObjGeneric obj105;
    DPSBinObjGeneric obj106;
    DPSBinObjReal obj107;
    DPSBinObjGeneric obj108;
    DPSBinObjGeneric obj109;
    DPSBinObjGeneric obj110;
    DPSBinObjGeneric obj111;
    DPSBinObjGeneric obj112;
    DPSBinObjGeneric obj113;
    DPSBinObjGeneric obj114;
    DPSBinObjGeneric obj115;
    DPSBinObjGeneric obj116;
    DPSBinObjGeneric obj117;
    DPSBinObjReal obj118;
    DPSBinObjGeneric obj119;
    DPSBinObjGeneric obj120;
    DPSBinObjGeneric obj121;
    DPSBinObjGeneric obj122;
    DPSBinObjGeneric obj123;
    DPSBinObjGeneric obj124;
    DPSBinObjGeneric obj125;
    DPSBinObjGeneric obj126;
    DPSBinObjGeneric obj127;
    DPSBinObjGeneric obj128;
    DPSBinObjGeneric obj129;
    DPSBinObjReal obj130;
    DPSBinObjGeneric obj131;
    DPSBinObjGeneric obj132;
    DPSBinObjGeneric obj133;
    DPSBinObjGeneric obj134;
    DPSBinObjGeneric obj135;
    DPSBinObjGeneric obj136;
    DPSBinObjGeneric obj137;
    DPSBinObjGeneric obj138;
    DPSBinObjGeneric obj139;
    DPSBinObjGeneric obj140;
    DPSBinObjReal obj141;
    DPSBinObjGeneric obj142;
    DPSBinObjGeneric obj143;
    DPSBinObjGeneric obj144;
    DPSBinObjGeneric obj145;
    DPSBinObjGeneric obj146;
    } _dpsQ;

  typedef struct {
    char obj147[8];
    } _dpsQ1;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 0, 55, 1192,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_NAME, 0, DPSSYSNAME, 203},	/* Helvetica */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 67},	/* findfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 10},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 140},	/* scalefont */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 149},	/* setfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, 8, 1176},	/* setalpha */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 1176},	/* param[var]: ticks */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: labelPosition */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label1 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label1 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: tickPosition */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 6},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},	/* param: numTicks */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 80},	/* gt */
    {DPS_EXEC|DPS_ARRAY, 0, 23, 992},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 84},	/* if */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},	/* param: numTicks */
    {DPS_LITERAL|DPS_INT, 0, 0, 2},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 80},	/* gt */
    {DPS_EXEC|DPS_ARRAY, 0, 23, 808},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 84},	/* if */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},	/* param: numTicks */
    {DPS_LITERAL|DPS_INT, 0, 0, 3},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 80},	/* gt */
    {DPS_EXEC|DPS_ARRAY, 0, 23, 624},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 84},	/* if */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},	/* param: numTicks */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 80},	/* gt */
    {DPS_EXEC|DPS_ARRAY, 0, 23, 440},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 84},	/* if */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 167},	/* stroke */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 1176},	/* param[var]: ticks */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: labelPosition */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label5 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label5 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: tickPosition */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 6},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 1176},	/* param[var]: ticks */
    {DPS_LITERAL|DPS_INT, 0, 0, 3},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: labelPosition */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label4 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label4 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: tickPosition */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 6},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 1176},	/* param[var]: ticks */
    {DPS_LITERAL|DPS_INT, 0, 0, 2},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: labelPosition */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label3 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label3 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: tickPosition */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 6},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    {DPS_LITERAL|DPS_ARRAY, 0, 0, 1176},	/* param[var]: ticks */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 75},	/* get */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 56},	/* dup */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: labelPosition */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label2 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_INT, 0, 0, 4},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 1184},	/* param label2 */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: tickPosition */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 62},	/* exch */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_INT, 0, 0, 6},
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 133},	/* rlineto */
    }; /* _dpsQ */
  static const _dpsQ1 _dpsF1 = {
    {'s','e','t','a','l','p','h','a'},
    }; /* _dpsQ1 */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 1176;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[33].val.integerVal =
  _dpsP[38].val.integerVal =
  _dpsP[43].val.integerVal =
  _dpsP[48].val.integerVal = numTicks;
  _dpsP[10].length =
  _dpsP[124].length =
  _dpsP[101].length =
  _dpsP[78].length =
  _dpsP[55].length = numTicks;
  _dpsP[16].val.realVal =
  _dpsP[130].val.realVal =
  _dpsP[107].val.realVal =
  _dpsP[84].val.realVal =
  _dpsP[61].val.realVal = labelPosition;
  _dpsP[27].val.realVal =
  _dpsP[141].val.realVal =
  _dpsP[118].val.realVal =
  _dpsP[95].val.realVal =
  _dpsP[72].val.realVal = tickPosition;
  _dpsP[17].length =
  _dpsP[25].length = strlen(label1);
  _dpsP[131].length =
  _dpsP[139].length = strlen(label2);
  _dpsP[108].length =
  _dpsP[116].length = strlen(label3);
  _dpsP[85].length =
  _dpsP[93].length = strlen(label4);
  _dpsP[62].length =
  _dpsP[70].length = strlen(label5);
  _dpsP[124].val.arrayVal = _dps_offset;
  _dps_offset += numTicks * sizeof(DPSBinObjGeneric);
  _dpsP[101].val.arrayVal = _dps_offset;
  _dps_offset += numTicks * sizeof(DPSBinObjGeneric);
  _dpsP[78].val.arrayVal = _dps_offset;
  _dps_offset += numTicks * sizeof(DPSBinObjGeneric);
  _dpsP[55].val.arrayVal = _dps_offset;
  _dps_offset += numTicks * sizeof(DPSBinObjGeneric);
  _dpsP[10].val.arrayVal = _dps_offset;
  _dps_offset += numTicks * sizeof(DPSBinObjGeneric);
  _dpsP[139].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[139].length + 3) & ~3;
  _dpsP[131].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[131].length + 3) & ~3;
  _dpsP[116].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[116].length + 3) & ~3;
  _dpsP[108].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[108].length + 3) & ~3;
  _dpsP[93].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[93].length + 3) & ~3;
  _dpsP[85].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[85].length + 3) & ~3;
  _dpsP[70].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[70].length + 3) & ~3;
  _dpsP[62].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[62].length + 3) & ~3;
  _dpsP[25].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[25].length + 3) & ~3;
  _dpsP[17].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[17].length + 3) & ~3;
  _dpsP[9].val.stringVal = _dps_offset;
  _dps_offset += 8;

  _dpsF.nBytes = _dps_offset+8;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,1184);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)ticks, numTicks);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)ticks, numTicks);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)ticks, numTicks);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)ticks, numTicks);
  DPSWriteTypedObjectArray(_dpsCurCtxt, dps_tFloat, (char *)ticks, numTicks);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label2, _dpsP[139].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[139].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label2, _dpsP[131].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[131].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label3, _dpsP[116].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[116].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label3, _dpsP[108].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[108].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label4, _dpsP[93].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[93].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label4, _dpsP[85].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[85].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label5, _dpsP[70].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[70].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label5, _dpsP[62].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[62].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label1, _dpsP[25].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[25].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label1, _dpsP[17].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[17].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt,(char *) &_dpsF1,8);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 202 "drawHistogram.psw"

#line 916 "drawHistogram.c"
void drawHorizLabel(float barMidPoint, float height, const char *label)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char sizeFlag;
    unsigned short topLevelCount;
    unsigned long nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjReal obj10;
    DPSBinObjReal obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjGeneric obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjReal obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjGeneric obj20;
    DPSBinObjGeneric obj21;
    DPSBinObjGeneric obj22;
    char obj23[8];
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 0, 23, 200,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_NAME, 0, DPSSYSNAME, 203},	/* Helvetica */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 67},	/* findfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 10},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 140},	/* scalefont */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 149},	/* setfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, 8, 184},	/* setalpha */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: barMidPoint */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: height */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 192},	/* param label */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_REAL, 0, 0, -0.5},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 108},	/* mul */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 134},	/* rmoveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 192},	/* param label */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {'s','e','t','a','l','p','h','a'},
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 192;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[10].val.realVal = barMidPoint;
  _dpsP[11].val.realVal = height;
  _dpsP[13].length =
  _dpsP[20].length = strlen(label);
  _dpsP[20].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[20].length + 3) & ~3;
  _dpsP[13].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[13].length + 3) & ~3;

  _dpsF.nBytes = _dps_offset+8;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,200);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label, _dpsP[20].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[20].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label, _dpsP[13].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[13].length + 3) & 3);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 222 "drawHistogram.psw"

#line 1003 "drawHistogram.c"
void drawVertLabel(float barMidPoint, float height, const char *label)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char sizeFlag;
    unsigned short topLevelCount;
    unsigned long nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjReal obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjReal obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjGeneric obj20;
    char obj21[8];
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 0, 21, 184,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_NAME, 0, DPSSYSNAME, 203},	/* Helvetica */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 67},	/* findfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 10},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 140},	/* scalefont */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 149},	/* setfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, 8, 168},	/* setalpha */
    {DPS_LITERAL|DPS_INT, 0, 0, -90},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 136},	/* rotate */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: height */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 110},	/* neg */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: barMidPoint */
    {DPS_LITERAL|DPS_INT, 0, 0, 5},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 176},	/* param label */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {'s','e','t','a','l','p','h','a'},
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 176;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[14].val.realVal = barMidPoint;
  _dpsP[12].val.realVal = height;
  _dpsP[18].length = strlen(label);
  _dpsP[18].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[18].length + 3) & ~3;

  _dpsF.nBytes = _dps_offset+8;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,184);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label, _dpsP[18].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[18].length + 3) & 3);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 242 "drawHistogram.psw"

#line 1081 "drawHistogram.c"
void findLabelWidth(const char *label, float *labelWidth)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char sizeFlag;
    unsigned short topLevelCount;
    unsigned long nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjGeneric obj14;
    DPSBinObjGeneric obj15;
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 0, 16, 136,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_NAME, 0, DPSSYSNAME, 203},	/* Helvetica */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 67},	/* findfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 10},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 140},	/* scalefont */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 149},	/* setfont */
    {DPS_LITERAL|DPS_STRING, 0, 0, 128},	/* param label */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 119},	/* printobject */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 119},	/* printobject */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 70},	/* flush */
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 128;
  DPSResultsRec _dpsR[1];
  static const DPSResultsRec _dpsRstat[] = {
    { dps_tFloat, -1 },
    };
    _dpsR[0] = _dpsRstat[0];
    _dpsR[0].value = (char *)labelWidth;

  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[6].length = strlen(label);
  _dpsP[6].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[6].length + 3) & ~3;

  _dpsF.nBytes = _dps_offset+8;
  DPSSetResultTable(_dpsCurCtxt, _dpsR, 1);
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,136);
  DPSWriteStringChars(_dpsCurCtxt, (char *)label, _dpsP[6].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[6].length + 3) & 3);
  DPSAwaitReturnValues(_dpsCurCtxt);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 256 "drawHistogram.psw"

#line 1154 "drawHistogram.c"
void drawHorizTitle(float height, float center, float fontsize, const char *title)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char sizeFlag;
    unsigned short topLevelCount;
    unsigned long nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjReal obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjReal obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjGeneric obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjGeneric obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjReal obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjGeneric obj19;
    DPSBinObjGeneric obj20;
    DPSBinObjGeneric obj21;
    char obj22[8];
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 0, 22, 192,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_NAME, 0, DPSSYSNAME, 203},	/* Helvetica */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 67},	/* findfont */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: fontsize */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 140},	/* scalefont */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 149},	/* setfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, 8, 176},	/* setalpha */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: center */
    {DPS_LITERAL|DPS_STRING, 0, 0, 184},	/* param title */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_INT, 0, 0, 2},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 54},	/* div */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: height */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 184},	/* param title */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {'s','e','t','a','l','p','h','a'},
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 184;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[17].val.realVal = height;
  _dpsP[10].val.realVal = center;
  _dpsP[3].val.realVal = fontsize;
  _dpsP[11].length =
  _dpsP[19].length = strlen(title);
  _dpsP[19].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[19].length + 3) & ~3;
  _dpsP[11].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[11].length + 3) & ~3;

  _dpsF.nBytes = _dps_offset+8;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,192);
  DPSWriteStringChars(_dpsCurCtxt, (char *)title, _dpsP[19].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[19].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)title, _dpsP[11].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[11].length + 3) & 3);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 274 "drawHistogram.psw"

#line 1240 "drawHistogram.c"
void drawVertTitle(float position, float center, const char *title)
{
  typedef struct {
    unsigned char tokenType;
    unsigned char sizeFlag;
    unsigned short topLevelCount;
    unsigned long nBytes;

    DPSBinObjGeneric obj0;
    DPSBinObjGeneric obj1;
    DPSBinObjGeneric obj2;
    DPSBinObjGeneric obj3;
    DPSBinObjGeneric obj4;
    DPSBinObjGeneric obj5;
    DPSBinObjGeneric obj6;
    DPSBinObjGeneric obj7;
    DPSBinObjGeneric obj8;
    DPSBinObjGeneric obj9;
    DPSBinObjGeneric obj10;
    DPSBinObjGeneric obj11;
    DPSBinObjReal obj12;
    DPSBinObjGeneric obj13;
    DPSBinObjGeneric obj14;
    DPSBinObjGeneric obj15;
    DPSBinObjGeneric obj16;
    DPSBinObjGeneric obj17;
    DPSBinObjGeneric obj18;
    DPSBinObjReal obj19;
    DPSBinObjGeneric obj20;
    DPSBinObjGeneric obj21;
    DPSBinObjGeneric obj22;
    DPSBinObjGeneric obj23;
    DPSBinObjGeneric obj24;
    char obj25[8];
    } _dpsQ;
  static const _dpsQ _dpsStat = {
    DPS_DEF_TOKENTYPE, 0, 25, 216,
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 78},	/* gsave */
    {DPS_LITERAL|DPS_NAME, 0, DPSSYSNAME, 203},	/* Helvetica */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 67},	/* findfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 14},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 140},	/* scalefont */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 149},	/* setfont */
    {DPS_LITERAL|DPS_INT, 0, 0, 0},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 150},	/* setgray */
    {DPS_LITERAL|DPS_INT, 0, 0, 1},
    {DPS_EXEC|DPS_NAME, 0, 8, 200},	/* setalpha */
    {DPS_LITERAL|DPS_INT, 0, 0, 90},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 136},	/* rotate */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: center */
    {DPS_LITERAL|DPS_STRING, 0, 0, 208},	/* param title */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 166},	/* stringwidth */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 117},	/* pop */
    {DPS_LITERAL|DPS_INT, 0, 0, 2},
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 54},	/* div */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 169},	/* sub */
    {DPS_LITERAL|DPS_REAL, 0, 0, 0},	/* param: position */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 110},	/* neg */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 107},	/* moveto */
    {DPS_LITERAL|DPS_STRING, 0, 0, 208},	/* param title */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 160},	/* show */
    {DPS_EXEC|DPS_NAME, 0, DPSSYSNAME, 77},	/* grestore */
    {'s','e','t','a','l','p','h','a'},
    }; /* _dpsQ */
  _dpsQ _dpsF;	/* local copy  */
  register DPSContext _dpsCurCtxt = DPSPrivCurrentContext();
  char pad[3];
  register DPSBinObjRec *_dpsP = (DPSBinObjRec *)&_dpsF.obj0;
  register int _dps_offset = 208;
  _dpsF = _dpsStat;	/* assign automatic variable */

  _dpsP[19].val.realVal = position;
  _dpsP[12].val.realVal = center;
  _dpsP[13].length =
  _dpsP[22].length = strlen(title);
  _dpsP[22].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[22].length + 3) & ~3;
  _dpsP[13].val.stringVal = _dps_offset;
  _dps_offset += (_dpsP[13].length + 3) & ~3;

  _dpsF.nBytes = _dps_offset+8;
  DPSBinObjSeqWrite(_dpsCurCtxt,(char *) &_dpsF,216);
  DPSWriteStringChars(_dpsCurCtxt, (char *)title, _dpsP[22].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[22].length + 3) & 3);
  DPSWriteStringChars(_dpsCurCtxt, (char *)title, _dpsP[13].length);
  DPSWriteStringChars(_dpsCurCtxt, (char *)pad, ~(_dpsP[13].length + 3) & 3);
  if (0) *pad = 0;    /* quiets compiler warnings */
}
#line 295 "drawHistogram.psw"


These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.