From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18550 invoked by alias); 16 Jan 2002 21:06:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 18513 invoked by uid 71); 16 Jan 2002 21:06:01 -0000 Resent-Date: 16 Jan 2002 21:06:01 -0000 Resent-Message-ID: <20020116210601.18512.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Marc Mengel Received:(qmail 16071 invoked from network); 16 Jan 2002 21:00:24 -0000 Received: from unknown (HELO bel-kwinth.fnal.gov) (131.225.81.121) by sources.redhat.com with SMTP; 16 Jan 2002 21:00:24 -0000 Received: (from mengel@localhost) by bel-kwinth.fnal.gov (8.11.2/8.11.2) id g0GL0O611467; Wed, 16 Jan 2002 15:00:24 -0600 Message-Id:<200201162100.g0GL0O611467@bel-kwinth.fnal.gov> Date: Wed, 16 Jan 2002 13:06:00 -0000 From: Marc Mengel To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:3.113 Subject: c++/5406: --pedantic-error fails things --pedantic likes X-SW-Source: 2002-01/txt/msg00602.txt.bz2 List-Id: >Number: 5406 >Category: c++ >Synopsis: --pedantic-error fails things --pedantic likes >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: rejects-legal >Submitter-Id: net >Arrival-Date: Wed Jan 16 13:06:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Marc W. Mengel >Release: 3.0.1 >Organization: Fermi National Accelerator Laboratory >Environment: Linux Red Hat 6.2 specific System: Linux bldlinux61.fnal.gov 2.2.16-3smp #1 SMP Mon Jun 19 19:00:35 EDT 2000 i686 unknown Architecture: i686 host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: i686-pc-linux-gnu configured with: ../gcc-3.0.1/configure --prefix=/tmp/build-gcc-v3_0_1 --disable-shared >Description: On some C++ code compiling with "-O -pedantic-errors" complains about macro instantiations in , wheres with -O -pedantic no errors or warnings are generated. Errors are of the form: /afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h: In function `int __gnu_cxx::__capture_isgreater(_Tp, _Tp)': /afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h:534: ISO C++ forbids braced-groups within expressions where the line in question is a macro instantiation of a macro like: #define greaterequal(x, y) \ (__extension__ \ ({ __typeof__(x) __x = (x); __typeof__(y) __y = (y); \ !isunordered (__x, __y) && __x >= __y; })) >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >To-Repeat: Compile the following, first with: g++ -c -O --pedantic Then with: g++ -c -O --pedantic-errors The latter gives errors even though the former gives no warnings. I have been unable to find a simpler case that reproduces this. The same compiler built on Red Hat 7.1 on an otherwise identical system does *not* exhibit this behavior. Preprocessor input: - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - #include // $Id: ParticleID.hh,v 1.2 2001/11/14 01:31:10 garren Exp $ // ---------------------------------------------------------------------- // // ParticleID.hh // // various utilities to extract information from the particle ID // // In the standard numbering scheme, the PID digits (base 10) are: // +/- n nr nl nq1 nq2 nq3 nj // It is expected that any 7 digit number used as a PID will adhere to // the Monte Carlo numbering scheme documented by the PDG. // Note that many "new" particles not explicitly defined already // can be expressed within this numbering scheme. // // ---------------------------------------------------------------------- #include // swap() namespace HepPDT { // convert from 2J+1 to the actual spin value double spinitod( int js ); int spindtoi( double spin ); // translate between generator ID's and standard numbering scheme int translatePythiatoPDT( const int pythiaID ); int translateIsajettoPDT( const int isajetID ); int translateHerwigtoPDT( const int herwigID); int translateQQtoPDT( const int qqID); int translateGeanttoPDT( const int geantID); int translatePDGtabletoPDT( const int pdgID); int translateEvtGentoPDT( const int evtGenID ); int translatePDTtoPythia( const int pid ); int translatePDTtoIsajet( const int pid ); int translatePDTtoHerwig( const int pid ); int translatePDTtoQQ( const int pid ); int translatePDTtoGeant( const int pid ); int translatePDTtoPDGtable( const int pid ); int translatePDTtoEvtGen( const int pid ); // PID digits (base 10) are: n nr nl nq1 nq2 nq3 nj // the location enum provides a convenient index into the PID enum location { nj=1, nq3, nq2, nq1, nl, nr, n, n8, n9, n10 }; // constituent quarks struct Quarks { // -- constructors // Quarks( ) : nq1(0), nq2(0), nq3(0) {} Quarks( short q1, short q2, short q3) : nq1(q1), nq2(q2), nq3(q3) {} // -- data members // short nq1; short nq2; short nq3; }; class ParticleID { public: // --- birth/death: // inline ParticleID( int pid = 0 ); // --- copying: // inline ParticleID( const ParticleID & orig ); inline ParticleID& operator=( const ParticleID & ); inline void swap( ParticleID & other ); inline bool operator < ( ParticleID const & other ) const; inline bool operator == ( ParticleID const & other ) const; // --- accessors: // int pid( ) const { return itsPID; } inline int abspid( ) const; // --- boolean methods: // bool isValid( ) const; bool isMeson( ) const; bool isBaryon( ) const; bool isDiQuark( ) const; bool isHadron( ) const; bool isLepton( ) const; bool isNucleus( ) const; // inline bool hasUp( ) const; inline bool hasDown( ) const; inline bool hasStrange( ) const; inline bool hasCharm( ) const; inline bool hasBottom( ) const; inline bool hasTop( ) const; // jSpin returns 2J+1, where J is the total spin int jSpin( ) const; // sSpin returns 2S+1, where S is the spin int sSpin( ) const; // lSpin returns 2L+1, where L is the orbital angular momentum int lSpin( ) const; // return the first two digits if this is a "fundamental" particle int fundamentalID( ) const; // returns everything beyond the 7th digit (e.g. outside the numbering scheme) int extraBits( ) const; // returns a list of 3 constituent quarks Quarks quarks( ) const; // this is mostly for use by functions like addPDGParticles that have to // figure out the charge from the PID int threeCharge( ) const; // if this is a nucleus, get A and Z int A( ) const; int Z( ) const; // digit returns the digit at a named location in the PID unsigned short digit(location) const; private: int itsPID; }; // ParticleID inline void swap( ParticleID & first, ParticleID & second ) { first.swap( second ); } } // HepPDT // $Id: ParticleID.icc,v 1.2 2001/11/14 01:31:11 garren Exp $ // ---------------------------------------------------------------------- // // ParticleID.icc // // ---------------------------------------------------------------------- namespace HepPDT { ParticleID::ParticleID( int pid ) : itsPID ( pid ) { ; } ParticleID::ParticleID( const ParticleID & orig ) : itsPID ( orig.itsPID ) { ; } ParticleID& ParticleID::operator=( const ParticleID & rhs ) { ParticleID temp( rhs ); swap( temp ); return *this; } void ParticleID::swap( ParticleID & other ) { std::swap( itsPID, other.itsPID ); } bool ParticleID::operator < ( ParticleID const & other ) const { return itsPID < other.itsPID; } bool ParticleID::operator == ( ParticleID const & other ) const { return itsPID == other.itsPID; } int ParticleID::abspid( ) const { return (itsPID < 0) ? -itsPID : itsPID; } bool ParticleID::hasUp( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 2 || digit(nq2) == 2 || digit(nq1) == 2 ) { return true; } return false; } bool ParticleID::hasDown( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 1 || digit(nq2) == 1 || digit(nq1) == 1 ) { return true; } return false; } bool ParticleID::hasStrange( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 3 || digit(nq2) == 3 || digit(nq1) == 3 ) { return true; } return false; } bool ParticleID::hasCharm( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 4 || digit(nq2) == 4 || digit(nq1) == 4 ) { return true; } return false; } bool ParticleID::hasBottom( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 5 || digit(nq2) == 5 || digit(nq1) == 5 ) { return true; } return false; } bool ParticleID::hasTop( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 6 || digit(nq2) == 6 || digit(nq1) == 6 ) { return true; } return false; } } // HepPDT // $Id: digit.cc,v 1.1 2001/11/09 15:24:14 mf Exp $ // ---------------------------------------------------------------------- // // digit.cc // // split the PID into constituent integers // // ---------------------------------------------------------------------- namespace HepPDT { unsigned short ParticleID::digit( location loc ) const { // PID digits (base 10) are: n nr nl nq1 nq2 nq3 nj // the location enum provides a convenient index into the PID int numerator = (int) std::pow(10.0,(loc-1)); return (abspid()/numerator)%10; } } // HepPDT - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - Preprocessor output: - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - # 2 "foo.cc" # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cmath" 1 3 # 31 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cmath" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 1 3 # 37 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 34 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h" 1 3 # 37 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h" 3 # 1 "/usr/include/features.h" 1 3 # 250 "/usr/include/features.h" 3 # 1 "/usr/include/sys/cdefs.h" 1 3 # 251 "/usr/include/features.h" 2 3 # 278 "/usr/include/features.h" 3 # 1 "/usr/include/gnu/stubs.h" 1 3 # 279 "/usr/include/features.h" 2 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h" 2 3 # 35 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/limits.h" 1 3 # 37 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 2 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 2 3 # 40 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 3 # 1 "/usr/include/math.h" 1 3 # 27 "/usr/include/math.h" 3 # 1 "/usr/include/features.h" 1 3 # 28 "/usr/include/math.h" 2 3 extern "C" { # 1 "/usr/include/bits/huge_val.h" 1 3 # 25 "/usr/include/bits/huge_val.h" 3 # 1 "/usr/include/features.h" 1 3 # 26 "/usr/include/bits/huge_val.h" 2 3 # 34 "/usr/include/math.h" 2 3 # 1 "/usr/include/bits/nan.h" 1 3 # 38 "/usr/include/math.h" 2 3 # 1 "/usr/include/bits/mathdef.h" 1 3 # 29 "/usr/include/bits/mathdef.h" 3 typedef long double float_t; typedef long double double_t; # 41 "/usr/include/math.h" 2 3 # 63 "/usr/include/math.h" 3 # 1 "/usr/include/bits/mathcalls.h" 1 3 # 54 "/usr/include/bits/mathcalls.h" 3 extern double acos (double __x); extern double __acos (double __x); extern double asin (double __x); extern double __asin (double __x); extern double atan (double __x); extern double __atan (double __x); extern double atan2 (double __y, double __x); extern double __atan2 (double __y, double __x); extern double cos (double __x); extern double __cos (double __x); extern double sin (double __x); extern double __sin (double __x); extern double tan (double __x); extern double __tan (double __x); extern void sincos (double __x, double *__sinx, double *__cosx); extern void __sincos (double __x, double *__sinx, double *__cosx); extern double cosh (double __x); extern double __cosh (double __x); extern double sinh (double __x); extern double __sinh (double __x); extern double tanh (double __x); extern double __tanh (double __x); extern double acosh (double __x); extern double __acosh (double __x); extern double asinh (double __x); extern double __asinh (double __x); extern double atanh (double __x); extern double __atanh (double __x); extern double exp (double __x); extern double __exp (double __x); extern double exp10 (double __x); extern double __exp10 (double __x); extern double pow10 (double __x); extern double __pow10 (double __x); extern double frexp (double __x, int *__exponent); extern double __frexp (double __x, int *__exponent); extern double ldexp (double __x, int __exponent); extern double __ldexp (double __x, int __exponent); extern double log (double __x); extern double __log (double __x); extern double log10 (double __x); extern double __log10 (double __x); extern double modf (double __x, double *__iptr); extern double __modf (double __x, double *__iptr); extern double expm1 (double __x); extern double __expm1 (double __x); extern double log1p (double __x); extern double __log1p (double __x); extern double logb (double __x); extern double __logb (double __x); extern double exp2 (double __x); extern double __exp2 (double __x); extern double log2 (double __x); extern double __log2 (double __x); extern double pow (double __x, double __y); extern double __pow (double __x, double __y); extern double sqrt (double __x); extern double __sqrt (double __x); extern double hypot (double __x, double __y); extern double __hypot (double __x, double __y); extern double cbrt (double __x); extern double __cbrt (double __x); extern double ceil (double __x); extern double __ceil (double __x); extern double fabs (double __x) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__const__)); extern double floor (double __x); extern double __floor (double __x); extern double fmod (double __x, double __y); extern double __fmod (double __x, double __y); extern int __isinf (double __value) __attribute__ ((__const__)); extern int __finite (double __value) __attribute__ ((__const__)); extern int isinf (double __value) __attribute__ ((__const__)); extern int finite (double __value) __attribute__ ((__const__)); extern double infnan (int __error) __attribute__ ((__const__)); extern double __infnan (int __error) __attribute__ ((__const__)); extern double drem (double __x, double __y); extern double __drem (double __x, double __y); extern double significand (double __x); extern double __significand (double __x); extern double copysign (double __x, double __y) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__const__)); extern double nan (__const char *__tagb) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__const__)); extern int __isnan (double __value) __attribute__ ((__const__)); extern int isnan (double __value) __attribute__ ((__const__)); extern double j0 (double); extern double __j0 (double); extern double j1 (double); extern double __j1 (double); extern double jn (int, double); extern double __jn (int, double); extern double y0 (double); extern double __y0 (double); extern double y1 (double); extern double __y1 (double); extern double yn (int, double); extern double __yn (int, double); extern double erf (double); extern double __erf (double); extern double erfc (double); extern double __erfc (double); extern double lgamma (double); extern double __lgamma (double); extern double tgamma (double); extern double __tgamma (double); extern double gamma (double); extern double __gamma (double); extern double lgamma_r (double, int *__signgamp); extern double __lgamma_r (double, int *__signgamp); extern double rint (double __x); extern double __rint (double __x); extern double nextafter (double __x, double __y) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__const__)); extern double nexttoward (double __x, long double __y) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__const__)); extern double remainder (double __x, double __y); extern double __remainder (double __x, double __y); extern double scalb (double __x, double __n); extern double __scalb (double __x, double __n); extern double scalbn (double __x, int __n); extern double __scalbn (double __x, int __n); extern int ilogb (double __x); extern int __ilogb (double __x); extern double scalbln (double __x, long int __n); extern double __scalbln (double __x, long int __n); extern double nearbyint (double __x); extern double __nearbyint (double __x); extern double round (double __x); extern double __round (double __x); extern double trunc (double __x) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__const__)); extern double remquo (double __x, double __y, int *__quo); extern double __remquo (double __x, double __y, int *__quo); extern long int lrint (double __x); extern long int __lrint (double __x); extern long long int llrint (double __x); extern long long int __llrint (double __x); extern long int lround (double __x); extern long int __lround (double __x); extern long long int llround (double __x); extern long long int __llround (double __x); extern double fdim (double __x, double __y); extern double __fdim (double __x, double __y); extern double fmax (double __x, double __y); extern double __fmax (double __x, double __y); extern double fmin (double __x, double __y); extern double __fmin (double __x, double __y); extern int __fpclassify (double __value) __attribute__ ((__const__)); extern int __signbit (double __value) __attribute__ ((__const__)); extern double fma (double __x, double __y, double __z); extern double __fma (double __x, double __y, double __z); # 64 "/usr/include/math.h" 2 3 # 82 "/usr/include/math.h" 3 # 1 "/usr/include/bits/mathcalls.h" 1 3 # 54 "/usr/include/bits/mathcalls.h" 3 extern float acosf (float __x); extern float __acosf (float __x); extern float asinf (float __x); extern float __asinf (float __x); extern float atanf (float __x); extern float __atanf (float __x); extern float atan2f (float __y, float __x); extern float __atan2f (float __y, float __x); extern float cosf (float __x); extern float __cosf (float __x); extern float sinf (float __x); extern float __sinf (float __x); extern float tanf (float __x); extern float __tanf (float __x); extern void sincosf (float __x, float *__sinx, float *__cosx); extern void __sincosf (float __x, float *__sinx, float *__cosx); extern float coshf (float __x); extern float __coshf (float __x); extern float sinhf (float __x); extern float __sinhf (float __x); extern float tanhf (float __x); extern float __tanhf (float __x); extern float acoshf (float __x); extern float __acoshf (float __x); extern float asinhf (float __x); extern float __asinhf (float __x); extern float atanhf (float __x); extern float __atanhf (float __x); extern float expf (float __x); extern float __expf (float __x); extern float exp10f (float __x); extern float __exp10f (float __x); extern float pow10f (float __x); extern float __pow10f (float __x); extern float frexpf (float __x, int *__exponent); extern float __frexpf (float __x, int *__exponent); extern float ldexpf (float __x, int __exponent); extern float __ldexpf (float __x, int __exponent); extern float logf (float __x); extern float __logf (float __x); extern float log10f (float __x); extern float __log10f (float __x); extern float modff (float __x, float *__iptr); extern float __modff (float __x, float *__iptr); extern float expm1f (float __x); extern float __expm1f (float __x); extern float log1pf (float __x); extern float __log1pf (float __x); extern float logbf (float __x); extern float __logbf (float __x); extern float exp2f (float __x); extern float __exp2f (float __x); extern float log2f (float __x); extern float __log2f (float __x); extern float powf (float __x, float __y); extern float __powf (float __x, float __y); extern float sqrtf (float __x); extern float __sqrtf (float __x); extern float hypotf (float __x, float __y); extern float __hypotf (float __x, float __y); extern float cbrtf (float __x); extern float __cbrtf (float __x); extern float ceilf (float __x); extern float __ceilf (float __x); extern float fabsf (float __x) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__const__)); extern float floorf (float __x); extern float __floorf (float __x); extern float fmodf (float __x, float __y); extern float __fmodf (float __x, float __y); extern int __isinff (float __value) __attribute__ ((__const__)); extern int __finitef (float __value) __attribute__ ((__const__)); extern int isinff (float __value) __attribute__ ((__const__)); extern int finitef (float __value) __attribute__ ((__const__)); extern float infnanf (int __error) __attribute__ ((__const__)); extern float __infnanf (int __error) __attribute__ ((__const__)); extern float dremf (float __x, float __y); extern float __dremf (float __x, float __y); extern float significandf (float __x); extern float __significandf (float __x); extern float copysignf (float __x, float __y) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__const__)); extern float nanf (__const char *__tagb) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__const__)); extern int __isnanf (float __value) __attribute__ ((__const__)); extern int isnanf (float __value) __attribute__ ((__const__)); extern float j0f (float); extern float __j0f (float); extern float j1f (float); extern float __j1f (float); extern float jnf (int, float); extern float __jnf (int, float); extern float y0f (float); extern float __y0f (float); extern float y1f (float); extern float __y1f (float); extern float ynf (int, float); extern float __ynf (int, float); extern float erff (float); extern float __erff (float); extern float erfcf (float); extern float __erfcf (float); extern float lgammaf (float); extern float __lgammaf (float); extern float tgammaf (float); extern float __tgammaf (float); extern float gammaf (float); extern float __gammaf (float); extern float lgammaf_r (float, int *__signgamp); extern float __lgammaf_r (float, int *__signgamp); extern float rintf (float __x); extern float __rintf (float __x); extern float nextafterf (float __x, float __y) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__const__)); extern float nexttowardf (float __x, long double __y) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__const__)); extern float remainderf (float __x, float __y); extern float __remainderf (float __x, float __y); extern float scalbf (float __x, float __n); extern float __scalbf (float __x, float __n); extern float scalbnf (float __x, int __n); extern float __scalbnf (float __x, int __n); extern int ilogbf (float __x); extern int __ilogbf (float __x); extern float scalblnf (float __x, long int __n); extern float __scalblnf (float __x, long int __n); extern float nearbyintf (float __x); extern float __nearbyintf (float __x); extern float roundf (float __x); extern float __roundf (float __x); extern float truncf (float __x) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__const__)); extern float remquof (float __x, float __y, int *__quo); extern float __remquof (float __x, float __y, int *__quo); extern long int lrintf (float __x); extern long int __lrintf (float __x); extern long long int llrintf (float __x); extern long long int __llrintf (float __x); extern long int lroundf (float __x); extern long int __lroundf (float __x); extern long long int llroundf (float __x); extern long long int __llroundf (float __x); extern float fdimf (float __x, float __y); extern float __fdimf (float __x, float __y); extern float fmaxf (float __x, float __y); extern float __fmaxf (float __x, float __y); extern float fminf (float __x, float __y); extern float __fminf (float __x, float __y); extern int __fpclassifyf (float __value) __attribute__ ((__const__)); extern int __signbitf (float __value) __attribute__ ((__const__)); extern float fmaf (float __x, float __y, float __z); extern float __fmaf (float __x, float __y, float __z); # 83 "/usr/include/math.h" 2 3 # 99 "/usr/include/math.h" 3 # 1 "/usr/include/bits/mathcalls.h" 1 3 # 54 "/usr/include/bits/mathcalls.h" 3 extern long double acosl (long double __x); extern long double __acosl (long double __x); extern long double asinl (long double __x); extern long double __asinl (long double __x); extern long double atanl (long double __x); extern long double __atanl (long double __x); extern long double atan2l (long double __y, long double __x); extern long double __atan2l (long double __y, long double __x); extern long double cosl (long double __x); extern long double __cosl (long double __x); extern long double sinl (long double __x); extern long double __sinl (long double __x); extern long double tanl (long double __x); extern long double __tanl (long double __x); extern void sincosl (long double __x, long double *__sinx, long double *__cosx); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx); extern long double coshl (long double __x); extern long double __coshl (long double __x); extern long double sinhl (long double __x); extern long double __sinhl (long double __x); extern long double tanhl (long double __x); extern long double __tanhl (long double __x); extern long double acoshl (long double __x); extern long double __acoshl (long double __x); extern long double asinhl (long double __x); extern long double __asinhl (long double __x); extern long double atanhl (long double __x); extern long double __atanhl (long double __x); extern long double expl (long double __x); extern long double __expl (long double __x); extern long double exp10l (long double __x); extern long double __exp10l (long double __x); extern long double pow10l (long double __x); extern long double __pow10l (long double __x); extern long double frexpl (long double __x, int *__exponent); extern long double __frexpl (long double __x, int *__exponent); extern long double ldexpl (long double __x, int __exponent); extern long double __ldexpl (long double __x, int __exponent); extern long double logl (long double __x); extern long double __logl (long double __x); extern long double log10l (long double __x); extern long double __log10l (long double __x); extern long double modfl (long double __x, long double *__iptr); extern long double __modfl (long double __x, long double *__iptr); extern long double expm1l (long double __x); extern long double __expm1l (long double __x); extern long double log1pl (long double __x); extern long double __log1pl (long double __x); extern long double logbl (long double __x); extern long double __logbl (long double __x); extern long double exp2l (long double __x); extern long double __exp2l (long double __x); extern long double log2l (long double __x); extern long double __log2l (long double __x); extern long double powl (long double __x, long double __y); extern long double __powl (long double __x, long double __y); extern long double sqrtl (long double __x); extern long double __sqrtl (long double __x); extern long double hypotl (long double __x, long double __y); extern long double __hypotl (long double __x, long double __y); extern long double cbrtl (long double __x); extern long double __cbrtl (long double __x); extern long double ceill (long double __x); extern long double __ceill (long double __x); extern long double fabsl (long double __x) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__const__)); extern long double floorl (long double __x); extern long double __floorl (long double __x); extern long double fmodl (long double __x, long double __y); extern long double __fmodl (long double __x, long double __y); extern int __isinfl (long double __value) __attribute__ ((__const__)); extern int __finitel (long double __value) __attribute__ ((__const__)); extern int isinfl (long double __value) __attribute__ ((__const__)); extern int finitel (long double __value) __attribute__ ((__const__)); extern long double infnanl (int __error) __attribute__ ((__const__)); extern long double __infnanl (int __error) __attribute__ ((__const__)); extern long double dreml (long double __x, long double __y); extern long double __dreml (long double __x, long double __y); extern long double significandl (long double __x); extern long double __significandl (long double __x); extern long double copysignl (long double __x, long double __y) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__const__)); extern long double nanl (__const char *__tagb) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__const__)); extern int __isnanl (long double __value) __attribute__ ((__const__)); extern int isnanl (long double __value) __attribute__ ((__const__)); extern long double j0l (long double); extern long double __j0l (long double); extern long double j1l (long double); extern long double __j1l (long double); extern long double jnl (int, long double); extern long double __jnl (int, long double); extern long double y0l (long double); extern long double __y0l (long double); extern long double y1l (long double); extern long double __y1l (long double); extern long double ynl (int, long double); extern long double __ynl (int, long double); extern long double erfl (long double); extern long double __erfl (long double); extern long double erfcl (long double); extern long double __erfcl (long double); extern long double lgammal (long double); extern long double __lgammal (long double); extern long double tgammal (long double); extern long double __tgammal (long double); extern long double gammal (long double); extern long double __gammal (long double); extern long double lgammal_r (long double, int *__signgamp); extern long double __lgammal_r (long double, int *__signgamp); extern long double rintl (long double __x); extern long double __rintl (long double __x); extern long double nextafterl (long double __x, long double __y) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__const__)); extern long double nexttowardl (long double __x, long double __y) __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) __attribute__ ((__const__)); extern long double remainderl (long double __x, long double __y); extern long double __remainderl (long double __x, long double __y); extern long double scalbl (long double __x, long double __n); extern long double __scalbl (long double __x, long double __n); extern long double scalbnl (long double __x, int __n); extern long double __scalbnl (long double __x, int __n); extern int ilogbl (long double __x); extern int __ilogbl (long double __x); extern long double scalblnl (long double __x, long int __n); extern long double __scalblnl (long double __x, long int __n); extern long double nearbyintl (long double __x); extern long double __nearbyintl (long double __x); extern long double roundl (long double __x); extern long double __roundl (long double __x); extern long double truncl (long double __x) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__const__)); extern long double remquol (long double __x, long double __y, int *__quo); extern long double __remquol (long double __x, long double __y, int *__quo); extern long int lrintl (long double __x); extern long int __lrintl (long double __x); extern long long int llrintl (long double __x); extern long long int __llrintl (long double __x); extern long int lroundl (long double __x); extern long int __lroundl (long double __x); extern long long int llroundl (long double __x); extern long long int __llroundl (long double __x); extern long double fdiml (long double __x, long double __y); extern long double __fdiml (long double __x, long double __y); extern long double fmaxl (long double __x, long double __y); extern long double __fmaxl (long double __x, long double __y); extern long double fminl (long double __x, long double __y); extern long double __fminl (long double __x, long double __y); extern int __fpclassifyl (long double __value) __attribute__ ((__const__)); extern int __signbitl (long double __value) __attribute__ ((__const__)); extern long double fmal (long double __x, long double __y, long double __z); extern long double __fmal (long double __x, long double __y, long double __z); # 100 "/usr/include/math.h" 2 3 # 113 "/usr/include/math.h" 3 extern int signgam; # 154 "/usr/include/math.h" 3 enum { FP_NAN, FP_INFINITE, FP_ZERO, FP_SUBNORMAL, FP_NORMAL }; # 236 "/usr/include/math.h" 3 typedef enum { _IEEE_ = -1, _SVID_, _XOPEN_, _POSIX_, _ISOC_ } _LIB_VERSION_TYPE; extern _LIB_VERSION_TYPE _LIB_VERSION; # 259 "/usr/include/math.h" 3 struct __exception { int type; char *name; double arg1; double arg2; double retval; }; extern int matherr (struct __exception *__exc) throw (); # 289 "/usr/include/math.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/float.h" 1 3 # 290 "/usr/include/math.h" 2 3 # 409 "/usr/include/math.h" 3 } # 41 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 2 3 # 68 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 3 namespace std { template _Tp __cmath_power(_Tp, unsigned int); template inline _Tp __cmath_abs(_Tp __x) { return __x < _Tp() ? -__x : __x; } inline float abs(float __x) { return __builtin_fabsf(__x); } inline double abs(double __x) { return __builtin_fabs(__x); } inline long double abs(long double __x) { return __builtin_fabsl(__x); } inline float acos(float __x) { return ::acosf(__x); } using ::acos; inline long double acos(long double __x) { return ::acosl(__x); } inline float asin(float __x) { return ::asinf(__x); } using ::asin; inline long double asin(long double __x) { return ::asinl(__x); } inline float atan(float __x) { return ::atanf(__x); } using ::atan; inline long double atan(long double __x) { return ::atanl(__x); } inline float atan2(float __y, float __x) { return ::atan2f(__y, __x); } using ::atan2; inline long double atan2(long double __y, long double __x) { return ::atan2l(__y, __x); } inline float ceil(float __x) { return ::ceilf(__x); } using ::ceil; inline long double ceil(long double __x) { return ::ceill(__x); } inline float cos(float __x) { return __builtin_cosf(__x); } using ::cos; inline long double cos(long double __x) { return __builtin_cosl(__x); } inline float cosh(float __x) { return ::coshf(__x); } using ::cosh; inline long double cosh(long double __x) { return ::coshl(__x); } # 217 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 3 inline float exp(float __x) { return ::exp(static_cast(__x)); } using ::exp; inline long double exp(long double __x) { return ::expl(__x); } inline float fabs(float __x) { return __builtin_fabsf(__x); } using ::fabs; inline long double fabs(long double __x) { return __builtin_fabsl(__x); } inline float floor(float __x) { return ::floorf(__x); } using ::floor; inline long double floor(long double __x) { return ::floorl(__x); } inline float fmod(float __x, float __y) { return ::fmodf(__x, __y); } using ::fmod; inline long double fmod(long double __x, long double __y) { return ::fmodl(__x, __y); } inline float frexp(float __x, int* __exp) { return ::frexpf(__x, __exp); } using ::frexp; inline long double frexp(long double __x, int* __exp) { return ::frexpl(__x, __exp); } inline float ldexp(float __x, int __exp) { return ::ldexpf(__x, __exp); } using ::ldexp; inline long double ldexp(long double __x, int __exp) { return ::ldexpl(__x, __exp); } inline float log(float __x) { return ::logf(__x); } using ::log; inline long double log(long double __x) { return ::logl(__x); } inline float log10(float __x) { return ::log10f(__x); } using ::log10; inline long double log10(long double __x) { return ::log10l(__x); } inline float modf(float __x, float* __iptr) { return ::modff(__x, __iptr); } # 368 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 3 using ::modf; inline long double modf(long double __x, long double* __iptr) { return ::modfl(__x, __iptr); } # 384 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 3 template inline _Tp __pow_helper(_Tp __x, int __n) { return __n < 0 ? _Tp(1)/__cmath_power(__x, -__n) : __cmath_power(__x, __n); } inline float pow(float __x, float __y) { return ::powf(__x, __y); } using ::pow; inline long double pow(long double __x, long double __y) { return ::powl(__x, __y); } inline float pow(float __x, int __n) { return __pow_helper(__x, __n); } inline double pow(double __x, int __i) { return __pow_helper(__x, __i); } inline long double pow(long double __x, int __n) { return __pow_helper(__x, __n); } inline float sin(float __x) { return __builtin_sinf(__x); } using ::sin; inline long double sin(long double __x) { return __builtin_sinl(__x); } inline float sinh(float __x) { return ::sinhf(__x); } using ::sinh; inline long double sinh(long double __x) { return ::sinhl(__x); } inline float sqrt(float __x) { return __builtin_sqrtf(__x); } using ::sqrt; inline long double sqrt(long double __x) { return __builtin_sqrtl(__x); } inline float tan(float __x) { return ::tanf(__x); } using ::tan; inline long double tan(long double __x) { return ::tanl(__x); } inline float tanh(float __x) { return ::tanhf(__x); } using ::tanh; inline long double tanh(long double __x) { return ::tanhl(__x); } } namespace __gnu_cxx { template int __capture_fpclassify(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __fpclassifyf (__f) : sizeof (__f) == sizeof (double) ? __fpclassify (__f) : __fpclassifyl (__f)); } template int __capture_isfinite(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __finitef (__f) : sizeof (__f) == sizeof (double) ? __finite (__f) : __finitel (__f)); } template int __capture_isinf(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __isinff (__f) : sizeof (__f) == sizeof (double) ? __isinf (__f) : __isinfl (__f)); } template int __capture_isnan(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __isnanf (__f) : sizeof (__f) == sizeof (double) ? __isnan (__f) : __isnanl (__f)); } template int __capture_isnormal(_Tp __f) { return ((sizeof (__f) == sizeof (float) ? __fpclassifyf (__f) : sizeof (__f) == sizeof (double) ? __fpclassify (__f) : __fpclassifyl (__f)) == FP_NORMAL); } template int __capture_signbit(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __signbitf (__f) : sizeof (__f) == sizeof (double) ? __signbit (__f) : __signbitl (__f)); } template int __capture_isgreater(_Tp __f1, _Tp __f2) { return (__extension__ ({ __typeof__(__f1) __x = (__f1); __typeof__(__f2) __y = (__f2); !(__extension__ ({ __typeof__(__x) __u = (__x); __typeof__(__y) __v = (__y); (sizeof (__u) == sizeof (float) ? __fpclassifyf (__u) : sizeof (__u) == sizeof (doub le) ? __fpclassify (__u) : __fpclassifyl (__u)) == FP_NAN || (sizeof (__v) == sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) == sizeof (double) ? __fpclassify (__v) : __fpclassifyl (__v)) == FP_NAN; })) && __x > __y; })); } template int __capture_isgreaterequal(_Tp __f1, _Tp __f2) { return (__extension__ ({ __typeof__(__f1) __x = (__f1); __typeof__(__f2) __y = (__f2); !(__extension__ ({ __typeof__(__x) __u = (__x); __typeof__(__y) __v = (__y); (sizeof (__u) == sizeof (float) ? __fpclassifyf (__u) : sizeof (__u) == sizeof (dou ble) ? __fpclassify (__u) : __fpclassifyl (__u)) == FP_NAN || (sizeof (__v) == sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) == sizeof (double) ? __fpclassify (__v) : __fpclassifyl (__v)) == FP_NAN; })) && __x >= __y; })); } template int __capture_isless(_Tp __f1, _Tp __f2) { return (__extension__ ({ __typeof__(__f1) __x = (__f1); __typeof__(__f2) __y = (__f2); !(__extension__ ({ __typeof__(__x) __u = (__x); __typeof__(__y) __v = (__y); (sizeof (__u) == sizeof (float) ? __fpclassify f (__u) : sizeof (__u) == sizeof (double) ? __fpclassify (__u) : __fpclassifyl (__u)) == FP_NAN || (sizeof (__v) == sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) == sizeof (double) ? __fpclassify (__v) : __fpclassifyl (__v)) == FP_NAN; })) && __x < __y; })); } template int __capture_islessequal(_Tp __f1, _Tp __f2) { return (__extension__ ({ __typeof__(__f1) __x = (__f1); __typeof__(__f2) __y = (__f2); !(__extension__ ({ __typeof__(__x) __u = (__x); __typeof__(__y) __v = (__y); (sizeof (__u) == sizeof (float) ? __fpclassifyf (__u) : sizeof (__u) == sizeof (dou ble) ? __fpclassify (__u) : __fpclassifyl (__u)) == FP_NAN || (sizeof (__v) == sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) == sizeof (double) ? __fpclassify (__v) : __fpclassifyl (__v)) == FP_NAN; })) && __x <= __y; })); } template int __capture_islessgreater(_Tp __f1, _Tp __f2) { return (__extension__ ({ __typeof__(__f1) __x = (__f1); __typeof__(__f2) __y = (__f2); !(__extension__ ({ __typeof__(__x) __u = (__x); __typeof__(__y) __v = (__y); (sizeof (__u) == sizeof (float) ? __fpclassifyf (__u) : sizeof (__u) == sizeof (dou ble) ? __fpclassify (__u) : __fpclassifyl (__u)) == FP_NAN || (sizeof (__v) == sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) == sizeof (double) ? __fpclassify (__v) : __fpclassifyl (__v)) == FP_NAN; })) && (__x < __y || __y < __x); })); } template int __capture_isunordered(_Tp __f1, _Tp __f2) { return (__extension__ ({ __typeof__(__f1) __u = (__f1); __typeof__(__f2) __v = (__f2); (sizeof (__u) == sizeof (float) ? __fpclassifyf (__u) : sizeof (__u) == sizeof (double) ? __fpclassify (__u) : __fpclassifyl (__u)) == FP_NAN || (sizeof (__v) = = sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) == sizeof (double) ? __fpclassify (__v) : __fpclassifyl (__v)) == FP_NAN; })); } } # 576 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 3 namespace __gnu_cxx { template int fpclassify(_Tp __f) { return __capture_fpclassify(__f); } template int isfinite(_Tp __f) { return __capture_isfinite(__f); } template int isinf(_Tp __f) { return __capture_isinf(__f); } template int isnan(_Tp __f) { return __capture_isnan(__f); } template int isnormal(_Tp __f) { return __capture_isnormal(__f); } template int signbit(_Tp __f) { return __capture_signbit(__f); } template int isgreater(_Tp __f1, _Tp __f2) { return __capture_isgreater(__f1, __f2); } template int isgreaterequal(_Tp __f1, _Tp __f2) { return __capture_isgreaterequal(__f1, __f2); } template int isless(_Tp __f1, _Tp __f2) { return __capture_isless(__f1, __f2); } template int islessequal(_Tp __f1, _Tp __f2) { return __capture_islessequal(__f1, __f2); } template int islessgreater(_Tp __f1, _Tp __f2) { return __capture_islessgreater(__f1, __f2); } template int isunordered(_Tp __f1, _Tp __f2) { return __capture_isunordered(__f1, __f2); } } namespace std { using __gnu_cxx::fpclassify; using __gnu_cxx::isfinite; using __gnu_cxx::isinf; using __gnu_cxx::isnan; using __gnu_cxx::isnormal; using __gnu_cxx::signbit; using __gnu_cxx::isgreater; using __gnu_cxx::isgreaterequal; using __gnu_cxx::isless; using __gnu_cxx::islessequal; using __gnu_cxx::islessgreater; using __gnu_cxx::isunordered; } # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/cmath.tcc" 1 3 # 35 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/cmath.tcc" 3 namespace std { template _Tp __cmath_power(_Tp __x, unsigned int __n) { _Tp __y = __n % 2 ? __x : 1; while (__n >>= 1) { __x = __x * __x; if (__n % 2) __y = __y * __x; } return __y; } } # 651 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h" 2 3 # 32 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cmath" 2 3 # 3 "foo.cc" 2 # 20 "foo.cc" # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/algorithm" 1 3 # 31 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/algorithm" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_algorithm.h" 1 3 # 60 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_algorithm.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 1 3 # 64 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 65 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_pair.h" 1 3 # 64 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_pair.h" 3 namespace std { template struct pair { typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair() : first(), second() {} pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {} template pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {} }; template inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second); } template inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x == __y); } template inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __y < __x; } template inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__y < __x); } template inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x < __y); } # 139 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_pair.h" 3 template inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y) { return pair<_T1, _T2>(__x, __y); } } # 67 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/type_traits.h" 1 3 # 48 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/type_traits.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 50 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/type_traits.h" 2 3 # 86 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/type_traits.h" 3 template struct _Bool {}; typedef _Bool __true_type; typedef _Bool __false_type; template struct __type_traits { typedef __true_type this_dummy_member_must_be_first; # 110 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/type_traits.h" 3 typedef __false_type has_trivial_default_constructor; typedef __false_type has_trivial_copy_constructor; typedef __false_type has_trivial_assignment_operator; typedef __false_type has_trivial_destructor; typedef __false_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template struct __type_traits<_Tp*> { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template struct _Is_integer { typedef __false_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template struct _Is_normal_iterator { typedef __false_type _Normal; }; namespace std { template class __normal_iterator; }; template struct _Is_normal_iterator< std::__normal_iterator<_Iterator, _Container> > { typedef __true_type _Normal; }; # 70 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstring.h" 1 3 # 37 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstring.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstddef.h" 1 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstddef.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 147 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3 typedef int ptrdiff_t; # 199 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3 typedef unsigned int size_t; # 39 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstddef.h" 2 3 namespace std { using ::ptrdiff_t; using ::size_t; } # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstring.h" 2 3 # 40 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstring.h" 3 # 1 "/usr/include/string.h" 1 3 # 26 "/usr/include/string.h" 3 # 1 "/usr/include/features.h" 1 3 # 27 "/usr/include/string.h" 2 3 extern "C" { # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 34 "/usr/include/string.h" 2 3 extern void * memcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) throw (); extern void * memmove (void * __dest, __const void * __src, size_t __n) throw (); extern void * memccpy (void * __dest, __const void * __src, int __c, size_t __n) throw (); extern void * memset (void * __s, int __c, size_t __n) throw (); extern int memcmp (__const void * __s1, __const void * __s2, size_t __n) throw (); extern void * memchr (__const void * __s, int __c, size_t __n) throw (); extern void * rawmemchr (__const void * __s, int __c) throw (); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) throw (); extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); extern char *strcat (char *__restrict __dest, __const char *__restrict __src) throw (); extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); extern int strcmp (__const char *__s1, __const char *__s2) throw (); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) throw (); extern int strcoll (__const char *__s1, __const char *__s2) throw (); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); # 1 "/usr/include/xlocale.h" 1 3 # 28 "/usr/include/xlocale.h" 3 typedef struct __locale_struct { struct locale_data *__locales[6]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; } *__locale_t; # 100 "/usr/include/string.h" 2 3 extern int __strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) throw (); extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) throw (); extern char *__strdup (__const char *__s) throw (); extern char *strdup (__const char *__s) throw (); extern char *strndup (__const char *__string, size_t __n) throw (); # 146 "/usr/include/string.h" 3 extern char *strchr (__const char *__s, int __c) throw (); extern char *strrchr (__const char *__s, int __c) throw (); extern char *strchrnul (__const char *__s, int __c) throw (); extern size_t strcspn (__const char *__s, __const char *__reject) throw (); extern size_t strspn (__const char *__s, __const char *__accept) throw (); extern char *strpbrk (__const char *__s, __const char *__accept) throw (); extern char *strstr (__const char *__haystack, __const char *__needle) throw (); extern char *__strcasestr (__const char *__haystack, __const char *__needle) throw (); extern char *strcasestr (__const char *__haystack, __const char *__needle) throw (); extern char *strtok (char *__restrict __s, __const char *__restrict __delim) throw (); extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw (); extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw (); # 194 "/usr/include/string.h" 3 extern void * memmem (__const void * __haystack, size_t __haystacklen, __const void * __needle, size_t __needlelen) throw (); extern void * __mempcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) throw (); extern void * mempcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) throw (); extern size_t strlen (__const char *__s) throw (); extern size_t strnlen (__const char *__string, size_t __maxlen) throw (); extern char *strerror (int __errnum) throw (); extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen) throw (); extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) throw (); extern void __bzero (void * __s, size_t __n) throw (); extern void bcopy (__const void * __src, void * __dest, size_t __n) throw (); extern void bzero (void * __s, size_t __n) throw (); extern int bcmp (__const void * __s1, __const void * __s2, size_t __n) throw (); extern char *index (__const char *__s, int __c) throw (); extern char *rindex (__const char *__s, int __c) throw (); extern int __ffs (int __i) throw () __attribute__ ((const)); extern int ffs (int __i) throw () __attribute__ ((const)); extern int ffsl (long int __l) throw () __attribute__ ((const)); __extension__ extern int ffsll (long long int __ll) throw () __attribute__ ((const)); extern int __strcasecmp (__const char *__s1, __const char *__s2) throw (); extern int strcasecmp (__const char *__s1, __const char *__s2) throw (); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) throw (); extern int __strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) throw (); extern int __strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) throw (); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) throw (); extern int strverscmp (__const char *__s1, __const char *__s2) throw (); extern char *strsignal (int __sig) throw (); extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) throw (); extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) throw (); extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); extern char *strfry (char *__string) throw (); extern void * memfrob (void * __s, size_t __n) throw (); extern char *basename (__const char *__filename) throw (); # 350 "/usr/include/string.h" 3 } # 41 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstring.h" 2 3 # 66 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstring.h" 3 namespace std { using ::memcpy; using ::memmove; using ::strcpy; using ::strncpy; using ::strcat; using ::strncat; using ::memcmp; using ::strcmp; using ::strcoll; using ::strncmp; using ::strxfrm; using ::strcspn; using ::strspn; using ::strtok; using ::memset; using ::strerror; using ::strlen; using ::memchr; inline void* memchr(void* __p, int __c, size_t __n) { return memchr(const_cast(__p), __c, __n); } using ::strchr; inline char* strchr(char* __s1, int __n) { return __builtin_strchr(const_cast(__s1), __n); } using ::strpbrk; inline char* strpbrk(char* __s1, const char* __s2) { return __builtin_strpbrk(const_cast(__s1), __s2); } using ::strrchr; inline char* strrchr(char* __s1, int __n) { return __builtin_strrchr(const_cast(__s1), __n); } using ::strstr; inline char* strstr(char* __s1, const char* __s2) { return __builtin_strstr(const_cast(__s1), __s2); } } # 72 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_climits.h" 1 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_climits.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/limits.h" 1 3 # 11 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/limits.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/syslimits.h" 1 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/limits.h" 1 3 # 125 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/limits.h" 3 # 1 "/usr/include/limits.h" 1 3 # 26 "/usr/include/limits.h" 3 # 1 "/usr/include/features.h" 1 3 # 27 "/usr/include/limits.h" 2 3 # 1 "/usr/include/bits/posix1_lim.h" 1 3 # 126 "/usr/include/bits/posix1_lim.h" 3 # 1 "/usr/include/bits/local_lim.h" 1 3 # 27 "/usr/include/bits/local_lim.h" 3 # 1 "/usr/include/linux/limits.h" 1 3 # 28 "/usr/include/bits/local_lim.h" 2 3 # 127 "/usr/include/bits/posix1_lim.h" 2 3 # 31 "/usr/include/limits.h" 2 3 # 1 "/usr/include/bits/posix2_lim.h" 1 3 # 35 "/usr/include/limits.h" 2 3 # 1 "/usr/include/bits/xopen_lim.h" 1 3 # 34 "/usr/include/bits/xopen_lim.h" 3 # 1 "/usr/include/bits/stdio_lim.h" 1 3 # 35 "/usr/include/bits/xopen_lim.h" 2 3 # 39 "/usr/include/limits.h" 2 3 # 126 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/limits.h" 2 3 # 8 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/syslimits.h" 2 3 # 12 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/limits.h" 2 3 # 39 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_climits.h" 2 3 # 73 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdlib.h" 1 3 # 37 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdlib.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdlib.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstddef.h" 1 3 # 39 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdlib.h" 2 3 # 41 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdlib.h" 3 # 1 "/usr/include/stdlib.h" 1 3 # 25 "/usr/include/stdlib.h" 3 # 1 "/usr/include/features.h" 1 3 # 26 "/usr/include/stdlib.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 34 "/usr/include/stdlib.h" 2 3 extern "C" { typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 80 "/usr/include/stdlib.h" 3 extern size_t __ctype_get_mb_cur_max (void) throw (); extern double atof (__const char *__nptr) throw (); extern int atoi (__const char *__nptr) throw (); extern long int atol (__const char *__nptr) throw (); __extension__ extern long long int atoll (__const char *__nptr) throw (); extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw (); extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw (); extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw (); extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); # 132 "/usr/include/stdlib.h" 3 __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); # 157 "/usr/include/stdlib.h" 3 # 1 "/usr/include/xlocale.h" 1 3 # 158 "/usr/include/stdlib.h" 2 3 extern long int __strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw (); extern unsigned long int __strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern long long int __strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern unsigned long long int __strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw (); extern double __strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw (); extern float __strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw (); extern long double __strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw (); # 196 "/usr/include/stdlib.h" 3 extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw (); extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw (); extern long double __strtold_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __group) throw (); extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw (); extern unsigned long int __strtoul_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) throw (); __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw (); __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char ** __restrict __endptr, int __base, int __group) throw (); # 333 "/usr/include/stdlib.h" 3 extern char *l64a (long int __n) throw (); extern long int a64l (__const char *__s) throw (); # 1 "/usr/include/sys/types.h" 1 3 # 26 "/usr/include/sys/types.h" 3 # 1 "/usr/include/features.h" 1 3 # 27 "/usr/include/sys/types.h" 2 3 extern "C" { # 1 "/usr/include/bits/types.h" 1 3 # 26 "/usr/include/bits/types.h" 3 # 1 "/usr/include/features.h" 1 3 # 27 "/usr/include/bits/types.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 30 "/usr/include/bits/types.h" 2 3 typedef unsigned char __u_char; typedef unsigned short __u_short; typedef unsigned int __u_int; typedef unsigned long __u_long; __extension__ typedef unsigned long long int __u_quad_t; __extension__ typedef long long int __quad_t; # 49 "/usr/include/bits/types.h" 3 typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; typedef __quad_t *__qaddr_t; typedef __u_quad_t __dev_t; typedef __u_int __uid_t; typedef __u_int __gid_t; typedef __u_long __ino_t; typedef __u_int __mode_t; typedef __u_int __nlink_t; typedef long int __off_t; typedef __quad_t __loff_t; typedef int __pid_t; typedef int __ssize_t; typedef long int __rlim_t; typedef __quad_t __rlim64_t; typedef __u_int __id_t; typedef struct { int __val[2]; } __fsid_t; typedef int __daddr_t; typedef char *__caddr_t; typedef long int __time_t; typedef long int __swblk_t; typedef long int __clock_t; typedef unsigned long int __fd_mask; # 100 "/usr/include/bits/types.h" 3 typedef struct { __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; } __fd_set; typedef int __key_t; typedef unsigned short int __ipc_pid_t; typedef long int __blkcnt_t; typedef __quad_t __blkcnt64_t; typedef __u_long __fsblkcnt_t; typedef __u_quad_t __fsblkcnt64_t; typedef __u_long __fsfilcnt_t; typedef __u_quad_t __fsfilcnt64_t; typedef __u_long __ino64_t; typedef __loff_t __off64_t; typedef long int __t_scalar_t; typedef unsigned long int __t_uscalar_t; typedef int __intptr_t; # 1 "/usr/include/bits/pthreadtypes.h" 1 3 # 23 "/usr/include/bits/pthreadtypes.h" 3 # 1 "/usr/include/bits/sched.h" 1 3 # 68 "/usr/include/bits/sched.h" 3 struct __sched_param { int sched_priority; }; # 24 "/usr/include/bits/pthreadtypes.h" 2 3 struct _pthread_fastlock { long int __status; int __spinlock; }; typedef struct _pthread_descr_struct *_pthread_descr; typedef struct { int __detachstate; int __schedpolicy; struct __sched_param __schedparam; int __inheritsched; int __scope; size_t __guardsize; int __stackaddr_set; void *__stackaddr; size_t __stacksize; } pthread_attr_t; typedef struct { struct _pthread_fastlock __c_lock; _pthread_descr __c_waiting; } pthread_cond_t; typedef struct { int __dummy; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef struct { int __m_reserved; int __m_count; _pthread_descr __m_owner; int __m_kind; struct _pthread_fastlock __m_lock; } pthread_mutex_t; typedef struct { int __mutexkind; } pthread_mutexattr_t; typedef int pthread_once_t; typedef struct _pthread_rwlock_t { struct _pthread_fastlock __rw_lock; int __rw_readers; _pthread_descr __rw_writer; _pthread_descr __rw_read_waiting; _pthread_descr __rw_write_waiting; int __rw_kind; int __rw_pshared; } pthread_rwlock_t; typedef struct { int __lockkind; int __pshared; } pthread_rwlockattr_t; typedef unsigned long int pthread_t; # 151 "/usr/include/bits/types.h" 2 3 # 31 "/usr/include/sys/types.h" 2 3 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; typedef __off64_t off64_t; typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 1 "/usr/include/time.h" 1 3 # 57 "/usr/include/time.h" 3 # 1 "/usr/include/bits/types.h" 1 3 # 58 "/usr/include/time.h" 2 3 typedef __clock_t clock_t; # 1 "/usr/include/bits/types.h" 1 3 # 69 "/usr/include/time.h" 2 3 typedef __time_t time_t; # 123 "/usr/include/sys/types.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 126 "/usr/include/sys/types.h" 2 3 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 169 "/usr/include/sys/types.h" 3 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 191 "/usr/include/sys/types.h" 3 # 1 "/usr/include/endian.h" 1 3 # 22 "/usr/include/endian.h" 3 # 1 "/usr/include/features.h" 1 3 # 23 "/usr/include/endian.h" 2 3 # 35 "/usr/include/endian.h" 3 # 1 "/usr/include/bits/endian.h" 1 3 # 36 "/usr/include/endian.h" 2 3 # 192 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/sys/select.h" 1 3 # 25 "/usr/include/sys/select.h" 3 # 1 "/usr/include/features.h" 1 3 # 26 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/types.h" 1 3 # 29 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/select.h" 1 3 # 32 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/sigset.h" 1 3 # 23 "/usr/include/bits/sigset.h" 3 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/time.h" 1 3 # 83 "/usr/include/time.h" 3 struct timespec { long int tv_sec; long int tv_nsec; }; # 39 "/usr/include/sys/select.h" 2 3 extern "C" { struct timeval; typedef __fd_mask fd_mask; typedef __fd_set fd_set; # 74 "/usr/include/sys/select.h" 3 extern int __select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) throw (); extern int select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) throw (); # 87 "/usr/include/sys/select.h" 3 extern int pselect (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, const struct timespec *__timeout, const __sigset_t *__sigmask) throw (); } # 195 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/sys/sysmacros.h" 1 3 # 198 "/usr/include/sys/types.h" 2 3 typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; } # 340 "/usr/include/stdlib.h" 2 3 extern int32_t random (void) throw (); extern void srandom (unsigned int __seed) throw (); extern void * initstate (unsigned int __seed, void * __statebuf, size_t __statelen) throw (); extern void * setstate (void * __statebuf) throw (); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) throw (); extern int srandom_r (unsigned int __seed, struct random_data *__buf) throw (); extern int initstate_r (unsigned int __seed, void * __restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) throw (); extern int setstate_r (void * __restrict __statebuf, struct random_data *__restrict __buf) throw (); extern int rand (void) throw (); extern void srand (unsigned int __seed) throw (); extern int rand_r (unsigned int *__seed) throw (); extern double drand48 (void) throw (); extern double erand48 (unsigned short int __xsubi[3]) throw (); extern long int lrand48 (void) throw (); extern long int nrand48 (unsigned short int __xsubi[3]) throw (); extern long int mrand48 (void) throw (); extern long int jrand48 (unsigned short int __xsubi[3]) throw (); extern void srand48 (long int __seedval) throw (); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) throw (); extern void lcong48 (unsigned short int __param[7]) throw (); struct drand48_data { unsigned short int x[3]; unsigned short int a[3]; unsigned short int c; unsigned short int old_x[3]; int init; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) throw (); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) throw (); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw (); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw (); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw (); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw (); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) throw (); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) throw (); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) throw (); # 474 "/usr/include/stdlib.h" 3 extern void * malloc (size_t __size) throw (); extern void * calloc (size_t __nmemb, size_t __size) throw (); extern void * realloc (void * __ptr, size_t __size) throw (); extern void free (void * __ptr) throw (); extern void cfree (void * __ptr) throw (); # 1 "/usr/include/alloca.h" 1 3 # 22 "/usr/include/alloca.h" 3 # 1 "/usr/include/features.h" 1 3 # 23 "/usr/include/alloca.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 26 "/usr/include/alloca.h" 2 3 extern "C" { extern void * alloca (size_t __size) throw (); } # 493 "/usr/include/stdlib.h" 2 3 extern void * valloc (size_t __size) throw (); extern void abort (void) throw () __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) throw (); extern int __on_exit (void (*__func) (int __status, void * __arg), void * __arg) throw (); extern int on_exit (void (*__func) (int __status, void * __arg), void * __arg) throw (); extern void exit (int __status) throw () __attribute__ ((__noreturn__)); extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) throw (); extern char *__secure_getenv (__const char *__name) throw (); extern int putenv (char *__string) throw (); extern int setenv (__const char *__name, __const char *__value, int __replace) throw (); extern void unsetenv (__const char *__name) throw (); extern int clearenv (void) throw (); # 566 "/usr/include/stdlib.h" 3 extern char *mktemp (char *__template) throw (); extern int mkstemp (char *__template) throw (); extern int system (__const char *__command) throw (); extern char *canonicalize_file_name (__const char *__name) throw (); # 595 "/usr/include/stdlib.h" 3 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) throw (); typedef int (*__compar_fn_t) (__const void *, __const void *); typedef __compar_fn_t comparison_fn_t; extern void * bsearch (__const void * __key, __const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar); extern void qsort (void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar); extern int abs (int __x) throw () __attribute__ ((__const__)); extern long int labs (long int __x) throw () __attribute__ ((__const__)); __extension__ extern long long int llabs (long long int __x) throw () __attribute__ ((__const__)); extern div_t div (int __numer, int __denom) throw () __attribute__ ((__const__)); extern ldiv_t ldiv (long int __numer, long int __denom) throw () __attribute__ ((__const__)); __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) throw () __attribute__ ((__const__)); # 651 "/usr/include/stdlib.h" 3 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw (); extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw (); extern char *gcvt (double __value, int __ndigit, char *__buf) throw (); extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw (); extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw (); extern char *qgcvt (long double __value, int __ndigit, char *__buf) throw (); extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw (); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw (); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw (); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw (); # 695 "/usr/include/stdlib.h" 3 extern int mblen (__const char *__s, size_t __n) throw (); extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) throw (); extern int wctomb (char *__s, wchar_t __wchar) throw (); extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) throw (); extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) throw (); # 718 "/usr/include/stdlib.h" 3 extern int rpmatch (__const char *__response) throw (); # 729 "/usr/include/stdlib.h" 3 extern int getsubopt (char **__restrict __optionp, __const char *__const *__restrict __tokens, char **__restrict __valuep) throw (); # 738 "/usr/include/stdlib.h" 3 extern void setkey (__const char *__key) throw (); extern int grantpt (int __fd) throw (); extern int unlockpt (int __fd) throw (); extern char *ptsname (int __fd) throw (); extern int ptsname_r (int __fd, char *__buf, size_t __buflen) throw (); extern int getpt (void) throw (); } # 42 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdlib.h" 2 3 # 73 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdlib.h" 3 namespace std { using ::div_t; using ::ldiv_t; using ::abort; using ::abs; using ::atexit; using ::atof; using ::atoi; using ::atol; using ::bsearch; using ::calloc; using ::div; using ::exit; using ::free; using ::getenv; using ::labs; using ::ldiv; using ::malloc; using ::mblen; using ::mbstowcs; using ::mbtowc; using ::qsort; using ::rand; using ::realloc; using ::srand; using ::strtod; using ::strtol; using ::strtoul; using ::system; using ::wcstombs; using ::wctomb; inline long abs(long __i) { return labs(__i); } inline ldiv_t div(long __i, long __j) { return ldiv(__i, __j); } } # 125 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdlib.h" 3 namespace __gnu_cxx { using ::lldiv_t; using ::_Exit; inline long long abs(long long __x) { return __x >= 0 ? __x : -__x; } inline long long llabs(long long __x) { return __x >= 0 ? __x : -__x; } inline lldiv_t div(long long __n, long long __d) { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } inline lldiv_t lldiv(long long __n, long long __d) { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } using ::atoll; using ::strtof; using ::strtoll; using ::strtoull; using ::strtold; } namespace std { using __gnu_cxx::lldiv_t; using __gnu_cxx::_Exit; using __gnu_cxx::abs; using __gnu_cxx::llabs; using __gnu_cxx::div; using __gnu_cxx::lldiv; using __gnu_cxx::atoll; using __gnu_cxx::strtof; using __gnu_cxx::strtoll; using __gnu_cxx::strtoull; using __gnu_cxx::strtold; } # 74 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstddef.h" 1 3 # 75 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/new" 1 3 # 40 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/new" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cstddef" 1 3 # 41 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/new" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/exception" 1 3 # 39 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/exception" 3 extern "C++" { namespace std { class exception { public: exception() throw() { } virtual ~exception() throw(); virtual const char* what() const throw(); }; class bad_exception : public exception { public: bad_exception() throw() { } virtual ~bad_exception() throw(); }; typedef void (*terminate_handler) (); typedef void (*unexpected_handler) (); terminate_handler set_terminate(terminate_handler) throw(); void terminate() __attribute__ ((__noreturn__)); unexpected_handler set_unexpected(unexpected_handler) throw(); void unexpected() __attribute__ ((__noreturn__)); # 95 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/exception" 3 bool uncaught_exception() throw(); } } # 42 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/new" 2 3 extern "C++" { namespace std { class bad_alloc : public exception { public: bad_alloc() throw() { } virtual ~bad_alloc() throw(); }; struct nothrow_t { }; extern const nothrow_t nothrow; typedef void (*new_handler)(); new_handler set_new_handler(new_handler); } # 76 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/new" 3 void *operator new(std::size_t) throw (std::bad_alloc); void *operator new[](std::size_t) throw (std::bad_alloc); void operator delete(void *) throw(); void operator delete[](void *) throw(); void *operator new(std::size_t, const std::nothrow_t&) throw(); void *operator new[](std::size_t, const std::nothrow_t&) throw(); void operator delete(void *, const std::nothrow_t&) throw(); void operator delete[](void *, const std::nothrow_t&) throw(); inline void *operator new(std::size_t, void *place) throw() { return place; } inline void *operator new[](std::size_t, void *place) throw() { return place; } } # 76 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_iosfwd.h" 1 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_iosfwd.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 40 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_iosfwd.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stringfwd.h" 1 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stringfwd.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 40 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stringfwd.h" 2 3 namespace std { template struct char_traits; template<> struct char_traits; template class allocator; template, typename _Alloc = allocator<_CharT> > class basic_string; typedef basic_string string; } # 41 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_iosfwd.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/fpos.h" 1 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/fpos.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 1 3 # 35 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cstdio" 1 3 # 31 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cstdio" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdio.h" 1 3 # 37 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdio.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdio.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstddef.h" 1 3 # 39 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdio.h" 2 3 # 41 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdio.h" 3 # 1 "/usr/include/stdio.h" 1 3 # 27 "/usr/include/stdio.h" 3 # 1 "/usr/include/features.h" 1 3 # 28 "/usr/include/stdio.h" 2 3 extern "C" { # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 34 "/usr/include/stdio.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 1 3 # 43 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 3 typedef __builtin_va_list __gnuc_va_list; # 110 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 3 typedef __gnuc_va_list va_list; # 39 "/usr/include/stdio.h" 2 3 # 1 "/usr/include/bits/types.h" 1 3 # 41 "/usr/include/stdio.h" 2 3 typedef struct _IO_FILE FILE; # 57 "/usr/include/stdio.h" 3 # 1 "/usr/include/libio.h" 1 3 # 30 "/usr/include/libio.h" 3 # 1 "/usr/include/_G_config.h" 1 3 # 9 "/usr/include/_G_config.h" 3 # 1 "/usr/include/bits/types.h" 1 3 # 10 "/usr/include/_G_config.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 312 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3 typedef unsigned int wint_t; # 15 "/usr/include/_G_config.h" 2 3 # 35 "/usr/include/_G_config.h" 3 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); # 31 "/usr/include/libio.h" 2 3 # 48 "/usr/include/libio.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 1 3 # 49 "/usr/include/libio.h" 2 3 # 154 "/usr/include/libio.h" 3 struct _IO_jump_t; struct _IO_FILE; # 164 "/usr/include/libio.h" 3 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 187 "/usr/include/libio.h" 3 }; struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _blksize; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 233 "/usr/include/libio.h" 3 __off64_t _offset; int _unused2[16]; }; struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_2_1_stdin_; extern struct _IO_FILE_plus _IO_2_1_stdout_; extern struct _IO_FILE_plus _IO_2_1_stderr_; # 262 "/usr/include/libio.h" 3 typedef __ssize_t __io_read_fn (void * __cookie, char *__buf, size_t __nbytes); # 271 "/usr/include/libio.h" 3 typedef __ssize_t __io_write_fn (void * __cookie, __const char *__buf, size_t __n); # 280 "/usr/include/libio.h" 3 typedef int __io_seek_fn (void * __cookie, __off_t __pos, int __w); typedef int __io_close_fn (void * __cookie); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file { struct _IO_FILE __file; const void *__vtable; void *__cookie; _IO_cookie_io_functions_t __io_functions; }; extern "C" { extern int __underflow (_IO_FILE *) throw (); extern int __uflow (_IO_FILE *) throw (); extern int __overflow (_IO_FILE *, int) throw (); # 337 "/usr/include/libio.h" 3 extern int _IO_getc (_IO_FILE *__fp) throw (); extern int _IO_putc (int __c, _IO_FILE *__fp) throw (); extern int _IO_feof (_IO_FILE *__fp) throw (); extern int _IO_ferror (_IO_FILE *__fp) throw (); extern int _IO_peekc_locked (_IO_FILE *__fp) throw (); extern void _IO_flockfile (_IO_FILE *) throw (); extern void _IO_funlockfile (_IO_FILE *) throw (); extern int _IO_ftrylockfile (_IO_FILE *) throw (); # 363 "/usr/include/libio.h" 3 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict) throw (); extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list) throw (); extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw (); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw (); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw (); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw (); extern void _IO_free_backup_area (_IO_FILE *) throw (); } # 58 "/usr/include/stdio.h" 2 3 typedef __off_t fpos_t; typedef __off64_t fpos64_t; # 110 "/usr/include/stdio.h" 3 # 1 "/usr/include/bits/stdio_lim.h" 1 3 # 111 "/usr/include/stdio.h" 2 3 extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; extern int remove (__const char *__filename) throw (); extern int rename (__const char *__old, __const char *__new) throw (); extern FILE *tmpfile (void) throw (); # 140 "/usr/include/stdio.h" 3 extern FILE *tmpfile64 (void) throw (); extern char *tmpnam (char *__s) throw (); extern char *tmpnam_r (char *__s) throw (); # 160 "/usr/include/stdio.h" 3 extern char *tempnam (__const char *__dir, __const char *__pfx) throw (); extern int fclose (FILE *__stream) throw (); extern int fflush (FILE *__stream) throw (); extern int fflush_unlocked (FILE *__stream) throw (); extern int fcloseall (void) throw (); extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) throw (); extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) throw (); # 203 "/usr/include/stdio.h" 3 extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes) throw (); extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) throw (); extern FILE *fdopen (int __fd, __const char *__modes) throw (); extern FILE *fopencookie (void *__restrict __magic_cookie, __const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) throw (); extern FILE *open_memstream (char **__restrict __bufloc, size_t *__restrict __sizeloc) throw (); extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) throw (); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) throw (); extern void setlinebuf (FILE *__stream) throw (); extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...) throw (); extern int printf (__const char *__restrict __format, ...) throw (); extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) throw (); extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw (); extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg) throw (); extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw (); extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 3, 4))); extern int __vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 3, 0))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 2, 0))); extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) throw (); extern int scanf (__const char *__restrict __format, ...) throw (); extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) throw (); extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__scanf__, 2, 0))); extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__scanf__, 1, 0))); extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__scanf__, 2, 0))); extern int fgetc (FILE *__stream) throw (); extern int getc (FILE *__stream) throw (); extern int getchar (void) throw (); extern int getc_unlocked (FILE *__stream) throw (); extern int getchar_unlocked (void) throw (); extern int fgetc_unlocked (FILE *__stream) throw (); extern int fputc (int __c, FILE *__stream) throw (); extern int putc (int __c, FILE *__stream) throw (); extern int putchar (int __c) throw (); extern int fputc_unlocked (int __c, FILE *__stream) throw (); extern int putc_unlocked (int __c, FILE *__stream) throw (); extern int putchar_unlocked (int __c) throw (); extern int getw (FILE *__stream) throw (); extern int putw (int __w, FILE *__stream) throw (); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) throw (); extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) throw (); extern char *gets (char *__s) throw (); # 413 "/usr/include/stdio.h" 3 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) throw (); extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) throw (); extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) throw (); extern int fputs (__const char *__restrict __s, FILE *__restrict __stream) throw (); extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream) throw (); extern int puts (__const char *__s) throw (); extern int ungetc (int __c, FILE *__stream) throw (); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) throw (); extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s) throw (); extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) throw (); extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) throw (); extern int fseek (FILE *__stream, long int __off, int __whence) throw (); extern long int ftell (FILE *__stream) throw (); extern void rewind (FILE *__stream) throw (); # 493 "/usr/include/stdio.h" 3 extern int fseeko (FILE *__stream, __off_t __off, int __whence) throw (); extern __off_t ftello (FILE *__stream) throw (); extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) throw (); extern int fsetpos (FILE *__stream, __const fpos_t *__pos) throw (); # 527 "/usr/include/stdio.h" 3 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) throw (); extern __off64_t ftello64 (FILE *__stream) throw (); extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos) throw (); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos) throw (); extern void clearerr (FILE *__stream) throw (); extern int feof (FILE *__stream) throw (); extern int ferror (FILE *__stream) throw (); extern void clearerr_unlocked (FILE *__stream) throw (); extern int feof_unlocked (FILE *__stream) throw (); extern int ferror_unlocked (FILE *__stream) throw (); extern void perror (__const char *__s) throw (); extern int sys_nerr; extern __const char *__const sys_errlist[]; extern int _sys_nerr; extern __const char *__const _sys_errlist[]; extern int fileno (FILE *__stream) throw (); extern int fileno_unlocked (FILE *__stream) throw (); extern FILE *popen (__const char *__command, __const char *__modes) throw (); extern int pclose (FILE *__stream) throw (); extern char *ctermid (char *__s) throw (); extern char *cuserid (char *__s) throw (); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __format, ...) throw (); extern int obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __format, __gnuc_va_list __args) throw (); # 614 "/usr/include/stdio.h" 3 extern void flockfile (FILE *__stream) throw (); extern int ftrylockfile (FILE *__stream) throw (); extern void funlockfile (FILE *__stream) throw (); # 638 "/usr/include/stdio.h" 3 } # 42 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdio.h" 2 3 # 86 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdio.h" 3 namespace std { using ::FILE; using ::fpos_t; using ::clearerr; using ::fclose; using ::feof; using ::ferror; using ::fflush; using ::fgetc; using ::fgetpos; using ::fgets; using ::fopen; using ::fprintf; using ::fputc; using ::fputs; using ::fread; using ::freopen; using ::fscanf; using ::fseek; using ::fsetpos; using ::ftell; using ::fwrite; using ::getc; using ::getchar; using ::gets; using ::perror; using ::printf; using ::putc; using ::putchar; using ::puts; using ::remove; using ::rename; using ::rewind; using ::scanf; using ::setbuf; using ::setvbuf; using ::sprintf; using ::sscanf; using ::tmpfile; using ::tmpnam; using ::ungetc; using ::vfprintf; using ::vprintf; using ::vsprintf; } # 142 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstdio.h" 3 namespace __gnu_cxx { using ::snprintf; using ::vfscanf; using ::vscanf; using ::vsnprintf; using ::vsscanf; } namespace std { using __gnu_cxx::snprintf; using __gnu_cxx::vfscanf; using __gnu_cxx::vscanf; using __gnu_cxx::vsnprintf; using __gnu_cxx::vsscanf; } # 32 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cstdio" 2 3 # 36 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cstddef" 1 3 # 37 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 1 3 # 102 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/gthr-single.h" 1 3 # 34 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/gthr-single.h" 3 typedef int __gthread_mutex_t; # 211 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/gthr-single.h" 3 static inline int __gthread_active_p (void) { return 0; } static inline int __gthread_mutex_lock (__gthread_mutex_t * ) { return 0; } static inline int __gthread_mutex_trylock (__gthread_mutex_t * ) { return 0; } static inline int __gthread_mutex_unlock (__gthread_mutex_t * ) { return 0; } # 103 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 2 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 3 namespace std { typedef long streamoff; typedef ptrdiff_t streamsize; typedef fpos_t __c_streampos; typedef __gthread_mutex_t __c_lock; typedef FILE __c_file_type; struct __ios_flags { typedef short __int_type; static const __int_type _S_boolalpha = 0x0001; static const __int_type _S_dec = 0x0002; static const __int_type _S_fixed = 0x0004; static const __int_type _S_hex = 0x0008; static const __int_type _S_internal = 0x0010; static const __int_type _S_left = 0x0020; static const __int_type _S_oct = 0x0040; static const __int_type _S_right = 0x0080; static const __int_type _S_scientific = 0x0100; static const __int_type _S_showbase = 0x0200; static const __int_type _S_showpoint = 0x0400; static const __int_type _S_showpos = 0x0800; static const __int_type _S_skipws = 0x1000; static const __int_type _S_unitbuf = 0x2000; static const __int_type _S_uppercase = 0x4000; static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010; static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008; static const __int_type _S_floatfield = 0x0100 | 0x0004; static const __int_type _S_badbit = 0x01; static const __int_type _S_eofbit = 0x02; static const __int_type _S_failbit = 0x04; static const __int_type _S_app = 0x01; static const __int_type _S_ate = 0x02; static const __int_type _S_bin = 0x04; static const __int_type _S_in = 0x08; static const __int_type _S_out = 0x10; static const __int_type _S_trunc = 0x20; }; } # 40 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/fpos.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cwchar.h" 1 3 # 37 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cwchar.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 38 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cwchar.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstddef.h" 1 3 # 39 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cwchar.h" 2 3 # 42 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cwchar.h" 3 # 1 "/usr/include/wchar.h" 1 3 # 27 "/usr/include/wchar.h" 3 # 1 "/usr/include/features.h" 1 3 # 28 "/usr/include/wchar.h" 2 3 # 1 "/usr/include/stdio.h" 1 3 # 32 "/usr/include/wchar.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3 # 39 "/usr/include/wchar.h" 2 3 # 53 "/usr/include/wchar.h" 3 typedef struct { int count; wint_t value; } mbstate_t; # 77 "/usr/include/wchar.h" 3 struct tm; extern "C" { extern wchar_t *wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern wchar_t *wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); # 1 "/usr/include/xlocale.h" 1 3 # 113 "/usr/include/wchar.h" 2 3 extern int __wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, __locale_t __loc) throw (); extern int __wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n, __locale_t __loc) throw (); extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern size_t wcsxfrm (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); # 136 "/usr/include/wchar.h" 3 extern int __wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2, __locale_t __loc) throw (); extern size_t __wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2, size_t __n, __locale_t __loc) throw (); extern wchar_t *wcsdup (__const wchar_t *__s) throw (); extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) throw (); extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) throw (); extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject) throw (); extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept) throw (); extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept) throw (); extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle) throw (); # 174 "/usr/include/wchar.h" 3 extern wchar_t *wcstok (wchar_t *__restrict __s, __const wchar_t *__restrict __delim, wchar_t **__restrict __ptr) throw (); extern size_t __wcslen (__const wchar_t *__s) throw (); extern size_t wcslen (__const wchar_t *__s) throw (); extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) throw (); extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n) throw (); extern int wmemcmp (__const wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern wchar_t *wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); extern wint_t btowc (int __c) throw (); extern int wctob (wint_t __c) throw (); extern int mbsinit (__const mbstate_t *__ps) throw (); extern size_t mbrtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n, mbstate_t *__p) throw (); extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, mbstate_t *__restrict __ps) throw (); extern size_t __mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); extern size_t mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); # 247 "/usr/include/wchar.h" 3 extern size_t mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw (); # 277 "/usr/include/wchar.h" 3 extern int wcwidth (wint_t __c) throw (); extern int wcswidth (__const wchar_t *__s, size_t __n) throw (); extern double wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern float wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long double wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long int wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoll (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstoull (__const wchar_t * __restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); # 355 "/usr/include/wchar.h" 3 # 1 "/usr/include/xlocale.h" 1 3 # 356 "/usr/include/wchar.h" 2 3 extern long int __wcstol_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); extern unsigned long int __wcstoul_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern long long int __wcstoll_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern unsigned long long int __wcstoull_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); extern double __wcstod_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern float __wcstof_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern long double __wcstold_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern double __wcstod_internal (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __group) throw (); extern float __wcstof_internal (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __group) throw (); extern long double __wcstold_internal (__const wchar_t * __restrict __nptr, wchar_t **__restrict __endptr, int __group) throw (); extern long int __wcstol_internal (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, int __group) throw (); extern unsigned long int __wcstoul_internal (__const wchar_t * __restrict __nptr, wchar_t ** __restrict __endptr, int __base, int __group) throw (); __extension__ extern long long int __wcstoll_internal (__const wchar_t * __restrict __nptr, wchar_t **__restrict __endptr, int __base, int __group) throw (); __extension__ extern unsigned long long int __wcstoull_internal (__const wchar_t * __restrict __nptr, wchar_t ** __restrict __endptr, int __base, int __group) throw (); # 482 "/usr/include/wchar.h" 3 extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw (); extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) throw (); # 502 "/usr/include/wchar.h" 3 } # 43 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cwchar.h" 2 3 # 57 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cwchar.h" 3 namespace std { using ::mbstate_t; } # 41 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/fpos.h" 2 3 namespace std { template class fpos { public: typedef _StateT __state_type; private: streamoff _M_off; __state_type _M_st; public: __state_type state() const { return _M_st; } void state(__state_type __st) { _M_st = __st; } fpos(): _M_off(streamoff()), _M_st(__state_type()) { } fpos(streamoff __off, __state_type __st = __state_type()) : _M_off(__off), _M_st(__st) { } operator streamoff() const { return _M_off; } fpos& operator+=(streamoff __off) { _M_off += __off; return *this; } fpos& operator-=(streamoff __off) { _M_off -= __off; return *this; } fpos operator+(streamoff __off) { fpos __t(*this); __t += __off; return __t; } fpos operator-(streamoff __off) { fpos __t(*this); __t -= __off; return __t; } bool operator==(const fpos& __pos) const { return _M_off == __pos._M_off; } bool operator!=(const fpos& __pos) const { return _M_off != __pos._M_off; } streamoff _M_position() const { return _M_off; } void _M_position(streamoff __off) { _M_off = __off; } }; typedef fpos streampos; } # 42 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_iosfwd.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/functexcept.h" 1 3 # 34 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/functexcept.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/exception_defines.h" 1 3 # 35 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/functexcept.h" 2 3 namespace std { void __throw_bad_exception(void); void __throw_bad_alloc(void); void __throw_bad_cast(void); void __throw_bad_typeid(void); void __throw_logic_error(const char* __s); void __throw_domain_error(const char* __s); void __throw_invalid_argument(const char* __s); void __throw_length_error(const char* __s); void __throw_out_of_range(const char* __s); void __throw_runtime_error(const char* __s); void __throw_range_error(const char* __s); void __throw_overflow_error(const char* __s); void __throw_underflow_error(const char* __s); void __throw_ios_failure(const char* __s); } # 43 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_iosfwd.h" 2 3 namespace std { template > class basic_ios; template > class basic_streambuf; template > class basic_istream; template > class basic_ostream; template > class basic_iostream; template, typename _Alloc = allocator<_CharT> > class basic_stringbuf; template, typename _Alloc = allocator<_CharT> > class basic_istringstream; template, typename _Alloc = allocator<_CharT> > class basic_ostringstream; template, typename _Alloc = allocator<_CharT> > class basic_stringstream; template > class basic_filebuf; template > class basic_ifstream; template > class basic_ofstream; template > class basic_fstream; template > class istreambuf_iterator; template > class ostreambuf_iterator; class ios_base; typedef basic_ios ios; typedef basic_streambuf streambuf; typedef basic_istream istream; typedef basic_ostream ostream; typedef basic_iostream iostream; typedef basic_stringbuf stringbuf; typedef basic_istringstream istringstream; typedef basic_ostringstream ostringstream; typedef basic_stringstream stringstream; typedef basic_filebuf filebuf; typedef basic_ifstream ifstream; typedef basic_ofstream ofstream; typedef basic_fstream fstream; # 129 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_iosfwd.h" 3 } # 78 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator_base_types.h" 1 3 # 69 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator_base_types.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstddef.h" 1 3 # 71 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator_base_types.h" 2 3 namespace std { struct input_iterator_tag {}; struct output_iterator_tag {}; struct forward_iterator_tag : public input_iterator_tag {}; struct bidirectional_iterator_tag : public forward_iterator_tag {}; struct random_access_iterator_tag : public bidirectional_iterator_tag {}; template struct input_iterator { typedef input_iterator_tag iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; struct output_iterator { typedef output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; }; template struct forward_iterator { typedef forward_iterator_tag iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; template struct bidirectional_iterator { typedef bidirectional_iterator_tag iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; template struct random_access_iterator { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; template struct iterator { typedef _Category iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Pointer pointer; typedef _Reference reference; }; template struct iterator_traits { typedef typename _Iterator::iterator_category iterator_category; typedef typename _Iterator::value_type value_type; typedef typename _Iterator::difference_type difference_type; typedef typename _Iterator::pointer pointer; typedef typename _Iterator::reference reference; }; template struct iterator_traits<_Tp*> { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; template struct iterator_traits { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef const _Tp* pointer; typedef const _Tp& reference; }; # 172 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator_base_types.h" 3 template inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) { typedef typename iterator_traits<_Iter>::iterator_category _Category; return _Category(); } template inline typename iterator_traits<_Iter>::difference_type* __distance_type(const _Iter&) { return static_cast::difference_type*>(0); } template inline typename iterator_traits<_Iter>::value_type* __value_type(const _Iter&) { return static_cast::value_type*>(0); } template inline typename iterator_traits<_Iter>::iterator_category iterator_category(const _Iter& __i) { return __iterator_category(__i); } template inline typename iterator_traits<_Iter>::difference_type* distance_type(const _Iter& __i) { return __distance_type(__i); } template inline typename iterator_traits<_Iter>::value_type* value_type(const _Iter& __i) { return __value_type(__i); } } # 79 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator_base_funcs.h" 1 3 # 69 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/concept_check.h" 1 3 # 34 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/concept_check.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 # 36 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/concept_check.h" 2 3 # 70 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator_base_funcs.h" 2 3 namespace std { template inline void __distance(_InputIterator __first, _InputIterator __last, _Distance& __n, input_iterator_tag) { ; while (__first != __last) { ++__first; ++__n; } } template inline void __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance& __n, random_access_iterator_tag) { ; __n += __last - __first; } template inline void distance(_InputIterator __first, _InputIterator __last, _Distance& __n) { __distance(__first, __last, __n, iterator_category(__first)); } template inline typename iterator_traits<_InputIterator>::difference_type __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) { ; typename iterator_traits<_InputIterator>::difference_type __n = 0; while (__first != __last) { ++__first; ++__n; } return __n; } template inline typename iterator_traits<_RandomAccessIterator>::difference_type __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { ; return __last - __first; } template inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { typedef typename iterator_traits<_InputIterator>::iterator_category _Category; return __distance(__first, __last, _Category()); } template inline void __advance(_InputIter& __i, _Distance __n, input_iterator_tag) { ; while (__n--) ++__i; } template inline void __advance(_BidirectionalIterator& __i, _Distance __n, bidirectional_iterator_tag) { ; if (__n > 0) while (__n--) ++__i; else while (__n++) --__i; } template inline void __advance(_RandomAccessIterator& __i, _Distance __n, random_access_iterator_tag) { ; __i += __n; } template inline void advance(_InputIterator& __i, _Distance __n) { __advance(__i, __n, iterator_category(__i)); } } # 80 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator.h" 1 3 # 63 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator.h" 3 namespace std { template class back_insert_iterator { protected: _Container* container; public: typedef _Container container_type; typedef output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; explicit back_insert_iterator(_Container& __x) : container(&__x) {} back_insert_iterator<_Container>& operator=(const typename _Container::value_type& __value) { container->push_back(__value); return *this; } back_insert_iterator<_Container>& operator*() { return *this; } back_insert_iterator<_Container>& operator++() { return *this; } back_insert_iterator<_Container>& operator++(int) { return *this; } }; template inline back_insert_iterator<_Container> back_inserter(_Container& __x) { return back_insert_iterator<_Container>(__x); } template class front_insert_iterator { protected: _Container* container; public: typedef _Container container_type; typedef output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; explicit front_insert_iterator(_Container& __x) : container(&__x) {} front_insert_iterator<_Container>& operator=(const typename _Container::value_type& __value) { container->push_front(__value); return *this; } front_insert_iterator<_Container>& operator*() { return *this; } front_insert_iterator<_Container>& operator++() { return *this; } front_insert_iterator<_Container>& operator++(int) { return *this; } }; template inline front_insert_iterator<_Container> front_inserter(_Container& __x) { return front_insert_iterator<_Container>(__x); } template class insert_iterator { protected: _Container* container; typename _Container::iterator iter; public: typedef _Container container_type; typedef output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; insert_iterator(_Container& __x, typename _Container::iterator __i) : container(&__x), iter(__i) {} insert_iterator<_Container>& operator=(const typename _Container::value_type& __value) { iter = container->insert(iter, __value); ++iter; return *this; } insert_iterator<_Container>& operator*() { return *this; } insert_iterator<_Container>& operator++() { return *this; } insert_iterator<_Container>& operator++(int) { return *this; } }; template inline insert_iterator<_Container> inserter(_Container& __x, _Iterator __i) { typedef typename _Container::iterator __iter; return insert_iterator<_Container>(__x, __iter(__i)); } template class reverse_bidirectional_iterator { typedef reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, _Reference, _Distance> _Self; protected: _BidirectionalIterator current; public: typedef bidirectional_iterator_tag iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Tp* pointer; typedef _Reference reference; reverse_bidirectional_iterator() {} explicit reverse_bidirectional_iterator(_BidirectionalIterator __x) : current(__x) {} _BidirectionalIterator base() const { return current; } _Reference operator*() const { _BidirectionalIterator __tmp = current; return *--__tmp; } pointer operator->() const { return &(operator*()); } _Self& operator++() { --current; return *this; } _Self operator++(int) { _Self __tmp = *this; --current; return __tmp; } _Self& operator--() { ++current; return *this; } _Self operator--(int) { _Self __tmp = *this; ++current; return __tmp; } }; template inline bool operator==( const reverse_bidirectional_iterator<_BiIter, _Tp, _Ref, _Distance>& __x, const reverse_bidirectional_iterator<_BiIter, _Tp, _Ref, _Distance>& __y) { return __x.base() == __y.base(); } template inline bool operator!=( const reverse_bidirectional_iterator<_BiIter, _Tp, _Ref, _Distance>& __x, const reverse_bidirectional_iterator<_BiIter, _Tp, _Ref, _Distance>& __y) { return !(__x == __y); } # 222 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator.h" 3 template class reverse_iterator { protected: _Iterator current; public: typedef typename iterator_traits<_Iterator>::iterator_category iterator_category; typedef typename iterator_traits<_Iterator>::value_type value_type; typedef typename iterator_traits<_Iterator>::difference_type difference_type; typedef typename iterator_traits<_Iterator>::pointer pointer; typedef typename iterator_traits<_Iterator>::reference reference; typedef _Iterator iterator_type; typedef reverse_iterator<_Iterator> _Self; public: reverse_iterator() {} explicit reverse_iterator(iterator_type __x) : current(__x) {} reverse_iterator(const _Self& __x) : current(__x.current) {} template reverse_iterator(const reverse_iterator<_Iter>& __x) : current(__x.base()) {} iterator_type base() const { return current; } reference operator*() const { _Iterator __tmp = current; return *--__tmp; } pointer operator->() const { return &(operator*()); } _Self& operator++() { --current; return *this; } _Self operator++(int) { _Self __tmp = *this; --current; return __tmp; } _Self& operator--() { ++current; return *this; } _Self operator--(int) { _Self __tmp = *this; ++current; return __tmp; } _Self operator+(difference_type __n) const { return _Self(current - __n); } _Self& operator+=(difference_type __n) { current -= __n; return *this; } _Self operator-(difference_type __n) const { return _Self(current + __n); } _Self& operator-=(difference_type __n) { current += __n; return *this; } reference operator[](difference_type __n) const { return *(*this + __n); } }; template inline bool operator==(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __x.base() == __y.base(); } template inline bool operator<(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() < __x.base(); } template inline bool operator!=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x == __y); } template inline bool operator>(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y < __x; } template inline bool operator<=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__y < __x); } template inline bool operator>=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x < __y); } template inline typename reverse_iterator<_Iterator>::difference_type operator-(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() - __x.base(); } template inline reverse_iterator<_Iterator> operator+(typename reverse_iterator<_Iterator>::difference_type __n, const reverse_iterator<_Iterator>& __x) { return reverse_iterator<_Iterator>(__x.base() - __n); } template , class _Dist = ptrdiff_t> class istream_iterator { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_istream<_CharT, _Traits> istream_type; typedef input_iterator_tag iterator_category; typedef _Tp value_type; typedef _Dist difference_type; typedef const _Tp* pointer; typedef const _Tp& reference; istream_iterator() : _M_stream(0), _M_ok(false) {} istream_iterator(istream_type& __s) : _M_stream(&__s) { _M_read(); } reference operator*() const { return _M_value; } pointer operator->() const { return &(operator*()); } istream_iterator& operator++() { _M_read(); return *this; } istream_iterator operator++(int) { istream_iterator __tmp = *this; _M_read(); return __tmp; } bool _M_equal(const istream_iterator& __x) const { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } private: istream_type* _M_stream; _Tp _M_value; bool _M_ok; void _M_read() { _M_ok = (_M_stream && *_M_stream) ? true : false; if (_M_ok) { *_M_stream >> _M_value; _M_ok = *_M_stream ? true : false; } } }; template inline bool operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) { return __x._M_equal(__y); } template inline bool operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) { return !__x._M_equal(__y); } template > class ostream_iterator { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_ostream<_CharT, _Traits> ostream_type; typedef output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {} ostream_iterator(ostream_type& __s, const _CharT* __c) : _M_stream(&__s), _M_string(__c) {} ostream_iterator<_Tp>& operator=(const _Tp& __value) { *_M_stream << __value; if (_M_string) *_M_stream << _M_string; return *this; } ostream_iterator<_Tp>& operator*() { return *this; } ostream_iterator<_Tp>& operator++() { return *this; } ostream_iterator<_Tp>& operator++(int) { return *this; } private: ostream_type* _M_stream; const _CharT* _M_string; }; # 446 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_iterator.h" 3 template class __normal_iterator : public iterator::iterator_category, iterator_traits<_Iterator>::value_type, iterator_traits<_Iterator>::difference_type, iterator_traits<_Iterator>::pointer, iterator_traits<_Iterator>::reference> { protected: _Iterator _M_current; public: typedef __normal_iterator<_Iterator, _Container> normal_iterator_type; typedef iterator_traits<_Iterator> __traits_type; typedef typename __traits_type::iterator_category iterator_category; typedef typename __traits_type::value_type value_type; typedef typename __traits_type::difference_type difference_type; typedef typename __traits_type::pointer pointer; typedef typename __traits_type::reference reference; __normal_iterator() : _M_current(_Iterator()) { } explicit __normal_iterator(const _Iterator& __i) : _M_current(__i) { } template inline __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) : _M_current(__i.base()) { } reference operator*() const { return *_M_current; } pointer operator->() const { return _M_current; } normal_iterator_type& operator++() { ++_M_current; return *this; } normal_iterator_type operator++(int) { return __normal_iterator(_M_current++); } normal_iterator_type& operator--() { --_M_current; return *this; } normal_iterator_type operator--(int) { return __normal_iterator(_M_current--); } reference operator[](const difference_type& __n) const { return _M_current[__n]; } normal_iterator_type& operator+=(const difference_type& __n) { _M_current += __n; return *this; } normal_iterator_type operator+(const difference_type& __n) const { return __normal_iterator(_M_current + __n); } normal_iterator_type& operator-=(const difference_type& __n) { _M_current -= __n; return *this; } normal_iterator_type operator-(const difference_type& __n) const { return __normal_iterator(_M_current - __n); } difference_type operator-(const normal_iterator_type& __i) const { return _M_current - __i._M_current; } const _Iterator& base() const { return _M_current; } }; template inline bool operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return !(__lhs == __rhs); } template inline bool operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __rhs < __lhs; } template inline bool operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return !(__rhs < __lhs); } template inline bool operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return !(__lhs < __rhs); } template inline __normal_iterator<_Iterator, _Container> operator+(typename __normal_iterator<_Iterator, _Container>::difference_type __n, const __normal_iterator<_Iterator, _Container>& __i) { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } } # 81 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/concept_check.h" 1 3 # 82 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 2 3 namespace std { template inline void __iter_swap(_ForwardIter1 __a, _ForwardIter2 __b, _Tp*) { _Tp __tmp = *__a; *__a = *__b; *__b = __tmp; } template inline void iter_swap(_ForwardIter1 __a, _ForwardIter2 __b) { ; ; ; ; __iter_swap(__a, __b, __value_type(__a)); } template inline void swap(_Tp& __a, _Tp& __b) { ; _Tp __tmp = __a; __a = __b; __b = __tmp; } template inline const _Tp& min(const _Tp& __a, const _Tp& __b) { ; if (__b < __a) return __b; return __a; } template inline const _Tp& max(const _Tp& __a, const _Tp& __b) { ; if (__a < __b) return __b; return __a; } template inline const _Tp& min(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__b, __a)) return __b; return __a; } template inline const _Tp& max(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__a, __b)) return __b; return __a; } # 166 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algobase.h" 3 template inline _OutputIter __copy(_InputIter __first, _InputIter __last, _OutputIter __result, input_iterator_tag, _Distance*) { for ( ; __first != __last; ++__result, ++__first) *__result = *__first; return __result; } template inline _OutputIter __copy(_RandomAccessIter __first, _RandomAccessIter __last, _OutputIter __result, random_access_iterator_tag, _Distance*) { for (_Distance __n = __last - __first; __n > 0; --__n) { *__result = *__first; ++__first; ++__result; } return __result; } template inline _Tp* __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result) { memmove(__result, __first, sizeof(_Tp) * (__last - __first)); return __result + (__last - __first); } template inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { return __copy(__first, __last, __result, __iterator_category(__first), __distance_type(__first)); } template inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { return __copy(__first, __last, __result, __iterator_category(__first), __distance_type(__first)); } template inline _Tp* __copy_aux2(_Tp* __first, _Tp* __last, _Tp* __result, __true_type) { return __copy_trivial(__first, __last, __result); } template inline _Tp* __copy_aux2(const _Tp* __first, const _Tp* __last, _Tp* __result, __true_type) { return __copy_trivial(__first, __last, __result); } template inline _OutputIter __copy_aux(_InputIter __first, _InputIter __last, _OutputIter __result, _Tp*) { typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _Trivial; return __copy_aux2(__first, __last, __result, _Trivial()); } template inline _OutputIter __copy_ni2(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { return _OutputIter(__copy_aux(__first, __last, __result.base(), __value_type(__first))); } template inline _OutputIter __copy_ni2(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { return __copy_aux(__first, __last, __result, __value_type(__first)); } template inline _OutputIter __copy_ni1(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; return __copy_ni2(__first.base(), __last.base(), __result, __Normal()); } template inline _OutputIter __copy_ni1(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; return __copy_ni2(__first, __last, __result, __Normal()); } template inline _OutputIter copy(_InputIter __first, _InputIter __last, _OutputIter __result) { ; ; typedef typename _Is_normal_iterator<_InputIter>::_Normal __Normal; return __copy_ni1(__first, __last, __result, __Normal()); } template inline _BidirectionalIter2 __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 __last, _BidirectionalIter2 __result, bidirectional_iterator_tag, _Distance*) { while (__first != __last) *--__result = *--__last; return __result; } template inline _BidirectionalIter __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last, _BidirectionalIter __result, random_access_iterator_tag, _Distance*) { for (_Distance __n = __last - __first; __n > 0; --__n) *--__result = *--__last; return __result; } template struct __copy_backward_dispatch { typedef typename iterator_traits<_BidirectionalIter1>::iterator_category _Cat; typedef typename iterator_traits<_BidirectionalIter1>::difference_type _Distance; static _BidirectionalIter2 copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last, _BidirectionalIter2 __result) { return __copy_backward(__first, __last, __result, _Cat(), (_Distance*) 0); } }; template struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type> { static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { const ptrdiff_t _Num = __last - __first; memmove(__result - _Num, __first, sizeof(_Tp) * _Num); return __result - _Num; } }; template struct __copy_backward_dispatch { static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { return __copy_backward_dispatch<_Tp*, _Tp*, __true_type> ::copy(__first, __last, __result); } }; template inline _BI2 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) { typedef typename __type_traits::value_type> ::has_trivial_assignment_operator _Trivial; return __copy_backward_dispatch<_BI1, _BI2, _Trivial> ::copy(__first, __last, __result); } template inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __true_type) { return _BI2(__copy_backward_aux(__first, __last, __result.base())); } template inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __false_type){ return __copy_backward_aux(__first, __last, __result); } template inline _BI2 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __true_type) { typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; return __copy_backward_output_normal_iterator(__first.base(), __last.base(), __result, __Normal()); } template inline _BI2 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __false_type) { typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; return __copy_backward_output_normal_iterator(__first, __last, __result, __Normal()); } template inline _BI2 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) { ; ; ; typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal; return __copy_backward_input_normal_iterator(__first, __last, __result, __Normal()); } template pair<_InputIter, _OutputIter> __copy_n(_InputIter __first, _Size __count, _OutputIter __result, input_iterator_tag) { for ( ; __count > 0; --__count) { *__result = *__first; ++__first; ++__result; } return pair<_InputIter, _OutputIter>(__first, __result); } template inline pair<_RAIter, _OutputIter> __copy_n(_RAIter __first, _Size __count, _OutputIter __result, random_access_iterator_tag) { _RAIter __last = __first + __count; return pair<_RAIter, _OutputIter>(__last, copy(__first, __last, __result)); } template inline pair<_InputIter, _OutputIter> __copy_n(_InputIter __first, _Size __count, _OutputIter __result) { return __copy_n(__first, __count, __result, __iterator_category(__first)); } template inline pair<_InputIter, _OutputIter> copy_n(_InputIter __first, _Size __count, _OutputIter __result) { ; ; return __copy_n(__first, __count, __result); } template void fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) { ; for ( ; __first != __last; ++__first) *__first = __value; } template _OutputIter fill_n(_OutputIter __first, _Size __n, const _Tp& __value) { ; for ( ; __n > 0; --__n, ++__first) *__first = __value; return __first; } inline void fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c) { unsigned char __tmp = __c; memset(__first, __tmp, __last - __first); } inline void fill(signed char* __first, signed char* __last, const signed char& __c) { signed char __tmp = __c; memset(__first, static_cast(__tmp), __last - __first); } inline void fill(char* __first, char* __last, const char& __c) { char __tmp = __c; memset(__first, static_cast(__tmp), __last - __first); } template inline unsigned char* fill_n(unsigned char* __first, _Size __n, const unsigned char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template inline signed char* fill_n(char* __first, _Size __n, const signed char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template inline char* fill_n(char* __first, _Size __n, const char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2) { ; ; ; ; while (__first1 != __last1 && *__first1 == *__first2) { ++__first1; ++__first2; } return pair<_InputIter1, _InputIter2>(__first1, __first2); } template pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _BinaryPredicate __binary_pred) { ; ; while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) { ++__first1; ++__first2; } return pair<_InputIter1, _InputIter2>(__first1, __first2); } template inline bool equal(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2) { ; ; ; for ( ; __first1 != __last1; ++__first1, ++__first2) if (!(*__first1 == *__first2)) return false; return true; } template inline bool equal(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _BinaryPredicate __binary_pred) { ; ; for ( ; __first1 != __last1; ++__first1, ++__first2) if (!__binary_pred(*__first1, *__first2)) return false; return true; } template bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2) { ; ; ; ; for ( ; __first1 != __last1 && __first2 != __last2 ; ++__first1, ++__first2) { if (*__first1 < *__first2) return true; if (*__first2 < *__first1) return false; } return __first1 == __last1 && __first2 != __last2; } template bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) { ; ; for ( ; __first1 != __last1 && __first2 != __last2 ; ++__first1, ++__first2) { if (__comp(*__first1, *__first2)) return true; if (__comp(*__first2, *__first1)) return false; } return __first1 == __last1 && __first2 != __last2; } inline bool lexicographical_compare(const unsigned char* __first1, const unsigned char* __last1, const unsigned char* __first2, const unsigned char* __last2) { const size_t __len1 = __last1 - __first1; const size_t __len2 = __last2 - __first2; const int __result = memcmp(__first1, __first2, min(__len1, __len2)); return __result != 0 ? __result < 0 : __len1 < __len2; } inline bool lexicographical_compare(const char* __first1, const char* __last1, const char* __first2, const char* __last2) { return lexicographical_compare((const signed char*) __first1, (const signed char*) __last1, (const signed char*) __first2, (const signed char*) __last2); } template int __lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2) { while (__first1 != __last1 && __first2 != __last2) { if (*__first1 < *__first2) return -1; if (*__first2 < *__first1) return 1; ++__first1; ++__first2; } if (__first2 == __last2) { return !(__first1 == __last1); } else { return -1; } } inline int __lexicographical_compare_3way(const unsigned char* __first1, const unsigned char* __last1, const unsigned char* __first2, const unsigned char* __last2) { const ptrdiff_t __len1 = __last1 - __first1; const ptrdiff_t __len2 = __last2 - __first2; const int __result = memcmp(__first1, __first2, min(__len1, __len2)); return __result != 0 ? __result : (__len1 == __len2 ? 0 : (__len1 < __len2 ? -1 : 1)); } inline int __lexicographical_compare_3way(const char* __first1, const char* __last1, const char* __first2, const char* __last2) { return __lexicographical_compare_3way( (const signed char*) __first1, (const signed char*) __last1, (const signed char*) __first2, (const signed char*) __last2); } template int lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2) { ; ; ; ; return __lexicographical_compare_3way(__first1, __last1, __first2, __last2); } } # 62 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_algorithm.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_construct.h" 1 3 # 63 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_construct.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/new" 1 3 # 64 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_construct.h" 2 3 namespace std { # 76 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_construct.h" 3 template inline void _Construct(_T1* __p, const _T2& __value) { new ((void*) __p) _T1(__value); } template inline void _Construct(_T1* __p) { new ((void*) __p) _T1(); } template inline void _Destroy(_Tp* __pointer) { __pointer->~_Tp(); } template void __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, __false_type) { for ( ; __first != __last; ++__first) destroy(&*__first); } template inline void __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type) {} template inline void __destroy(_ForwardIterator __first, _ForwardIterator __last, _Tp*) { typedef typename __type_traits<_Tp>::has_trivial_destructor _Trivial_destructor; __destroy_aux(__first, __last, _Trivial_destructor()); } template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last) { __destroy(__first, __last, __value_type(__first)); } inline void _Destroy(char*, char*) {} inline void _Destroy(int*, int*) {} inline void _Destroy(long*, long*) {} inline void _Destroy(float*, float*) {} inline void _Destroy(double*, double*) {} inline void _Destroy(wchar_t*, wchar_t*) {} template inline void construct(_T1* __p, const _T2& __value) { _Construct(__p, __value); } template inline void construct(_T1* __p) { _Construct(__p); } template inline void destroy(_Tp* __pointer) { _Destroy(__pointer); } template inline void destroy(_ForwardIterator __first, _ForwardIterator __last) { _Destroy(__first, __last); } } # 63 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_algorithm.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_uninitialized.h" 1 3 # 63 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_uninitialized.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cstring.h" 1 3 # 64 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_uninitialized.h" 2 3 namespace std { template inline _ForwardIter __uninitialized_copy_aux(_InputIter __first, _InputIter __last, _ForwardIter __result, __true_type) { return copy(__first, __last, __result); } template _ForwardIter __uninitialized_copy_aux(_InputIter __first, _InputIter __last, _ForwardIter __result, __false_type) { _ForwardIter __cur = __result; try { for ( ; __first != __last; ++__first, ++__cur) _Construct(&*__cur, *__first); return __cur; } catch(...) { _Destroy(__result, __cur); throw; }; } template inline _ForwardIter __uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result, _Tp*) { typedef typename __type_traits<_Tp>::is_POD_type _Is_POD; return __uninitialized_copy_aux(__first, __last, __result, _Is_POD()); } template inline _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result) { return __uninitialized_copy(__first, __last, __result, __value_type(__result)); } inline char* uninitialized_copy(const char* __first, const char* __last, char* __result) { memmove(__result, __first, __last - __first); return __result + (__last - __first); } inline wchar_t* uninitialized_copy(const wchar_t* __first, const wchar_t* __last, wchar_t* __result) { memmove(__result, __first, sizeof(wchar_t) * (__last - __first)); return __result + (__last - __first); } template pair<_InputIter, _ForwardIter> __uninitialized_copy_n(_InputIter __first, _Size __count, _ForwardIter __result, input_iterator_tag) { _ForwardIter __cur = __result; try { for ( ; __count > 0 ; --__count, ++__first, ++__cur) _Construct(&*__cur, *__first); return pair<_InputIter, _ForwardIter>(__first, __cur); } catch(...) { _Destroy(__result, __cur); throw; }; } template inline pair<_RandomAccessIter, _ForwardIter> __uninitialized_copy_n(_RandomAccessIter __first, _Size __count, _ForwardIter __result, random_access_iterator_tag) { _RandomAccessIter __last = __first + __count; return pair<_RandomAccessIter, _ForwardIter>( __last, uninitialized_copy(__first, __last, __result)); } template inline pair<_InputIter, _ForwardIter> __uninitialized_copy_n(_InputIter __first, _Size __count, _ForwardIter __result) { return __uninitialized_copy_n(__first, __count, __result, __iterator_category(__first)); } template inline pair<_InputIter, _ForwardIter> uninitialized_copy_n(_InputIter __first, _Size __count, _ForwardIter __result) { return __uninitialized_copy_n(__first, __count, __result, __iterator_category(__first)); } template inline void __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, __true_type) { fill(__first, __last, __x); } template void __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, __false_type) { _ForwardIter __cur = __first; try { for ( ; __cur != __last; ++__cur) _Construct(&*__cur, __x); } catch(...) { _Destroy(__first, __cur); throw; }; } template inline void __uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, _Tp1*) { typedef typename __type_traits<_Tp1>::is_POD_type _Is_POD; __uninitialized_fill_aux(__first, __last, __x, _Is_POD()); } template inline void uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x) { __uninitialized_fill(__first, __last, __x, __value_type(__first)); } template inline _ForwardIter __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, const _Tp& __x, __true_type) { return fill_n(__first, __n, __x); } template _ForwardIter __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, const _Tp& __x, __false_type) { _ForwardIter __cur = __first; try { for ( ; __n > 0; --__n, ++__cur) _Construct(&*__cur, __x); return __cur; } catch(...) { _Destroy(__first, __cur); throw; }; } template inline _ForwardIter __uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x, _Tp1*) { typedef typename __type_traits<_Tp1>::is_POD_type _Is_POD; return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD()); } template inline _ForwardIter uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) { return __uninitialized_fill_n(__first, __n, __x, __value_type(__first)); } # 260 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_uninitialized.h" 3 template inline _ForwardIter __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _ForwardIter __result) { _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result); try { return uninitialized_copy(__first2, __last2, __mid); } catch(...) { _Destroy(__result, __mid); throw; }; } template inline _ForwardIter __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, const _Tp& __x, _InputIter __first, _InputIter __last) { uninitialized_fill(__result, __mid, __x); try { return uninitialized_copy(__first, __last, __mid); } catch(...) { _Destroy(__result, __mid); throw; }; } template inline void __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2, const _Tp& __x) { _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2); try { uninitialized_fill(__mid2, __last2, __x); } catch(...) { _Destroy(__first2, __mid2); throw; }; } } # 64 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_algorithm.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_tempbuf.h" 1 3 # 63 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_tempbuf.h" 3 namespace std { template pair<_Tp*, ptrdiff_t> __get_temporary_buffer(ptrdiff_t __len, _Tp*) { if (__len > ptrdiff_t(2147483647 / sizeof(_Tp))) __len = 2147483647 / sizeof(_Tp); while (__len > 0) { _Tp* __tmp = (_Tp*) malloc((size_t)__len * sizeof(_Tp)); if (__tmp != 0) return pair<_Tp*, ptrdiff_t>(__tmp, __len); __len /= 2; } return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0); } template inline pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __len) { return __get_temporary_buffer(__len, (_Tp*) 0); } template inline pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __len, _Tp*) { return __get_temporary_buffer(__len, (_Tp*) 0); } template void return_temporary_buffer(_Tp* __p) { free(__p); } template class _Temporary_buffer { private: ptrdiff_t _M_original_len; ptrdiff_t _M_len; _Tp* _M_buffer; void _M_allocate_buffer() { _M_original_len = _M_len; _M_buffer = 0; if (_M_len > (ptrdiff_t)(2147483647 / sizeof(_Tp))) _M_len = 2147483647 / sizeof(_Tp); while (_M_len > 0) { _M_buffer = (_Tp*) malloc(_M_len * sizeof(_Tp)); if (_M_buffer) break; _M_len /= 2; } } void _M_initialize_buffer(const _Tp&, __true_type) {} void _M_initialize_buffer(const _Tp& val, __false_type) { uninitialized_fill_n(_M_buffer, _M_len, val); } public: ptrdiff_t size() const { return _M_len; } ptrdiff_t requested_size() const { return _M_original_len; } _Tp* begin() { return _M_buffer; } _Tp* end() { return _M_buffer + _M_len; } _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) { typedef typename __type_traits<_Tp>::has_trivial_default_constructor _Trivial; try { _M_len = 0; distance(__first, __last, _M_len); _M_allocate_buffer(); if (_M_len > 0) _M_initialize_buffer(*__first, _Trivial()); } catch(...) { free(_M_buffer); _M_buffer = 0; _M_len = 0; throw; }; } ~_Temporary_buffer() { destroy(_M_buffer, _M_buffer + _M_len); free(_M_buffer); } private: _Temporary_buffer(const _Temporary_buffer&) {} void operator=(const _Temporary_buffer&) {} }; template ::value_type > struct temporary_buffer : public _Temporary_buffer<_ForwardIterator, _Tp> { temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) : _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) {} ~temporary_buffer() {} }; } # 65 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_algorithm.h" 2 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algo.h" 1 3 # 63 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algo.h" 3 # 1 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_heap.h" 1 3 # 62 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_heap.h" 3 namespace std { template void __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __topIndex, _Tp __value) { _Distance __parent = (__holeIndex - 1) / 2; while (__holeIndex > __topIndex && *(__first + __parent) < __value) { *(__first + __holeIndex) = *(__first + __parent); __holeIndex = __parent; __parent = (__holeIndex - 1) / 2; } *(__first + __holeIndex) = __value; } template inline void __push_heap_aux(_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance*, _Tp*) { __push_heap(__first, _Distance((__last - __first) - 1), _Distance(0), _Tp(*(__last - 1))); } template inline void push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; ; __push_heap_aux(__first, __last, __distance_type(__first), __value_type(__first)); } template void __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __topIndex, _Tp __value, _Compare __comp) { _Distance __parent = (__holeIndex - 1) / 2; while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value)) { *(__first + __holeIndex) = *(__first + __parent); __holeIndex = __parent; __parent = (__holeIndex - 1) / 2; } *(__first + __holeIndex) = __value; } template inline void __push_heap_aux(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, _Distance*, _Tp*) { __push_heap(__first, _Distance((__last - __first) - 1), _Distance(0), _Tp(*(__last - 1)), __comp); } template inline void push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; __push_heap_aux(__first, __last, __comp, __distance_type(__first), __value_type(__first)); } template void __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __len, _Tp __value) { _Distance __topIndex = __holeIndex; _Distance __secondChild = 2 * __holeIndex + 2; while (__secondChild < __len) { if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) __secondChild--; *(__first + __holeIndex) = *(__first + __secondChild); __holeIndex = __secondChild; __secondChild = 2 * (__secondChild + 1); } if (__secondChild == __len) { *(__first + __holeIndex) = *(__first + (__secondChild - 1)); __holeIndex = __secondChild - 1; } __push_heap(__first, __holeIndex, __topIndex, __value); } template inline void __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomAccessIterator __result, _Tp __value, _Distance*) { *__result = *__first; __adjust_heap(__first, _Distance(0), _Distance(__last - __first), __value); } template inline void __pop_heap_aux(_RandomAccessIterator __first, _RandomAccessIterator __last, _Tp*) { __pop_heap(__first, __last - 1, __last - 1, _Tp(*(__last - 1)), __distance_type(__first)); } template inline void pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; ; __pop_heap_aux(__first, __last, __value_type(__first)); } template void __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __len, _Tp __value, _Compare __comp) { _Distance __topIndex = __holeIndex; _Distance __secondChild = 2 * __holeIndex + 2; while (__secondChild < __len) { if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) __secondChild--; *(__first + __holeIndex) = *(__first + __secondChild); __holeIndex = __secondChild; __secondChild = 2 * (__secondChild + 1); } if (__secondChild == __len) { *(__first + __holeIndex) = *(__first + (__secondChild - 1)); __holeIndex = __secondChild - 1; } __push_heap(__first, __holeIndex, __topIndex, __value, __comp); } template inline void __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomAccessIterator __result, _Tp __value, _Compare __comp, _Distance*) { *__result = *__first; __adjust_heap(__first, _Distance(0), _Distance(__last - __first), __value, __comp); } template inline void __pop_heap_aux(_RandomAccessIterator __first, _RandomAccessIterator __last, _Tp*, _Compare __comp) { __pop_heap(__first, __last - 1, __last - 1, _Tp(*(__last - 1)), __comp, __distance_type(__first)); } template inline void pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; __pop_heap_aux(__first, __last, __value_type(__first), __comp); } template void __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Tp*, _Distance*) { if (__last - __first < 2) return; _Distance __len = __last - __first; _Distance __parent = (__len - 2)/2; while (true) { __adjust_heap(__first, __parent, __len, _Tp(*(__first + __parent))); if (__parent == 0) return; __parent--; } } template inline void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; ; __make_heap(__first, __last, __value_type(__first), __distance_type(__first)); } template void __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, _Tp*, _Distance*) { if (__last - __first < 2) return; _Distance __len = __last - __first; _Distance __parent = (__len - 2)/2; while (true) { __adjust_heap(__first, __parent, __len, _Tp(*(__first + __parent)), __comp); if (__parent == 0) return; __parent--; } } template inline void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; __make_heap(__first, __last, __comp, __value_type(__first), __distance_type(__first)); } template void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; ; while (__last - __first > 1) pop_heap(__first, __last--); } template void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; while (__last - __first > 1) pop_heap(__first, __last--, __comp); } } # 64 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algo.h" 2 3 namespace std { template inline const _Tp& __median(const _Tp& __a, const _Tp& __b, const _Tp& __c) { ; if (__a < __b) if (__b < __c) return __b; else if (__a < __c) return __c; else return __a; else if (__a < __c) return __a; else if (__b < __c) return __c; else return __b; } template inline const _Tp& __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp) { ; if (__comp(__a, __b)) if (__comp(__b, __c)) return __b; else if (__comp(__a, __c)) return __c; else return __a; else if (__comp(__a, __c)) return __a; else if (__comp(__b, __c)) return __c; else return __b; } template _Function for_each(_InputIter __first, _InputIter __last, _Function __f) { ; for ( ; __first != __last; ++__first) __f(*__first); return __f; } template inline _InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val, input_iterator_tag) { while (__first != __last && !(*__first == __val)) ++__first; return __first; } template inline _InputIter find_if(_InputIter __first, _InputIter __last, _Predicate __pred, input_iterator_tag) { while (__first != __last && !__pred(*__first)) ++__first; return __first; } template _RandomAccessIter find(_RandomAccessIter __first, _RandomAccessIter __last, const _Tp& __val, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIter>::difference_type __trip_count = (__last - __first) >> 2; for ( ; __trip_count > 0 ; --__trip_count) { if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; } switch(__last - __first) { case 3: if (*__first == __val) return __first; ++__first; case 2: if (*__first == __val) return __first; ++__first; case 1: if (*__first == __val) return __first; ++__first; case 0: default: return __last; } } template _RandomAccessIter find_if(_RandomAccessIter __first, _RandomAccessIter __last, _Predicate __pred, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIter>::difference_type __trip_count = (__last - __first) >> 2; for ( ; __trip_count > 0 ; --__trip_count) { if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; } switch(__last - __first) { case 3: if (__pred(*__first)) return __first; ++__first; case 2: if (__pred(*__first)) return __first; ++__first; case 1: if (__pred(*__first)) return __first; ++__first; case 0: default: return __last; } } template inline _InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val) { ; ; return find(__first, __last, __val, __iterator_category(__first)); } template inline _InputIter find_if(_InputIter __first, _InputIter __last, _Predicate __pred) { ; ; return find_if(__first, __last, __pred, __iterator_category(__first)); } template _ForwardIter adjacent_find(_ForwardIter __first, _ForwardIter __last) { ; ; if (__first == __last) return __last; _ForwardIter __next = __first; while(++__next != __last) { if (*__first == *__next) return __first; __first = __next; } return __last; } template _ForwardIter adjacent_find(_ForwardIter __first, _ForwardIter __last, _BinaryPredicate __binary_pred) { ; ; if (__first == __last) return __last; _ForwardIter __next = __first; while(++__next != __last) { if (__binary_pred(*__first, *__next)) return __first; __first = __next; } return __last; } template void count(_InputIter __first, _InputIter __last, const _Tp& __value, _Size& __n) { ; ; ; for ( ; __first != __last; ++__first) if (*__first == __value) ++__n; } template void count_if(_InputIter __first, _InputIter __last, _Predicate __pred, _Size& __n) { ; ; for ( ; __first != __last; ++__first) if (__pred(*__first)) ++__n; } template typename iterator_traits<_InputIter>::difference_type count(_InputIter __first, _InputIter __last, const _Tp& __value) { ; ; ; typename iterator_traits<_InputIter>::difference_type __n = 0; for ( ; __first != __last; ++__first) if (*__first == __value) ++__n; return __n; } template typename iterator_traits<_InputIter>::difference_type count_if(_InputIter __first, _InputIter __last, _Predicate __pred) { ; ; typename iterator_traits<_InputIter>::difference_type __n = 0; for ( ; __first != __last; ++__first) if (__pred(*__first)) ++__n; return __n; } template _ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2) { ; ; ; if (__first1 == __last1 || __first2 == __last2) return __first1; _ForwardIter2 __tmp(__first2); ++__tmp; if (__tmp == __last2) return find(__first1, __last1, *__first2); _ForwardIter2 __p1, __p; __p1 = __first2; ++__p1; _ForwardIter1 __current = __first1; while (__first1 != __last1) { __first1 = find(__first1, __last1, *__first2); if (__first1 == __last1) return __last1; __p = __p1; __current = __first1; if (++__current == __last1) return __last1; while (*__current == *__p) { if (++__p == __last2) return __first1; if (++__current == __last1) return __last1; } ++__first1; } return __first1; } template _ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2, _BinaryPred __predicate) { ; ; ; if (__first1 == __last1 || __first2 == __last2) return __first1; _ForwardIter2 __tmp(__first2); ++__tmp; if (__tmp == __last2) { while (__first1 != __last1 && !__predicate(*__first1, *__first2)) ++__first1; return __first1; } _ForwardIter2 __p1, __p; __p1 = __first2; ++__p1; _ForwardIter1 __current = __first1; while (__first1 != __last1) { while (__first1 != __last1) { if (__predicate(*__first1, *__first2)) break; ++__first1; } while (__first1 != __last1 && !__predicate(*__first1, *__first2)) ++__first1; if (__first1 == __last1) return __last1; __p = __p1; __current = __first1; if (++__current == __last1) return __last1; while (__predicate(*__current, *__p)) { if (++__p == __last2) return __first1; if (++__current == __last1) return __last1; } ++__first1; } return __first1; } template _ForwardIter search_n(_ForwardIter __first, _ForwardIter __last, _Integer __count, const _Tp& __val) { ; ; ; if (__count <= 0) return __first; else { __first = find(__first, __last, __val); while (__first != __last) { _Integer __n = __count - 1; _ForwardIter __i = __first; ++__i; while (__i != __last && __n != 0 && *__i == __val) { ++__i; --__n; } if (__n == 0) return __first; else __first = find(__i, __last, __val); } return __last; } } template _ForwardIter search_n(_ForwardIter __first, _ForwardIter __last, _Integer __count, const _Tp& __val, _BinaryPred __binary_pred) { ; ; if (__count <= 0) return __first; else { while (__first != __last) { if (__binary_pred(*__first, __val)) break; ++__first; } while (__first != __last) { _Integer __n = __count - 1; _ForwardIter __i = __first; ++__i; while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) { ++__i; --__n; } if (__n == 0) return __first; else { while (__i != __last) { if (__binary_pred(*__i, __val)) break; ++__i; } __first = __i; } } return __last; } } template _ForwardIter2 swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2) { ; ; ; ; for ( ; __first1 != __last1; ++__first1, ++__first2) iter_swap(__first1, __first2); return __first2; } template _OutputIter transform(_InputIter __first, _InputIter __last, _OutputIter __result, _UnaryOperation __unary_op) { ; for ( ; __first != __last; ++__first, ++__result) *__result = __unary_op(*__first); return __result; } template _OutputIter transform(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _OutputIter __result, _BinaryOperation __binary_op) { ; ; for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result) *__result = __binary_op(*__first1, *__first2); return __result; } template void replace(_ForwardIter __first, _ForwardIter __last, const _Tp& __old_value, const _Tp& __new_value) { ; ; ; for ( ; __first != __last; ++__first) if (*__first == __old_value) *__first = __new_value; } template void replace_if(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, const _Tp& __new_value) { ; ; ; for ( ; __first != __last; ++__first) if (__pred(*__first)) *__first = __new_value; } template _OutputIter replace_copy(_InputIter __first, _InputIter __last, _OutputIter __result, const _Tp& __old_value, const _Tp& __new_value) { ; ; ; for ( ; __first != __last; ++__first, ++__result) *__result = *__first == __old_value ? __new_value : *__first; return __result; } template _OutputIter replace_copy_if(_InputIter __first, _InputIter __last, _OutputIter __result, _Predicate __pred, const _Tp& __new_value) { ; ; ; for ( ; __first != __last; ++__first, ++__result) *__result = __pred(*__first) ? __new_value : *__first; return __result; } template void generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen) { ; ; for ( ; __first != __last; ++__first) *__first = __gen(); } template _OutputIter generate_n(_OutputIter __first, _Size __n, _Generator __gen) { for ( ; __n > 0; --__n, ++__first) *__first = __gen(); return __first; } template _OutputIter remove_copy(_InputIter __first, _InputIter __last, _OutputIter __result, const _Tp& __value) { ; ; ; for ( ; __first != __last; ++__first) if (!(*__first == __value)) { *__result = *__first; ++__result; } return __result; } template _OutputIter remove_copy_if(_InputIter __first, _InputIter __last, _OutputIter __result, _Predicate __pred) { ; ; ; for ( ; __first != __last; ++__first) if (!__pred(*__first)) { *__result = *__first; ++__result; } return __result; } template _ForwardIter remove(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) { ; ; ; __first = find(__first, __last, __value); _ForwardIter __i = __first; return __first == __last ? __first : remove_copy(++__i, __last, __first, __value); } template _ForwardIter remove_if(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) { ; ; __first = find_if(__first, __last, __pred); _ForwardIter __i = __first; return __first == __last ? __first : remove_copy_if(++__i, __last, __first, __pred); } template _OutputIter __unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result, _Tp*) { _Tp __value = *__first; *__result = __value; while (++__first != __last) if (!(__value == *__first)) { __value = *__first; *++__result = __value; } return ++__result; } template inline _OutputIter __unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result, output_iterator_tag) { return __unique_copy(__first, __last, __result, __value_type(__first)); } template _ForwardIter __unique_copy(_InputIter __first, _InputIter __last, _ForwardIter __result, forward_iterator_tag) { *__result = *__first; while (++__first != __last) if (!(*__result == *__first)) *++__result = *__first; return ++__result; } template inline _OutputIter unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result) { ; ; ; if (__first == __last) return __result; return __unique_copy(__first, __last, __result, __iterator_category(__result)); } template _OutputIter __unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result, _BinaryPredicate __binary_pred, _Tp*) { ; _Tp __value = *__first; *__result = __value; while (++__first != __last) if (!__binary_pred(__value, *__first)) { __value = *__first; *++__result = __value; } return ++__result; } template inline _OutputIter __unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result, _BinaryPredicate __binary_pred, output_iterator_tag) { return __unique_copy(__first, __last, __result, __binary_pred, __value_type(__first)); } template _ForwardIter __unique_copy(_InputIter __first, _InputIter __last, _ForwardIter __result, _BinaryPredicate __binary_pred, forward_iterator_tag) { ; *__result = *__first; while (++__first != __last) if (!__binary_pred(*__result, *__first)) *++__result = *__first; return ++__result; } template inline _OutputIter unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result, _BinaryPredicate __binary_pred) { ; ; if (__first == __last) return __result; return __unique_copy(__first, __last, __result, __binary_pred, __iterator_category(__result)); } template _ForwardIter unique(_ForwardIter __first, _ForwardIter __last) { ; ; __first = adjacent_find(__first, __last); return unique_copy(__first, __last, __first); } template _ForwardIter unique(_ForwardIter __first, _ForwardIter __last, _BinaryPredicate __binary_pred) { ; ; __first = adjacent_find(__first, __last, __binary_pred); return unique_copy(__first, __last, __first, __binary_pred); } template void __reverse(_BidirectionalIter __first, _BidirectionalIter __last, bidirectional_iterator_tag) { while (true) if (__first == __last || __first == --__last) return; else iter_swap(__first++, __last); } template void __reverse(_RandomAccessIter __first, _RandomAccessIter __last, random_access_iterator_tag) { while (__first < __last) iter_swap(__first++, --__last); } template inline void reverse(_BidirectionalIter __first, _BidirectionalIter __last) { ; __reverse(__first, __last, __iterator_category(__first)); } template _OutputIter reverse_copy(_BidirectionalIter __first, _BidirectionalIter __last, _OutputIter __result) { ; ; while (__first != __last) { --__last; *__result = *__last; ++__result; } return __result; } template _EuclideanRingElement __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) { while (__n != 0) { _EuclideanRingElement __t = __m % __n; __m = __n; __n = __t; } return __m; } template _ForwardIter __rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last, _Distance*, forward_iterator_tag) { if (__first == __middle) return __last; if (__last == __middle) return __first; _ForwardIter __first2 = __middle; do { swap(*__first++, *__first2++); if (__first == __middle) __middle = __first2; } while (__first2 != __last); _ForwardIter __new_middle = __first; __first2 = __middle; while (__first2 != __last) { swap (*__first++, *__first2++); if (__first == __middle) __middle = __first2; else if (__first2 == __last) __first2 = __middle; } return __new_middle; } template _BidirectionalIter __rotate(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Distance*, bidirectional_iterator_tag) { ; if (__first == __middle) return __last; if (__last == __middle) return __first; __reverse(__first, __middle, bidirectional_iterator_tag()); __reverse(__middle, __last, bidirectional_iterator_tag()); while (__first != __middle && __middle != __last) swap (*__first++, *--__last); if (__first == __middle) { __reverse(__middle, __last, bidirectional_iterator_tag()); return __last; } else { __reverse(__first, __middle, bidirectional_iterator_tag()); return __first; } } template _RandomAccessIter __rotate(_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last, _Distance *, _Tp *) { ; _Distance __n = __last - __first; _Distance __k = __middle - __first; _Distance __l = __n - __k; _RandomAccessIter __result = __first + (__last - __middle); if (__k == 0) return __last; else if (__k == __l) { swap_ranges(__first, __middle, __middle); return __result; } _Distance __d = __gcd(__n, __k); for (_Distance __i = 0; __i < __d; __i++) { _Tp __tmp = *__first; _RandomAccessIter __p = __first; if (__k < __l) { for (_Distance __j = 0; __j < __l/__d; __j++) { if (__p > __first + __l) { *__p = *(__p - __l); __p -= __l; } *__p = *(__p + __k); __p += __k; } } else { for (_Distance __j = 0; __j < __k/__d - 1; __j ++) { if (__p < __last - __k) { *__p = *(__p + __k); __p += __k; } *__p = * (__p - __l); __p -= __l; } } *__p = __tmp; ++__first; } return __result; } template inline _ForwardIter rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) { ; return __rotate(__first, __middle, __last, __distance_type(__first), __iterator_category(__first)); } template _OutputIter rotate_copy(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last, _OutputIter __result) { ; ; return copy(__first, __middle, copy(__middle, __last, __result)); } template inline _Distance __random_number(_Distance __n) { return lrand48() % __n; } template inline void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last) { ; if (__first == __last) return; for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) iter_swap(__i, __first + __random_number((__i - __first) + 1)); } template void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last, _RandomNumberGenerator& __rand) { ; if (__first == __last) return; for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) iter_swap(__i, __first + __rand((__i - __first) + 1)); } template _OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, _OutputIter __out, const _Distance __n) { ; ; _Distance __remaining = 0; distance(__first, __last, __remaining); _Distance __m = min(__n, __remaining); while (__m > 0) { if (__random_number(__remaining) < __m) { *__out = *__first; ++__out; --__m; } --__remaining; ++__first; } return __out; } template _OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, _OutputIter __out, const _Distance __n, _RandomNumberGenerator& __rand) { ; ; ; _Distance __remaining = 0; distance(__first, __last, __remaining); _Distance __m = min(__n, __remaining); while (__m > 0) { if (__rand(__remaining) < __m) { *__out = *__first; ++__out; --__m; } --__remaining; ++__first; } return __out; } template _RandomAccessIter __random_sample(_InputIter __first, _InputIter __last, _RandomAccessIter __out, const _Distance __n) { _Distance __m = 0; _Distance __t = __n; for ( ; __first != __last && __m < __n; ++__m, ++__first) __out[__m] = *__first; while (__first != __last) { ++__t; _Distance __M = __random_number(__t); if (__M < __n) __out[__M] = *__first; ++__first; } return __out + __m; } template _RandomAccessIter __random_sample(_InputIter __first, _InputIter __last, _RandomAccessIter __out, _RandomNumberGenerator& __rand, const _Distance __n) { ; _Distance __m = 0; _Distance __t = __n; for ( ; __first != __last && __m < __n; ++__m, ++__first) __out[__m] = *__first; while (__first != __last) { ++__t; _Distance __M = __rand(__t); if (__M < __n) __out[__M] = *__first; ++__first; } return __out + __m; } template inline _RandomAccessIter random_sample(_InputIter __first, _InputIter __last, _RandomAccessIter __out_first, _RandomAccessIter __out_last) { ; ; return __random_sample(__first, __last, __out_first, __out_last - __out_first); } template inline _RandomAccessIter random_sample(_InputIter __first, _InputIter __last, _RandomAccessIter __out_first, _RandomAccessIter __out_last, _RandomNumberGenerator& __rand) { ; ; return __random_sample(__first, __last, __out_first, __rand, __out_last - __out_first); } template _ForwardIter __partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, forward_iterator_tag) { if (__first == __last) return __first; while (__pred(*__first)) if (++__first == __last) return __first; _ForwardIter __next = __first; while (++__next != __last) if (__pred(*__next)) { swap(*__first, *__next); ++__first; } return __first; } template _BidirectionalIter __partition(_BidirectionalIter __first, _BidirectionalIter __last, _Predicate __pred, bidirectional_iterator_tag) { while (true) { while (true) if (__first == __last) return __first; else if (__pred(*__first)) ++__first; else break; --__last; while (true) if (__first == __last) return __first; else if (!__pred(*__last)) --__last; else break; iter_swap(__first, __last); ++__first; } } template inline _ForwardIter partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) { ; ; return __partition(__first, __last, __pred, __iterator_category(__first)); } template _ForwardIter __inplace_stable_partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, _Distance __len) { if (__len == 1) return __pred(*__first) ? __last : __first; _ForwardIter __middle = __first; advance(__middle, __len / 2); return rotate(__inplace_stable_partition(__first, __middle, __pred, __len / 2), __middle, __inplace_stable_partition(__middle, __last, __pred, __len - __len / 2)); } template _ForwardIter __stable_partition_adaptive(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, _Distance __len, _Pointer __buffer, _Distance __buffer_size) { if (__len <= __buffer_size) { _ForwardIter __result1 = __first; _Pointer __result2 = __buffer; for ( ; __first != __last ; ++__first) if (__pred(*__first)) { *__result1 = *__first; ++__result1; } else { *__result2 = *__first; ++__result2; } copy(__buffer, __result2, __result1); return __result1; } else { _ForwardIter __middle = __first; advance(__middle, __len / 2); return rotate(__stable_partition_adaptive( __first, __middle, __pred, __len / 2, __buffer, __buffer_size), __middle, __stable_partition_adaptive( __middle, __last, __pred, __len - __len / 2, __buffer, __buffer_size)); } } template inline _ForwardIter __stable_partition_aux(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, _Tp*, _Distance*) { _Temporary_buffer<_ForwardIter, _Tp> __buf(__first, __last); if (__buf.size() > 0) return __stable_partition_adaptive(__first, __last, __pred, _Distance(__buf.requested_size()), __buf.begin(), __buf.size()); else return __inplace_stable_partition(__first, __last, __pred, _Distance(__buf.requested_size())); } template inline _ForwardIter stable_partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) { ; ; if (__first == __last) return __first; else return __stable_partition_aux(__first, __last, __pred, __value_type(__first), __distance_type(__first)); } template _RandomAccessIter __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter __last, _Tp __pivot) { while (true) { while (*__first < __pivot) ++__first; --__last; while (__pivot < *__last) --__last; if (!(__first < __last)) return __first; iter_swap(__first, __last); ++__first; } } template _RandomAccessIter __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter __last, _Tp __pivot, _Compare __comp) { while (true) { while (__comp(*__first, __pivot)) ++__first; --__last; while (__comp(__pivot, *__last)) --__last; if (!(__first < __last)) return __first; iter_swap(__first, __last); ++__first; } } const int __stl_threshold = 16; template void __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val) { _RandomAccessIter __next = __last; --__next; while (__val < *__next) { *__last = *__next; __last = __next; --__next; } *__last = __val; } template void __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, _Compare __comp) { _RandomAccessIter __next = __last; --__next; while (__comp(__val, *__next)) { *__last = *__next; __last = __next; --__next; } *__last = __val; } template inline void __linear_insert(_RandomAccessIter __first, _RandomAccessIter __last, _Tp*) { _Tp __val = *__last; if (__val < *__first) { copy_backward(__first, __last, __last + 1); *__first = __val; } else __unguarded_linear_insert(__last, __val); } template inline void __linear_insert(_RandomAccessIter __first, _RandomAccessIter __last, _Tp*, _Compare __comp) { _Tp __val = *__last; if (__comp(__val, *__first)) { copy_backward(__first, __last, __last + 1); *__first = __val; } else __unguarded_linear_insert(__last, __val, __comp); } template void __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) { if (__first == __last) return; for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) __linear_insert(__first, __i, __value_type(__first)); } template void __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) { if (__first == __last) return; for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) __linear_insert(__first, __i, __value_type(__first), __comp); } template void __unguarded_insertion_sort_aux(_RandomAccessIter __first, _RandomAccessIter __last, _Tp*) { for (_RandomAccessIter __i = __first; __i != __last; ++__i) __unguarded_linear_insert(__i, _Tp(*__i)); } template inline void __unguarded_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) { __unguarded_insertion_sort_aux(__first, __last, __value_type(__first)); } template void __unguarded_insertion_sort_aux(_RandomAccessIter __first, _RandomAccessIter __last, _Tp*, _Compare __comp) { for (_RandomAccessIter __i = __first; __i != __last; ++__i) __unguarded_linear_insert(__i, _Tp(*__i), __comp); } template inline void __unguarded_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) { __unguarded_insertion_sort_aux(__first, __last, __value_type(__first), __comp); } template void __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) { if (__last - __first > __stl_threshold) { __insertion_sort(__first, __first + __stl_threshold); __unguarded_insertion_sort(__first + __stl_threshold, __last); } else __insertion_sort(__first, __last); } template void __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) { if (__last - __first > __stl_threshold) { __insertion_sort(__first, __first + __stl_threshold, __comp); __unguarded_insertion_sort(__first + __stl_threshold, __last, __comp); } else __insertion_sort(__first, __last, __comp); } template inline _Size __lg(_Size __n) { _Size __k; for (__k = 0; __n != 1; __n >>= 1) ++__k; return __k; } template void __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, _Tp*, _Size __depth_limit) { while (__last - __first > __stl_threshold) { if (__depth_limit == 0) { partial_sort(__first, __last, __last); return; } --__depth_limit; _RandomAccessIter __cut = __unguarded_partition(__first, __last, _Tp(__median(*__first, *(__first + (__last - __first)/2), *(__last - 1)))); __introsort_loop(__cut, __last, (_Tp*) 0, __depth_limit); __last = __cut; } } template void __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, _Tp*, _Size __depth_limit, _Compare __comp) { while (__last - __first > __stl_threshold) { if (__depth_limit == 0) { partial_sort(__first, __last, __last, __comp); return; } --__depth_limit; _RandomAccessIter __cut = __unguarded_partition(__first, __last, _Tp(__median(*__first, *(__first + (__last - __first)/2), *(__last - 1), __comp)), __comp); __introsort_loop(__cut, __last, (_Tp*) 0, __depth_limit, __comp); __last = __cut; } } template inline void sort(_RandomAccessIter __first, _RandomAccessIter __last) { ; ; if (__first != __last) { __introsort_loop(__first, __last, __value_type(__first), __lg(__last - __first) * 2); __final_insertion_sort(__first, __last); } } template inline void sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) { ; ; if (__first != __last) { __introsort_loop(__first, __last, __value_type(__first), __lg(__last - __first) * 2, __comp); __final_insertion_sort(__first, __last, __comp); } } template void __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter __last) { if (__last - __first < 15) { __insertion_sort(__first, __last); return; } _RandomAccessIter __middle = __first + (__last - __first) / 2; __inplace_stable_sort(__first, __middle); __inplace_stable_sort(__middle, __last); __merge_without_buffer(__first, __middle, __last, __middle - __first, __last - __middle); } template void __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) { if (__last - __first < 15) { __insertion_sort(__first, __last, __comp); return; } _RandomAccessIter __middle = __first + (__last - __first) / 2; __inplace_stable_sort(__first, __middle, __comp); __inplace_stable_sort(__middle, __last, __comp); __merge_without_buffer(__first, __middle, __last, __middle - __first, __last - __middle, __comp); } template void __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 __last, _RandomAccessIter2 __result, _Distance __step_size) { _Distance __two_step = 2 * __step_size; while (__last - __first >= __two_step) { __result = merge(__first, __first + __step_size, __first + __step_size, __first + __two_step, __result); __first += __two_step; } __step_size = min(_Distance(__last - __first), __step_size); merge(__first, __first + __step_size, __first + __step_size, __last, __result); } template void __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 __last, _RandomAccessIter2 __result, _Distance __step_size, _Compare __comp) { _Distance __two_step = 2 * __step_size; while (__last - __first >= __two_step) { __result = merge(__first, __first + __step_size, __first + __step_size, __first + __two_step, __result, __comp); __first += __two_step; } __step_size = min(_Distance(__last - __first), __step_size); merge(__first, __first + __step_size, __first + __step_size, __last, __result, __comp); } const int __stl_chunk_size = 7; template void __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Distance __chunk_size) { while (__last - __first >= __chunk_size) { __insertion_sort(__first, __first + __chunk_size); __first += __chunk_size; } __insertion_sort(__first, __last); } template void __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Distance __chunk_size, _Compare __comp) { while (__last - __first >= __chunk_size) { __insertion_sort(__first, __first + __chunk_size, __comp); __first += __chunk_size; } __insertion_sort(__first, __last, __comp); } template void __merge_sort_with_buffer(_RandomAccessIter __first, _RandomAccessIter __last, _Pointer __buffer, _Distance*) { _Distance __len = __last - __first; _Pointer __buffer_last = __buffer + __len; _Distance __step_size = __stl_chunk_size; __chunk_insertion_sort(__first, __last, __step_size); while (__step_size < __len) { __merge_sort_loop(__first, __last, __buffer, __step_size); __step_size *= 2; __merge_sort_loop(__buffer, __buffer_last, __first, __step_size); __step_size *= 2; } } template void __merge_sort_with_buffer(_RandomAccessIter __first, _RandomAccessIter __last, _Pointer __buffer, _Distance*, _Compare __comp) { _Distance __len = __last - __first; _Pointer __buffer_last = __buffer + __len; _Distance __step_size = __stl_chunk_size; __chunk_insertion_sort(__first, __last, __step_size, __comp); while (__step_size < __len) { __merge_sort_loop(__first, __last, __buffer, __step_size, __comp); __step_size *= 2; __merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp); __step_size *= 2; } } template void __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter __last, _Pointer __buffer, _Distance __buffer_size) { _Distance __len = (__last - __first + 1) / 2; _RandomAccessIter __middle = __first + __len; if (__len > __buffer_size) { __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size); __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size); } else { __merge_sort_with_buffer(__first, __middle, __buffer, (_Distance*)0); __merge_sort_with_buffer(__middle, __last, __buffer, (_Distance*)0); } __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), _Distance(__last - __middle), __buffer, __buffer_size); } template void __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter __last, _Pointer __buffer, _Distance __buffer_size, _Compare __comp) { _Distance __len = (__last - __first + 1) / 2; _RandomAccessIter __middle = __first + __len; if (__len > __buffer_size) { __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size, __comp); __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size, __comp); } else { __merge_sort_with_buffer(__first, __middle, __buffer, (_Distance*)0, __comp); __merge_sort_with_buffer(__middle, __last, __buffer, (_Distance*)0, __comp); } __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), _Distance(__last - __middle), __buffer, __buffer_size, __comp); } template inline void __stable_sort_aux(_RandomAccessIter __first, _RandomAccessIter __last, _Tp*, _Distance*) { _Temporary_buffer<_RandomAccessIter, _Tp> buf(__first, __last); if (buf.begin() == 0) __inplace_stable_sort(__first, __last); else __stable_sort_adaptive(__first, __last, buf.begin(), _Distance(buf.size())); } template inline void __stable_sort_aux(_RandomAccessIter __first, _RandomAccessIter __last, _Tp*, _Distance*, _Compare __comp) { _Temporary_buffer<_RandomAccessIter, _Tp> buf(__first, __last); if (buf.begin() == 0) __inplace_stable_sort(__first, __last, __comp); else __stable_sort_adaptive(__first, __last, buf.begin(), _Distance(buf.size()), __comp); } template inline void stable_sort(_RandomAccessIter __first, _RandomAccessIter __last) { ; ; __stable_sort_aux(__first, __last, __value_type(__first), __distance_type(__first)); } template inline void stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) { ; ; __stable_sort_aux(__first, __last, __value_type(__first), __distance_type(__first), __comp); } template void __partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last, _Tp*) { make_heap(__first, __middle); for (_RandomAccessIter __i = __middle; __i < __last; ++__i) if (*__i < *__first) __pop_heap(__first, __middle, __i, _Tp(*__i), __distance_type(__first)); sort_heap(__first, __middle); } template inline void partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last) { ; ; __partial_sort(__first, __middle, __last, __value_type(__first)); } template void __partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last, _Tp*, _Compare __comp) { make_heap(__first, __middle, __comp); for (_RandomAccessIter __i = __middle; __i < __last; ++__i) if (__comp(*__i, *__first)) __pop_heap(__first, __middle, __i, _Tp(*__i), __comp, __distance_type(__first)); sort_heap(__first, __middle, __comp); } template inline void partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last, _Compare __comp) { ; ; __partial_sort(__first, __middle, __last, __value_type(__first), __comp); } template _RandomAccessIter __partial_sort_copy(_InputIter __first, _InputIter __last, _RandomAccessIter __result_first, _RandomAccessIter __result_last, _Distance*, _Tp*) { if (__result_first == __result_last) return __result_last; _RandomAccessIter __result_real_last = __result_first; while(__first != __last && __result_real_last != __result_last) { *__result_real_last = *__first; ++__result_real_last; ++__first; } make_heap(__result_first, __result_real_last); while (__first != __last) { if (*__first < *__result_first) __adjust_heap(__result_first, _Distance(0), _Distance(__result_real_last - __result_first), _Tp(*__first)); ++__first; } sort_heap(__result_first, __result_real_last); return __result_real_last; } template inline _RandomAccessIter partial_sort_copy(_InputIter __first, _InputIter __last, _RandomAccessIter __result_first, _RandomAccessIter __result_last) { ; ; ; ; return __partial_sort_copy(__first, __last, __result_first, __result_last, __distance_type(__result_first), __value_type(__first)); } template _RandomAccessIter __partial_sort_copy(_InputIter __first, _InputIter __last, _RandomAccessIter __result_first, _RandomAccessIter __result_last, _Compare __comp, _Distance*, _Tp*) { if (__result_first == __result_last) return __result_last; _RandomAccessIter __result_real_last = __result_first; while(__first != __last && __result_real_last != __result_last) { *__result_real_last = *__first; ++__result_real_last; ++__first; } make_heap(__result_first, __result_real_last, __comp); while (__first != __last) { if (__comp(*__first, *__result_first)) __adjust_heap(__result_first, _Distance(0), _Distance(__result_real_last - __result_first), _Tp(*__first), __comp); ++__first; } sort_heap(__result_first, __result_real_last, __comp); return __result_real_last; } template inline _RandomAccessIter partial_sort_copy(_InputIter __first, _InputIter __last, _RandomAccessIter __result_first, _RandomAccessIter __result_last, _Compare __comp) { ; ; ; ; return __partial_sort_copy(__first, __last, __result_first, __result_last, __comp, __distance_type(__result_first), __value_type(__first)); } template void __nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, _RandomAccessIter __last, _Tp*) { while (__last - __first > 3) { _RandomAccessIter __cut = __unguarded_partition(__first, __last, _Tp(__median(*__first, *(__first + (__last - __first)/2), *(__last - 1)))); if (__cut <= __nth) __first = __cut; else __last = __cut; } __insertion_sort(__first, __last); } template inline void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, _RandomAccessIter __last) { ; ; __nth_element(__first, __nth, __last, __value_type(__first)); } template void __nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, _RandomAccessIter __last, _Tp*, _Compare __comp) { while (__last - __first > 3) { _RandomAccessIter __cut = __unguarded_partition(__first, __last, _Tp(__median(*__first, *(__first + (__last - __first)/2), *(__last - 1), __comp)), __comp); if (__cut <= __nth) __first = __cut; else __last = __cut; } __insertion_sort(__first, __last, __comp); } template inline void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, _RandomAccessIter __last, _Compare __comp) { ; ; __nth_element(__first, __nth, __last, __value_type(__first), __comp); } template _ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Distance*) { _Distance __len = 0; distance(__first, __last, __len); _Distance __half; _ForwardIter __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; advance(__middle, __half); if (*__middle < __val) { __first = __middle; ++__first; __len = __len - __half - 1; } else __len = __half; } return __first; } template inline _ForwardIter lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) { ; ; ; return __lower_bound(__first, __last, __val, __distance_type(__first)); } template _ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Compare __comp, _Distance*) { _Distance __len = 0; distance(__first, __last, __len); _Distance __half; _ForwardIter __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; advance(__middle, __half); if (__comp(*__middle, __val)) { __first = __middle; ++__first; __len = __len - __half - 1; } else __len = __half; } return __first; } template inline _ForwardIter lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Compare __comp) { ; ; ; return __lower_bound(__first, __last, __val, __comp, __distance_type(__first)); } template _ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Distance*) { _Distance __len = 0; distance(__first, __last, __len); _Distance __half; _ForwardIter __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; advance(__middle, __half); if (__val < *__middle) __len = __half; else { __first = __middle; ++__first; __len = __len - __half - 1; } } return __first; } template inline _ForwardIter upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) { ; ; ; return __upper_bound(__first, __last, __val, __distance_type(__first)); } template _ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Compare __comp, _Distance*) { _Distance __len = 0; distance(__first, __last, __len); _Distance __half; _ForwardIter __middle; while (__len > 0) { __half = __len >> 1; __middle = __first; advance(__middle, __half); if (__comp(__val, *__middle)) __len = __half; else { __first = __middle; ++__first; __len = __len - __half - 1; } } return __first; } template inline _ForwardIter upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Compare __comp) { ; ; ; return __upper_bound(__first, __last, __val, __comp, __distance_type(__first)); } template pair<_ForwardIter, _ForwardIter> __equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Distance*) { _Distance __len = 0; distance(__first, __last, __len); _Distance __half; _ForwardIter __middle, __left, __right; while (__len > 0) { __half = __len >> 1; __middle = __first; advance(__middle, __half); if (*__middle < __val) { __first = __middle; ++__first; __len = __len - __half - 1; } else if (__val < *__middle) __len = __half; else { __left = lower_bound(__first, __middle, __val); advance(__first, __len); __right = upper_bound(++__middle, __first, __val); return pair<_ForwardIter, _ForwardIter>(__left, __right); } } return pair<_ForwardIter, _ForwardIter>(__first, __first); } template inline pair<_ForwardIter, _ForwardIter> equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) { ; ; ; return __equal_range(__first, __last, __val, __distance_type(__first)); } template pair<_ForwardIter, _ForwardIter> __equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Compare __comp, _Distance*) { _Distance __len = 0; distance(__first, __last, __len); _Distance __half; _ForwardIter __middle, __left, __right; while (__len > 0) { __half = __len >> 1; __middle = __first; advance(__middle, __half); if (__comp(*__middle, __val)) { __first = __middle; ++__first; __len = __len - __half - 1; } else if (__comp(__val, *__middle)) __len = __half; else { __left = lower_bound(__first, __middle, __val, __comp); advance(__first, __len); __right = upper_bound(++__middle, __first, __val, __comp); return pair<_ForwardIter, _ForwardIter>(__left, __right); } } return pair<_ForwardIter, _ForwardIter>(__first, __first); } template inline pair<_ForwardIter, _ForwardIter> equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Compare __comp) { ; ; ; return __equal_range(__first, __last, __val, __comp, __distance_type(__first)); } template bool binary_search(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) { ; ; ; _ForwardIter __i = lower_bound(__first, __last, __val); return __i != __last && !(__val < *__i); } template bool binary_search(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, _Compare __comp) { ; ; ; _ForwardIter __i = lower_bound(__first, __last, __val, __comp); return __i != __last && !__comp(__val, *__i); } template _OutputIter merge(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) { if (*__first2 < *__first1) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; } ++__result; } return copy(__first2, __last2, copy(__first1, __last1, __result)); } template _OutputIter merge(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; } ++__result; } return copy(__first2, __last2, copy(__first1, __last1, __result)); } template void __merge_without_buffer(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Distance __len1, _Distance __len2) { if (__len1 == 0 || __len2 == 0) return; if (__len1 + __len2 == 2) { if (*__middle < *__first) iter_swap(__first, __middle); return; } _BidirectionalIter __first_cut = __first; _BidirectionalIter __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; advance(__first_cut, __len11); __second_cut = lower_bound(__middle, __last, *__first_cut); distance(__middle, __second_cut, __len22); } else { __len22 = __len2 / 2; advance(__second_cut, __len22); __first_cut = upper_bound(__first, __middle, *__second_cut); distance(__first, __first_cut, __len11); } _BidirectionalIter __new_middle = rotate(__first_cut, __middle, __second_cut); __merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22); __merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22); } template void __merge_without_buffer(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Distance __len1, _Distance __len2, _Compare __comp) { if (__len1 == 0 || __len2 == 0) return; if (__len1 + __len2 == 2) { if (__comp(*__middle, *__first)) iter_swap(__first, __middle); return; } _BidirectionalIter __first_cut = __first; _BidirectionalIter __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; advance(__first_cut, __len11); __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); distance(__middle, __second_cut, __len22); } else { __len22 = __len2 / 2; advance(__second_cut, __len22); __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); distance(__first, __first_cut, __len11); } _BidirectionalIter __new_middle = rotate(__first_cut, __middle, __second_cut); __merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22, __comp); __merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __comp); } template _BidirectionalIter1 __rotate_adaptive(_BidirectionalIter1 __first, _BidirectionalIter1 __middle, _BidirectionalIter1 __last, _Distance __len1, _Distance __len2, _BidirectionalIter2 __buffer, _Distance __buffer_size) { _BidirectionalIter2 __buffer_end; if (__len1 > __len2 && __len2 <= __buffer_size) { __buffer_end = copy(__middle, __last, __buffer); copy_backward(__first, __middle, __last); return copy(__buffer, __buffer_end, __first); } else if (__len1 <= __buffer_size) { __buffer_end = copy(__first, __middle, __buffer); copy(__middle, __last, __first); return copy_backward(__buffer, __buffer_end, __last); } else return rotate(__first, __middle, __last); } template _BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, _BidirectionalIter3 __result) { if (__first1 == __last1) return copy_backward(__first2, __last2, __result); if (__first2 == __last2) return copy_backward(__first1, __last1, __result); --__last1; --__last2; while (true) { if (*__last2 < *__last1) { *--__result = *__last1; if (__first1 == __last1) return copy_backward(__first2, ++__last2, __result); --__last1; } else { *--__result = *__last2; if (__first2 == __last2) return copy_backward(__first1, ++__last1, __result); --__last2; } } } template _BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, _BidirectionalIter3 __result, _Compare __comp) { if (__first1 == __last1) return copy_backward(__first2, __last2, __result); if (__first2 == __last2) return copy_backward(__first1, __last1, __result); --__last1; --__last2; while (true) { if (__comp(*__last2, *__last1)) { *--__result = *__last1; if (__first1 == __last1) return copy_backward(__first2, ++__last2, __result); --__last1; } else { *--__result = *__last2; if (__first2 == __last2) return copy_backward(__first1, ++__last1, __result); --__last2; } } } template void __merge_adaptive(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size) { if (__len1 <= __len2 && __len1 <= __buffer_size) { _Pointer __buffer_end = copy(__first, __middle, __buffer); merge(__buffer, __buffer_end, __middle, __last, __first); } else if (__len2 <= __buffer_size) { _Pointer __buffer_end = copy(__middle, __last, __buffer); __merge_backward(__first, __middle, __buffer, __buffer_end, __last); } else { _BidirectionalIter __first_cut = __first; _BidirectionalIter __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; advance(__first_cut, __len11); __second_cut = lower_bound(__middle, __last, *__first_cut); distance(__middle, __second_cut, __len22); } else { __len22 = __len2 / 2; advance(__second_cut, __len22); __first_cut = upper_bound(__first, __middle, *__second_cut); distance(__first, __first_cut, __len11); } _BidirectionalIter __new_middle = __rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, __len22, __buffer, __buffer_size); __merge_adaptive(__first, __first_cut, __new_middle, __len11, __len22, __buffer, __buffer_size); __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __buffer, __buffer_size); } } template void __merge_adaptive(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size, _Compare __comp) { if (__len1 <= __len2 && __len1 <= __buffer_size) { _Pointer __buffer_end = copy(__first, __middle, __buffer); merge(__buffer, __buffer_end, __middle, __last, __first, __comp); } else if (__len2 <= __buffer_size) { _Pointer __buffer_end = copy(__middle, __last, __buffer); __merge_backward(__first, __middle, __buffer, __buffer_end, __last, __comp); } else { _BidirectionalIter __first_cut = __first; _BidirectionalIter __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; advance(__first_cut, __len11); __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); distance(__middle, __second_cut, __len22); } else { __len22 = __len2 / 2; advance(__second_cut, __len22); __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); distance(__first, __first_cut, __len11); } _BidirectionalIter __new_middle = __rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, __len22, __buffer, __buffer_size); __merge_adaptive(__first, __first_cut, __new_middle, __len11, __len22, __buffer, __buffer_size, __comp); __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __buffer, __buffer_size, __comp); } } template inline void __inplace_merge_aux(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Tp*, _Distance*) { _Distance __len1 = 0; distance(__first, __middle, __len1); _Distance __len2 = 0; distance(__middle, __last, __len2); _Temporary_buffer<_BidirectionalIter, _Tp> __buf(__first, __last); if (__buf.begin() == 0) __merge_without_buffer(__first, __middle, __last, __len1, __len2); else __merge_adaptive(__first, __middle, __last, __len1, __len2, __buf.begin(), _Distance(__buf.size())); } template inline void __inplace_merge_aux(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Tp*, _Distance*, _Compare __comp) { _Distance __len1 = 0; distance(__first, __middle, __len1); _Distance __len2 = 0; distance(__middle, __last, __len2); _Temporary_buffer<_BidirectionalIter, _Tp> __buf(__first, __last); if (__buf.begin() == 0) __merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp); else __merge_adaptive(__first, __middle, __last, __len1, __len2, __buf.begin(), _Distance(__buf.size()), __comp); } template inline void inplace_merge(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last) { ; ; if (__first == __middle || __middle == __last) return; __inplace_merge_aux(__first, __middle, __last, __value_type(__first), __distance_type(__first)); } template inline void inplace_merge(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Compare __comp) { ; ; if (__first == __middle || __middle == __last) return; __inplace_merge_aux(__first, __middle, __last, __value_type(__first), __distance_type(__first), __comp); } template bool includes(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2) { ; ; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first2 < *__first1) return false; else if(*__first1 < *__first2) ++__first1; else ++__first1, ++__first2; return __first2 == __last2; } template bool includes(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) { ; ; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first2, *__first1)) return false; else if(__comp(*__first1, *__first2)) ++__first1; else ++__first1, ++__first2; return __first2 == __last2; } template _OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) { if (*__first1 < *__first2) { *__result = *__first1; ++__first1; } else if (*__first2 < *__first1) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; ++__first2; } ++__result; } return copy(__first2, __last2, copy(__first1, __last1, __result)); } template _OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; } else if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; ++__first2; } ++__result; } return copy(__first2, __last2, copy(__first1, __last1, __result)); } template _OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) ++__first1; else if (*__first2 < *__first1) ++__first2; else { *__result = *__first1; ++__first1; ++__first2; ++__result; } return __result; } template _OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) ++__first1; else if (__comp(*__first2, *__first1)) ++__first2; else { *__result = *__first1; ++__first1; ++__first2; ++__result; } return __result; } template _OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) { *__result = *__first1; ++__first1; ++__result; } else if (*__first2 < *__first1) ++__first2; else { ++__first1; ++__first2; } return copy(__first1, __last1, __result); } template _OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; ++__result; } else if (__comp(*__first2, *__first1)) ++__first2; else { ++__first1; ++__first2; } return copy(__first1, __last1, __result); } template _OutputIter set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) { *__result = *__first1; ++__first1; ++__result; } else if (*__first2 < *__first1) { *__result = *__first2; ++__first2; ++__result; } else { ++__first1; ++__first2; } return copy(__first2, __last2, copy(__first1, __last1, __result)); } template _OutputIter set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp) { ; ; ; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; ++__result; } else if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; ++__result; } else { ++__first1; ++__first2; } return copy(__first2, __last2, copy(__first1, __last1, __result)); } template _ForwardIter max_element(_ForwardIter __first, _ForwardIter __last) { ; ; if (__first == __last) return __first; _ForwardIter __result = __first; while (++__first != __last) if (*__result < *__first) __result = __first; return __result; } template _ForwardIter max_element(_ForwardIter __first, _ForwardIter __last, _Compare __comp) { ; ; if (__first == __last) return __first; _ForwardIter __result = __first; while (++__first != __last) if (__comp(*__result, *__first)) __result = __first; return __result; } template _ForwardIter min_element(_ForwardIter __first, _ForwardIter __last) { ; ; if (__first == __last) return __first; _ForwardIter __result = __first; while (++__first != __last) if (*__first < *__result) __result = __first; return __result; } template _ForwardIter min_element(_ForwardIter __first, _ForwardIter __last, _Compare __comp) { ; ; if (__first == __last) return __first; _ForwardIter __result = __first; while (++__first != __last) if (__comp(*__first, *__result)) __result = __first; return __result; } template bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last) { ; ; if (__first == __last) return false; _BidirectionalIter __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIter __ii = __i; --__i; if (*__i < *__ii) { _BidirectionalIter __j = __last; while (!(*__i < *--__j)) {} iter_swap(__i, __j); reverse(__ii, __last); return true; } if (__i == __first) { reverse(__first, __last); return false; } } } template bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, _Compare __comp) { ; ; if (__first == __last) return false; _BidirectionalIter __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIter __ii = __i; --__i; if (__comp(*__i, *__ii)) { _BidirectionalIter __j = __last; while (!__comp(*__i, *--__j)) {} iter_swap(__i, __j); reverse(__ii, __last); return true; } if (__i == __first) { reverse(__first, __last); return false; } } } template bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last) { ; ; if (__first == __last) return false; _BidirectionalIter __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIter __ii = __i; --__i; if (*__ii < *__i) { _BidirectionalIter __j = __last; while (!(*--__j < *__i)) {} iter_swap(__i, __j); reverse(__ii, __last); return true; } if (__i == __first) { reverse(__first, __last); return false; } } } template bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, _Compare __comp) { ; ; if (__first == __last) return false; _BidirectionalIter __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIter __ii = __i; --__i; if (__comp(*__ii, *__i)) { _BidirectionalIter __j = __last; while (!__comp(*--__j, *__i)) {} iter_swap(__i, __j); reverse(__ii, __last); return true; } if (__i == __first) { reverse(__first, __last); return false; } } } template _InputIter find_first_of(_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2) { ; ; ; for ( ; __first1 != __last1; ++__first1) for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) if (*__first1 == *__iter) return __first1; return __last1; } template _InputIter find_first_of(_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2, _BinaryPredicate __comp) { ; ; ; ; for ( ; __first1 != __last1; ++__first1) for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) if (__comp(*__first1, *__iter)) return __first1; return __last1; } # 3419 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/stl_algo.h" 3 template _ForwardIter1 __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2, forward_iterator_tag, forward_iterator_tag) { if (__first2 == __last2) return __last1; else { _ForwardIter1 __result = __last1; while (1) { _ForwardIter1 __new_result = search(__first1, __last1, __first2, __last2); if (__new_result == __last1) return __result; else { __result = __new_result; __first1 = __new_result; ++__first1; } } } } template _ForwardIter1 __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2, forward_iterator_tag, forward_iterator_tag, _BinaryPredicate __comp) { if (__first2 == __last2) return __last1; else { _ForwardIter1 __result = __last1; while (1) { _ForwardIter1 __new_result = search(__first1, __last1, __first2, __last2, __comp); if (__new_result == __last1) return __result; else { __result = __new_result; __first1 = __new_result; ++__first1; } } } } template _BidirectionalIter1 __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag) { ; ; typedef reverse_iterator<_BidirectionalIter1> _RevIter1; typedef reverse_iterator<_BidirectionalIter2> _RevIter2; _RevIter1 __rlast1(__first1); _RevIter2 __rlast2(__first2); _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, _RevIter2(__last2), __rlast2); if (__rresult == __rlast1) return __last1; else { _BidirectionalIter1 __result = __rresult.base(); advance(__result, -distance(__first2, __last2)); return __result; } } template _BidirectionalIter1 __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag, _BinaryPredicate __comp) { ; ; typedef reverse_iterator<_BidirectionalIter1> _RevIter1; typedef reverse_iterator<_BidirectionalIter2> _RevIter2; _RevIter1 __rlast1(__first1); _RevIter2 __rlast2(__first2); _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, _RevIter2(__last2), __rlast2, __comp); if (__rresult == __rlast1) return __last1; else { _BidirectionalIter1 __result = __rresult.base(); advance(__result, -distance(__first2, __last2)); return __result; } } template inline _ForwardIter1 find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2) { ; ; ; return __find_end(__first1, __last1, __first2, __last2, __iterator_category(__first1), __iterator_category(__first2)); } template inline _ForwardIter1 find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2, _BinaryPredicate __comp) { ; ; ; return __find_end(__first1, __last1, __first2, __last2, __iterator_category(__first1), __iterator_category(__first2), __comp); } template bool __is_heap(_RandomAccessIter __first, _Distance __n) { _Distance __parent = 0; for (_Distance __child = 1; __child < __n; ++__child) { if (__first[__parent] < __first[__child]) return false; if ((__child & 1) == 0) ++__parent; } return true; } template bool __is_heap(_RandomAccessIter __first, _StrictWeakOrdering __comp, _Distance __n) { _Distance __parent = 0; for (_Distance __child = 1; __child < __n; ++__child) { if (__comp(__first[__parent], __first[__child])) return false; if ((__child & 1) == 0) ++__parent; } return true; } template inline bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last) { ; ; return __is_heap(__first, __last - __first); } template inline bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last, _StrictWeakOrdering __comp) { ; ; return __is_heap(__first, __comp, __last - __first); } template bool is_sorted(_ForwardIter __first, _ForwardIter __last) { ; ; if (__first == __last) return true; _ForwardIter __next = __first; for (++__next; __next != __last; __first = __next, ++__next) { if (*__next < *__first) return false; } return true; } template bool is_sorted(_ForwardIter __first, _ForwardIter __last, _StrictWeakOrdering __comp) { ; ; if (__first == __last) return true; _ForwardIter __next = __first; for (++__next; __next != __last; __first = __next, ++__next) { if (__comp(*__next, *__first)) return false; } return true; } } # 66 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_algorithm.h" 2 3 # 32 "/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/algorithm" 2 3 # 21 "foo.cc" 2 namespace HepPDT { double spinitod( int js ); int spindtoi( double spin ); int translatePythiatoPDT( const int pythiaID ); int translateIsajettoPDT( const int isajetID ); int translateHerwigtoPDT( const int herwigID); int translateQQtoPDT( const int qqID); int translateGeanttoPDT( const int geantID); int translatePDGtabletoPDT( const int pdgID); int translateEvtGentoPDT( const int evtGenID ); int translatePDTtoPythia( const int pid ); int translatePDTtoIsajet( const int pid ); int translatePDTtoHerwig( const int pid ); int translatePDTtoQQ( const int pid ); int translatePDTtoGeant( const int pid ); int translatePDTtoPDGtable( const int pid ); int translatePDTtoEvtGen( const int pid ); enum location { nj=1, nq3, nq2, nq1, nl, nr, n, n8, n9, n10 }; struct Quarks { Quarks( ) : nq1(0), nq2(0), nq3(0) {} Quarks( short q1, short q2, short q3) : nq1(q1), nq2(q2), nq3(q3) {} short nq1; short nq2; short nq3; }; class ParticleID { public: inline ParticleID( int pid = 0 ); inline ParticleID( const ParticleID & orig ); inline ParticleID& operator=( const ParticleID & ); inline void swap( ParticleID & other ); inline bool operator < ( ParticleID const & other ) const; inline bool operator == ( ParticleID const & other ) const; int pid( ) const { return itsPID; } inline int abspid( ) const; bool isValid( ) const; bool isMeson( ) const; bool isBaryon( ) const; bool isDiQuark( ) const; bool isHadron( ) const; bool isLepton( ) const; bool isNucleus( ) const; inline bool hasUp( ) const; inline bool hasDown( ) const; inline bool hasStrange( ) const; inline bool hasCharm( ) const; inline bool hasBottom( ) const; inline bool hasTop( ) const; int jSpin( ) const; int sSpin( ) const; int lSpin( ) const; int fundamentalID( ) const; int extraBits( ) const; Quarks quarks( ) const; int threeCharge( ) const; int A( ) const; int Z( ) const; unsigned short digit(location) const; private: int itsPID; }; inline void swap( ParticleID & first, ParticleID & second ) { first.swap( second ); } } # 141 "foo.cc" namespace HepPDT { ParticleID::ParticleID( int pid ) : itsPID ( pid ) { ; } ParticleID::ParticleID( const ParticleID & orig ) : itsPID ( orig.itsPID ) { ; } ParticleID& ParticleID::operator=( const ParticleID & rhs ) { ParticleID temp( rhs ); swap( temp ); return *this; } void ParticleID::swap( ParticleID & other ) { std::swap( itsPID, other.itsPID ); } bool ParticleID::operator < ( ParticleID const & other ) const { return itsPID < other.itsPID; } bool ParticleID::operator == ( ParticleID const & other ) const { return itsPID == other.itsPID; } int ParticleID::abspid( ) const { return (itsPID < 0) ? -itsPID : itsPID; } bool ParticleID::hasUp( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 2 || digit(nq2) == 2 || digit(nq1) == 2 ) { return true; } return false; } bool ParticleID::hasDown( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 1 || digit(nq2) == 1 || digit(nq1) == 1 ) { return true; } return false; } bool ParticleID::hasStrange( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 3 || digit(nq2) == 3 || digit(nq1) == 3 ) { return true; } return false; } bool ParticleID::hasCharm( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 4 || digit(nq2) == 4 || digit(nq1) == 4 ) { return true; } return false; } bool ParticleID::hasBottom( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 5 || digit(nq2) == 5 || digit(nq1) == 5 ) { return true; } return false; } bool ParticleID::hasTop( ) const { if( extraBits() > 0 ) { return false; } if( abspid() <= 100 ) { return false; } if( fundamentalID() <= 100 && fundamentalID() > 0 ) { return false; } if( digit(nq3) == 6 || digit(nq2) == 6 || digit(nq1) == 6 ) { return true; } return false; } } # 242 "foo.cc" namespace HepPDT { unsigned short ParticleID::digit( location loc ) const { int numerator = (int) std::pow(10.0,(loc-1)); return (abspid()/numerator)%10; } } - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - -