OSDN Git Service

Delete questionable files
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Aug 1999 09:26:29 +0000 (09:26 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Aug 1999 09:26:29 +0000 (09:26 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28459 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/g++.old-deja/g++.law/enum5.C [deleted file]
gcc/testsuite/g++.old-deja/g++.law/inline1.C [deleted file]
gcc/testsuite/g++.old-deja/g++.law/inline2.C [deleted file]

diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum5.C b/gcc/testsuite/g++.old-deja/g++.law/enum5.C
deleted file mode 100644 (file)
index 0c8b0dc..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-// Build don't link: 
-// GROUPS passed enums
-// excess errors test - XFAIL *-*-*
-// enum file
-// From: Peter Samuelson <psamuels@osiris.ac.hmc.edu>
-// Date:     Tue, 2 Nov 1993 23:44:34 -0800 (PST)
-// Subject:  compiler error 192
-// Message-ID: <199311030744.XAA23409@osiris.ac.hmc.edu>
-
-#include <iostream.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* My program to generate D&D characters
-*  10/25/93
-*/
-
-//prototypes
-int rndshift();
-int dice(int times, int sides);
-void initialize(struct Crctr &character);
-void cleararray(char thearray[24]);
-void input(struct Crctr &character);
-void rollscores(struct Crctr &character);
-void output(struct Crctr &character);
-
-int main()
-{
-  enum goopes
-    {
-      cleric, druid, fighter, knight, paladin, avenger, magicuser, thief,
-      dwarf, halfelf, elf, halfling, mystic, ranger, scout, monster,
-      immortal, special
-    };
-
-  enum alignments
-    {
-      lawful, neutral, chaotic
-    };
-
-  struct savingthrows
-    {
-      int psn_dth, wands, petr_paral, breath, rod_staff_spell;
-    };
-
-  struct abilities
-    {
-      int str, ite, wis, dex, con, cha;
-    };
-  struct valuables
-    {
-      char type[16];
-      int value;
-    };
-  struct money
-    {
-      int pp, gp, ep, sp, cp;
-      valuables gems[24], jewelry[24];
-    };
-
-  struct Crctr
-    {
-      Crctr() : goop(fighter) {}
-
-      char dm[24], campaign[24], name[24], player[24];
-      goopes goop;
-      alignments alignment;
-      int level, maxhit, hitpoints, ac;
-      abitities scores;// ERROR - .*
-      savingthrows saves;
-      money wealth;
-      int experience;
-      float bonus;
-    };
-  
-  Crctr character;
-
-  cout << "The D&D Character generator!!" << endl;
-  
-  rndshift();
-
-  initialize(character);// ERROR - .*
-  input(character);
-  rollscores(character);
-  output(character);
-
-  cout << "Thank you for using this program." << endl;
-  cout << "Copyright 1993, Chase Enterprises, Inc." << endl;
-  cout << "D&D and Dungeons and Dragons are registered trademarks" << endl;
-  cout << "of TSR, Inc." << endl;
-} //end of main
-
-
-void initialize(Crctr &character)
-{
-  cleararray(character.dm);
-  cleararray(character.campaign);
-  cleararray(character.name);
-  cleararray(character.player);
-  character.level = 0;
-  character.maxhit = 0;
-  character.hitpoints = 0;
-  character.ac = 9;
-  character.experience = 0;
-  character.bonus = 0.0;
-} //end of initialize
-
-void cleararray(char thearray[])
-{
-  for (int i = 0 ; i < 24 ; i++)
-    thearray[i] = 0;
-} //end of cleararray
-
-void input(Crctr &character)
-{
-  cout << "Please input name of the Dungeon Master." << endl;
-  cin  >> character.dm;
-  cout << endl << "Pleas input the name of the campaign." << endl;
-  cin  >> character.campaign;
-  cout << endl << "Please input the name of the character." << endl;
-  cin  >> character.name;
-  cout << endl << "Please input player name." << endl;
-  cin  >> character.player;
-  cout << endl << "Enter desired goop." << endl;
-  cin  >> character.goop;
-  cout << endl << "Enter desired alignment." << endl;
-} //end of input
-
-void rollscores(Crctr &character)
-{
-  character.scores.str = dice(3,6);
-  character.scores.ite = dice(3,6);
-  character.scores.wis = dice(3,6);
-  character.scores.dex = dice(3,6);
-  character.scores.con = dice(3,6);
-  character.scores.cha = dice(3,6);
-  character.level = 1;
-
-  switch (character.goop)
-    {
-    case fighter:
-    case dwarf:
-    case half-elf:
-      character.maxhit = dice(1,8);
-      character.hitpoints = character.maxhit;
-      break;
-    case cleric:
-    case elf:
-    case halfling:
-    case mystic:
-    case scout:
-      character.maxhit = dice(1,6);
-      character.hitpoints = character.maxhit;
-      break;
-    case magic-user:
-    case thief:
-      character.maxhit = dice(1,4);
-      character.hitpoints = character.maxhit;
-      break;
-    default:
-      character.maxhit = 1;
-      character.hitpoints = character.maxhit;
-      break;
-    }
-} //end of rollscores
-
-
-void output(Crctr &character)
-{
-  cout << "Your character is:" << endl;
-  cout << "Your DM:\t" << character.dm << "\t\t\t" << "Campaign: "
-       << character.campaign << endl;
-  cout << "Player's name:\t" << character.player << endl;
-  cout << "Character Name:\t" << character.name << endl;
-  cout << "goop:\t" << character.goop << "\t\t\t" << "Alignment:\t"
-       << character.alignment << endl;
-  cout << "level:\t" << character.level << endl;
-  cout << "Max. HP:\t" << character.maxhit << "\t\t\t" << "Current HP:\t"
-       << character.hitpoints << endl;
-  cout << "Abilities" << "\t\t\t" << "Saves" << endl;
-  cout << endl;
-  cout << "Str:\t" << character.scores.str << "\t\t" << "Poison/Death Ray:\t"
-       << character.saves.psn_dth << endl;
-  cout << "Int:\t" << character.scores.ite << "\t\t" << "Wands:           \t"
-       << character.saves.wands << endl;
-  cout << "Wis:\t" << character.scores.wis << "\t\t" << "Petrification" 
-       << "/Paralysis" << character.saves.petr_paral << endl;
-
-/*      abitities scores;
-      savingthrows saves;
-      money wealth;
-      int experience;
-      float bonus;
-*/
-}
-
-
-int rndshift()
-{
-//Chase Tsang 10/25/93
-//cheap way to shift the random number generator sequence
-//because I can't change the randomseed
-//requires <stdlib.h> and <iostream.h>
-
-int shiftnumber;
-int date;
-int luckynumber;
-
-cout << "Please input the date in 8 digits, no spaces, no other" << endl;
-cout << "characters. (ex 10041974 for October 4, 1974)" << endl;
-cin >> date;
-cout << "Please input your lucky number for today (7 or less" << endl;
-cout << "digits, and positive integer, please)" << endl;
-cin >> luckynumber;
-
-shiftnumber = date / luckynumber;
-
-for (int i = 0; i < shiftnumber; i++)
-        rand();
-return 0;
-}
-
-
-
-int dice(int times, int sides)
-{
-  //dice rolling function, Chase Tsang 10/25/93
-  //requires #include <stdlib.h>
-
-  int total = 0;
-
-  for (int i = 0; i < times; i++)
-    total = total + (rand() % sides) + 1;
-
-  return total;
-}
diff --git a/gcc/testsuite/g++.old-deja/g++.law/inline1.C b/gcc/testsuite/g++.old-deja/g++.law/inline1.C
deleted file mode 100644 (file)
index 11e8d0a..0000000
+++ /dev/null
@@ -1,3598 +0,0 @@
-// Build don't link: 
-// Special g++ Options: -fno-for-scope
-// GROUPS passed inlining
-# 1 "NISTImages.cc"
-# 1 "Vision.h" 1
-
-
-
-
-
-extern "C" {
-# 1 "/sym/gnu/lib/g++-include/stdio.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#pragma interface
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/_G_config.h" 1 3
-  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 33 "/sym/gnu/lib/g++-include/stdio.h" 2 3
-
-
-extern "C" {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdio.h" 1 3
-
-# 1 "/sym/gnu/lib/g++-include/stdarg.h" 1 3
-extern "C" {
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/va-sparc.h" 1 3
-
-
-
-
-
-
-
-
-typedef char * __gnuc_va_list;
-
-
-
-
-
-
-
-
-# 79 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/va-sparc.h" 3
-
-
-# 32 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 2 3
-
-# 77 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 3
-
-
-
-
-
-
-# 140 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 3
-
-
-
-
-
-# 2 "/sym/gnu/lib/g++-include/stdarg.h" 2 3
-
-}
-# 2 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdio.h" 2 3
-
-
-
-
-
-extern struct  _iobuf {
-       int     _cnt;
-       unsigned char *_ptr;
-       unsigned char *_base;
-       int     _bufsiz;
-       short   _flag;
-       char    _file;           
-} _iob[];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-extern struct _iobuf   *__hide_fopen ();
-extern struct _iobuf   *__hide_fdopen ();
-extern struct _iobuf   *__hide_freopen ();
-extern struct _iobuf   *__hide_popen ();
-extern struct _iobuf   *tmpfile();
-extern long    __hide_ftell ();
-extern char    *fgets();
-extern char    *gets();
-extern char    *__hide_sprintf ();
-extern char    *ctermid();
-extern char    *cuserid();
-extern char    *__hide_tempnam ();
-extern char    *tmpnam();
-
-
-
-
-
-
-# 69 "/sym/gnu/lib/g++-include/stdio.h" 2 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
-
-extern "C" {
-
-int    fclose(struct _iobuf *);
-struct _iobuf *  fdopen(int, const char*);
-int    fflush(struct _iobuf *);
-int    fgetc(struct _iobuf *);
-char*  fgets(char*, int, struct _iobuf  *);
-struct _iobuf *  fopen(const char*, const char*);
-int    fprintf(struct _iobuf *, const char* ...);
-int    fputc(int, struct _iobuf *);
-int    fputs(const char*, struct _iobuf *);
-int   fread(void*, int  , int  , struct _iobuf *);
-
-
-
-struct _iobuf *  freopen(const char*, const char*, struct _iobuf *);
-
-int    fscanf(struct _iobuf *, const char* ...);
-int    fseek(struct _iobuf *, long, int);
-long   ftell(struct _iobuf  *);
-int   fwrite(const void*, int  , int  , struct _iobuf *);
-char*  gets(char*);
-int    getw(struct _iobuf *);
-int    pclose(struct _iobuf *);
-void   perror(const char*);
-struct _iobuf *  popen(const char*, const char*);
-int    printf(const char* ...);
-int    puts(const char*);
-int    putw(int, struct _iobuf *);
-int    rewind(struct _iobuf *);
-int    scanf(const char* ...);
-void   setbuf(struct _iobuf *, char*);
-void   setbuffer(struct _iobuf *, char*, int);
-int    setlinebuf(struct _iobuf *);
-int    setvbuf(struct _iobuf *, char*, int, int  );
-int    sscanf(char*, const char* ...);
-struct _iobuf *  tmpfile();
-int    ungetc(int, struct _iobuf *);
-int    vfprintf (...) ;
-int    vprintf (...) ;
-char*  sprintf (...) ;
-char*  vsprintf (...) ;
-
-extern int _filbuf (...) ;
-extern int _flsbuf (...) ;
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 11 "Vision.h" 2
-
-# 1 "/usr/include/floatingpoint.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-enum fp_direction_type                  
-       {
-       fp_nearest      = 0,
-       fp_tozero       = 1,
-       fp_positive     = 2,
-       fp_negative     = 3
-       } ;
-
-# 34 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3
-
-# 43 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3
-
-
-# 53 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3
-
-enum fp_precision_type          
-       {
-       fp_extended     = 0,
-       fp_single       = 1,
-       fp_double       = 2,
-       fp_precision_3  = 3
-       } ;
-
-
-# 73 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3
-
-enum fp_exception_type          
-       {
-       fp_inexact      = 0,
-       fp_division     = 1,
-       fp_underflow    = 2,
-       fp_overflow     = 3,
-       fp_invalid      = 4
-       } ;
-
-
-enum fp_class_type              
-       {
-       fp_zero         = 0,
-       fp_subnormal    = 1,
-       fp_normal       = 2,
-       fp_infinity     = 3,
-       fp_quiet        = 4,
-       fp_signaling    = 5
-       } ;
-
-
-# 18 "/usr/include/floatingpoint.h" 2 3
-
-
-
-typedef float   single;
-typedef unsigned long extended[3];      
-
-typedef long double quadruple;  
-
-
-
-
-
-
-
-
-typedef unsigned fp_exception_field_type;
-
-
-
-typedef int     sigfpe_code_type;       
-
-typedef void    (*sigfpe_handler_type) ();
-
-
-
-
-
-
-extern enum fp_direction_type fp_direction;
-
-
-
-extern enum fp_precision_type fp_precision;
-
-
-
-extern fp_exception_field_type fp_accrued_exceptions;
-
-
-
-
-
-
-
-
-typedef char    decimal_string[512 ];
-
-typedef struct {
-       enum fp_class_type fpclass;
-       int             sign;
-       int             exponent;
-       decimal_string  ds;      
-
-
-       int             more;    
-
-
-       int             ndigits; 
-
-
-}
-                decimal_record;
-
-enum decimal_form {
-       fixed_form,              
-
-
-
-       floating_form            
-
-};
-
-typedef struct {
-       enum fp_direction_type rd;
-        
-       enum decimal_form df;    
-       int             ndigits; 
-}
-                decimal_mode;
-
-enum decimal_string_form {      
-       invalid_form,            
-       whitespace_form,         
-       fixed_int_form,          
-       fixed_intdot_form,       
-       fixed_dotfrac_form,      
-       fixed_intdotfrac_form,   
-       floating_int_form,       
-       floating_intdot_form,    
-       floating_dotfrac_form,   
-       floating_intdotfrac_form,        
-       inf_form,                
-       infinity_form,           
-       nan_form,                
-       nanstring_form           
-};
-
-
-extern void     double_to_decimal();
-extern void     quadruple_to_decimal();
-extern char    *econvert();
-extern char    *fconvert();
-extern char    *gconvert();
-extern char    *qeconvert();
-extern char    *qfconvert();
-extern char    *qgconvert();
-
-
-
-
-extern sigfpe_handler_type ieee_handlers[5     ];
-
-
-
-
-
-
-extern sigfpe_handler_type sigfpe();
-
-extern void     single_to_decimal();
-extern void     extended_to_decimal();
-
-extern void     decimal_to_single();
-extern void     decimal_to_double();
-extern void     decimal_to_extended();
-extern void     decimal_to_quadruple();
-
-extern char    *seconvert();
-extern char    *sfconvert();
-extern char    *sgconvert();
-
-extern void     string_to_decimal();
-extern void     file_to_decimal();
-extern void     func_to_decimal();
-
-
-extern double   atof();
-
-
-extern int      errno;
-
-extern double   strtod();
-
-
-# 12 "Vision.h" 2
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/malloc.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-struct mallinfo  {
-       int arena;       
-       int ordblks;     
-       int smblks;      
-       int hblks;       
-       int hblkhd;      
-       int usmblks;     
-       int fsmblks;     
-       int uordblks;    
-       int fordblks;    
-       int keepcost;    
-
-       int mxfast;      
-       int nlblks;      
-       int grain;       
-       int uordbytes;   
-       int allocated;   
-       int treeoverhead;        
-};
-
-typedef void * malloc_t;
-
-extern malloc_t        calloc( );
-extern void    free( );
-extern malloc_t        malloc( );
-extern malloc_t        realloc( );
-extern int             mallopt();
-extern struct mallinfo mallinfo();
-
-
-# 13 "Vision.h" 2
-
-long time(long *);
-int ieee_handler();
-}
-
-# 1 "/sym/gnu/lib/g++-include/std.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/stddef.h" 1 3
-
-
-extern "C" {
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stddef.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 41 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stddef.h" 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef int ptrdiff_t;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef __wchar_t wchar_t;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 7 "/sym/gnu/lib/g++-include/stddef.h" 2 3
-
-
-
-
-}
-
-# 24 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/stdlib.h" 1 3
-
-
-
-
-
-
-
-extern "C" {
-
-int       abs(int);
-
-
-void abort(void);
-
-
-
-
-double    atof(const char*);
-int       atoi(const char*);
-long      atol(const char*);
-
-int       atexit(auto void (*p) (void));
-int       bsearch (const void *, const void *, int  , 
-                   int  , auto int (*ptf)(const void*, const void*));
-void*     calloc(int  , int  );
-void      cfree(void*);
-
-
-void  exit(int);
-
-
-
-
-char*     fcvt(double, int, int*, int*);
-void      free(void*);
-char*     getenv(const char*);
-int       getopt(int, char * const *, const char*);
-int       getpw(int, char*);
-char*     gcvt(double, int, char*);
-char*     ecvt(double, int, int*, int*);
-extern char**   environ;
-
-long      labs(long);
-void*     malloc(int  );
-int      malloc_usable_size(void*);
-int       putenv(const char*);
-extern char*    optarg;
-extern int      opterr;
-extern int      optind;
-void      qsort(void*, int  , int  , auto int (*ptf)(void*,void*));
-int       rand(void);
-void*     realloc(void*, int  );
-int       setkey(const char*);
-int       srand(unsigned int);
-double    strtod(const char*, char**);
-long      strtol(const char*, char**, int);
-unsigned long stroul(const char**, int);
-int       system(const char*);
-
-long      random(void);
-void      srandom(int);
-char*     setstate(char*);
-char*     initstate(unsigned, char*, int);
-
-double    drand48(void);
-void      lcong48(short*);
-long      jrand48(short*);
-long      lrand48(void);
-long      mrand48(void);
-long      nrand48(short*);
-short*    seed48(short*);
-void      srand48(long);
-
-char*     ctermid(char*);
-char*     cuserid(char*);
-char*     tempnam(const char*, const char*);
-char*     tmpnam(char*);
-
-}
-
-# 25 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/string.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-extern "C" {
-
-char*     strcat(char*, const char*);
-char*     strchr(const char*, int);
-int       strcmp(const char*, const char*);
-int       strcoll(const char*, const char*);
-char*     strcpy(char*, const char*);
-int      strcspn(const char*, const char*);
-char*     strdup(const char*);
-char*     strncat(char*, const char*, int  );
-int       strncmp(const char*, const char*, int  );
-char*     strncpy(char*, const char*, int  );
-char*     strpbrk(const char*, const char*);
-char*     strrchr(const char*, int);
-int      strspn(const char*, const char*);
-char*     strstr(const char*, const char *);
-char*     strtok(char*, const char*);
-int      strxfrm(char*, const char*, int  );
-
-char*     index(const char*, int);
-char*     rindex(const char*, int);
-}
-
-# 1 "/sym/gnu/lib/g++-include/memory.h" 1 3
-
-
-
-
-
-
-
-extern "C" {
-
-void*     memalign (...) ;
-void*     memccpy (...) ;
-void*     memchr (...) ;
-int       memcmp (...) ;
-void*     memcpy (...) ;
-void*     memmove (...) ;
-void*     memset (...) ;
-int       ffs (...) ;
-int     getpagesize (...) ;
-void*     valloc (...) ;
-
-void      bcopy (...) ;
-int       bcmp (...) ;
-void      bzero (...) ;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 43 "/sym/gnu/lib/g++-include/string.h" 2 3
-
-
-
-# 26 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-
-# 1 "/sym/gnu/lib/g++-include/unistd.h" 1 3
-
-
-
-
-
-extern "C" {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/unistd.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/sys/types.h" 1 3
-
-
-extern "C"
-{
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/stdtypes.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-typedef        int             sigset_t;        
-
-typedef        unsigned int    speed_t;         
-typedef        unsigned long   tcflag_t;        
-typedef        unsigned char   cc_t;            
-typedef        int             pid_t;           
-
-typedef        unsigned short  mode_t;          
-typedef        short           nlink_t;         
-
-typedef        long            clock_t;         
-typedef        long            time_t;          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 16 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 2 3
-
-
-
-# 1 "/usr/include/sys/sysmacros.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 19 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 2 3
-
-
-
-
-
-typedef        unsigned char   u_char;
-typedef        unsigned short  u_short;
-typedef        unsigned int    u_int;
-typedef        unsigned long   u_long;
-typedef        unsigned short  ushort;          
-typedef        unsigned int    uint;            
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef        struct  _physadr_t { int r[1]; } *physadr_t;
-typedef        struct label_t {
-       int     val[2];
-} label_t;
-
-
-
-
-
-
-
-typedef        struct  _quad_t { long val[2]; } quad_t;
-typedef        long    daddr_t;
-typedef        char *  caddr_t;
-typedef        unsigned long   ino_t;
-typedef        short   dev_t;
-typedef        long    off_t;
-typedef        unsigned short  uid_t;
-typedef        unsigned short  gid_t;
-typedef        long    key_t;
-typedef        char *  addr_t;
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef        long    fd_mask;
-
-
-
-
-
-
-
-
-
-typedef        struct fd_set {
-       fd_mask fds_bits[(((256 )+(( (sizeof (fd_mask) * 8              )       )-1))/( (sizeof (fd_mask) * 8           )       )) ];
-} fd_set;
-
-
-
-
-
-
-
-# 113 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 3
-
-
-
-# 15 "/sym/gnu/lib/g++-include/sys/types.h" 2 3
-
-
-
-
-
-
-}
-
-
-
-
-# 73 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/unistd.h" 2 3
-
-
-extern int     access( );
-extern unsigned        alarm( );
-extern int     chdir( );
-extern int     __hide_chmod ( );
-extern int     __hide_chown ( );
-extern int     close( );
-extern char    *ctermid( );
-extern char    *cuserid( );
-extern int     dup( );
-extern int     dup2( );
-extern int     __hide_execl ( );
-extern int     __hide_execle ( );
-extern int     __hide_execlp ( );
-extern int     execv( );
-extern int     execve( );
-extern int     execvp( );
-extern pid_t   fork( );
-extern long    fpathconf( );
-extern char    *getcwd( );
-extern gid_t   getegid( );
-extern uid_t   geteuid( );
-extern gid_t   getgid( );
-extern int     getgroups( );
-extern char    *getlogin( );
-extern pid_t   getpgrp( );
-extern pid_t   getpid( );
-extern pid_t   getppid( );
-extern uid_t   getuid( );
-extern int     isatty( );
-extern int     link( );
-extern off_t   lseek( );
-extern long    pathconf( );
-extern int     pause( );
-extern int     pipe( );
-extern int     read( );
-extern int     rmdir( );
-extern int     __hide_setgid ( );
-extern int     setpgid( );
-extern pid_t   setsid( );
-extern int     __hide_setuid ( );
-extern unsigned        sleep( );
-extern long    sysconf( );
-extern pid_t   tcgetpgrp( );
-extern int     tcsetpgrp( );
-extern char    *ttyname( );
-extern int     unlink( );
-extern int     write( );
-
-
-
-# 25 "/sym/gnu/lib/g++-include/unistd.h" 2 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 59 "/sym/gnu/lib/g++-include/unistd.h" 3
-
-
-
-extern void  _exit(int);
-
-
-
-
-extern unsigned alarm (...) ;
-extern int      brk (...) ;
-extern int      chdir (...) ;
-extern int      chmod  (...) ;
-extern int      chown (const char*, unsigned short , unsigned short );
-extern int      close (...) ;
-extern char*    crypt (...) ;
-extern int      dup (...) ;
-extern int      dup2 (...) ;
-extern void    encrypt (...) ;
-extern int      execl (const char*, const char *, ...);
-extern int      execle (const char*, const char *, ...);
-extern int      execlp (const char*, const char*, ...);
-extern int      exect (...) ;
-extern int      execv (...) ;
-extern int      execve (...) ;
-extern int      execvp (...) ;
-extern int      fchown (int, unsigned short , unsigned short );
-extern int  fork (...) ;
-extern int      fsync (...) ;
-extern int      ftruncate (...) ;
-extern char*    getcwd (...) ;
-extern int      getdomainname (...) ;
-extern int      getdtablesize (...) ;
-extern int      getgroups (...) ;
-extern unsigned short  geteuid (...) ;
-extern unsigned short  getegid (...) ;
-extern unsigned short  getgid (...) ;
-extern long     gethostid (...) ;
-extern int      gethostname (...) ;
-extern int  getpgrp (...) ;
-extern int  getpid (...) ;
-extern int  getppid (...) ;
-extern char*    getlogin (...) ;
-extern char*    getpass (...) ;
-extern unsigned short  getuid (...) ;
-extern int      ioctl (int, int, ... );
-extern int      isatty (...) ;
-extern int      link (...) ;
-extern int      mkstemp (...) ;
-extern char*    mktemp (...) ;
-extern int      nice (...) ;
-extern int      pause (...) ;
-extern int      pipe (...) ;
-extern int      readlink (...) ;
-extern int      rename (...) ;
-extern int      rmdir (...) ; 
-extern void*    sbrk (...) ; 
-extern int      syscall (...) ;
-extern int      setgid (unsigned short );
-extern int      sethostname (...) ;
-
-
-
-
-extern int  setpgrp (...) ;
-
-extern int      setregid (...) ;
-extern int      setreuid (...) ;
-extern int      setuid (unsigned short );
-extern unsigned sleep (...) ;
-extern void     swab (...) ;
-extern int      symlink (...) ;
-extern long     sysconf (...) ;
-extern int      truncate (...) ;
-extern char*    ttyname (...) ;
-extern int      ttyslot (...) ;
-extern int      unlink (...) ;
-extern int  vfork (...) ;
-extern int      vadvise (...) ;
-extern int      vhangup (...) ;
-extern long  lseek (...) ;
-extern int  read (...) ;
-extern int  write (...) ;
-extern int      access (...) ;
-
-extern int      flock (...) ;
-
-
-}
-
-
-# 28 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/stdio.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 174 "/sym/gnu/lib/g++-include/stdio.h" 3
-
-# 29 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/errno.h" 1 3
-
-
-extern "C" {
-
-
-
-
-
-# 1 "/usr/include/errno.h" 1 3
-
-
-
-
-
-
-
-# 1 "/usr/include/sys/errno.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-        
-
-
-
-
-
-
-
-
-
-
-
-
-
-        
-
-
-
-
-
-
-
-
-
-
-
-
-
-        
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 10 "/usr/include/errno.h" 2 3
-
-extern int errno;
-
-
-# 9 "/sym/gnu/lib/g++-include/errno.h" 2 3
-
-
-
-
-extern char*    sys_errlist[];
-extern int      sys_nerr;
-
-extern int      errno;
-
-void      perror(const char*);
-char*     strerr(int);
-
-
-}
-
-
-# 30 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/fcntl.h" 1 3
-
-
-extern "C" {
-
-
-
-
-
-
-
-
-
-
-# 1 "/usr/include/fcntl.h" 1 3
-
-
-
-
-# 1 "/usr/include/sys/fcntlcom.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-struct flock {
-       short   l_type;          
-       short   l_whence;        
-       long    l_start;         
-       long    l_len;           
-       short   l_pid;           
-       short   l_xxx;           
-};
-
-
-struct eflock {
-       short   l_type;          
-       short   l_whence;        
-       long    l_start;         
-       long    l_len;           
-       short   l_pid;           
-       short   l_xxx;           
-       long    l_rpid;          
-       long    l_rsys;          
-};
-
-
-
-# 1 "/sym/gnu/lib/g++-include/sys/stat.h" 1 3
-
-
-extern "C"
-{
-
-
-
-
-
-
-
-
-
-# 1 "/usr/include/sys/stat.h" 1 3
-
-
-
-
-
-
-
-
-
-struct stat {
-       dev_t   st_dev;
-       ino_t   st_ino;
-       mode_t  st_mode;
-       short   st_nlink;
-       uid_t   st_uid;
-       gid_t   st_gid;
-       dev_t   st_rdev;
-       off_t   st_size;
-       time_t  st_atime;
-       int     st_spare1;
-       time_t  st_mtime;
-       int     st_spare2;
-       time_t  st_ctime;
-       int     st_spare3;
-       long    st_blksize;
-       long    st_blocks;
-       long    st_spare4[2];
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-int    __hide_chmod ( );
-int    fstat( );
-int    mkdir( );
-int    mkfifo( );
-int    stat( );
-mode_t umask( );
-
-
-
-# 14 "/sym/gnu/lib/g++-include/sys/stat.h" 2 3
-
-
-
-
-
-
-extern int       chmod  (...) ;
-extern int       stat (...) ;
-extern int       lstat (...) ;
-extern int       fstat (...) ;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
-
-
-# 149 "/usr/include/sys/fcntlcom.h" 2 3
-
-
-int     __hide_open ( );
-int    __hide_creat ( );
-int    __hide_fcntl ( );
-
-
-# 6 "/usr/include/fcntl.h" 2 3
-
-
-
-
-
-# 14 "/sym/gnu/lib/g++-include/fcntl.h" 2 3
-
-
-
-
-
-
-
-
-int       fcntl(int, int, ...);
-int      creat (...) ;
-
-int       open (...) ;
-
-
-}
-
-# 31 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-
-extern "C" {
-int strcasecmp (...) ;
-}
-
-
-# 18 "Vision.h" 2
-
-# 1 "/sym/gnu/lib/g++-include/math.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#pragma interface
-
-
-
-
-
-
-
-
-
-
-
-# 64 "/sym/gnu/lib/g++-include/math.h" 3
-
-extern "C" {
-
-double  acos(double);
-double  acosh(double);
-double  asin(double);
-double  asinh(double);
-double  atan(double);
-double  atan2(double, double);
-double  atanh(double);
-double  cbrt(double);
-double  ceil(double);
-double  copysign(double,double);
-double  cos(double);
-double  cosh(double);
-double  drem(double,double);
-double  erf(double);
-double  erfc(double);
-double  exp(double);
-double  expm1(double);
-double  fabs(double);
-double  finite(double);
-double  floor(double);
-double fmod(double, double);
-double  frexp(double, int*);
-double  gamma(double);
-double  hypot(double,double);
-double  infnan(int);
-
-int     isinf(double);
-int     isnan(double);
-
-double  j0(double);
-double  j1(double);
-double  jn(int, double);
-double  ldexp(double, int);
-double  lgamma(double);
-double  log(double);
-double  log10(double);
-double  log1p(double);
-double  logb(double);
-double  modf(double, double*);
-double  pow(double, double);
-double  rint(double);
-double  scalb(double, int);
-double  sin(double);
-double  sinh(double);
-double  sqrt(double);
-double  tan(double);
-double  tanh(double);
-double  y0(double);
-double  y1(double);
-double  yn(int, double);
-
-double aint(double);
-double anint(double);
-int irint(double);
-int nint(double);
-}
-
-
-
-
-
-
-struct libm_exception
-{
-  int type;
-  char* name;
-  double arg1, arg2, retval;
-};
-
-
-
-
-
-
-
-
-extern "C" int matherr(libm_exception*);
-
-
-
-# 1 "/sym/gnu/lib/g++-include/values.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 57 "/sym/gnu/lib/g++-include/values.h" 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 166 "/sym/gnu/lib/g++-include/values.h" 3
-
-
-
-
-
-
-
-
-
-# 150 "/sym/gnu/lib/g++-include/math.h" 2 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 19 "Vision.h" 2
-
-
-# 1 "MiscUtilities.h" 1
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/std.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 37 "/sym/gnu/lib/g++-include/std.h" 3
-
-# 6 "MiscUtilities.h" 2
-
-
-
-
-
-
-
-
-
-inline int used_mem() {
-       struct mallinfo mi = mallinfo();
-       return mi.usmblks+mi.uordblks;
-}
-inline void abort(void) {
-       fprintf((&_iob[2]) ,"abort\n");
-       exit(1);
-}
-
-inline volatile void error(char *s) {
-       fprintf((&_iob[2]) ,"FATAL ERROR: ");
-       fprintf((&_iob[2]) ,"%s\n",s);
-       exit(1);
-}
-template <class Y>
-struct NameValuePair {
-       char *name;
-       Y y;
-};
-
-template <class Y>
-Y lookup(NameValuePair<Y> *data,char *name) {
-       while(data->name) {
-               if(!strcmp(data->name,name)) return data->y;
-               data++;
-       }
-       abort();
-       return data->y;          
-}
-
-template <class T>
-void swap(T &x,T &y) {
-       T temp = x;
-       x = y;
-       y = temp;
-}
-
-
-# 21 "Vision.h" 2
-
-# 1 "Counted.h" 1
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/std.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 37 "/sym/gnu/lib/g++-include/std.h" 3
-
-# 6 "Counted.h" 2
-
-
-template <class T>
-struct Counted {
- private:
-       int *count;
-       T *object;
-       T *operator&() {
-               return object;
-       }
-       void dec_count() {
-               if(!count) return;
-               (*count)--;
-               if(*count<=0) {
-                       delete count;
-                       delete object;
-                       count=0;
-                       object=0;
-               }
-       }
-       void inc_count() {
-               if(!count) return;
-               (*count)++;
-       }
- public:
-       Counted() {
-               count=0;
-               object=0;
-       }
-       Counted(T *object):object(object) {
-               count = new int(1);
-       }
-       ~Counted() {
-               dec_count();
-       }
-       Counted(Counted &other) {
-               count=other.count;
-               object=other.object;
-               inc_count();
-       }
-       Counted &operator=(Counted &other) {
-               other.inc_count();
-               dec_count();
-               count=other.count;
-               object=other.object;
-               return *this;
-       }
-
-       T &operator*() {if(!object) abort(); else return *object; return *object;}
-       T *operator->() {if(!object) abort(); else return object; return object;}
-       operator T&() {if(!object) abort(); else return *object; return *object;}
-
-        
-};
-
-
-# 22 "Vision.h" 2
-
-# 1 "Art.h" 1
-
-
-
-
-
-extern "C" { void abort(); }
-
-
-
-
-
-
-
-
-
-
-
-
-template <class X>
-inline void art_initialize(X *,int) {}
-
-# 39 "Art.h"
-
-
-
-template <class T>
-class Art {
-protected:
-       int mark_temp;
-       T *data;
-       int dims[1];
-       void constructor(int d) {
-               if(d<0) abort() ;
-               mark_temp=0;
-               dims[0]=d;
-               if(d>0) {
-                       data=new T[d];
-                       if(!data) abort() ;
-               } else data=0;
-               art_initialize(data,d);
-       }
-       void destructor() {
-               if(!data) return;
-               delete [] data;
-               mark_temp=0;
-               data=0;
-               dims[0]=0;
-        }
-       void copy(Art &other) {
-               int d0=dims[0]<?other.dims[0];
-               for(int i=0;i<d0;i++) data[i]=other.data[i];
-       }
-public:
-       void copyclear(Art &other) {
-               dims[0]=other.dims[0];
-               data=other.data;
-               other.dims[0]=0;
-               other.data=0;
-       }
-private:
-       void copyconstructor(Art &other) {
-               mark_temp=0;
-               if(other.mark_temp) {
-                       copyclear(other);
-               } else {
-                       constructor(other.dims[0]);
-                       copy(other);
-               }
-       }
- public:
-       Art() {constructor(0);}
-       Art(int d) {constructor(d);}
-       Art(Art &other) {copyconstructor(other);}
-       ~Art() {destructor();}
-        
-       Art &operator=(Art &other) {
-               destructor();
-               copyconstructor(other);
-               return *this;
-       }
-       int dim(int i) {return dims[i];}
-       T &operator()(int i) {
-               if(unsigned(i)>=unsigned(dims[0])) abort()  ;
-               return data[i];
-       }
-       T &sub(int i) {return data[i];}
-       void resize(int nd) {
-               if(nd<0) abort() ;
-               Art t(nd);
-               int limit=nd<?dims[0];
-               for(int i=0;i<limit;i++) t.data[i]=data[i];
-               t.mark_temp=1;
-               *this=t;
-       }
-       Art &temp() { mark_temp=1; return *this; }
-       T *pointer() {return data;}
-       void fill(T value) {for(int i=0;i<dims[0];i++) data[i]=value;}
-
-       int length() {return dims[0];}
-       T &operator[](int i) {return operator()(i);}
-};
-
-
-
-template <class T>
-class Stk {
-protected:
-       Art<T> stack;
-       int fill;
-public:
-       Stk() {stack.resize(4); fill=0;}
-       Stk(Stk &other) {
-               stack=other.stack;
-               fill=other.fill;
-       }
-       int dim(int i) {return stack.dim(i);}
-       void push(const T &element) {
-               if(fill>=stack.dim(0)) stack.resize(2*fill);
-               stack.sub(fill++)=element;
-       }
-       T &tos() {
-               return stack(fill-1);
-       }
-       T &pop() {
-               return stack(--fill);
-       }
-       T &operator()(int i) {return stack(i);}
-       T &sub(int i) {return stack.sub(i);}
-       void clear() {
-               stack.resize(0);
-               stack.resize(4);
-               fill=0;
-       }
-       void compact() {
-               stack.resize(fill+1);
-       }
-       Stk temp() { stack.temp(); return *this; }
-       T *pointer() {return stack.pointer();}
-       operator Art<T>&() {return stack;}
-
-       int length() {return fill;}
-       T &operator[](int i) {return operator()(i);}
-};
-
-
-template <class T>
-class Art2 {
-protected:
-       int mark_temp;
-       T **data;
-       int dims[2];
-       int total_length;
-       void constructor(int d0,int d1) {
-               if(d0<0||d1<0) abort() ;
-               mark_temp=0;
-               dims[0]=d0;
-               dims[1]=d1;
-               total_length=dims[0]*dims[1];
-               if(d0>0) {
-                       data=new T*[d0];
-                       if(!data) abort() ;
-               } else data=0;
-               if(d0>0&&d1>0) {
-                       T *p=new T[d0*d1];
-                       if(!p) abort() ;
-                       for(int i=0;i<d0;i++) data[i]=p+i*d1;
-                       art_initialize(data[0],d0*d1);
-               }
-       }
-       void destructor() {
-               if(dims[0]<1) return;
-               if(!data) return;
-               delete [] data[0];
-               delete [] data;
-               mark_temp=0;
-               data=0;
-               dims[0]=0;
-               dims[1]=0;
-       }
-       void copy(Art2 &other) {
-               int d0=dims[0]<?other.dims[0];
-               int d1=dims[1]<?other.dims[1];
-               for(int i=0;i<d0;i++) for(int j=0;j<d1;j++)
-                       data[i][j]=other.data[i][j];
-       }
-public:
-       void copyclear(Art2 &other) {
-               dims[0]=other.dims[0];
-               dims[1]=other.dims[1];
-               total_length=dims[0]*dims[1];
-               data=other.data;
-               other.dims[0]=0;
-               other.dims[1]=0;
-               other.total_length=0;
-               other.data=0;
-       }
-private:
-       void copyconstructor(Art2 &other) {
-               mark_temp=0;
-               if(other.mark_temp) {
-                       copyclear(other);
-               } else {
-                       constructor(other.dims[0],other.dims[1]);
-                       copy(other);
-               }
-       }
- public:
-       Art2() {constructor(0,0);}
-       Art2(int d0,int d1) {constructor(d0,d1);}
-       Art2(const Art2 &other) {copyconstructor((Art2&)other);}
-       ~Art2() {destructor();}
-        
-       Art2 &operator=(Art2 &other) {
-               destructor();
-               copyconstructor(other);
-               return *this;
-       }
-       int dim(int i) {return dims[i];}
-       T &operator()(int i,int j) {
-               if(unsigned(i)>=unsigned(dims[0])||unsigned(j)>=unsigned(dims[1]))
-                       abort() ; 
-               return data[i][j];
-       }
-       T &sub(int i,int j) {return data[i][j];}
-       void resize(int nd0,int nd1) {
-               if(nd0<0||nd1<0) abort() ;
-               Art2 t(nd0,nd1);
-               int limit0=nd0<?dims[0];
-               int limit1=nd1<?dims[1];
-               for(int i=0;i<limit0;i++) for(int j=0;j<limit1;j++) t.data[i][j]=data[i][j];
-               t.mark_temp=1;
-               *this=t;
-       }
-       Art2 &temp() { mark_temp=1; return *this; }
-       T **pointer() {return data;}
-       void fill(T value) {
-               for(int i=0;i<dims[0];i++) for(int j=0;j<dims[1];j++)
-                       data[i][j]=value;
-       }
-
-        
-
-       int length() {return total_length;}
-       T &sub(int i) {return data[0][i];}
-       T &operator()(int i) {
-               if(unsigned(i)>=total_length) abort() ; 
-               return data[0][i];
-       }
-};
-
-template <class T>
-inline void art_swap(T &x,T &y) {
-       T temp = x;
-       x = y;
-       y = temp;
-}
-
-template <class T>
-inline void reverse(Art<T> &a) {
-       int i;
-       for(i=a.length()/2;i>=0;i--) art_swap(a.sub(i),a.sub(a.length()-i-1));
-}
-
-template <class T>
-inline void reverse(Stk<T> &a) {
-       reverse(a.stack);
-}
-
-template <class T>
-inline void bag_remove(Stk<T> &a,T &element) {
-       for(int i=0;i<a.length()-1;i++) {
-               if(a(i)==element) {
-                       a.sub(i)=a.tos();
-                       a.pop();
-               }
-       }
-       if(i<a.length()&&a.sub(i)==element) a.pop();
-}
-
-template <class T>
-inline void ordered_remove(Stk<T> &a,T &element) {
-       int source=0,dest=0;
-       while(source<a.length()) {
-               if(a(source)!=element) {
-                       a(dest)=a(source);
-                       dest++;
-               }
-               source++;
-       }
-       a.stack.resize(dest);
-}
-
-template <class T>
-inline Art<T> concatenate(Art<T> &a,Art<T> &b) {
-       int i,k;
-       k=a.length();
-       Art<T> result(k+b.length());
-       for(i=0;i<a.length();i++) result.sub(i)=a.sub(i);
-       for(i=0;i<b.length();i++) result.sub(i+k)=b.sub(i);
-       return result.temp();
-}
-
-template <class T>
-inline Stk<T> concatenate(Stk<T> &a,Stk<T> &b) {
-       int i;
-       Stk<T> result;
-       for(i=0;i<a.length();i++) result.push(a.sub(i));
-       for(i=0;i<b.length();i++) result.push(b.sub(i));
-       return result.temp();
-}
-
-
-# 23 "Vision.h" 2
-
-# 1 "Geo.h" 1
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/math.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 215 "/sym/gnu/lib/g++-include/math.h" 3
-
-# 6 "Geo.h" 2
-
-
-extern "C" {
-void abort(void);
-}
-
-
-
-
-
-
-
-
-
-
-
-template <class T,int n>
-class vec {
-protected:
-       T v[n];
-public:
-       int length() {return n;}
-       int dim(int) {return n;}
-       vec() {}
-       vec(T v0) { v[0]=v0; }
-       vec(T v0,T v1) { v[0]=v0; v[1]=v1; }
-       vec(T v0,T v1,T v2) { v[0]=v0; v[1]=v1; v[2]=v2; }
-       vec(T v0,T v1,T v2,T v3) { v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; }
-       vec(T v0,T v1,T v2,T v3,T v4) { v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; v[4]=v4; }
-       
-       T &operator[](int i) {return v[i];}
-       T &sub(int i) {return v[i];}
-       T &operator()(int i) {
-               if(unsigned(i)>=n) abort(); 
-               return v[i];
-       }
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-       T operator*(vec &other) {
-               T result=0;
-               for(int i=0;i<n;i++) result=result+sub(i)*other.sub(i);
-               return result;
-       }
-
-        
-       vec operator-() {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)= -sub(i);
-               return result;
-       }
-       vec operator*(T other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)*other;
-               return result;
-       }
-       vec operator/(T other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)/other;
-               return result;
-       }
-       vec operator+(vec &other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)+other.sub(i);
-               return result;
-       }
-       vec operator-(vec &other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)-other.sub(i);
-               return result;
-       }
-       vec operator<?(vec &other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)<?other.sub(i);
-               return result;
-       }
-       vec operator>?(vec &other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)>?other.sub(i);
-               return result;
-       }
-
-        
-       int operator==(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)!=other.sub(i)) return 0;
-               return 1;
-       }
-       int operator!=(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)!=other.sub(i)) return 1;
-               return 0;
-       }
-       int operator<(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)>=other.sub(i)) return 0;
-               return 1;
-       }
-       int operator>(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)<=other.sub(i)) return 0;
-               return 1;
-       }
-       int operator<=(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)>other.sub(i)) return 0;
-               return 1;
-       }
-       int operator>=(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)<other.sub(i)) return 0;
-               return 1;
-       }
-};
-
-template <class T>
-inline float euclidean_norm(T &v) {
-       float total=0.0;
-       for(int i=0;i<v.dim(0);i++) total+=v(i)*v(i);
-       return sqrt(total);
-}
-
-template <class T>
-inline float euclidean_distance(T &u,T &v) {
-       float total=0.0;
-       for(int i=0;i<u.dim(0);i++) {
-               float d=u(i)-v(i);
-               total+=d*d;
-       }
-       return sqrt(total);
-}
-
-
-template <class T,int n>
-class mat:vec<T,n*n> {
-protected:
-public:
-       int dim(int) {return n;}
-       T &operator[](int i) {return v[i];}
-       T &sub(int i,int j) {return v[i*n+j];}
-       T &operator()(int i,int j) {
-               if(unsigned(i)>=n||unsigned(j)>=n) abort(); 
-               return sub(i,j);
-       }
-       mat operator*(mat &other) {
-               mat result;
-               for(int i=0;i<n;i++) for(int j=0;j<n;j++) {
-                       T total=0;
-                       for(int k=0;k<n;k++) total=total+sub(i,k)*other.sub(k,j);
-                       result.sub(i,j)=total;
-               }
-               return result;
-       }
-       vec<T,n> operator*(vec<T,n> &other) {
-               vec<T,n> result;
-               for(int i=0;i<n;i++) {
-                       T total=0;
-                       for(int k=0;k<n;k++) total=total+sub(i,k)*other.sub(k);
-                       result.sub(i)=total;
-               }
-               return result;
-       }
-};
-
-
-typedef vec<float,2> vec2;
-typedef vec<float,3> vec3;
-typedef vec<float,4> vec4;
-
-typedef mat<float,2> mat2;
-typedef mat<float,3> mat3;
-typedef mat<float,4> mat4;
-
-typedef vec<int,2> ivec2;
-
-
-
-inline float norm_angle(float p) {
-       while(p<0) p+=2*       3.14159265358979323846 ; while(p>=2*       3.14159265358979323846 ) p-=2*       3.14159265358979323846 ; return p;
-}
-inline float norm_angle0(float p) {
-       while(p<-       3.14159265358979323846 ) p+=2*       3.14159265358979323846 ; while(p>=       3.14159265358979323846 ) p-=2*       3.14159265358979323846 ; return p;
-}
-inline float norm_orientation(float p) {
-       while(p<0) p+=       3.14159265358979323846 ; while(p>=       3.14159265358979323846 ) p-=       3.14159265358979323846 ; return p;
-}
-inline float norm_orientation0(float p) {
-       while(p<-       3.14159265358979323846 /2) p+=       3.14159265358979323846 ; while(p>=       3.14159265358979323846 /2) p-=       3.14159265358979323846 ; return p;
-}
-inline float orientation_difference(float p,float q) {
-       fabs(norm_orientation0(p-q));
-}
-
-
-
-
-
-
-
-
-
-
-inline vec2 cmul(vec2 &p,vec2 &q) {
-       return vec2(p.sub(0)*q.sub(0)-p.sub(1)*q.sub(1),
-                   p.sub(0)*q.sub(1)+p.sub(1)*q.sub(0));
-}
-
-inline vec2 cdiv(vec2 &p,vec2 &q) {
-       float n=q*q;
-       return vec2((p.sub(0)*q.sub(0)+p.sub(1)*q.sub(1))/n,
-                   (p.sub(1)*q.sub(0)-p.sub(0)*q.sub(1))/n);
-}
-
-inline vec2 csqrt(vec2 &x) {
-       if (x.sub(0)==0.0&&x.sub(1)==0.0)
-               return vec2(0.0,0.0);
-       else {
-               float a=sqrt((fabs(x.sub(0))+hypot(x.sub(0),x.sub(1)))*0.5);
-               float b=0.5*(x.sub(1)/a);
-               if(x.sub(0)>0.0) return vec2(a, b);
-               else if(x.sub(1)>=0.0) return vec2(a,b);
-               else return vec2(-a,-b);
-       }
-}
-inline vec2 cpow(vec2& x, double p) {
-       float h=hypot(x.sub(0),x.sub(1));
-       if (h<=0.0) abort();
-       float lr=pow(h,p);
-       float a=atan2(x.sub(1),x.sub(0));
-       float li=p*a;
-       return vec2(lr*cos(li),lr*sin(li));
-}
-
-
-inline float cross(vec2 p,vec2 q) {
-       return p.sub(0)*q.sub(1)-p.sub(1)*q.sub(0);
-}
-
-
-struct TRS2 {
-       vec2 t;
-       vec2 r;
-       TRS2(vec2 t=vec2(0.0,0.0),vec2 r=vec2(1.0,0.0)):t(t),r(r) {
-       }
-       vec2 operator()(vec2 &arg) {
-               return cmul(r,arg)+t;
-       }
-       float rotation() {
-               return atan2(r(1),r(0));
-       }
-};
-
-
-
-# 24 "Vision.h" 2
-
-
-
-
-# 1 "VisionTypes.h" 1
-
-typedef Art2<float> FImage;
-typedef Art2<int> IImage;
-typedef Art2<unsigned char> CImage;
-
-struct FImageOp {virtual FImage operator()(FImage &) = 0;};
-struct FImageOp2 {virtual FImage operator()(FImage &,FImage &) = 0;};
-struct CImageOp {virtual CImage operator()(CImage &) = 0;};
-struct CImageOp2 {virtual CImage operator()(CImage &,CImage &) = 0;};
-
-
-struct PFeature {
-       ivec2 p;
-       float a;
-       short group;
-       short type;
-       PFeature() {}
-       PFeature(ivec2 p,float a,int group,int type):p(p),a(a),group(group),type(type) {}
-};
-
-typedef Stk<PFeature> PFeatureStk;
-
-struct FIExtractor {virtual PFeatureStk operator()(FImage &) = 0;};
-struct CIExtractor {virtual PFeatureStk operator()(CImage &) = 0;};
-# 28 "Vision.h" 2
-
-# 1 "ImageDatabase.h" 1
-
-
-
-
-# 1 "Art.h" 1
-
-# 339 "Art.h"
-
-# 6 "ImageDatabase.h" 2
-
-
-typedef Art2<unsigned char> CImage;
-
-
-struct ImageDatabase {
-        
-        
-        
-
-       virtual int length() = 0;
-       virtual int nclassifications() = 0;
-       virtual int nusers() = 0;
-       
-        
-        
-
-       virtual int classification(int offset) = 0;
-       virtual int user(int offset) = 0;
-       
-       virtual CImage cimage(int offset) {abort();}
-       virtual PFeatureStk features(int offset) {abort();}
-
-        
-        
-        
-        
-
-       virtual int user_offset(int user) = 0;
-       virtual int user_length(int user) = 0;
-};
-
-ImageDatabase *make_NISTDigitImages();
-
-
-struct ImageDatabaseIterator {
-       virtual int done() = 0;
-       virtual void next() = 0;
-       virtual operator int() = 0;
-       virtual void mark_upto_here() {}
-};
-
-ImageDatabaseIterator *make_IDI_Sequential(ImageDatabase *digits,int current,int stride);
-ImageDatabaseIterator *make_IDI_OnePerUser(ImageDatabase *digits,int current);
-ImageDatabaseIterator *make_IDI_FromFile(char *name);
-
-
-# 29 "Vision.h" 2
-
-
-
-# 1 "NISTImages.cc" 2
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/std.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 37 "/sym/gnu/lib/g++-include/std.h" 3
-
-# 11 "NISTImages.cc" 2
-
-# 1 "Art.h" 1
-
-# 339 "Art.h"
-
-# 12 "NISTImages.cc" 2
-
-
-extern "C" {
-# 1 "./nist/ihead.h" 1
-
-
-
-
-
-
-
-typedef struct ihead{
-   char id[    80      ];                       
-   char created[       26      ];               
-   char width[ 8       ];               
-   char height[        8       ];               
-   char depth[ 8       ];               
-   char density[       8       ];               
-   char compress[      8       ];               
-   char complen[       8       ];               
-   char align[ 8       ];               
-   char unitsize[      8       ];               
-   char sigbit;                                 
-   char byte_order;                     
-   char pix_offset[    8       ];       
-   char whitepix[      8       ];               
-   char issigned;                       
-   char rm_cm;                          
-   char tb_bt;                          
-   char lr_rl;                          
-   char parent[        80      ];               
-   char par_x[ 8       ];               
-   char par_y[ 8       ];               
-}IHEAD;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 15 "NISTImages.cc" 2
-
-int readihdrfile();
-
-}
-
-typedef Art2<unsigned char> CImage;
-
-Stk<char*> mis_files;
-
-extern "C" {
-       char *re_comp(char *);
-       int re_exec(char *);
-}
-
-struct NISTCharFile {
- private:
-       NISTCharFile(NISTCharFile &);
-       void operator=(NISTCharFile &);
- public:
-       IHEAD *bit_header;
-       int bit_w,bit_h;
-       char *bit_data;
-       int field_w,field_h;
-       Stk<int> classes;
-
-       static void maybe_read_mis_files() {
-               if(mis_files.length()>0) return;
-               struct _iobuf  *stream = fopen("/com/nist/mis-files" ,"r");
-               if(!stream) abort() ;
-               char buf[1024];
-               while(fgets(buf,sizeof buf,stream)) {
-                       buf[strlen(buf)-1]='\0';
-                       mis_files.push(strdup(buf));
-               }
-               fclose(stream);
-       }
-
-       static char *find_matching_mis_file_prefix(char *pattern) {
-               if(re_comp(pattern)) abort() ;
-               int i;
-               for(i=0;i<mis_files.length();i++) {
-                       if(re_exec(mis_files(i))) break;
-               }
-               if(i<mis_files.length()) return mis_files(i);
-               else return 0;
-       }
-
-       static int part_of_user(int user) {
-               int part;
-               if(user<500) part=0;
-               else if(user<1000) part=1;
-               else if(user<1500) part=2;
-               else part=3;
-               return part;
-       }
-
-       static char type_of_itype(int itype) {
-               char type;
-               switch(itype) {
-               case 0: type='d'; break;
-               case 1: type='u'; break;
-               case 2: type='l'; break;
-               default: abort() ;
-               };
-               return type;
-       }
-
-       NISTCharFile(int user,char itype) {
-               maybe_read_mis_files();
-               int type = type_of_itype(itype);
-               int part = part_of_user(user);
-
-               char buf[512];
-               sprintf(buf,"/com/nist3/data/" "hsf_%d/f%04d_.*/%c%04d_.*",part,user,type,user);
-               char *prefix = find_matching_mis_file_prefix(buf);
-                ;
-               
-               if(!prefix) {
-                       bit_w = 0;
-                       bit_h = 0;
-                       field_w = 0;
-                       field_h = 0;
-                       return;
-               }
-
-               char file[512];
-
-               strcpy(file,prefix); strcat(file,".mis");
-               if(!readihdrfile(file,&bit_header,&bit_data,&bit_w,&bit_h))
-                       abort() ;
-               field_w=atoi(bit_header->par_x);
-               field_h=atoi(bit_header->par_y);
-
-               strcpy(file,prefix); strcat(file,".cls");
-               struct _iobuf  *stream = fopen(file,"r");
-               if(!stream)
-                       abort() ;
-               int total=atoi(fgets(buf,sizeof buf,stream));
-               if(total!=bit_h/field_h)
-                       abort() ;
-               while(fgets(buf,sizeof buf,stream)) classes.push(strtol(buf,0,16));
-               fclose(stream);
-       }
-
-       ~NISTCharFile() {
-               free(bit_header);
-               free(bit_data);
-       }
-
-       int length() {
-               return bit_h/field_h;
-       }
-
-       CImage image(int i0) {
-                ;
-               CImage result(field_w,field_h);
-               int bit_w8=bit_w/8;
-               int offset=i0*field_h;
-               if(offset>=bit_h) abort() ;
-               int i,j;
-
-
-               for(i=0;i<field_w;i++) for(j=0;j<field_h;j++) {
-                       int jj=j+offset;
-                       result(i,field_h-j-1)=(!!(bit_data[bit_w8*jj+(i>>3)]&(1<<(7-i&7)))) ;
-               }
-
-               return result.temp();
-       }
-
-       int classification(int i) {
-               return classes(i);
-       }
-};
-
-int *NISTDigitImages_table;
-
-struct NISTDigitImages:ImageDatabase {
- private:
-       NISTDigitImages(NISTDigitImages&);
-       void operator=(NISTDigitImages&);
- public:
-       enum {table_size=2101};
-
-       int nclassifications() {return 10;}
-       int nusers() {return 2200;}
-
-       static void init_table() {
-               struct _iobuf  *stream=fopen("/com/nist/nist-digits" ,"r");
-               NISTDigitImages_table = new int[table_size];
-               if(!stream) abort() ;
-               int i=1;
-               while(fscanf(stream,"%d",&NISTDigitImages_table[i])==1) i++;
-               if(i!=table_size) abort() ;
-               fclose(stream);
-               int total=0;
-               for(i=1;i<table_size;i++) NISTDigitImages_table[i]+=NISTDigitImages_table[i-1];
-       }
-
-       static int locate(int v) {
-               int low=0;
-               int high=table_size;
-               if(v>=NISTDigitImages_table[table_size-1]) abort() ;
-               while(low+1<high) {
-                       int mid=(low+high)/2;
-                       if(NISTDigitImages_table[mid]<=v) low=mid;
-                       else high=mid;
-               }
-               while(low<table_size-1&&NISTDigitImages_table[low+1]<=v) low++;
-               return low;
-       }
-
-       int user_offset(int user) {
-               if(unsigned(user)>=2100) abort() ;
-               return NISTDigitImages_table[user];
-       }
-
-       int user_length(int user) {
-               if(unsigned(user)>=2100) abort() ;
-               return NISTDigitImages_table[user+1]-NISTDigitImages_table[user];
-       }
-
-       int current_user;
-       NISTCharFile *current_file;
-
- private:
-       void get_cache(int user) {
-               if(user!=current_user) {
-                       delete current_file;
-                       current_file = new NISTCharFile(user,0);
-                       current_user = user;
-               }
-       }
-
- public:
-       NISTDigitImages() {
-                ;
-               if(!NISTDigitImages_table) init_table();
-               current_user=0;
-               current_file=new NISTCharFile(0,0);
-                ;
-       }
-
-       ~NISTDigitImages() {
-               delete current_file;
-       }
-
-       int length() {return NISTDigitImages_table[table_size-1];}
-
-       int user(int i) {
-               return locate(i);
-       }
-
-       CImage image(int i) {
-               int user = locate(i);
-               get_cache(user);
-               int offset = i-NISTDigitImages_table[user];
-               return current_file->image(offset);
-       }
-
-       int classification(int i) {
-               int user = locate(i);
-               get_cache(user);
-               int offset = i-NISTDigitImages_table[user];
-               return current_file->classification(offset);
-       }
-};
-
-ImageDatabase *make_NISTDigitImages() {
-       return new NISTDigitImages();
-}
-
diff --git a/gcc/testsuite/g++.old-deja/g++.law/inline2.C b/gcc/testsuite/g++.old-deja/g++.law/inline2.C
deleted file mode 100644 (file)
index 2eb5b38..0000000
+++ /dev/null
@@ -1,3601 +0,0 @@
-// excess errors test - XFAIL - *-*-*
-// Build don't link: 
-// Special g++ Options: -O2
-// GROUPS passed inlining
-# 1 "NISTImages.cc"
-# 1 "Vision.h" 1
-
-
-
-
-
-extern "C" {
-# 1 "/sym/gnu/lib/g++-include/stdio.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#pragma interface
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/_G_config.h" 1 3
-  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 33 "/sym/gnu/lib/g++-include/stdio.h" 2 3
-
-
-extern "C" {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdio.h" 1 3
-
-# 1 "/sym/gnu/lib/g++-include/stdarg.h" 1 3
-extern "C" {
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/va-sparc.h" 1 3
-
-
-
-
-
-
-
-
-typedef char * __gnuc_va_list;
-
-
-
-
-
-
-
-
-# 79 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/va-sparc.h" 3
-
-
-# 32 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 2 3
-
-# 77 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 3
-
-
-
-
-
-
-# 140 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 3
-
-
-
-
-
-# 2 "/sym/gnu/lib/g++-include/stdarg.h" 2 3
-
-}
-# 2 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdio.h" 2 3
-
-
-
-
-
-extern struct  _iobuf {
-       int     _cnt;
-       unsigned char *_ptr;
-       unsigned char *_base;
-       int     _bufsiz;
-       short   _flag;
-       char    _file;           
-} _iob[];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-extern struct _iobuf   *__hide_fopen ();
-extern struct _iobuf   *__hide_fdopen ();
-extern struct _iobuf   *__hide_freopen ();
-extern struct _iobuf   *__hide_popen ();
-extern struct _iobuf   *tmpfile();
-extern long    __hide_ftell ();
-extern char    *fgets();
-extern char    *gets();
-extern char    *__hide_sprintf ();
-extern char    *ctermid();
-extern char    *cuserid();
-extern char    *__hide_tempnam ();
-extern char    *tmpnam();
-
-
-
-
-
-
-# 69 "/sym/gnu/lib/g++-include/stdio.h" 2 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
-
-extern "C" {
-
-int    fclose(struct _iobuf *);
-struct _iobuf *  fdopen(int, const char*);
-int    fflush(struct _iobuf *);
-int    fgetc(struct _iobuf *);
-char*  fgets(char*, int, struct _iobuf  *);
-struct _iobuf *  fopen(const char*, const char*);
-int    fprintf(struct _iobuf *, const char* ...);
-int    fputc(int, struct _iobuf *);
-int    fputs(const char*, struct _iobuf *);
-int   fread(void*, int  , int  , struct _iobuf *);
-
-
-
-struct _iobuf *  freopen(const char*, const char*, struct _iobuf *);
-
-int    fscanf(struct _iobuf *, const char* ...);
-int    fseek(struct _iobuf *, long, int);
-long   ftell(struct _iobuf  *);
-int   fwrite(const void*, int  , int  , struct _iobuf *);
-char*  gets(char*);
-int    getw(struct _iobuf *);
-int    pclose(struct _iobuf *);
-void   perror(const char*);
-struct _iobuf *  popen(const char*, const char*);
-int    printf(const char* ...);
-int    puts(const char*);
-int    putw(int, struct _iobuf *);
-int    rewind(struct _iobuf *);
-int    scanf(const char* ...);
-void   setbuf(struct _iobuf *, char*);
-void   setbuffer(struct _iobuf *, char*, int);
-int    setlinebuf(struct _iobuf *);
-int    setvbuf(struct _iobuf *, char*, int, int  );
-int    sscanf(char*, const char* ...);
-struct _iobuf *  tmpfile();
-int    ungetc(int, struct _iobuf *);
-int    vfprintf (...) ;
-int    vprintf (...) ;
-char*  sprintf (...) ;
-char*  vsprintf (...) ;
-
-extern int _filbuf (...) ;
-extern int _flsbuf (...) ;
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 11 "Vision.h" 2
-
-# 1 "/usr/include/floatingpoint.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-enum fp_direction_type                  
-       {
-       fp_nearest      = 0,
-       fp_tozero       = 1,
-       fp_positive     = 2,
-       fp_negative     = 3
-       } ;
-
-# 34 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3
-
-# 43 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3
-
-
-# 53 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3
-
-enum fp_precision_type          
-       {
-       fp_extended     = 0,
-       fp_single       = 1,
-       fp_double       = 2,
-       fp_precision_3  = 3
-       } ;
-
-
-# 73 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3
-
-enum fp_exception_type          
-       {
-       fp_inexact      = 0,
-       fp_division     = 1,
-       fp_underflow    = 2,
-       fp_overflow     = 3,
-       fp_invalid      = 4
-       } ;
-
-
-enum fp_class_type              
-       {
-       fp_zero         = 0,
-       fp_subnormal    = 1,
-       fp_normal       = 2,
-       fp_infinity     = 3,
-       fp_quiet        = 4,
-       fp_signaling    = 5
-       } ;
-
-
-# 18 "/usr/include/floatingpoint.h" 2 3
-
-
-
-typedef float   single;
-typedef unsigned long extended[3];      
-
-typedef long double quadruple;  
-
-
-
-
-
-
-
-
-typedef unsigned fp_exception_field_type;
-
-
-
-typedef int     sigfpe_code_type;       
-
-typedef void    (*sigfpe_handler_type) ();
-
-
-
-
-
-
-extern enum fp_direction_type fp_direction;
-
-
-
-extern enum fp_precision_type fp_precision;
-
-
-
-extern fp_exception_field_type fp_accrued_exceptions;
-
-
-
-
-
-
-
-
-typedef char    decimal_string[512 ];
-
-typedef struct {
-       enum fp_class_type fpclass;
-       int             sign;
-       int             exponent;
-       decimal_string  ds;      
-
-
-       int             more;    
-
-
-       int             ndigits; 
-
-
-}
-                decimal_record;
-
-enum decimal_form {
-       fixed_form,              
-
-
-
-       floating_form            
-
-};
-
-typedef struct {
-       enum fp_direction_type rd;
-        
-       enum decimal_form df;    
-       int             ndigits; 
-}
-                decimal_mode;
-
-enum decimal_string_form {      
-       invalid_form,            
-       whitespace_form,         
-       fixed_int_form,          
-       fixed_intdot_form,       
-       fixed_dotfrac_form,      
-       fixed_intdotfrac_form,   
-       floating_int_form,       
-       floating_intdot_form,    
-       floating_dotfrac_form,   
-       floating_intdotfrac_form,        
-       inf_form,                
-       infinity_form,           
-       nan_form,                
-       nanstring_form           
-};
-
-
-extern void     double_to_decimal();
-extern void     quadruple_to_decimal();
-extern char    *econvert();
-extern char    *fconvert();
-extern char    *gconvert();
-extern char    *qeconvert();
-extern char    *qfconvert();
-extern char    *qgconvert();
-
-
-
-
-extern sigfpe_handler_type ieee_handlers[5     ];
-
-
-
-
-
-
-extern sigfpe_handler_type sigfpe();
-
-extern void     single_to_decimal();
-extern void     extended_to_decimal();
-
-extern void     decimal_to_single();
-extern void     decimal_to_double();
-extern void     decimal_to_extended();
-extern void     decimal_to_quadruple();
-
-extern char    *seconvert();
-extern char    *sfconvert();
-extern char    *sgconvert();
-
-extern void     string_to_decimal();
-extern void     file_to_decimal();
-extern void     func_to_decimal();
-
-
-extern double   atof();
-
-
-extern int      errno;
-
-extern double   strtod();
-
-
-# 12 "Vision.h" 2
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/malloc.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-struct mallinfo  {
-       int arena;       
-       int ordblks;     
-       int smblks;      
-       int hblks;       
-       int hblkhd;      
-       int usmblks;     
-       int fsmblks;     
-       int uordblks;    
-       int fordblks;    
-       int keepcost;    
-
-       int mxfast;      
-       int nlblks;      
-       int grain;       
-       int uordbytes;   
-       int allocated;   
-       int treeoverhead;        
-};
-
-typedef void * malloc_t;
-
-extern malloc_t        calloc( );
-extern void    free( );
-extern malloc_t        malloc( );
-extern malloc_t        realloc( );
-extern int             mallopt();
-extern struct mallinfo mallinfo();
-
-
-# 13 "Vision.h" 2
-
-long time(long *);
-int ieee_handler();
-}
-
-# 1 "/sym/gnu/lib/g++-include/std.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/stddef.h" 1 3
-
-
-extern "C" {
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stddef.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 41 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stddef.h" 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef int ptrdiff_t;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef int int  ;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef __wchar_t wchar_t;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 7 "/sym/gnu/lib/g++-include/stddef.h" 2 3
-
-
-
-
-}
-
-# 24 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/stdlib.h" 1 3
-
-
-
-
-
-
-
-extern "C" {
-
-int       abs(int);
-
-
-void volatile abort(void);
-
-
-
-
-double    atof(const char*);
-int       atoi(const char*);
-long      atol(const char*);
-
-int       atexit(auto void (*p) (void));
-int       bsearch (const void *, const void *, int  , 
-                   int  , auto int (*ptf)(const void*, const void*));
-void*     calloc(int  , int  );
-void      cfree(void*);
-
-
-void volatile exit(int);
-
-
-
-
-char*     fcvt(double, int, int*, int*);
-void      free(void*);
-char*     getenv(const char*);
-int       getopt(int, char * const *, const char*);
-int       getpw(int, char*);
-char*     gcvt(double, int, char*);
-char*     ecvt(double, int, int*, int*);
-extern char**   environ;
-
-long      labs(long);
-void*     malloc(int  );
-int      malloc_usable_size(void*);
-int       putenv(const char*);
-extern char*    optarg;
-extern int      opterr;
-extern int      optind;
-void      qsort(void*, int  , int  , auto int (*ptf)(void*,void*));
-int       rand(void);
-void*     realloc(void*, int  );
-int       setkey(const char*);
-int       srand(unsigned int);
-double    strtod(const char*, char**);
-long      strtol(const char*, char**, int);
-unsigned long stroul(const char**, int);
-int       system(const char*);
-
-long      random(void);
-void      srandom(int);
-char*     setstate(char*);
-char*     initstate(unsigned, char*, int);
-
-double    drand48(void);
-void      lcong48(short*);
-long      jrand48(short*);
-long      lrand48(void);
-long      mrand48(void);
-long      nrand48(short*);
-short*    seed48(short*);
-void      srand48(long);
-
-char*     ctermid(char*);
-char*     cuserid(char*);
-char*     tempnam(const char*, const char*);
-char*     tmpnam(char*);
-
-}
-
-# 25 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/string.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-extern "C" {
-
-char*     strcat(char*, const char*);
-char*     strchr(const char*, int);
-int       strcmp(const char*, const char*);
-int       strcoll(const char*, const char*);
-char*     strcpy(char*, const char*);
-int      strcspn(const char*, const char*);
-char*     strdup(const char*);
-int      strlen(const char*);
-char*     strncat(char*, const char*, int  );
-int       strncmp(const char*, const char*, int  );
-char*     strncpy(char*, const char*, int  );
-char*     strpbrk(const char*, const char*);
-char*     strrchr(const char*, int);
-int      strspn(const char*, const char*);
-char*     strstr(const char*, const char *);
-char*     strtok(char*, const char*);
-int      strxfrm(char*, const char*, int  );
-
-char*     index(const char*, int);
-char*     rindex(const char*, int);
-}
-
-# 1 "/sym/gnu/lib/g++-include/memory.h" 1 3
-
-
-
-
-
-
-
-extern "C" {
-
-void*     memalign (...) ;
-void*     memccpy (...) ;
-void*     memchr (...) ;
-int       memcmp (...) ;
-void*     memcpy (...) ;
-void*     memmove (...) ;
-void*     memset (...) ;
-int       ffs (...) ;
-int     getpagesize (...) ;
-void*     valloc (...) ;
-
-void      bcopy (...) ;
-int       bcmp (...) ;
-void      bzero (...) ;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 43 "/sym/gnu/lib/g++-include/string.h" 2 3
-
-
-
-# 26 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-
-# 1 "/sym/gnu/lib/g++-include/unistd.h" 1 3
-
-
-
-
-
-extern "C" {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/unistd.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/sys/types.h" 1 3
-
-
-extern "C"
-{
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/stdtypes.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-typedef        int             sigset_t;        
-
-typedef        unsigned int    speed_t;         
-typedef        unsigned long   tcflag_t;        
-typedef        unsigned char   cc_t;            
-typedef        int             pid_t;           
-
-typedef        unsigned short  mode_t;          
-typedef        short           nlink_t;         
-
-typedef        long            clock_t;         
-typedef        long            time_t;          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 16 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 2 3
-
-
-
-# 1 "/usr/include/sys/sysmacros.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 19 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 2 3
-
-
-
-
-
-typedef        unsigned char   u_char;
-typedef        unsigned short  u_short;
-typedef        unsigned int    u_int;
-typedef        unsigned long   u_long;
-typedef        unsigned short  ushort;          
-typedef        unsigned int    uint;            
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef        struct  _physadr_t { int r[1]; } *physadr_t;
-typedef        struct label_t {
-       int     val[2];
-} label_t;
-
-
-
-
-
-
-
-typedef        struct  _quad_t { long val[2]; } quad_t;
-typedef        long    daddr_t;
-typedef        char *  caddr_t;
-typedef        unsigned long   ino_t;
-typedef        short   dev_t;
-typedef        long    off_t;
-typedef        unsigned short  uid_t;
-typedef        unsigned short  gid_t;
-typedef        long    key_t;
-typedef        char *  addr_t;
-
-
-
-
-
-
-
-
-
-
-
-
-
-typedef        long    fd_mask;
-
-
-
-
-
-
-
-
-
-typedef        struct fd_set {
-       fd_mask fds_bits[(((256 )+(( (sizeof (fd_mask) * 8              )       )-1))/( (sizeof (fd_mask) * 8           )       )) ];
-} fd_set;
-
-
-
-
-
-
-
-# 113 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 3
-
-
-
-# 15 "/sym/gnu/lib/g++-include/sys/types.h" 2 3
-
-
-
-
-
-
-}
-
-
-
-
-# 73 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/unistd.h" 2 3
-
-
-extern void    _exit( );
-extern int     access( );
-extern unsigned        alarm( );
-extern int     chdir( );
-extern int     __hide_chmod ( );
-extern int     __hide_chown ( );
-extern int     close( );
-extern char    *ctermid( );
-extern char    *cuserid( );
-extern int     dup( );
-extern int     dup2( );
-extern int     __hide_execl ( );
-extern int     __hide_execle ( );
-extern int     __hide_execlp ( );
-extern int     execv( );
-extern int     execve( );
-extern int     execvp( );
-extern pid_t   fork( );
-extern long    fpathconf( );
-extern char    *getcwd( );
-extern gid_t   getegid( );
-extern uid_t   geteuid( );
-extern gid_t   getgid( );
-extern int     getgroups( );
-extern char    *getlogin( );
-extern pid_t   getpgrp( );
-extern pid_t   getpid( );
-extern pid_t   getppid( );
-extern uid_t   getuid( );
-extern int     isatty( );
-extern int     link( );
-extern off_t   lseek( );
-extern long    pathconf( );
-extern int     pause( );
-extern int     pipe( );
-extern int     read( );
-extern int     rmdir( );
-extern int     __hide_setgid ( );
-extern int     setpgid( );
-extern pid_t   setsid( );
-extern int     __hide_setuid ( );
-extern unsigned        sleep( );
-extern long    sysconf( );
-extern pid_t   tcgetpgrp( );
-extern int     tcsetpgrp( );
-extern char    *ttyname( );
-extern int     unlink( );
-extern int     write( );
-
-
-
-# 25 "/sym/gnu/lib/g++-include/unistd.h" 2 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 59 "/sym/gnu/lib/g++-include/unistd.h" 3
-
-
-
-extern void volatile _exit(int);
-
-
-
-
-extern unsigned alarm (...) ;
-extern int      brk (...) ;
-extern int      chdir (...) ;
-extern int      chmod  (...) ;
-extern int      chown (const char*, unsigned short , unsigned short );
-extern int      close (...) ;
-extern char*    crypt (...) ;
-extern int      dup (...) ;
-extern int      dup2 (...) ;
-extern void    encrypt (...) ;
-extern int      execl (const char*, const char *, ...);
-extern int      execle (const char*, const char *, ...);
-extern int      execlp (const char*, const char*, ...);
-extern int      exect (...) ;
-extern int      execv (...) ;
-extern int      execve (...) ;
-extern int      execvp (...) ;
-extern int      fchown (int, unsigned short , unsigned short );
-extern int  fork (...) ;
-extern int      fsync (...) ;
-extern int      ftruncate (...) ;
-extern char*    getcwd (...) ;
-extern int      getdomainname (...) ;
-extern int      getdtablesize (...) ;
-extern int      getgroups (...) ;
-extern unsigned short  geteuid (...) ;
-extern unsigned short  getegid (...) ;
-extern unsigned short  getgid (...) ;
-extern long     gethostid (...) ;
-extern int      gethostname (...) ;
-extern int  getpgrp (...) ;
-extern int  getpid (...) ;
-extern int  getppid (...) ;
-extern char*    getlogin (...) ;
-extern char*    getpass (...) ;
-extern unsigned short  getuid (...) ;
-extern int      ioctl (int, int, ... );
-extern int      isatty (...) ;
-extern int      link (...) ;
-extern int      mkstemp (...) ;
-extern char*    mktemp (...) ;
-extern int      nice (...) ;
-extern int      pause (...) ;
-extern int      pipe (...) ;
-extern int      readlink (...) ;
-extern int      rename (...) ;
-extern int      rmdir (...) ; 
-extern void*    sbrk (...) ; 
-extern int      syscall (...) ;
-extern int      setgid (unsigned short );
-extern int      sethostname (...) ;
-
-
-
-
-extern int  setpgrp (...) ;
-
-extern int      setregid (...) ;
-extern int      setreuid (...) ;
-extern int      setuid (unsigned short );
-extern unsigned sleep (...) ;
-extern void     swab (...) ;
-extern int      symlink (...) ;
-extern long     sysconf (...) ;
-extern int      truncate (...) ;
-extern char*    ttyname (...) ;
-extern int      ttyslot (...) ;
-extern int      unlink (...) ;
-extern int  vfork (...) ;
-extern int      vadvise (...) ;
-extern int      vhangup (...) ;
-extern long  lseek (...) ;
-extern int  read (...) ;
-extern int  write (...) ;
-extern int      access (...) ;
-
-extern int      flock (...) ;
-
-
-}
-
-
-# 28 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/stdio.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 174 "/sym/gnu/lib/g++-include/stdio.h" 3
-
-# 29 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/errno.h" 1 3
-
-
-extern "C" {
-
-
-
-
-
-# 1 "/usr/include/errno.h" 1 3
-
-
-
-
-
-
-
-# 1 "/usr/include/sys/errno.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-        
-
-
-
-
-
-
-
-
-
-
-
-
-
-        
-
-
-
-
-
-
-
-
-
-
-
-
-
-        
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 10 "/usr/include/errno.h" 2 3
-
-extern int errno;
-
-
-# 9 "/sym/gnu/lib/g++-include/errno.h" 2 3
-
-
-
-
-extern char*    sys_errlist[];
-extern int      sys_nerr;
-
-extern int      errno;
-
-void      perror(const char*);
-char*     strerr(int);
-
-
-}
-
-
-# 30 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-# 1 "/sym/gnu/lib/g++-include/fcntl.h" 1 3
-
-
-extern "C" {
-
-
-
-
-
-
-
-
-
-
-# 1 "/usr/include/fcntl.h" 1 3
-
-
-
-
-# 1 "/usr/include/sys/fcntlcom.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-struct flock {
-       short   l_type;          
-       short   l_whence;        
-       long    l_start;         
-       long    l_len;           
-       short   l_pid;           
-       short   l_xxx;           
-};
-
-
-struct eflock {
-       short   l_type;          
-       short   l_whence;        
-       long    l_start;         
-       long    l_len;           
-       short   l_pid;           
-       short   l_xxx;           
-       long    l_rpid;          
-       long    l_rsys;          
-};
-
-
-
-# 1 "/sym/gnu/lib/g++-include/sys/stat.h" 1 3
-
-
-extern "C"
-{
-
-
-
-
-
-
-
-
-
-# 1 "/usr/include/sys/stat.h" 1 3
-
-
-
-
-
-
-
-
-
-struct stat {
-       dev_t   st_dev;
-       ino_t   st_ino;
-       mode_t  st_mode;
-       short   st_nlink;
-       uid_t   st_uid;
-       gid_t   st_gid;
-       dev_t   st_rdev;
-       off_t   st_size;
-       time_t  st_atime;
-       int     st_spare1;
-       time_t  st_mtime;
-       int     st_spare2;
-       time_t  st_ctime;
-       int     st_spare3;
-       long    st_blksize;
-       long    st_blocks;
-       long    st_spare4[2];
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-int    __hide_chmod ( );
-int    fstat( );
-int    mkdir( );
-int    mkfifo( );
-int    stat( );
-mode_t umask( );
-
-
-
-# 14 "/sym/gnu/lib/g++-include/sys/stat.h" 2 3
-
-
-
-
-
-
-extern int       chmod  (...) ;
-extern int       stat (...) ;
-extern int       lstat (...) ;
-extern int       fstat (...) ;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
-
-
-# 149 "/usr/include/sys/fcntlcom.h" 2 3
-
-
-int     __hide_open ( );
-int    __hide_creat ( );
-int    __hide_fcntl ( );
-
-
-# 6 "/usr/include/fcntl.h" 2 3
-
-
-
-
-
-# 14 "/sym/gnu/lib/g++-include/fcntl.h" 2 3
-
-
-
-
-
-
-
-
-int       fcntl(int, int, ...);
-int      creat (...) ;
-
-int       open (...) ;
-
-
-}
-
-# 31 "/sym/gnu/lib/g++-include/std.h" 2 3
-
-
-extern "C" {
-int strcasecmp (...) ;
-}
-
-
-# 18 "Vision.h" 2
-
-# 1 "/sym/gnu/lib/g++-include/math.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#pragma interface
-
-
-
-
-
-
-
-
-
-
-
-# 64 "/sym/gnu/lib/g++-include/math.h" 3
-
-extern "C" {
-
-double  acos(double);
-double  acosh(double);
-double  asin(double);
-double  asinh(double);
-double  atan(double);
-double  atan2(double, double);
-double  atanh(double);
-double  cbrt(double);
-double  ceil(double);
-double  copysign(double,double);
-double  cos(double);
-double  cosh(double);
-double  drem(double,double);
-double  erf(double);
-double  erfc(double);
-double  exp(double);
-double  expm1(double);
-double  fabs(double);
-double  finite(double);
-double  floor(double);
-double fmod(double, double);
-double  frexp(double, int*);
-double  gamma(double);
-double  hypot(double,double);
-double  infnan(int);
-
-int     isinf(double);
-int     isnan(double);
-
-double  j0(double);
-double  j1(double);
-double  jn(int, double);
-double  ldexp(double, int);
-double  lgamma(double);
-double  log(double);
-double  log10(double);
-double  log1p(double);
-double  logb(double);
-double  modf(double, double*);
-double  pow(double, double);
-double  rint(double);
-double  scalb(double, int);
-double  sin(double);
-double  sinh(double);
-double  sqrt(double);
-double  tan(double);
-double  tanh(double);
-double  y0(double);
-double  y1(double);
-double  yn(int, double);
-
-double aint(double);
-double anint(double);
-int irint(double);
-int nint(double);
-}
-
-
-
-
-
-
-struct libm_exception
-{
-  int type;
-  char* name;
-  double arg1, arg2, retval;
-};
-
-
-
-
-
-
-
-
-extern "C" int matherr(libm_exception*);
-
-
-
-# 1 "/sym/gnu/lib/g++-include/values.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 57 "/sym/gnu/lib/g++-include/values.h" 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 166 "/sym/gnu/lib/g++-include/values.h" 3
-
-
-
-
-
-
-
-
-
-# 150 "/sym/gnu/lib/g++-include/math.h" 2 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 19 "Vision.h" 2
-
-
-# 1 "MiscUtilities.h" 1
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/std.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 37 "/sym/gnu/lib/g++-include/std.h" 3
-
-# 6 "MiscUtilities.h" 2
-
-
-
-
-
-
-
-
-
-inline int used_mem() {
-       struct mallinfo mi = mallinfo();
-       return mi.usmblks+mi.uordblks;
-}
-inline volatile void abort() {
-       fprintf((&_iob[2]) ,"abort\n");
-       exit(1);
-}
-
-inline volatile void error(char *s) {
-       fprintf((&_iob[2]) ,"FATAL ERROR: ");
-       fprintf((&_iob[2]) ,"%s\n",s);
-       exit(1);
-}
-template <class Y>
-struct NameValuePair {
-       char *name;
-       Y y;
-};
-
-template <class Y>
-Y lookup(NameValuePair<Y> *data,char *name) {
-       while(data->name) {
-               if(!strcmp(data->name,name)) return data->y;
-               data++;
-       }
-       abort();
-       return data->y;          
-}
-
-template <class T>
-void swap(T &x,T &y) {
-       T temp = x;
-       x = y;
-       y = temp;
-}
-
-
-# 21 "Vision.h" 2
-
-# 1 "Counted.h" 1
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/std.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 37 "/sym/gnu/lib/g++-include/std.h" 3
-
-# 6 "Counted.h" 2
-
-
-template <class T>
-struct Counted {
- private:
-       int *count;
-       T *object;
-       T *operator&() {
-               return object;
-       }
-       void dec_count() {
-               if(!count) return;
-               (*count)--;
-               if(*count<=0) {
-                       delete count;
-                       delete object;
-                       count=0;
-                       object=0;
-               }
-       }
-       void inc_count() {
-               if(!count) return;
-               (*count)++;
-       }
- public:
-       Counted() {
-               count=0;
-               object=0;
-       }
-       Counted(T *object):object(object) {
-               count = new int(1);
-       }
-       ~Counted() {
-               dec_count();
-       }
-       Counted(Counted &other) {
-               count=other.count;
-               object=other.object;
-               inc_count();
-       }
-       Counted &operator=(Counted &other) {
-               other.inc_count();
-               dec_count();
-               count=other.count;
-               object=other.object;
-               return *this;
-       }
-
-       T &operator*() {if(!object) abort(); else return *object; return *object;}
-       T *operator->() {if(!object) abort(); else return object; return object;}
-       operator T&() {if(!object) abort(); else return *object; return *object;}
-
-        
-};
-
-
-# 22 "Vision.h" 2
-
-# 1 "Art.h" 1
-
-
-
-
-
-extern "C" { void abort(); }
-
-
-
-
-
-
-
-
-
-
-
-
-template <class X>
-inline void art_initialize(X *,int) {}
-
-# 39 "Art.h"
-
-
-
-template <class T>
-class Art {
-protected:
-       int mark_temp;
-       T *data;
-       int dims[1];
-       void constructor(int d) {
-               if(d<0) abort() ;
-               mark_temp=0;
-               dims[0]=d;
-               if(d>0) {
-                       data=new T[d];
-                       if(!data) abort() ;
-               } else data=0;
-               art_initialize(data,d);
-       }
-       void destructor() {
-               if(!data) return;
-               delete [] data;
-               mark_temp=0;
-               data=0;
-               dims[0]=0;
-        }
-       void copy(Art &other) {
-               int d0=dims[0]<?other.dims[0];
-               for(int i=0;i<d0;i++) data[i]=other.data[i];
-       }
-public:
-       void copyclear(Art &other) {
-               dims[0]=other.dims[0];
-               data=other.data;
-               other.dims[0]=0;
-               other.data=0;
-       }
-private:
-       void copyconstructor(Art &other) {
-               mark_temp=0;
-               if(other.mark_temp) {
-                       copyclear(other);
-               } else {
-                       constructor(other.dims[0]);
-                       copy(other);
-               }
-       }
- public:
-       Art() {constructor(0);}
-       Art(int d) {constructor(d);}
-       Art(Art &other) {copyconstructor(other);}
-       ~Art() {destructor();}
-        
-       Art &operator=(Art &other) {
-               destructor();
-               copyconstructor(other);
-               return *this;
-       }
-       int dim(int i) {return dims[i];}
-       T &operator()(int i) {
-               if(unsigned(i)>=unsigned(dims[0])) abort()  ;
-               return data[i];
-       }
-       T &sub(int i) {return data[i];}
-       void resize(int nd) {
-               if(nd<0) abort() ;
-               Art t(nd);
-               int limit=nd<?dims[0];
-               for(int i=0;i<limit;i++) t.data[i]=data[i];
-               t.mark_temp=1;
-               *this=t;
-       }
-       Art &temp() { mark_temp=1; return *this; }
-       T *pointer() {return data;}
-       void fill(T value) {for(int i=0;i<dims[0];i++) data[i]=value;}
-
-       int length() {return dims[0];}
-       T &operator[](int i) {return operator()(i);}
-};
-
-
-
-template <class T>
-class Stk {
-protected:
-       Art<T> stack;
-       int fill;
-public:
-       Stk() {stack.resize(4); fill=0;}
-       Stk(Stk &other) {
-               stack=other.stack;
-               fill=other.fill;
-       }
-       int dim(int i) {return stack.dim(i);}
-       void push(T &element) {
-               if(fill>=stack.dim(0)) stack.resize(2*fill);
-               stack.sub(fill++)=element;
-       }
-       T &tos() {
-               return stack(fill-1);
-       }
-       T &pop() {
-               return stack(--fill);
-       }
-       T &operator()(int i) {return stack(i);}
-       T &sub(int i) {return stack.sub(i);}
-       void clear() {
-               stack.resize(0);
-               stack.resize(4);
-               fill=0;
-       }
-       void compact() {
-               stack.resize(fill+1);
-       }
-       Stk temp() { stack.temp(); return *this; }
-       T *pointer() {return stack.pointer();}
-       operator Art<T>&() {return stack;}
-
-       int length() {return fill;}
-       T &operator[](int i) {return operator()(i);}
-};
-
-
-template <class T>
-class Art2 {
-protected:
-       int mark_temp;
-       T **data;
-       int dims[2];
-       int total_length;
-       void constructor(int d0,int d1) {
-               if(d0<0||d1<0) abort() ;
-               mark_temp=0;
-               dims[0]=d0;
-               dims[1]=d1;
-               total_length=dims[0]*dims[1];
-               if(d0>0) {
-                       data=new T*[d0];
-                       if(!data) abort() ;
-               } else data=0;
-               if(d0>0&&d1>0) {
-                       T *p=new T[d0*d1];
-                       if(!p) abort() ;
-                       for(int i=0;i<d0;i++) data[i]=p+i*d1;
-                       art_initialize(data[0],d0*d1);
-               }
-       }
-       void destructor() {
-               if(dims[0]<1) return;
-               if(!data) return;
-               delete [] data[0];
-               delete [] data;
-               mark_temp=0;
-               data=0;
-               dims[0]=0;
-               dims[1]=0;
-       }
-       void copy(Art2 &other) {
-               int d0=dims[0]<?other.dims[0];
-               int d1=dims[1]<?other.dims[1];
-               for(int i=0;i<d0;i++) for(int j=0;j<d1;j++)
-                       data[i][j]=other.data[i][j];
-       }
-public:
-       void copyclear(Art2 &other) {
-               dims[0]=other.dims[0];
-               dims[1]=other.dims[1];
-               total_length=dims[0]*dims[1];
-               data=other.data;
-               other.dims[0]=0;
-               other.dims[1]=0;
-               other.total_length=0;
-               other.data=0;
-       }
-private:
-       void copyconstructor(Art2 &other) {
-               mark_temp=0;
-               if(other.mark_temp) {
-                       copyclear(other);
-               } else {
-                       constructor(other.dims[0],other.dims[1]);
-                       copy(other);
-               }
-       }
- public:
-       Art2() {constructor(0,0);}
-       Art2(int d0,int d1) {constructor(d0,d1);}
-       Art2(Art2 &other) {copyconstructor(other);}
-       ~Art2() {destructor();}
-        
-       Art2 &operator=(Art2 &other) {
-               destructor();
-               copyconstructor(other);
-               return *this;
-       }
-       int dim(int i) {return dims[i];}
-       T &operator()(int i,int j) {
-               if(unsigned(i)>=unsigned(dims[0])||unsigned(j)>=unsigned(dims[1]))
-                       abort() ; 
-               return data[i][j];
-       }
-       T &sub(int i,int j) {return data[i][j];}
-       void resize(int nd0,int nd1) {
-               if(nd0<0||nd1<0) abort() ;
-               Art2 t(nd0,nd1);
-               int limit0=nd0<?dims[0];
-               int limit1=nd1<?dims[1];
-               for(int i=0;i<limit0;i++) for(int j=0;j<limit1;j++) t.data[i][j]=data[i][j];
-               t.mark_temp=1;
-               *this=t;
-       }
-       Art2 &temp() { mark_temp=1; return *this; }
-       T **pointer() {return data;}
-       void fill(T value) {
-               for(int i=0;i<dims[0];i++) for(int j=0;j<dims[1];j++)
-                       data[i][j]=value;
-       }
-
-        
-
-       int length() {return total_length;}
-       T &sub(int i) {return data[0][i];}
-       T &operator()(int i) {
-               if(unsigned(i)>=total_length) abort() ; 
-               return data[0][i];
-       }
-};
-
-template <class T>
-inline void art_swap(T &x,T &y) {
-       T temp = x;
-       x = y;
-       y = temp;
-}
-
-template <class T>
-inline void reverse(Art<T> &a) {
-       int i;
-       for(i=a.length()/2;i>=0;i--) art_swap(a.sub(i),a.sub(a.length()-i-1));
-}
-
-template <class T>
-inline void reverse(Stk<T> &a) {
-       reverse(a.stack);
-}
-
-template <class T>
-inline void bag_remove(Stk<T> &a,T &element) {
-       for(int i=0;i<a.length()-1;i++) {
-               if(a(i)==element) {
-                       a.sub(i)=a.tos();
-                       a.pop();
-               }
-       }
-       if(i<a.length()&&a.sub(i)==element) a.pop();
-}
-
-template <class T>
-inline void ordered_remove(Stk<T> &a,T &element) {
-       int source=0,dest=0;
-       while(source<a.length()) {
-               if(a(source)!=element) {
-                       a(dest)=a(source);
-                       dest++;
-               }
-               source++;
-       }
-       a.stack.resize(dest);
-}
-
-template <class T>
-inline Art<T> concatenate(Art<T> &a,Art<T> &b) {
-       int i,k;
-       k=a.length();
-       Art<T> result(k+b.length());
-       for(i=0;i<a.length();i++) result.sub(i)=a.sub(i);
-       for(i=0;i<b.length();i++) result.sub(i+k)=b.sub(i);
-       return result.temp();
-}
-
-template <class T>
-inline Stk<T> concatenate(Stk<T> &a,Stk<T> &b) {
-       int i;
-       Stk<T> result;
-       for(i=0;i<a.length();i++) result.push(a.sub(i));
-       for(i=0;i<b.length();i++) result.push(b.sub(i));
-       return result.temp();
-}
-
-
-# 23 "Vision.h" 2
-
-# 1 "Geo.h" 1
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/math.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 215 "/sym/gnu/lib/g++-include/math.h" 3
-
-# 6 "Geo.h" 2
-
-
-extern "C" {
-void abort();
-}
-
-
-
-
-
-
-
-
-
-
-
-template <class T,int n>
-class vec {
-protected:
-       T v[n];
-public:
-       int length() {return n;}
-       int dim(int) {return n;}
-       vec() {}
-       vec(T v0) { v[0]=v0; }
-       vec(T v0,T v1) { v[0]=v0; v[1]=v1; }
-       vec(T v0,T v1,T v2) { v[0]=v0; v[1]=v1; v[2]=v2; }
-       vec(T v0,T v1,T v2,T v3) { v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; }
-       vec(T v0,T v1,T v2,T v3,T v4) { v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; v[4]=v4; }
-       
-       T &operator[](int i) {return v[i];}
-       T &sub(int i) {return v[i];}
-       T &operator()(int i) {
-               if(unsigned(i)>=n) abort(); 
-               return v[i];
-       }
-
-        
-        
-        
-        
-        
-        
-        
-        
-        
-
-        
-       T operator*(vec &other) {
-               T result=0;
-               for(int i=0;i<n;i++) result=result+sub(i)*other.sub(i);
-               return result;
-       }
-
-        
-       vec operator-() {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)= -sub(i);
-               return result;
-       }
-       vec operator*(T other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)*other;
-               return result;
-       }
-       vec operator/(T other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)/other;
-               return result;
-       }
-       vec operator+(vec &other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)+other.sub(i);
-               return result;
-       }
-       vec operator-(vec &other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)-other.sub(i);
-               return result;
-       }
-       vec operator<?(vec &other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)<?other.sub(i);
-               return result;
-       }
-       vec operator>?(vec &other) {
-               vec result;
-               for(int i=0;i<n;i++) result.sub(i)=sub(i)>?other.sub(i);
-               return result;
-       }
-
-        
-       int operator==(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)!=other.sub(i)) return 0;
-               return 1;
-       }
-       int operator!=(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)!=other.sub(i)) return 1;
-               return 0;
-       }
-       int operator<(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)>=other.sub(i)) return 0;
-               return 1;
-       }
-       int operator>(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)<=other.sub(i)) return 0;
-               return 1;
-       }
-       int operator<=(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)>other.sub(i)) return 0;
-               return 1;
-       }
-       int operator>=(vec &other) {
-               for(int i=0;i<n;i++) if(sub(i)<other.sub(i)) return 0;
-               return 1;
-       }
-};
-
-template <class T>
-inline float euclidean_norm(T &v) {
-       float total=0.0;
-       for(int i=0;i<v.dim(0);i++) total+=v(i)*v(i);
-       return sqrt(total);
-}
-
-template <class T>
-inline float euclidean_distance(T &u,T &v) {
-       float total=0.0;
-       for(int i=0;i<u.dim(0);i++) {
-               float d=u(i)-v(i);
-               total+=d*d;
-       }
-       return sqrt(total);
-}
-
-
-template <class T,int n>
-class mat:vec<T,n*n> {
-protected:
-public:
-       int dim(int) {return n;}
-       T &operator[](int i) {return v[i];}
-       T &sub(int i,int j) {return v[i*n+j];}
-       T &operator()(int i,int j) {
-               if(unsigned(i)>=n||unsigned(j)>=n) abort(); 
-               return sub(i,j);
-       }
-       mat operator*(mat &other) {
-               mat result;
-               for(int i=0;i<n;i++) for(int j=0;j<n;j++) {
-                       T total=0;
-                       for(int k=0;k<n;k++) total=total+sub(i,k)*other.sub(k,j);
-                       result.sub(i,j)=total;
-               }
-               return result;
-       }
-       vec<T,n> operator*(vec<T,n> &other) {
-               vec<T,n> result;
-               for(int i=0;i<n;i++) {
-                       T total=0;
-                       for(int k=0;k<n;k++) total=total+sub(i,k)*other.sub(k);
-                       result.sub(i)=total;
-               }
-               return result;
-       }
-};
-
-
-typedef vec<float,2> vec2;
-typedef vec<float,3> vec3;
-typedef vec<float,4> vec4;
-
-typedef mat<float,2> mat2;
-typedef mat<float,3> mat3;
-typedef mat<float,4> mat4;
-
-typedef vec<int,2> ivec2;
-
-
-
-inline float norm_angle(float p) {
-       while(p<0) p+=2*       3.14159265358979323846 ; while(p>=2*       3.14159265358979323846 ) p-=2*       3.14159265358979323846 ; return p;
-}
-inline float norm_angle0(float p) {
-       while(p<-       3.14159265358979323846 ) p+=2*       3.14159265358979323846 ; while(p>=       3.14159265358979323846 ) p-=2*       3.14159265358979323846 ; return p;
-}
-inline float norm_orientation(float p) {
-       while(p<0) p+=       3.14159265358979323846 ; while(p>=       3.14159265358979323846 ) p-=       3.14159265358979323846 ; return p;
-}
-inline float norm_orientation0(float p) {
-       while(p<-       3.14159265358979323846 /2) p+=       3.14159265358979323846 ; while(p>=       3.14159265358979323846 /2) p-=       3.14159265358979323846 ; return p;
-}
-inline float orientation_difference(float p,float q) {
-       fabs(norm_orientation0(p-q));
-}
-
-
-
-
-
-
-
-
-
-
-inline vec2 cmul(vec2 &p,vec2 &q) {
-       return vec2(p.sub(0)*q.sub(0)-p.sub(1)*q.sub(1),
-                   p.sub(0)*q.sub(1)+p.sub(1)*q.sub(0));
-}
-
-inline vec2 cdiv(vec2 &p,vec2 &q) {
-       float n=q*q;
-       return vec2((p.sub(0)*q.sub(0)+p.sub(1)*q.sub(1))/n,
-                   (p.sub(1)*q.sub(0)-p.sub(0)*q.sub(1))/n);
-}
-
-inline vec2 csqrt(vec2 &x) {
-       if (x.sub(0)==0.0&&x.sub(1)==0.0)
-               return vec2(0.0,0.0);
-       else {
-               float a=sqrt((fabs(x.sub(0))+hypot(x.sub(0),x.sub(1)))*0.5);
-               float b=0.5*(x.sub(1)/a);
-               if(x.sub(0)>0.0) return vec2(a, b);
-               else if(x.sub(1)>=0.0) return vec2(a,b);
-               else return vec2(-a,-b);
-       }
-}
-inline vec2 cpow(vec2& x, double p) {
-       float h=hypot(x.sub(0),x.sub(1));
-       if (h<=0.0) abort();
-       float lr=pow(h,p);
-       float a=atan2(x.sub(1),x.sub(0));
-       float li=p*a;
-       return vec2(lr*cos(li),lr*sin(li));
-}
-
-
-inline float cross(vec2 p,vec2 q) {
-       return p.sub(0)*q.sub(1)-p.sub(1)*q.sub(0);
-}
-
-
-struct TRS2 {
-       vec2 t;
-       vec2 r;
-       TRS2(vec2 t=vec2(0.0,0.0),vec2 r=vec2(1.0,0.0)):t(t),r(r) {
-       }
-       vec2 operator()(vec2 &arg) {
-               return cmul(r,arg)+t;
-       }
-       float rotation() {
-               return atan2(r(1),r(0));
-       }
-};
-
-
-
-# 24 "Vision.h" 2
-
-
-
-
-# 1 "VisionTypes.h" 1
-
-typedef Art2<float> FImage;
-typedef Art2<int> IImage;
-typedef Art2<unsigned char> CImage;
-
-struct FImageOp {virtual FImage operator()(FImage &) = 0;};
-struct FImageOp2 {virtual FImage operator()(FImage &,FImage &) = 0;};
-struct CImageOp {virtual CImage operator()(CImage &) = 0;};
-struct CImageOp2 {virtual CImage operator()(CImage &,CImage &) = 0;};
-
-
-struct PFeature {
-       ivec2 p;
-       float a;
-       short group;
-       short type;
-       PFeature() {}
-       PFeature(ivec2 p,float a,int group,int type):p(p),a(a),group(group),type(type) {}
-};
-
-typedef Stk<PFeature> PFeatureStk;
-
-struct FIExtractor {virtual PFeatureStk operator()(FImage &) = 0;};
-struct CIExtractor {virtual PFeatureStk operator()(CImage &) = 0;};
-# 28 "Vision.h" 2
-
-# 1 "ImageDatabase.h" 1
-
-
-
-
-# 1 "Art.h" 1
-
-# 339 "Art.h"
-
-# 6 "ImageDatabase.h" 2
-
-
-typedef Art2<unsigned char> CImage;
-
-
-struct ImageDatabase {
-        
-        
-        
-
-       virtual int length() = 0;
-       virtual int nclassifications() = 0;
-       virtual int nusers() = 0;
-       
-        
-        
-
-       virtual int classification(int offset) = 0;
-       virtual int user(int offset) = 0;
-       
-       virtual CImage cimage(int offset) {abort();}
-       virtual PFeatureStk features(int offset) {abort();}
-
-        
-        
-        
-        
-
-       virtual int user_offset(int user) = 0;
-       virtual int user_length(int user) = 0;
-};
-
-ImageDatabase *make_NISTDigitImages();
-
-
-struct ImageDatabaseIterator {
-       virtual int done() = 0;
-       virtual void next() = 0;
-       virtual operator int() = 0;
-       virtual void mark_upto_here() {}
-};
-
-ImageDatabaseIterator *make_IDI_Sequential(ImageDatabase *digits,int current,int stride);
-ImageDatabaseIterator *make_IDI_OnePerUser(ImageDatabase *digits,int current);
-ImageDatabaseIterator *make_IDI_FromFile(char *name);
-
-
-# 29 "Vision.h" 2
-
-
-
-# 1 "NISTImages.cc" 2
-
-
-
-
-
-
-
-
-
-
-# 1 "/sym/gnu/lib/g++-include/std.h" 1 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 37 "/sym/gnu/lib/g++-include/std.h" 3
-
-# 11 "NISTImages.cc" 2
-
-# 1 "Art.h" 1
-
-# 339 "Art.h"
-
-# 12 "NISTImages.cc" 2
-
-
-extern "C" {
-# 1 "./nist/ihead.h" 1
-
-
-
-
-
-
-
-typedef struct ihead{
-   char id[    80      ];                       
-   char created[       26      ];               
-   char width[ 8       ];               
-   char height[        8       ];               
-   char depth[ 8       ];               
-   char density[       8       ];               
-   char compress[      8       ];               
-   char complen[       8       ];               
-   char align[ 8       ];               
-   char unitsize[      8       ];               
-   char sigbit;                                 
-   char byte_order;                     
-   char pix_offset[    8       ];       
-   char whitepix[      8       ];               
-   char issigned;                       
-   char rm_cm;                          
-   char tb_bt;                          
-   char lr_rl;                          
-   char parent[        80      ];               
-   char par_x[ 8       ];               
-   char par_y[ 8       ];               
-}IHEAD;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 15 "NISTImages.cc" 2
-
-int readihdrfile();
-
-}
-
-typedef Art2<unsigned char> CImage;
-
-Stk<char*> mis_files;
-
-extern "C" {
-       char *re_comp(char *);
-       int re_exec(char *);
-}
-
-struct NISTCharFile {
- private:
-       NISTCharFile(NISTCharFile &);
-       void operator=(NISTCharFile &);
- public:
-       IHEAD *bit_header;
-       int bit_w,bit_h;
-       char *bit_data;
-       int field_w,field_h;
-       Stk<int> classes;
-
-       static void maybe_read_mis_files() {
-               if(mis_files.length()>0) return;
-               struct _iobuf  *stream = fopen("/com/nist/mis-files" ,"r");
-               if(!stream) abort() ;
-               char buf[1024];
-               while(fgets(buf,sizeof buf,stream)) {
-                       buf[strlen(buf)-1]='\0';
-                       mis_files.push(strdup(buf));
-               }
-               fclose(stream);
-       }
-
-       static char *find_matching_mis_file_prefix(char *pattern) {
-               if(re_comp(pattern)) abort() ;
-               for(int i=0;i<mis_files.length();i++) {
-                       if(re_exec(mis_files(i))) break;
-               }
-               if(i<mis_files.length()) return mis_files(i);
-               else return 0;
-       }
-
-       static int part_of_user(int user) {
-               int part;
-               if(user<500) part=0;
-               else if(user<1000) part=1;
-               else if(user<1500) part=2;
-               else part=3;
-               return part;
-       }
-
-       static char type_of_itype(int itype) {
-               char type;
-               switch(itype) {
-               case 0: type='d'; break;
-               case 1: type='u'; break;
-               case 2: type='l'; break;
-               default: abort() ;
-               };
-               return type;
-       }
-
-       NISTCharFile(int user,char itype) {
-               maybe_read_mis_files();
-               int type = type_of_itype(itype);
-               int part = part_of_user(user);
-
-               char buf[512];
-               sprintf(buf,"/com/nist3/data/" "hsf_%d/f%04d_.*/%c%04d_.*",part,user,type,user);
-               char *prefix = find_matching_mis_file_prefix(buf);
-                ;
-               
-               if(!prefix) {
-                       bit_w = 0;
-                       bit_h = 0;
-                       field_w = 0;
-                       field_h = 0;
-                       return;
-               }
-
-               char file[512];
-
-               strcpy(file,prefix); strcat(file,".mis");
-               if(!readihdrfile(file,&bit_header,&bit_data,&bit_w,&bit_h))
-                       abort() ;
-               field_w=atoi(bit_header->par_x);
-               field_h=atoi(bit_header->par_y);
-
-               strcpy(file,prefix); strcat(file,".cls");
-               struct _iobuf  *stream = fopen(file,"r");
-               if(!stream)
-                       abort() ;
-               int total=atoi(fgets(buf,sizeof buf,stream));
-               if(total!=bit_h/field_h)
-                       abort() ;
-               while(fgets(buf,sizeof buf,stream)) classes.push(strtol(buf,0,16));
-               fclose(stream);
-       }
-
-       ~NISTCharFile() {
-               free(bit_header);
-               free(bit_data);
-       }
-
-       int length() {
-               return bit_h/field_h;
-       }
-
-       CImage image(int i) {
-                ;
-               CImage result(field_w,field_h);
-               int bit_w8=bit_w/8;
-               int offset=i*field_h;
-               if(offset>=bit_h) abort() ;
-               int i,j;
-
-
-               for(i=0;i<field_w;i++) for(j=0;j<field_h;j++) {
-                       int jj=j+offset;
-                       result(i,field_h-j-1)=(!!(bit_data[bit_w8*jj+(i>>3)]&(1<<(7-i&7)))) ;
-               }
-
-               return result.temp();
-       }
-
-       int classification(int i) {
-               return classes(i);
-       }
-};
-
-int *NISTDigitImages_table;
-
-struct NISTDigitImages:ImageDatabase {
- private:
-       NISTDigitImages(NISTDigitImages&);
-       void operator=(NISTDigitImages&);
- public:
-       enum {table_size=2101};
-
-       int nclassifications() {return 10;}
-       int nusers() {return 2200;}
-
-       static void init_table() {
-               struct _iobuf  *stream=fopen("/com/nist/nist-digits" ,"r");
-               NISTDigitImages_table = new int[table_size];
-               if(!stream) abort() ;
-               int i=1;
-               while(fscanf(stream,"%d",&NISTDigitImages_table[i])==1) i++;
-               if(i!=table_size) abort() ;
-               fclose(stream);
-               int total=0;
-               for(i=1;i<table_size;i++) NISTDigitImages_table[i]+=NISTDigitImages_table[i-1];
-       }
-
-       static int locate(int v) {
-               int low=0;
-               int high=table_size;
-               if(v>=NISTDigitImages_table[table_size-1]) abort() ;
-               while(low+1<high) {
-                       int mid=(low+high)/2;
-                       if(NISTDigitImages_table[mid]<=v) low=mid;
-                       else high=mid;
-               }
-               while(low<table_size-1&&NISTDigitImages_table[low+1]<=v) low++;
-               return low;
-       }
-
-       int user_offset(int user) {
-               if(unsigned(user)>=2100) abort() ;
-               return NISTDigitImages_table[user];
-       }
-
-       int user_length(int user) {
-               if(unsigned(user)>=2100) abort() ;
-               return NISTDigitImages_table[user+1]-NISTDigitImages_table[user];
-       }
-
-       int current_user;
-       NISTCharFile *current_file;
-
- private:
-       void get_cache(int user) {
-               if(user!=current_user) {
-                       delete current_file;
-                       current_file = new NISTCharFile(user,0);
-                       current_user = user;
-               }
-       }
-
- public:
-       NISTDigitImages() {
-                ;
-               if(!NISTDigitImages_table) init_table();
-               current_user=0;
-               current_file=new NISTCharFile(0,0);
-                ;
-       }
-
-       ~NISTDigitImages() {
-               delete current_file;
-       }
-
-       int length() {return NISTDigitImages_table[table_size-1];}
-
-       int user(int i) {
-               return locate(i);
-       }
-
-       CImage image(int i) {
-               int user = locate(i);
-               get_cache(user);
-               int offset = i-NISTDigitImages_table[user];
-               return current_file->image(offset);
-       }
-
-       int classification(int i) {
-               int user = locate(i);
-               get_cache(user);
-               int offset = i-NISTDigitImages_table[user];
-               return current_file->classification(offset);
-       }
-};
-
-ImageDatabase *make_NISTDigitImages() {
-       return new NISTDigitImages();
-}
-