From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27654 invoked by alias); 23 Aug 2002 13:56:03 -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 27494 invoked by uid 71); 23 Aug 2002 13:56:02 -0000 Date: Fri, 23 Aug 2002 07:06:00 -0000 Message-ID: <20020823135602.27492.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Rob Smallshire" Subject: Re: c++/7700: Inner class scopting not working correctly for function prototype matching Reply-To: "Rob Smallshire" X-SW-Source: 2002-08/txt/msg00496.txt.bz2 List-Id: The following reply was made to PR c++/7700; it has been noted by GNATS. From: "Rob Smallshire" To: , , , , Cc: Subject: Re: c++/7700: Inner class scopting not working correctly for function prototype matching Date: Fri, 23 Aug 2002 14:50:56 +0100 This is a multi-part message in MIME format. ------=_NextPart_000_0004_01C24AB4.7CD7C780 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p r=7700 I attempted to attach a file to this web-submitted bug report but the Submit Form button on the web page only seemed to work when there was no file attached - otherwise I got a Page Not Found error. Anyway, here is the file I intended to attach which recreates the problem ------=_NextPart_000_0004_01C24AB4.7CD7C780 Content-Type: application/octet-stream; name="main.ii" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="main.ii" # 1 "main.cxx"=0A= # 1 ""=0A= # 1 ""=0A= # 1 "main.cxx"=0A= =0A= # 1 "/homes/rob/dev/products/nmove/main/inc/nmove_prolog.h" 1=0A= =0A= =0A= =0A= =0A= # 1 "/homes/rob/dev/products/nmove/main/inc/basic_types.h" 1=0A= # 344 "/homes/rob/dev/products/nmove/main/inc/basic_types.h"=0A= typedef char Int8;=0A= =0A= =0A= =0A= =0A= typedef short int Int16;=0A= =0A= =0A= =0A= =0A= typedef int Int32;=0A= =0A= =0A= =0A= =0A= typedef Int32 Int;=0A= =0A= =0A= =0A= =0A= typedef long long int Int64;=0A= # 376 "/homes/rob/dev/products/nmove/main/inc/basic_types.h"=0A= typedef unsigned char UInt8;=0A= =0A= =0A= =0A= =0A= typedef unsigned short int UInt16;=0A= =0A= =0A= =0A= =0A= typedef unsigned int UInt32;=0A= =0A= =0A= =0A= =0A= typedef UInt32 UInt;=0A= =0A= =0A= =0A= =0A= typedef unsigned long long int UInt64;=0A= # 408 "/homes/rob/dev/products/nmove/main/inc/basic_types.h"=0A= typedef float Float32;=0A= =0A= =0A= =0A= =0A= typedef Float32 Float;=0A= =0A= =0A= =0A= =0A= typedef double Float64;=0A= =0A= =0A= =0A= =0A= typedef long double Float80;=0A= =0A= =0A= =0A= =0A= =0A= typedef char Char;=0A= =0A= =0A= =0A= =0A= typedef unsigned char UChar;=0A= =0A= =0A= =0A= =0A= typedef unsigned char Byte;=0A= # 6 "/homes/rob/dev/products/nmove/main/inc/nmove_prolog.h" 2=0A= # 3 "main.cxx" 2=0A= =0A= # 1 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 1=0A= =0A= =0A= =0A= # 1 "/usr/include/assert.h" 1 3=0A= # 36 "/usr/include/assert.h" 3=0A= # 1 "/usr/include/features.h" 1 3=0A= # 291 "/usr/include/features.h" 3=0A= # 1 "/usr/include/sys/cdefs.h" 1 3=0A= # 292 "/usr/include/features.h" 2 3=0A= # 320 "/usr/include/features.h" 3=0A= # 1 "/usr/include/gnu/stubs.h" 1 3=0A= # 321 "/usr/include/features.h" 2 3=0A= # 37 "/usr/include/assert.h" 2 3=0A= # 65 "/usr/include/assert.h" 3=0A= extern "C" {=0A= =0A= =0A= extern void __assert_fail (__const char *__assertion, __const char = *__file,=0A= unsigned int __line, __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= extern void __assert_perror_fail (int __errnum, __const char *__file,=0A= unsigned int __line,=0A= __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= extern void __assert (const char *__assertion, const char *__file, int = __line)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= }=0A= # 5 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nfig.h" 1=0A= # 81 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nfig.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nfig/i686_Linux-2.4.18-5smp_g++-3.1.0/CGAL/compiler_config.h" 1=0A= # 82 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nfig.h" 2=0A= # 7 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 1=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h"=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/iostream" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/iostream" 3=0A= =0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3=0A= # 34 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 3=0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h" 1 = 3=0A= # 35 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 2 3=0A= # 45 "/usr/local/gcc3.1/include/g++-v3/iostream" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/ostream" 1 3=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/ostream" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/ios" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/ios" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 3=0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stringfwd.h" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/bits/stringfwd.h" 3=0A= =0A= =0A= =0A= namespace std=0A= {=0A= template=0A= struct char_traits;=0A= =0A= template<> struct char_traits;=0A= =0A= template<> struct char_traits;=0A= =0A= =0A= template=0A= class allocator;=0A= =0A= template,=0A= typename _Alloc =3D allocator<_CharT> >=0A= class basic_string;=0A= =0A= typedef basic_string string;=0A= typedef basic_string wstring;=0A= }=0A= # 46 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/fpos.h" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/bits/fpos.h" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 1 3=0A= # 35 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cstdio" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/cstdio" 3=0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cstddef" 1 3=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/cstddef" 3=0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 147 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3=0A= typedef int ptrdiff_t;=0A= # 201 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3=0A= typedef unsigned int size_t;=0A= # 49 "/usr/local/gcc3.1/include/g++-v3/cstddef" 2 3=0A= =0A= namespace std=0A= {=0A= using ::ptrdiff_t;=0A= using ::size_t;=0A= }=0A= # 51 "/usr/local/gcc3.1/include/g++-v3/cstdio" 2 3=0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 1 3=0A= # 39 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= extern "C" {=0A= =0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 44 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 2 3=0A= =0A= # 1 "/usr/include/bits/types.h" 1 3=0A= # 29 "/usr/include/bits/types.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 30 "/usr/include/bits/types.h" 2 3=0A= =0A= =0A= typedef unsigned char __u_char;=0A= typedef unsigned short __u_short;=0A= typedef unsigned int __u_int;=0A= typedef unsigned long __u_long;=0A= =0A= __extension__ typedef unsigned long long int __u_quad_t;=0A= __extension__ typedef long long int __quad_t;=0A= # 49 "/usr/include/bits/types.h" 3=0A= typedef signed char __int8_t;=0A= typedef unsigned char __uint8_t;=0A= typedef signed short int __int16_t;=0A= typedef unsigned short int __uint16_t;=0A= typedef signed int __int32_t;=0A= typedef unsigned int __uint32_t;=0A= =0A= __extension__ typedef signed long long int __int64_t;=0A= __extension__ typedef unsigned long long int __uint64_t;=0A= =0A= typedef __quad_t *__qaddr_t;=0A= =0A= typedef __u_quad_t __dev_t;=0A= typedef __u_int __uid_t;=0A= typedef __u_int __gid_t;=0A= typedef __u_long __ino_t;=0A= typedef __u_int __mode_t;=0A= typedef __u_int __nlink_t;=0A= typedef long int __off_t;=0A= typedef __quad_t __loff_t;=0A= typedef int __pid_t;=0A= typedef int __ssize_t;=0A= typedef __u_long __rlim_t;=0A= typedef __u_quad_t __rlim64_t;=0A= typedef __u_int __id_t;=0A= =0A= typedef struct=0A= {=0A= int __val[2];=0A= } __fsid_t;=0A= =0A= =0A= typedef int __daddr_t;=0A= typedef char *__caddr_t;=0A= typedef long int __time_t;=0A= typedef unsigned int __useconds_t;=0A= typedef long int __suseconds_t;=0A= typedef long int __swblk_t;=0A= =0A= typedef long int __clock_t;=0A= =0A= =0A= typedef int __clockid_t;=0A= =0A= =0A= typedef int __timer_t;=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef int __key_t;=0A= =0A= =0A= typedef unsigned short int __ipc_pid_t;=0A= =0A= =0A= =0A= typedef long int __blksize_t;=0A= =0A= =0A= =0A= =0A= typedef long int __blkcnt_t;=0A= typedef __quad_t __blkcnt64_t;=0A= =0A= =0A= typedef __u_long __fsblkcnt_t;=0A= typedef __u_quad_t __fsblkcnt64_t;=0A= =0A= =0A= typedef __u_long __fsfilcnt_t;=0A= typedef __u_quad_t __fsfilcnt64_t;=0A= =0A= =0A= typedef __u_quad_t __ino64_t;=0A= =0A= =0A= typedef __loff_t __off64_t;=0A= =0A= =0A= typedef long int __t_scalar_t;=0A= typedef unsigned long int __t_uscalar_t;=0A= =0A= =0A= typedef int __intptr_t;=0A= =0A= =0A= typedef unsigned int __socklen_t;=0A= =0A= =0A= =0A= =0A= # 1 "/usr/include/bits/pthreadtypes.h" 1 3=0A= # 23 "/usr/include/bits/pthreadtypes.h" 3=0A= # 1 "/usr/include/bits/sched.h" 1 3=0A= # 68 "/usr/include/bits/sched.h" 3=0A= struct __sched_param=0A= {=0A= int __sched_priority;=0A= };=0A= # 24 "/usr/include/bits/pthreadtypes.h" 2 3=0A= =0A= =0A= struct _pthread_fastlock=0A= {=0A= long int __status;=0A= int __spinlock;=0A= =0A= };=0A= =0A= =0A= =0A= typedef struct _pthread_descr_struct *_pthread_descr;=0A= =0A= =0A= =0A= =0A= =0A= typedef struct __pthread_attr_s=0A= {=0A= int __detachstate;=0A= int __schedpolicy;=0A= struct __sched_param __schedparam;=0A= int __inheritsched;=0A= int __scope;=0A= size_t __guardsize;=0A= int __stackaddr_set;=0A= void *__stackaddr;=0A= size_t __stacksize;=0A= } pthread_attr_t;=0A= =0A= =0A= =0A= typedef struct=0A= {=0A= struct _pthread_fastlock __c_lock;=0A= _pthread_descr __c_waiting;=0A= } pthread_cond_t;=0A= =0A= =0A= =0A= typedef struct=0A= {=0A= int __dummy;=0A= } pthread_condattr_t;=0A= =0A= =0A= typedef unsigned int pthread_key_t;=0A= =0A= =0A= =0A= =0A= =0A= typedef struct=0A= {=0A= int __m_reserved;=0A= int __m_count;=0A= _pthread_descr __m_owner;=0A= int __m_kind;=0A= struct _pthread_fastlock __m_lock;=0A= } pthread_mutex_t;=0A= =0A= =0A= =0A= typedef struct=0A= {=0A= int __mutexkind;=0A= } pthread_mutexattr_t;=0A= =0A= =0A= =0A= typedef int pthread_once_t;=0A= =0A= =0A= =0A= =0A= typedef struct _pthread_rwlock_t=0A= {=0A= struct _pthread_fastlock __rw_lock;=0A= int __rw_readers;=0A= _pthread_descr __rw_writer;=0A= _pthread_descr __rw_read_waiting;=0A= _pthread_descr __rw_write_waiting;=0A= int __rw_kind;=0A= int __rw_pshared;=0A= } pthread_rwlock_t;=0A= =0A= =0A= =0A= typedef struct=0A= {=0A= int __lockkind;=0A= int __pshared;=0A= } pthread_rwlockattr_t;=0A= =0A= =0A= =0A= =0A= typedef volatile int pthread_spinlock_t;=0A= =0A= =0A= typedef struct {=0A= struct _pthread_fastlock __ba_lock;=0A= int __ba_required;=0A= int __ba_present;=0A= _pthread_descr __ba_waiting;=0A= } pthread_barrier_t;=0A= =0A= =0A= typedef struct {=0A= int __pshared;=0A= } pthread_barrierattr_t;=0A= =0A= =0A= =0A= =0A= =0A= typedef unsigned long int pthread_t;=0A= # 144 "/usr/include/bits/types.h" 2 3=0A= # 46 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 2 3=0A= # 54 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= typedef struct _IO_FILE FILE;=0A= # 64 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= typedef struct _IO_FILE __FILE;=0A= # 74 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= # 1 "/usr/include/libio.h" 1 3=0A= # 32 "/usr/include/libio.h" 3=0A= # 1 "/usr/include/_G_config.h" 1 3=0A= # 14 "/usr/include/_G_config.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 321 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3=0A= typedef unsigned int wint_t;=0A= # 15 "/usr/include/_G_config.h" 2 3=0A= # 24 "/usr/include/_G_config.h" 3=0A= # 1 "/usr/include/wchar.h" 1 3=0A= # 48 "/usr/include/wchar.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 49 "/usr/include/wchar.h" 2 3=0A= =0A= # 1 "/usr/include/bits/wchar.h" 1 3=0A= # 51 "/usr/include/wchar.h" 2 3=0A= # 67 "/usr/include/wchar.h" 3=0A= typedef struct=0A= {=0A= int __count;=0A= union=0A= {=0A= wint_t __wch;=0A= char __wchb[4];=0A= } __value;=0A= } __mbstate_t;=0A= # 25 "/usr/include/_G_config.h" 2 3=0A= =0A= typedef struct=0A= {=0A= __off_t __pos;=0A= __mbstate_t __state;=0A= } _G_fpos_t;=0A= typedef struct=0A= {=0A= __off64_t __pos;=0A= __mbstate_t __state;=0A= } _G_fpos64_t;=0A= # 44 "/usr/include/_G_config.h" 3=0A= # 1 "/usr/include/gconv.h" 1 3=0A= # 28 "/usr/include/gconv.h" 3=0A= # 1 "/usr/include/wchar.h" 1 3=0A= # 48 "/usr/include/wchar.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 49 "/usr/include/wchar.h" 2 3=0A= # 29 "/usr/include/gconv.h" 2 3=0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 32 "/usr/include/gconv.h" 2 3=0A= =0A= =0A= =0A= =0A= =0A= enum=0A= {=0A= __GCONV_OK =3D 0,=0A= __GCONV_NOCONV,=0A= __GCONV_NODB,=0A= __GCONV_NOMEM,=0A= =0A= __GCONV_EMPTY_INPUT,=0A= __GCONV_FULL_OUTPUT,=0A= __GCONV_ILLEGAL_INPUT,=0A= __GCONV_INCOMPLETE_INPUT,=0A= =0A= __GCONV_ILLEGAL_DESCRIPTOR,=0A= __GCONV_INTERNAL_ERROR=0A= };=0A= =0A= =0A= =0A= enum=0A= {=0A= __GCONV_IS_LAST =3D 0x0001,=0A= __GCONV_IGNORE_ERRORS =3D 0x0002=0A= };=0A= =0A= =0A= =0A= struct __gconv_step;=0A= struct __gconv_step_data;=0A= struct __gconv_loaded_object;=0A= struct __gconv_trans_data;=0A= =0A= =0A= =0A= typedef int (*__gconv_fct) (struct __gconv_step *, struct = __gconv_step_data *,=0A= __const unsigned char **, __const unsigned = char *,=0A= unsigned char **, size_t *, int, int);=0A= =0A= =0A= typedef int (*__gconv_init_fct) (struct __gconv_step *);=0A= typedef void (*__gconv_end_fct) (struct __gconv_step *);=0A= =0A= =0A= =0A= typedef int (*__gconv_trans_fct) (struct __gconv_step *,=0A= struct __gconv_step_data *, void *,=0A= __const unsigned char *,=0A= __const unsigned char **,=0A= __const unsigned char *, unsigned char = **,=0A= size_t *);=0A= =0A= =0A= typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char = *,=0A= __const unsigned char *,=0A= unsigned char *, unsigned char = *);=0A= =0A= =0A= typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,=0A= size_t *);=0A= =0A= =0A= typedef int (*__gconv_trans_init_fct) (void **, const char *);=0A= typedef void (*__gconv_trans_end_fct) (void *);=0A= =0A= struct __gconv_trans_data=0A= {=0A= =0A= __gconv_trans_fct __trans_fct;=0A= __gconv_trans_context_fct __trans_context_fct;=0A= __gconv_trans_end_fct __trans_end_fct;=0A= void *__data;=0A= struct __gconv_trans_data *__next;=0A= };=0A= =0A= =0A= =0A= struct __gconv_step=0A= {=0A= struct __gconv_loaded_object *__shlib_handle;=0A= __const char *__modname;=0A= =0A= int __counter;=0A= =0A= char *__from_name;=0A= char *__to_name;=0A= =0A= __gconv_fct __fct;=0A= __gconv_init_fct __init_fct;=0A= __gconv_end_fct __end_fct;=0A= =0A= =0A= =0A= int __min_needed_from;=0A= int __max_needed_from;=0A= int __min_needed_to;=0A= int __max_needed_to;=0A= =0A= =0A= int __stateful;=0A= =0A= void *__data;=0A= };=0A= =0A= =0A= =0A= struct __gconv_step_data=0A= {=0A= unsigned char *__outbuf;=0A= unsigned char *__outbufend;=0A= =0A= =0A= =0A= int __flags;=0A= =0A= =0A= =0A= int __invocation_counter;=0A= =0A= =0A= =0A= int __internal_use;=0A= =0A= __mbstate_t *__statep;=0A= __mbstate_t __state;=0A= =0A= =0A= =0A= struct __gconv_trans_data *__trans;=0A= };=0A= =0A= =0A= =0A= typedef struct __gconv_info=0A= {=0A= size_t __nsteps;=0A= struct __gconv_step *__steps;=0A= __extension__ struct __gconv_step_data __data [];=0A= } *__gconv_t;=0A= # 45 "/usr/include/_G_config.h" 2 3=0A= typedef union=0A= {=0A= struct __gconv_info __cd;=0A= struct=0A= {=0A= struct __gconv_info __cd;=0A= struct __gconv_step_data __data;=0A= } __combined;=0A= } _G_iconv_t;=0A= =0A= typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));=0A= typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));=0A= typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));=0A= typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));=0A= # 33 "/usr/include/libio.h" 2 3=0A= # 53 "/usr/include/libio.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdarg.h" 1 = 3=0A= # 43 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdarg.h" 3=0A= typedef __builtin_va_list __gnuc_va_list;=0A= # 54 "/usr/include/libio.h" 2 3=0A= # 160 "/usr/include/libio.h" 3=0A= struct _IO_jump_t; struct _IO_FILE;=0A= # 170 "/usr/include/libio.h" 3=0A= typedef void _IO_lock_t;=0A= =0A= =0A= =0A= =0A= =0A= struct _IO_marker {=0A= struct _IO_marker *_next;=0A= struct _IO_FILE *_sbuf;=0A= =0A= =0A= =0A= int _pos;=0A= # 193 "/usr/include/libio.h" 3=0A= };=0A= =0A= =0A= enum __codecvt_result=0A= {=0A= __codecvt_ok,=0A= __codecvt_partial,=0A= __codecvt_error,=0A= __codecvt_noconv=0A= };=0A= =0A= =0A= =0A= =0A= struct _IO_codecvt=0A= {=0A= void (*__codecvt_destr) (struct _IO_codecvt *);=0A= enum __codecvt_result (*__codecvt_do_out) (struct _IO_codecvt *,=0A= __mbstate_t *,=0A= const wchar_t *,=0A= const wchar_t *,=0A= const wchar_t **, char *,=0A= char *, char **);=0A= enum __codecvt_result (*__codecvt_do_unshift) (struct _IO_codecvt *,=0A= __mbstate_t *, char *,=0A= char *, char **);=0A= enum __codecvt_result (*__codecvt_do_in) (struct _IO_codecvt *,=0A= __mbstate_t *,=0A= const char *, const char *,=0A= const char **, wchar_t *,=0A= wchar_t *, wchar_t **);=0A= int (*__codecvt_do_encoding) (struct _IO_codecvt *);=0A= int (*__codecvt_do_always_noconv) (struct _IO_codecvt *);=0A= int (*__codecvt_do_length) (struct _IO_codecvt *, __mbstate_t *,=0A= const char *, const char *, size_t);=0A= int (*__codecvt_do_max_length) (struct _IO_codecvt *);=0A= =0A= _G_iconv_t __cd_in;=0A= _G_iconv_t __cd_out;=0A= };=0A= =0A= =0A= struct _IO_wide_data=0A= {=0A= wchar_t *_IO_read_ptr;=0A= wchar_t *_IO_read_end;=0A= wchar_t *_IO_read_base;=0A= wchar_t *_IO_write_base;=0A= wchar_t *_IO_write_ptr;=0A= wchar_t *_IO_write_end;=0A= wchar_t *_IO_buf_base;=0A= wchar_t *_IO_buf_end;=0A= =0A= wchar_t *_IO_save_base;=0A= wchar_t *_IO_backup_base;=0A= =0A= wchar_t *_IO_save_end;=0A= =0A= __mbstate_t _IO_state;=0A= __mbstate_t _IO_last_state;=0A= struct _IO_codecvt _codecvt;=0A= =0A= wchar_t _shortbuf[1];=0A= =0A= struct _IO_jump_t *_wide_vtable;=0A= };=0A= =0A= =0A= struct _IO_FILE {=0A= int _flags;=0A= =0A= =0A= =0A= =0A= char* _IO_read_ptr;=0A= char* _IO_read_end;=0A= char* _IO_read_base;=0A= char* _IO_write_base;=0A= char* _IO_write_ptr;=0A= char* _IO_write_end;=0A= char* _IO_buf_base;=0A= char* _IO_buf_end;=0A= =0A= char *_IO_save_base;=0A= char *_IO_backup_base;=0A= char *_IO_save_end;=0A= =0A= struct _IO_marker *_markers;=0A= =0A= struct _IO_FILE *_chain;=0A= =0A= int _fileno;=0A= int _blksize;=0A= __off_t _old_offset;=0A= =0A= =0A= =0A= unsigned short _cur_column;=0A= signed char _vtable_offset;=0A= char _shortbuf[1];=0A= =0A= =0A= =0A= _IO_lock_t *_lock;=0A= # 305 "/usr/include/libio.h" 3=0A= __off64_t _offset;=0A= =0A= =0A= struct _IO_codecvt *_codecvt;=0A= struct _IO_wide_data *_wide_data;=0A= =0A= =0A= =0A= =0A= int _mode;=0A= =0A= char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];=0A= =0A= };=0A= =0A= =0A= =0A= =0A= =0A= struct _IO_FILE_plus;=0A= =0A= extern struct _IO_FILE_plus _IO_2_1_stdin_;=0A= extern struct _IO_FILE_plus _IO_2_1_stdout_;=0A= extern struct _IO_FILE_plus _IO_2_1_stderr_;=0A= # 344 "/usr/include/libio.h" 3=0A= typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t = __nbytes);=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,=0A= size_t __n);=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);=0A= =0A= =0A= typedef int __io_close_fn (void *__cookie);=0A= =0A= =0A= =0A= =0A= typedef __io_read_fn cookie_read_function_t;=0A= typedef __io_write_fn cookie_write_function_t;=0A= typedef __io_seek_fn cookie_seek_function_t;=0A= typedef __io_close_fn cookie_close_function_t;=0A= =0A= =0A= typedef struct=0A= {=0A= __io_read_fn *read;=0A= __io_write_fn *write;=0A= __io_seek_fn *seek;=0A= __io_close_fn *close;=0A= } _IO_cookie_io_functions_t;=0A= typedef _IO_cookie_io_functions_t cookie_io_functions_t;=0A= =0A= struct _IO_cookie_file;=0A= =0A= =0A= extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int = __read_write,=0A= void *__cookie, _IO_cookie_io_functions_t = __fns);=0A= =0A= =0A= =0A= =0A= extern "C" {=0A= =0A= =0A= extern int __underflow (_IO_FILE *) throw ();=0A= extern int __uflow (_IO_FILE *) throw ();=0A= extern int __overflow (_IO_FILE *, int) throw ();=0A= extern wint_t __wunderflow (_IO_FILE *) throw ();=0A= extern wint_t __wuflow (_IO_FILE *) throw ();=0A= extern wint_t __woverflow (_IO_FILE *, wint_t) throw ();=0A= # 426 "/usr/include/libio.h" 3=0A= extern int _IO_getc (_IO_FILE *__fp) throw ();=0A= extern int _IO_putc (int __c, _IO_FILE *__fp) throw ();=0A= extern int _IO_feof (_IO_FILE *__fp) throw ();=0A= extern int _IO_ferror (_IO_FILE *__fp) throw ();=0A= =0A= extern int _IO_peekc_locked (_IO_FILE *__fp) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern void _IO_flockfile (_IO_FILE *) throw ();=0A= extern void _IO_funlockfile (_IO_FILE *) throw ();=0A= extern int _IO_ftrylockfile (_IO_FILE *) throw ();=0A= # 456 "/usr/include/libio.h" 3=0A= extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,=0A= __gnuc_va_list, int *__restrict) throw ();=0A= extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,=0A= __gnuc_va_list) throw ();=0A= extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw ();=0A= extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw ();=0A= =0A= extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw ();=0A= extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw ();=0A= =0A= extern void _IO_free_backup_area (_IO_FILE *) throw ();=0A= =0A= =0A= extern wint_t _IO_getwc (_IO_FILE *__fp) throw ();=0A= extern wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp) throw ();=0A= extern int _IO_fwide (_IO_FILE *__fp, int __mode) throw ();=0A= # 505 "/usr/include/libio.h" 3=0A= extern int _IO_vfwscanf (_IO_FILE * __restrict, const wchar_t * = __restrict,=0A= __gnuc_va_list, int *__restrict) throw ();=0A= extern int _IO_vfwprintf (_IO_FILE *__restrict, const wchar_t = *__restrict,=0A= __gnuc_va_list) throw ();=0A= extern __ssize_t _IO_wpadn (_IO_FILE *, wint_t, __ssize_t) throw ();=0A= extern void _IO_free_wbackup_area (_IO_FILE *) throw ();=0A= =0A= =0A= =0A= }=0A= # 75 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 2 3=0A= =0A= =0A= =0A= =0A= typedef __gnuc_va_list __not_va_list__;=0A= # 89 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= typedef _G_fpos_t fpos_t;=0A= =0A= =0A= =0A= =0A= typedef _G_fpos64_t fpos64_t;=0A= # 138 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= # 1 "/usr/include/bits/stdio_lim.h" 1 3=0A= # 139 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 2 3=0A= =0A= =0A= =0A= extern FILE *stdin;=0A= extern FILE *stdout;=0A= extern FILE *stderr;=0A= # 153 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= extern int remove (__const char *__filename) throw ();=0A= =0A= extern int rename (__const char *__old, __const char *__new) throw ();=0A= =0A= =0A= =0A= =0A= extern FILE *tmpfile (void) throw ();=0A= # 169 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= extern FILE *tmpfile64 (void) throw ();=0A= =0A= =0A= extern char *tmpnam (char *__s) throw ();=0A= =0A= =0A= =0A= =0A= extern char *tmpnam_r (char *__s) throw ();=0A= # 189 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= extern char *tempnam (__const char *__dir, __const char *__pfx)=0A= throw () __attribute__ ((__malloc__));=0A= =0A= =0A= =0A= =0A= extern int fclose (FILE *__stream) throw ();=0A= =0A= extern int fflush (FILE *__stream) throw ();=0A= =0A= =0A= =0A= extern int fflush_unlocked (FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= extern int fcloseall (void) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern FILE *fopen (__const char *__restrict __filename,=0A= __const char *__restrict __modes) throw ();=0A= =0A= extern FILE *freopen (__const char *__restrict __filename,=0A= __const char *__restrict __modes,=0A= FILE *__restrict __stream) throw ();=0A= # 233 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= extern FILE *fopen64 (__const char *__restrict __filename,=0A= __const char *__restrict __modes) throw ();=0A= extern FILE *freopen64 (__const char *__restrict __filename,=0A= __const char *__restrict __modes,=0A= FILE *__restrict __stream) throw ();=0A= =0A= =0A= =0A= =0A= extern FILE *fdopen (int __fd, __const char *__modes) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern FILE *fopencookie (void *__restrict __magic_cookie,=0A= __const char *__restrict __modes,=0A= _IO_cookie_io_functions_t __io_funcs) throw ();=0A= =0A= =0A= extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) = throw ();=0A= =0A= =0A= =0A= =0A= extern FILE *open_memstream (char **__restrict __bufloc,=0A= size_t *__restrict __sizeloc) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) = throw ();=0A= =0A= =0A= =0A= extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,=0A= int __modes, size_t __n) throw ();=0A= =0A= =0A= =0A= =0A= extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,=0A= size_t __size) throw ();=0A= =0A= =0A= extern void setlinebuf (FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= extern int fprintf (FILE *__restrict __stream,=0A= __const char *__restrict __format, ...) throw ();=0A= =0A= extern int printf (__const char *__restrict __format, ...) throw ();=0A= =0A= extern int sprintf (char *__restrict __s,=0A= __const char *__restrict __format, ...) throw ();=0A= =0A= =0A= extern int vfprintf (FILE *__restrict __s, __const char *__restrict = __format,=0A= __gnuc_va_list __arg) throw ();=0A= =0A= extern int vprintf (__const char *__restrict __format, __gnuc_va_list = __arg)=0A= throw ();=0A= =0A= extern int vsprintf (char *__restrict __s, __const char *__restrict = __format,=0A= __gnuc_va_list __arg) throw ();=0A= =0A= =0A= =0A= extern int snprintf (char *__restrict __s, size_t __maxlen,=0A= __const char *__restrict __format, ...)=0A= throw () __attribute__ ((__format__ (__printf__, 3, 4)));=0A= =0A= extern int vsnprintf (char *__restrict __s, size_t __maxlen,=0A= __const char *__restrict __format, __gnuc_va_list = __arg)=0A= throw () __attribute__ ((__format__ (__printf__, 3, 0)));=0A= =0A= =0A= =0A= =0A= =0A= extern int vasprintf (char **__restrict __ptr, __const char *__restrict = __f,=0A= __gnuc_va_list __arg)=0A= throw () __attribute__ ((__format__ (__printf__, 2, 0)));=0A= extern int __asprintf (char **__restrict __ptr,=0A= __const char *__restrict __fmt, ...)=0A= throw () __attribute__ ((__format__ (__printf__, 2, 3)));=0A= extern int asprintf (char **__restrict __ptr,=0A= __const char *__restrict __fmt, ...)=0A= throw () __attribute__ ((__format__ (__printf__, 2, 3)));=0A= =0A= =0A= extern int vdprintf (int __fd, __const char *__restrict __fmt,=0A= __gnuc_va_list __arg)=0A= throw () __attribute__ ((__format__ (__printf__, 2, 0)));=0A= extern int dprintf (int __fd, __const char *__restrict __fmt, ...)=0A= throw () __attribute__ ((__format__ (__printf__, 2, 3)));=0A= =0A= =0A= =0A= =0A= extern int fscanf (FILE *__restrict __stream,=0A= __const char *__restrict __format, ...) throw ();=0A= =0A= extern int scanf (__const char *__restrict __format, ...) throw ();=0A= =0A= extern int sscanf (__const char *__restrict __s,=0A= __const char *__restrict __format, ...) throw ();=0A= =0A= =0A= =0A= extern int vfscanf (FILE *__restrict __s, __const char *__restrict = __format,=0A= __gnuc_va_list __arg)=0A= throw () __attribute__ ((__format__ (__scanf__, 2, 0)));=0A= =0A= =0A= extern int vscanf (__const char *__restrict __format, __gnuc_va_list = __arg)=0A= throw () __attribute__ ((__format__ (__scanf__, 1, 0)));=0A= =0A= =0A= extern int vsscanf (__const char *__restrict __s,=0A= __const char *__restrict __format, __gnuc_va_list = __arg)=0A= throw () __attribute__ ((__format__ (__scanf__, 2, 0)));=0A= =0A= =0A= =0A= =0A= extern int fgetc (FILE *__stream) throw ();=0A= extern int getc (FILE *__stream) throw ();=0A= =0A= =0A= extern int getchar (void) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int getc_unlocked (FILE *__stream) throw ();=0A= extern int getchar_unlocked (void) throw ();=0A= =0A= =0A= =0A= =0A= extern int fgetc_unlocked (FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= extern int fputc (int __c, FILE *__stream) throw ();=0A= extern int putc (int __c, FILE *__stream) throw ();=0A= =0A= =0A= extern int putchar (int __c) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int fputc_unlocked (int __c, FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= extern int putc_unlocked (int __c, FILE *__stream) throw ();=0A= extern int putchar_unlocked (int __c) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int getw (FILE *__stream) throw ();=0A= =0A= =0A= extern int putw (int __w, FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= extern char *fgets (char *__restrict __s, int __n, FILE *__restrict = __stream)=0A= throw ();=0A= =0A= =0A= =0A= extern char *fgets_unlocked (char *__restrict __s, int __n,=0A= FILE *__restrict __stream) throw ();=0A= =0A= =0A= =0A= =0A= extern char *gets (char *__s) throw ();=0A= # 437 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= extern __ssize_t __getdelim (char **__restrict __lineptr,=0A= size_t *__restrict __n, int __delimiter,=0A= FILE *__restrict __stream) throw ();=0A= extern __ssize_t getdelim (char **__restrict __lineptr,=0A= size_t *__restrict __n, int __delimiter,=0A= FILE *__restrict __stream) throw ();=0A= =0A= =0A= extern __ssize_t getline (char **__restrict __lineptr,=0A= size_t *__restrict __n,=0A= FILE *__restrict __stream) throw ();=0A= =0A= =0A= =0A= =0A= extern int fputs (__const char *__restrict __s, FILE *__restrict = __stream)=0A= throw ();=0A= =0A= =0A= =0A= extern int fputs_unlocked (__const char *__restrict __s,=0A= FILE *__restrict __stream) throw ();=0A= =0A= =0A= =0A= extern int puts (__const char *__s) throw ();=0A= =0A= =0A= =0A= extern int ungetc (int __c, FILE *__stream) throw ();=0A= =0A= =0A= =0A= extern size_t fread (void *__restrict __ptr, size_t __size,=0A= size_t __n, FILE *__restrict __stream) throw ();=0A= =0A= extern size_t fwrite (__const void *__restrict __ptr, size_t __size,=0A= size_t __n, FILE *__restrict __s) throw ();=0A= =0A= =0A= =0A= extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,=0A= size_t __n, FILE *__restrict __stream) = throw ();=0A= extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t = __size,=0A= size_t __n, FILE *__restrict __stream) = throw ();=0A= =0A= =0A= =0A= =0A= extern int fseek (FILE *__stream, long int __off, int __whence) throw ();=0A= =0A= extern long int ftell (FILE *__stream) throw ();=0A= =0A= extern void rewind (FILE *__stream) throw ();=0A= # 500 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= extern int fseeko (FILE *__stream, __off_t __off, int __whence) throw ();=0A= =0A= extern __off_t ftello (FILE *__stream) throw ();=0A= =0A= =0A= =0A= extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)=0A= throw ();=0A= =0A= extern int fsetpos (FILE *__stream, __const fpos_t *__pos) throw ();=0A= # 534 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) = throw ();=0A= extern __off64_t ftello64 (FILE *__stream) throw ();=0A= extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict = __pos)=0A= throw ();=0A= extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos) throw ();=0A= =0A= =0A= =0A= extern void clearerr (FILE *__stream) throw ();=0A= =0A= extern int feof (FILE *__stream) throw ();=0A= =0A= extern int ferror (FILE *__stream) throw ();=0A= =0A= =0A= =0A= extern void clearerr_unlocked (FILE *__stream) throw ();=0A= extern int feof_unlocked (FILE *__stream) throw ();=0A= extern int ferror_unlocked (FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= extern void perror (__const char *__s) throw ();=0A= =0A= =0A= =0A= =0A= extern int sys_nerr;=0A= extern __const char *__const sys_errlist[];=0A= =0A= =0A= extern int _sys_nerr;=0A= extern __const char *__const _sys_errlist[];=0A= =0A= =0A= =0A= =0A= =0A= extern int fileno (FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= extern int fileno_unlocked (FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern FILE *popen (__const char *__command, __const char *__modes) = throw ();=0A= =0A= =0A= extern int pclose (FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern char *ctermid (char *__s) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern char *cuserid (char *__s) throw ();=0A= =0A= =0A= =0A= =0A= struct obstack;=0A= =0A= =0A= extern int obstack_printf (struct obstack *__restrict __obstack,=0A= __const char *__restrict __format, ...) throw = ();=0A= extern int obstack_vprintf (struct obstack *__restrict __obstack,=0A= __const char *__restrict __format,=0A= __gnuc_va_list __args) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern void flockfile (FILE *__stream) throw ();=0A= =0A= =0A= =0A= extern int ftrylockfile (FILE *__stream) throw ();=0A= =0A= =0A= extern void funlockfile (FILE *__stream) throw ();=0A= # 644 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h" 3=0A= }=0A= # 53 "/usr/local/gcc3.1/include/g++-v3/cstdio" 2 3=0A= # 97 "/usr/local/gcc3.1/include/g++-v3/cstdio" 3=0A= namespace std=0A= {=0A= using ::FILE;=0A= using ::fpos_t;=0A= =0A= using ::clearerr;=0A= using ::fclose;=0A= using ::feof;=0A= using ::ferror;=0A= using ::fflush;=0A= using ::fgetc;=0A= using ::fgetpos;=0A= using ::fgets;=0A= using ::fopen;=0A= using ::fprintf;=0A= using ::fputc;=0A= using ::fputs;=0A= using ::fread;=0A= using ::freopen;=0A= using ::fscanf;=0A= using ::fseek;=0A= using ::fsetpos;=0A= using ::ftell;=0A= using ::fwrite;=0A= using ::getc;=0A= using ::getchar;=0A= using ::gets;=0A= using ::perror;=0A= using ::printf;=0A= using ::putc;=0A= using ::putchar;=0A= using ::puts;=0A= using ::remove;=0A= using ::rename;=0A= using ::rewind;=0A= using ::scanf;=0A= using ::setbuf;=0A= using ::setvbuf;=0A= using ::sprintf;=0A= using ::sscanf;=0A= using ::tmpfile;=0A= using ::tmpnam;=0A= using ::ungetc;=0A= using ::vfprintf;=0A= using ::vprintf;=0A= using ::vsprintf;=0A= }=0A= # 153 "/usr/local/gcc3.1/include/g++-v3/cstdio" 3=0A= namespace __gnu_cxx=0A= {=0A= using ::snprintf;=0A= using ::vfscanf;=0A= using ::vscanf;=0A= using ::vsnprintf;=0A= using ::vsscanf;=0A= }=0A= =0A= namespace std=0A= {=0A= using __gnu_cxx::snprintf;=0A= using __gnu_cxx::vfscanf;=0A= using __gnu_cxx::vscanf;=0A= using __gnu_cxx::vsnprintf;=0A= using __gnu_cxx::vsscanf;=0A= }=0A= # 36 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 = 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 1 3=0A= # 98 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 3=0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" = 1 3=0A= # 37 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" = 3=0A= # 1 "/usr/include/pthread.h" 1 3=0A= # 20 "/usr/include/pthread.h" 3=0A= # 1 "/usr/include/sched.h" 1 3=0A= # 29 "/usr/include/sched.h" 3=0A= # 1 "/usr/include/time.h" 1 3=0A= # 106 "/usr/include/time.h" 3=0A= struct timespec=0A= {=0A= __time_t tv_sec;=0A= long int tv_nsec;=0A= };=0A= # 30 "/usr/include/sched.h" 2 3=0A= =0A= =0A= # 1 "/usr/include/bits/sched.h" 1 3=0A= # 47 "/usr/include/bits/sched.h" 3=0A= struct sched_param=0A= {=0A= int __sched_priority;=0A= };=0A= =0A= extern "C" {=0A= =0A= =0A= =0A= extern int clone (int (*__fn) (void *__arg), void *__child_stack,=0A= int __flags, void *__arg) throw ();=0A= =0A= =0A= }=0A= # 33 "/usr/include/sched.h" 2 3=0A= =0A= =0A= =0A= =0A= extern "C" {=0A= =0A= =0A= extern int sched_setparam (__pid_t __pid, __const struct sched_param = *__param)=0A= throw ();=0A= =0A= =0A= extern int sched_getparam (__pid_t __pid, struct sched_param *__param) = throw ();=0A= =0A= =0A= extern int sched_setscheduler (__pid_t __pid, int __policy,=0A= __const struct sched_param *__param) = throw ();=0A= =0A= =0A= extern int sched_getscheduler (__pid_t __pid) throw ();=0A= =0A= =0A= extern int sched_yield (void) throw ();=0A= =0A= =0A= extern int sched_get_priority_max (int __algorithm) throw ();=0A= =0A= =0A= extern int sched_get_priority_min (int __algorithm) throw ();=0A= =0A= =0A= extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) = throw ();=0A= =0A= }=0A= # 21 "/usr/include/pthread.h" 2 3=0A= # 1 "/usr/include/time.h" 1 3=0A= # 30 "/usr/include/time.h" 3=0A= extern "C" {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 39 "/usr/include/time.h" 2 3=0A= =0A= =0A= =0A= # 1 "/usr/include/bits/time.h" 1 3=0A= # 43 "/usr/include/time.h" 2 3=0A= # 59 "/usr/include/time.h" 3=0A= typedef __clock_t clock_t;=0A= # 70 "/usr/include/time.h" 3=0A= typedef __time_t time_t;=0A= # 82 "/usr/include/time.h" 3=0A= typedef __clockid_t clockid_t;=0A= # 94 "/usr/include/time.h" 3=0A= typedef __timer_t timer_t;=0A= # 118 "/usr/include/time.h" 3=0A= struct tm=0A= {=0A= int tm_sec;=0A= int tm_min;=0A= int tm_hour;=0A= int tm_mday;=0A= int tm_mon;=0A= int tm_year;=0A= int tm_wday;=0A= int tm_yday;=0A= int tm_isdst;=0A= =0A= =0A= long int tm_gmtoff;=0A= __const char *tm_zone;=0A= =0A= =0A= =0A= =0A= };=0A= =0A= =0A= =0A= =0A= struct itimerspec=0A= {=0A= struct timespec it_interval;=0A= struct timespec it_value;=0A= };=0A= =0A= =0A= struct sigevent;=0A= =0A= =0A= =0A= =0A= =0A= typedef __pid_t pid_t;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern clock_t clock (void) throw ();=0A= =0A= =0A= extern time_t time (time_t *__timer) throw ();=0A= =0A= =0A= extern double difftime (time_t __time1, time_t __time0)=0A= throw () __attribute__ ((__const__));=0A= =0A= =0A= extern time_t mktime (struct tm *__tp) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern size_t strftime (char *__restrict __s, size_t __maxsize,=0A= __const char *__restrict __format,=0A= __const struct tm *__restrict __tp) throw ();=0A= =0A= =0A= =0A= =0A= extern char *strptime (__const char *__restrict __s,=0A= __const char *__restrict __fmt, struct tm *__tp)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern struct tm *gmtime (__const time_t *__timer) throw ();=0A= =0A= =0A= =0A= extern struct tm *localtime (__const time_t *__timer) throw ();=0A= =0A= =0A= =0A= =0A= extern struct tm *gmtime_r (__const time_t *__restrict __timer,=0A= struct tm *__restrict __tp) throw ();=0A= =0A= =0A= =0A= extern struct tm *localtime_r (__const time_t *__restrict __timer,=0A= struct tm *__restrict __tp) throw ();=0A= =0A= =0A= =0A= =0A= extern char *asctime (__const struct tm *__tp) throw ();=0A= =0A= =0A= extern char *ctime (__const time_t *__timer) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern char *asctime_r (__const struct tm *__restrict __tp,=0A= char *__restrict __buf) throw ();=0A= =0A= =0A= extern char *ctime_r (__const time_t *__restrict __timer,=0A= char *__restrict __buf) throw ();=0A= =0A= =0A= =0A= =0A= extern char *__tzname[2];=0A= extern int __daylight;=0A= extern long int __timezone;=0A= =0A= =0A= =0A= =0A= extern char *tzname[2];=0A= =0A= =0A= =0A= extern void tzset (void) throw ();=0A= =0A= =0A= =0A= extern int daylight;=0A= extern long int timezone;=0A= =0A= =0A= =0A= =0A= =0A= extern int stime (__const time_t *__when) throw ();=0A= # 271 "/usr/include/time.h" 3=0A= extern time_t timegm (struct tm *__tp) throw ();=0A= =0A= =0A= extern time_t timelocal (struct tm *__tp) throw ();=0A= =0A= =0A= extern int dysize (int __year) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= =0A= extern int nanosleep (__const struct timespec *__requested_time,=0A= struct timespec *__remaining) throw ();=0A= =0A= =0A= =0A= extern int clock_getres (clockid_t __clock_id, struct timespec *__res) = throw ();=0A= =0A= =0A= extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) = throw ();=0A= =0A= =0A= extern int clock_settime (clockid_t __clock_id, __const struct timespec = *__tp)=0A= throw ();=0A= =0A= =0A= =0A= extern int clock_nanosleep (clockid_t __clock_id, int __flags,=0A= __const struct timespec *__req,=0A= struct timespec *__rem) throw ();=0A= =0A= =0A= extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) = throw ();=0A= =0A= =0A= =0A= =0A= extern int timer_create (clockid_t __clock_id,=0A= struct sigevent *__restrict __evp,=0A= timer_t *__restrict __timerid) throw ();=0A= =0A= =0A= extern int timer_delete (timer_t __timerid) throw ();=0A= =0A= =0A= extern int timer_settime (timer_t __timerid, int __flags,=0A= __const struct itimerspec *__restrict __value,=0A= struct itimerspec *__restrict __ovalue) throw = ();=0A= =0A= =0A= extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)=0A= throw ();=0A= =0A= =0A= extern int timer_getoverrun (timer_t __timerid) throw ();=0A= # 342 "/usr/include/time.h" 3=0A= extern int getdate_err;=0A= =0A= =0A= =0A= =0A= =0A= extern struct tm *getdate (__const char *__string) throw ();=0A= # 357 "/usr/include/time.h" 3=0A= extern int getdate_r (__const char *__restrict __string,=0A= struct tm *__restrict __resbufp) throw ();=0A= =0A= =0A= =0A= }=0A= # 22 "/usr/include/pthread.h" 2 3=0A= =0A= =0A= # 1 "/usr/include/signal.h" 1 3=0A= # 31 "/usr/include/signal.h" 3=0A= extern "C" {=0A= =0A= # 1 "/usr/include/bits/sigset.h" 1 3=0A= # 23 "/usr/include/bits/sigset.h" 3=0A= typedef int __sig_atomic_t;=0A= =0A= =0A= =0A= =0A= typedef struct=0A= {=0A= unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];=0A= } __sigset_t;=0A= # 34 "/usr/include/signal.h" 2 3=0A= # 48 "/usr/include/signal.h" 3=0A= typedef __sigset_t sigset_t;=0A= # 371 "/usr/include/signal.h" 3=0A= }=0A= # 25 "/usr/include/pthread.h" 2 3=0A= # 1 "/usr/include/bits/pthreadtypes.h" 1 3=0A= # 26 "/usr/include/pthread.h" 2 3=0A= # 1 "/usr/include/bits/initspin.h" 1 3=0A= # 27 "/usr/include/pthread.h" 2 3=0A= =0A= =0A= extern "C" {=0A= # 59 "/usr/include/pthread.h" 3=0A= enum=0A= {=0A= PTHREAD_CREATE_JOINABLE,=0A= =0A= PTHREAD_CREATE_DETACHED=0A= =0A= };=0A= =0A= enum=0A= {=0A= PTHREAD_INHERIT_SCHED,=0A= =0A= PTHREAD_EXPLICIT_SCHED=0A= =0A= };=0A= =0A= enum=0A= {=0A= PTHREAD_SCOPE_SYSTEM,=0A= =0A= PTHREAD_SCOPE_PROCESS=0A= =0A= };=0A= =0A= enum=0A= {=0A= PTHREAD_MUTEX_TIMED_NP,=0A= PTHREAD_MUTEX_RECURSIVE_NP,=0A= PTHREAD_MUTEX_ERRORCHECK_NP,=0A= PTHREAD_MUTEX_ADAPTIVE_NP=0A= =0A= ,=0A= PTHREAD_MUTEX_NORMAL =3D PTHREAD_MUTEX_TIMED_NP,=0A= PTHREAD_MUTEX_RECURSIVE =3D PTHREAD_MUTEX_RECURSIVE_NP,=0A= PTHREAD_MUTEX_ERRORCHECK =3D PTHREAD_MUTEX_ERRORCHECK_NP,=0A= PTHREAD_MUTEX_DEFAULT =3D PTHREAD_MUTEX_NORMAL=0A= =0A= =0A= =0A= , PTHREAD_MUTEX_FAST_NP =3D PTHREAD_MUTEX_ADAPTIVE_NP=0A= =0A= };=0A= =0A= enum=0A= {=0A= PTHREAD_PROCESS_PRIVATE,=0A= =0A= PTHREAD_PROCESS_SHARED=0A= =0A= };=0A= =0A= =0A= enum=0A= {=0A= PTHREAD_RWLOCK_PREFER_READER_NP,=0A= PTHREAD_RWLOCK_PREFER_WRITER_NP,=0A= PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,=0A= PTHREAD_RWLOCK_DEFAULT_NP =3D PTHREAD_RWLOCK_PREFER_WRITER_NP=0A= };=0A= # 131 "/usr/include/pthread.h" 3=0A= struct _pthread_cleanup_buffer=0A= {=0A= void (*__routine) (void *);=0A= void *__arg;=0A= int __canceltype;=0A= struct _pthread_cleanup_buffer *__prev;=0A= };=0A= =0A= =0A= =0A= enum=0A= {=0A= PTHREAD_CANCEL_ENABLE,=0A= =0A= PTHREAD_CANCEL_DISABLE=0A= =0A= };=0A= enum=0A= {=0A= PTHREAD_CANCEL_DEFERRED,=0A= =0A= PTHREAD_CANCEL_ASYNCHRONOUS=0A= =0A= };=0A= # 163 "/usr/include/pthread.h" 3=0A= extern int pthread_create (pthread_t *__restrict __thread,=0A= __const pthread_attr_t *__restrict __attr,=0A= void *(*__start_routine) (void *),=0A= void *__restrict __arg) throw ();=0A= =0A= =0A= extern pthread_t pthread_self (void) throw ();=0A= =0A= =0A= extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) = throw ();=0A= =0A= =0A= extern void pthread_exit (void *__retval)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= extern int pthread_join (pthread_t __th, void **__thread_return) throw = ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_detach (pthread_t __th) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_attr_init (pthread_attr_t *__attr) throw ();=0A= =0A= =0A= extern int pthread_attr_destroy (pthread_attr_t *__attr) throw ();=0A= =0A= =0A= extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,=0A= int __detachstate) throw ();=0A= =0A= =0A= extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,=0A= int *__detachstate) throw ();=0A= =0A= =0A= extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,=0A= __const struct sched_param = *__restrict=0A= __param) throw ();=0A= =0A= =0A= extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict=0A= __attr,=0A= struct sched_param *__restrict = __param)=0A= throw ();=0A= =0A= =0A= extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int = __policy)=0A= throw ();=0A= =0A= =0A= extern int pthread_attr_getschedpolicy (__const pthread_attr_t = *__restrict=0A= __attr, int *__restrict __policy)=0A= throw ();=0A= =0A= =0A= extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,=0A= int __inherit) throw ();=0A= =0A= =0A= extern int pthread_attr_getinheritsched (__const pthread_attr_t = *__restrict=0A= __attr, int *__restrict = __inherit)=0A= throw ();=0A= =0A= =0A= extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)=0A= throw ();=0A= =0A= =0A= extern int pthread_attr_getscope (__const pthread_attr_t *__restrict = __attr,=0A= int *__restrict __scope) throw ();=0A= =0A= =0A= =0A= extern int pthread_attr_setguardsize (pthread_attr_t *__attr,=0A= size_t __guardsize) throw ();=0A= =0A= =0A= extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict=0A= __attr, size_t *__restrict = __guardsize)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,=0A= void *__stackaddr) throw ();=0A= =0A= =0A= extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict=0A= __attr, void **__restrict = __stackaddr)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_attr_setstack (pthread_attr_t *__attr, void = *__stackaddr,=0A= size_t __stacksize) throw ();=0A= =0A= =0A= extern int pthread_attr_getstack (__const pthread_attr_t *__restrict = __attr,=0A= void **__restrict __stackaddr,=0A= size_t *__restrict __stacksize) throw = ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_attr_setstacksize (pthread_attr_t *__attr,=0A= size_t __stacksize) throw ();=0A= =0A= =0A= extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict=0A= __attr, size_t *__restrict = __stacksize)=0A= throw ();=0A= =0A= =0A= =0A= extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) = throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_setschedparam (pthread_t __target_thread, int = __policy,=0A= __const struct sched_param *__param)=0A= throw ();=0A= =0A= =0A= extern int pthread_getschedparam (pthread_t __target_thread,=0A= int *__restrict __policy,=0A= struct sched_param *__restrict __param)=0A= throw ();=0A= =0A= =0A= =0A= extern int pthread_getconcurrency (void) throw ();=0A= =0A= =0A= extern int pthread_setconcurrency (int __level) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_yield (void) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,=0A= __const pthread_mutexattr_t *__restrict=0A= __mutex_attr) throw ();=0A= =0A= =0A= extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw ();=0A= =0A= =0A= extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw ();=0A= =0A= =0A= extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw ();=0A= =0A= =0A= =0A= extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,=0A= __const struct timespec *__restrict=0A= __abstime) throw ();=0A= =0A= =0A= =0A= extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw ();=0A= =0A= =0A= extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw = ();=0A= =0A= =0A= extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *=0A= __restrict __attr,=0A= int *__restrict __pshared) = throw ();=0A= =0A= =0A= extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,=0A= int __pshared) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int = __kind)=0A= throw ();=0A= =0A= =0A= extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t = *__restrict=0A= __attr, int *__restrict __kind) = throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_cond_init (pthread_cond_t *__restrict __cond,=0A= __const pthread_condattr_t *__restrict=0A= __cond_attr) throw ();=0A= =0A= =0A= extern int pthread_cond_destroy (pthread_cond_t *__cond) throw ();=0A= =0A= =0A= extern int pthread_cond_signal (pthread_cond_t *__cond) throw ();=0A= =0A= =0A= extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw ();=0A= =0A= =0A= =0A= extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,=0A= pthread_mutex_t *__restrict __mutex) throw = ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,=0A= pthread_mutex_t *__restrict __mutex,=0A= __const struct timespec *__restrict=0A= __abstime) throw ();=0A= =0A= =0A= =0A= =0A= extern int pthread_condattr_init (pthread_condattr_t *__attr) throw ();=0A= =0A= =0A= extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw = ();=0A= =0A= =0A= extern int pthread_condattr_getpshared (__const pthread_condattr_t *=0A= __restrict __attr,=0A= int *__restrict __pshared) throw = ();=0A= =0A= =0A= extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,=0A= int __pshared) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,=0A= __const pthread_rwlockattr_t *__restrict=0A= __attr) throw ();=0A= =0A= =0A= extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw ();=0A= =0A= =0A= extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw ();=0A= =0A= =0A= extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw = ();=0A= =0A= =0A= =0A= extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict = __rwlock,=0A= __const struct timespec = *__restrict=0A= __abstime) throw ();=0A= =0A= =0A= =0A= extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw ();=0A= =0A= =0A= extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw = ();=0A= =0A= =0A= =0A= extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict = __rwlock,=0A= __const struct timespec = *__restrict=0A= __abstime) throw ();=0A= =0A= =0A= =0A= extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw = ();=0A= =0A= =0A= extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) = throw ();=0A= =0A= =0A= extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *=0A= __restrict __attr,=0A= int *__restrict __pshared) = throw ();=0A= =0A= =0A= extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,=0A= int __pshared) throw ();=0A= =0A= =0A= extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t = *__attr,=0A= int *__pref) throw ();=0A= =0A= =0A= extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,=0A= int __pref) throw ();=0A= # 509 "/usr/include/pthread.h" 3=0A= extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)=0A= throw ();=0A= =0A= =0A= extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw ();=0A= =0A= =0A= extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw ();=0A= =0A= =0A= extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw ();=0A= =0A= =0A= extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw ();=0A= =0A= =0A= =0A= =0A= extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,=0A= __const pthread_barrierattr_t = *__restrict=0A= __attr, unsigned int __count) throw ();=0A= =0A= extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw = ();=0A= =0A= extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) = throw ();=0A= =0A= extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) = throw ();=0A= =0A= extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t = *=0A= __restrict __attr,=0A= int *__restrict __pshared) = throw ();=0A= =0A= extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,=0A= int __pshared) throw ();=0A= =0A= extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw ();=0A= # 556 "/usr/include/pthread.h" 3=0A= extern int pthread_key_create (pthread_key_t *__key,=0A= void (*__destr_function) (void *)) throw = ();=0A= =0A= =0A= extern int pthread_key_delete (pthread_key_t __key) throw ();=0A= =0A= =0A= extern int pthread_setspecific (pthread_key_t __key,=0A= __const void *__pointer) throw ();=0A= =0A= =0A= extern void *pthread_getspecific (pthread_key_t __key) throw ();=0A= # 576 "/usr/include/pthread.h" 3=0A= extern int pthread_once (pthread_once_t *__once_control,=0A= void (*__init_routine) (void)) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_setcancelstate (int __state, int *__oldstate) throw = ();=0A= =0A= =0A= =0A= extern int pthread_setcanceltype (int __type, int *__oldtype) throw ();=0A= =0A= =0A= extern int pthread_cancel (pthread_t __thread) throw ();=0A= =0A= =0A= =0A= =0A= extern void pthread_testcancel (void) throw ();=0A= # 610 "/usr/include/pthread.h" 3=0A= extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer = *__buffer,=0A= void (*__routine) (void *),=0A= void *__arg) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer = *__buffer,=0A= int __execute) throw ();=0A= # 631 "/usr/include/pthread.h" 3=0A= extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer = *__buffer,=0A= void (*__routine) (void *),=0A= void *__arg) throw ();=0A= # 642 "/usr/include/pthread.h" 3=0A= extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer = *__buffer,=0A= int __execute) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pthread_getcpuclockid (pthread_t __thread_id,=0A= clockid_t *__clock_id) throw ();=0A= =0A= =0A= =0A= =0A= # 1 "/usr/include/bits/sigthread.h" 1 3=0A= # 31 "/usr/include/bits/sigthread.h" 3=0A= extern int pthread_sigmask (int __how,=0A= __const __sigset_t *__restrict __newmask,=0A= __sigset_t *__restrict __oldmask)throw ();=0A= =0A= =0A= extern int pthread_kill (pthread_t __thread, int __signo) throw ();=0A= # 656 "/usr/include/pthread.h" 2 3=0A= # 671 "/usr/include/pthread.h" 3=0A= extern int pthread_atfork (void (*__prepare) (void),=0A= void (*__parent) (void),=0A= void (*__child) (void)) throw ();=0A= =0A= =0A= =0A= =0A= extern void pthread_kill_other_threads_np (void) throw ();=0A= =0A= }=0A= # 38 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" = 2 3=0A= =0A= typedef pthread_key_t __gthread_key_t;=0A= typedef pthread_once_t __gthread_once_t;=0A= typedef pthread_mutex_t __gthread_mutex_t;=0A= =0A= =0A= =0A= =0A= =0A= =0A= #pragma weak pthread_once=0A= #pragma weak pthread_key_create=0A= #pragma weak pthread_key_delete=0A= #pragma weak pthread_getspecific=0A= #pragma weak pthread_setspecific=0A= #pragma weak pthread_create=0A= =0A= #pragma weak pthread_mutex_lock =0A= #pragma weak pthread_mutex_trylock =0A= #pragma weak pthread_mutex_unlock =0A= # 80 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" = 3=0A= static inline int=0A= __gthread_active_p (void)=0A= {=0A= static void *const __gthread_active_ptr =3D (void *) &pthread_create;=0A= return __gthread_active_ptr !=3D 0;=0A= }=0A= # 437 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" = 3=0A= static inline int=0A= __gthread_once (__gthread_once_t *once, void (*func) (void))=0A= {=0A= if (__gthread_active_p ())=0A= return pthread_once (once, func);=0A= else=0A= return -1;=0A= }=0A= =0A= static inline int=0A= __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))=0A= {=0A= return pthread_key_create (key, dtor);=0A= }=0A= =0A= static inline int=0A= __gthread_key_dtor (__gthread_key_t key, void *ptr)=0A= {=0A= =0A= if (ptr)=0A= return pthread_setspecific (key, 0);=0A= else=0A= return 0;=0A= }=0A= =0A= static inline int=0A= __gthread_key_delete (__gthread_key_t key)=0A= {=0A= return pthread_key_delete (key);=0A= }=0A= =0A= static inline void *=0A= __gthread_getspecific (__gthread_key_t key)=0A= {=0A= return pthread_getspecific (key);=0A= }=0A= =0A= static inline int=0A= __gthread_setspecific (__gthread_key_t key, const void *ptr)=0A= {=0A= return pthread_setspecific (key, ptr);=0A= }=0A= =0A= static inline int=0A= __gthread_mutex_lock (__gthread_mutex_t *mutex)=0A= {=0A= if (__gthread_active_p ())=0A= return pthread_mutex_lock (mutex);=0A= else=0A= return 0;=0A= }=0A= =0A= static inline int=0A= __gthread_mutex_trylock (__gthread_mutex_t *mutex)=0A= {=0A= if (__gthread_active_p ())=0A= return pthread_mutex_trylock (mutex);=0A= else=0A= return 0;=0A= }=0A= =0A= static inline int=0A= __gthread_mutex_unlock (__gthread_mutex_t *mutex)=0A= {=0A= if (__gthread_active_p ())=0A= return pthread_mutex_unlock (mutex);=0A= else=0A= return 0;=0A= }=0A= # 99 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 2 3=0A= # 38 "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 = 3=0A= =0A= namespace std=0A= {=0A= =0A= typedef long streamoff;=0A= typedef ptrdiff_t streamsize;=0A= =0A= typedef ptrdiff_t wstreamsize;=0A= =0A= typedef fpos_t __c_streampos;=0A= =0A= typedef __gthread_mutex_t __c_lock;=0A= =0A= =0A= typedef FILE __c_file;=0A= =0A= =0A= struct __ios_flags=0A= {=0A= typedef short __int_type;=0A= =0A= static const __int_type _S_boolalpha =3D 0x0001;=0A= static const __int_type _S_dec =3D 0x0002;=0A= static const __int_type _S_fixed =3D 0x0004;=0A= static const __int_type _S_hex =3D 0x0008;=0A= static const __int_type _S_internal =3D 0x0010;=0A= static const __int_type _S_left =3D 0x0020;=0A= static const __int_type _S_oct =3D 0x0040;=0A= static const __int_type _S_right =3D 0x0080;=0A= static const __int_type _S_scientific =3D 0x0100;=0A= static const __int_type _S_showbase =3D 0x0200;=0A= static const __int_type _S_showpoint =3D 0x0400;=0A= static const __int_type _S_showpos =3D 0x0800;=0A= static const __int_type _S_skipws =3D 0x1000;=0A= static const __int_type _S_unitbuf =3D 0x2000;=0A= static const __int_type _S_uppercase =3D 0x4000;=0A= static const __int_type _S_adjustfield =3D 0x0020 | 0x0080 | 0x0010;=0A= static const __int_type _S_basefield =3D 0x0002 | 0x0040 | 0x0008;=0A= static const __int_type _S_floatfield =3D 0x0100 | 0x0004;=0A= =0A= =0A= static const __int_type _S_badbit =3D 0x01;=0A= static const __int_type _S_eofbit =3D 0x02;=0A= static const __int_type _S_failbit =3D 0x04;=0A= =0A= =0A= static const __int_type _S_app =3D 0x01;=0A= static const __int_type _S_ate =3D 0x02;=0A= static const __int_type _S_bin =3D 0x04;=0A= static const __int_type _S_in =3D 0x08;=0A= static const __int_type _S_out =3D 0x10;=0A= static const __int_type _S_trunc =3D 0x20;=0A= };=0A= }=0A= # 45 "/usr/local/gcc3.1/include/g++-v3/bits/fpos.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cwchar" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/cwchar" 3=0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/ctime" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/ctime" 3=0A= # 64 "/usr/local/gcc3.1/include/g++-v3/ctime" 3=0A= namespace std=0A= {=0A= using ::clock_t;=0A= using ::time_t;=0A= using ::tm;=0A= =0A= using ::clock;=0A= using ::difftime;=0A= using ::mktime;=0A= using ::time;=0A= using ::asctime;=0A= using ::ctime;=0A= using ::gmtime;=0A= using ::localtime;=0A= using ::strftime;=0A= }=0A= # 52 "/usr/local/gcc3.1/include/g++-v3/cwchar" 2 3=0A= =0A= =0A= # 1 "/usr/include/wchar.h" 1 3=0A= # 40 "/usr/include/wchar.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdarg.h" 1 = 3=0A= # 41 "/usr/include/wchar.h" 2 3=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 49 "/usr/include/wchar.h" 2 3=0A= # 85 "/usr/include/wchar.h" 3=0A= typedef __mbstate_t mbstate_t;=0A= # 105 "/usr/include/wchar.h" 3=0A= struct tm;=0A= =0A= =0A= extern "C" {=0A= =0A= =0A= extern wchar_t *wcscpy (wchar_t *__restrict __dest,=0A= __const wchar_t *__restrict __src) throw ();=0A= =0A= extern wchar_t *wcsncpy (wchar_t *__restrict __dest,=0A= __const wchar_t *__restrict __src, size_t __n)=0A= throw ();=0A= =0A= =0A= extern wchar_t *wcscat (wchar_t *__restrict __dest,=0A= __const wchar_t *__restrict __src) throw ();=0A= =0A= extern wchar_t *wcsncat (wchar_t *__restrict __dest,=0A= __const wchar_t *__restrict __src, size_t __n)=0A= throw ();=0A= =0A= =0A= extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t = __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) = throw ();=0A= =0A= =0A= extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,=0A= size_t __n) throw ();=0A= =0A= =0A= =0A= # 1 "/usr/include/xlocale.h" 1 3=0A= # 28 "/usr/include/xlocale.h" 3=0A= typedef struct __locale_struct=0A= {=0A= =0A= struct locale_data *__locales[13];=0A= =0A= =0A= const unsigned short int *__ctype_b;=0A= const int *__ctype_tolower;=0A= const int *__ctype_toupper;=0A= } *__locale_t;=0A= # 144 "/usr/include/wchar.h" 2 3=0A= =0A= extern int __wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,=0A= __locale_t __loc) throw ();=0A= =0A= extern int __wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,=0A= size_t __n, __locale_t __loc) throw ();=0A= =0A= =0A= =0A= =0A= extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw = ();=0A= =0A= =0A= =0A= extern size_t wcsxfrm (wchar_t *__restrict __s1,=0A= __const wchar_t *__restrict __s2, size_t __n) = throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int __wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,=0A= __locale_t __loc) throw ();=0A= =0A= =0A= =0A= extern size_t __wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,=0A= size_t __n, __locale_t __loc) throw ();=0A= =0A= =0A= extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ = ((__malloc__));=0A= =0A= =0A= =0A= extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t = *__accept)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t = *__needle)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t = *__needle)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= extern wchar_t *wcstok (wchar_t *__restrict __s,=0A= __const wchar_t *__restrict __delim,=0A= wchar_t **__restrict __ptr) throw ();=0A= =0A= =0A= extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ = ((__pure__));=0A= =0A= =0A= =0A= extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern int wmemcmp (__const wchar_t *__restrict __s1,=0A= __const wchar_t *__restrict __s2, size_t __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern wchar_t *wmemcpy (wchar_t *__restrict __s1,=0A= __const wchar_t *__restrict __s2, size_t __n) = throw ();=0A= =0A= =0A= =0A= extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t = __n)=0A= throw ();=0A= =0A= =0A= extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();=0A= =0A= =0A= =0A= =0A= extern wchar_t *wmempcpy (wchar_t *__restrict __s1,=0A= __const wchar_t *__restrict __s2, size_t __n)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern wint_t btowc (int __c) throw ();=0A= =0A= =0A= =0A= extern int wctob (wint_t __c) throw ();=0A= =0A= =0A= =0A= extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ = ((__pure__));=0A= =0A= =0A= =0A= extern size_t mbrtowc (wchar_t *__restrict __pwc,=0A= __const char *__restrict __s, size_t __n,=0A= mbstate_t *__p) throw ();=0A= =0A= =0A= extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,=0A= mbstate_t *__restrict __ps) throw ();=0A= =0A= =0A= extern size_t __mbrlen (__const char *__restrict __s, size_t __n,=0A= mbstate_t *__restrict __ps) throw ();=0A= extern size_t mbrlen (__const char *__restrict __s, size_t __n,=0A= mbstate_t *__restrict __ps) throw ();=0A= # 297 "/usr/include/wchar.h" 3=0A= extern size_t mbsrtowcs (wchar_t *__restrict __dst,=0A= __const char **__restrict __src, size_t __len,=0A= mbstate_t *__restrict __ps) throw ();=0A= =0A= =0A= =0A= extern size_t wcsrtombs (char *__restrict __dst,=0A= __const wchar_t **__restrict __src, size_t = __len,=0A= mbstate_t *__restrict __ps) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern size_t mbsnrtowcs (wchar_t *__restrict __dst,=0A= __const char **__restrict __src, size_t __nmc,=0A= size_t __len, mbstate_t *__restrict __ps) = throw ();=0A= =0A= =0A= =0A= extern size_t wcsnrtombs (char *__restrict __dst,=0A= __const wchar_t **__restrict __src,=0A= size_t __nwc, size_t __len,=0A= mbstate_t *__restrict __ps) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int wcwidth (wchar_t __c) throw ();=0A= =0A= =0A= =0A= extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern double wcstod (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr) throw ();=0A= =0A= =0A= =0A= extern float wcstof (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr) throw ();=0A= extern long double wcstold (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern long int wcstol (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, int __base) throw = ();=0A= =0A= =0A= =0A= extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, int = __base)=0A= throw ();=0A= =0A= =0A= =0A= =0A= __extension__=0A= extern long long int wcstoq (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, int __base)=0A= throw ();=0A= =0A= =0A= =0A= __extension__=0A= extern unsigned long long int wcstouq (__const wchar_t *__restrict = __nptr,=0A= wchar_t **__restrict __endptr,=0A= int __base) throw ();=0A= =0A= =0A= =0A= =0A= =0A= __extension__=0A= extern long long int wcstoll (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, int __base)=0A= throw ();=0A= =0A= =0A= =0A= __extension__=0A= extern unsigned long long int wcstoull (__const wchar_t *__restrict = __nptr,=0A= wchar_t **__restrict __endptr,=0A= int __base) throw ();=0A= # 410 "/usr/include/wchar.h" 3=0A= extern long int __wcstol_l (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, int __base,=0A= __locale_t __loc) throw ();=0A= =0A= extern unsigned long int __wcstoul_l (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr,=0A= int __base, __locale_t __loc) = throw ();=0A= =0A= __extension__=0A= extern long long int __wcstoll_l (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr,=0A= int __base, __locale_t __loc) throw ();=0A= =0A= __extension__=0A= extern unsigned long long int __wcstoull_l (__const wchar_t *__restrict = __nptr,=0A= wchar_t **__restrict = __endptr,=0A= int __base, __locale_t __loc)=0A= throw ();=0A= =0A= extern double __wcstod_l (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, __locale_t = __loc)=0A= throw ();=0A= =0A= extern float __wcstof_l (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, __locale_t __loc)=0A= throw ();=0A= =0A= extern long double __wcstold_l (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr,=0A= __locale_t __loc) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern double __wcstod_internal (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, int = __group)=0A= throw ();=0A= extern float __wcstof_internal (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr, int = __group)=0A= throw ();=0A= extern long double __wcstold_internal (__const wchar_t *__restrict = __nptr,=0A= wchar_t **__restrict __endptr,=0A= int __group) throw ();=0A= =0A= =0A= extern long int __wcstol_internal (__const wchar_t *__restrict __nptr,=0A= wchar_t **__restrict __endptr,=0A= int __base, int __group) throw ();=0A= =0A= =0A= =0A= extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict = __npt,=0A= wchar_t **__restrict = __endptr,=0A= int __base, int __group) = throw ();=0A= =0A= =0A= =0A= __extension__=0A= extern long long int __wcstoll_internal (__const wchar_t *__restrict = __nptr,=0A= wchar_t **__restrict __endptr,=0A= int __base, int __group) throw = ();=0A= =0A= =0A= =0A= __extension__=0A= extern unsigned long long int __wcstoull_internal (__const wchar_t *=0A= __restrict __nptr,=0A= wchar_t **=0A= __restrict __endptr,=0A= int __base,=0A= int __group) throw ();=0A= # 528 "/usr/include/wchar.h" 3=0A= extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw = ();=0A= =0A= =0A= =0A= extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t = __n)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int fwide (__FILE *__fp, int __mode) throw ();=0A= =0A= =0A= =0A= extern int fwprintf (__FILE *__restrict __stream,=0A= __const wchar_t *__restrict __format, ...)=0A= throw () ;=0A= =0A= extern int wprintf (__const wchar_t *__restrict __format, ...)=0A= throw () ;=0A= =0A= extern int swprintf (wchar_t *__restrict __s, size_t __n,=0A= __const wchar_t *__restrict __format, ...)=0A= throw () ;=0A= =0A= =0A= extern int vfwprintf (__FILE *__restrict __s,=0A= __const wchar_t *__restrict __format,=0A= __gnuc_va_list __arg)=0A= throw () ;=0A= =0A= extern int vwprintf (__const wchar_t *__restrict __format,=0A= __gnuc_va_list __arg)=0A= throw () ;=0A= =0A= =0A= extern int vswprintf (wchar_t *__restrict __s, size_t __n,=0A= __const wchar_t *__restrict __format,=0A= __gnuc_va_list __arg)=0A= throw () ;=0A= =0A= =0A= =0A= extern int fwscanf (__FILE *__restrict __stream,=0A= __const wchar_t *__restrict __format, ...)=0A= throw () ;=0A= =0A= extern int wscanf (__const wchar_t *__restrict __format, ...)=0A= throw () ;=0A= =0A= extern int swscanf (__const wchar_t *__restrict __s,=0A= __const wchar_t *__restrict __format, ...)=0A= throw () ;=0A= =0A= =0A= =0A= =0A= extern int vfwscanf (__FILE *__restrict __s,=0A= __const wchar_t *__restrict __format,=0A= __gnuc_va_list __arg)=0A= throw () ;=0A= =0A= extern int vwscanf (__const wchar_t *__restrict __format,=0A= __gnuc_va_list __arg)=0A= throw () ;=0A= =0A= extern int vswscanf (__const wchar_t *__restrict __s,=0A= __const wchar_t *__restrict __format,=0A= __gnuc_va_list __arg)=0A= throw () ;=0A= =0A= =0A= =0A= =0A= extern wint_t fgetwc (__FILE *__stream) throw ();=0A= extern wint_t getwc (__FILE *__stream) throw ();=0A= =0A= =0A= extern wint_t getwchar (void) throw ();=0A= =0A= =0A= =0A= extern wint_t fputwc (wchar_t __wc, __FILE *__stream) throw ();=0A= extern wint_t putwc (wchar_t __wc, __FILE *__stream) throw ();=0A= =0A= =0A= extern wint_t putwchar (wchar_t __wc) throw ();=0A= =0A= =0A= =0A= =0A= extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,=0A= __FILE *__restrict __stream) throw ();=0A= =0A= =0A= extern int fputws (__const wchar_t *__restrict __ws,=0A= __FILE *__restrict __stream) throw ();=0A= =0A= =0A= =0A= extern wint_t ungetwc (wint_t __wc, __FILE *__stream) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern wint_t getwc_unlocked (__FILE *__stream) throw ();=0A= extern wint_t getwchar_unlocked (void) throw ();=0A= =0A= =0A= extern wint_t fgetwc_unlocked (__FILE *__stream) throw ();=0A= =0A= =0A= extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream) throw ();=0A= =0A= =0A= =0A= extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream) throw ();=0A= extern wint_t putwchar_unlocked (wchar_t __wc) throw ();=0A= =0A= =0A= =0A= extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,=0A= __FILE *__restrict __stream) throw ();=0A= =0A= =0A= extern int fputws_unlocked (__const wchar_t *__restrict __ws,=0A= __FILE *__restrict __stream) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,=0A= __const wchar_t *__restrict __format,=0A= __const struct tm *__restrict __tp) throw ();=0A= # 680 "/usr/include/wchar.h" 3=0A= }=0A= # 55 "/usr/local/gcc3.1/include/g++-v3/cwchar" 2 3=0A= # 69 "/usr/local/gcc3.1/include/g++-v3/cwchar" 3=0A= namespace std=0A= {=0A= using ::mbstate_t;=0A= }=0A= # 133 "/usr/local/gcc3.1/include/g++-v3/cwchar" 3=0A= namespace std=0A= {=0A= using ::wint_t;=0A= =0A= using ::btowc;=0A= using ::fgetwc;=0A= using ::fgetws;=0A= using ::fputwc;=0A= using ::fputws;=0A= using ::fwide;=0A= using ::fwprintf;=0A= using ::fwscanf;=0A= using ::getwc;=0A= using ::getwchar;=0A= using ::mbrlen;=0A= using ::mbrtowc;=0A= using ::mbsinit;=0A= using ::mbsrtowcs;=0A= using ::putwc;=0A= using ::putwchar;=0A= using ::swprintf;=0A= using ::swscanf;=0A= using ::ungetwc;=0A= using ::vfwprintf;=0A= using ::vfwscanf;=0A= using ::vswprintf;=0A= using ::vswscanf;=0A= using ::vwprintf;=0A= using ::vwscanf;=0A= using ::wcrtomb;=0A= using ::wcscat;=0A= using ::wcscmp;=0A= using ::wcscoll;=0A= using ::wcscpy;=0A= using ::wcscspn;=0A= using ::wcsftime;=0A= using ::wcslen;=0A= using ::wcsncat;=0A= using ::wcsncmp;=0A= using ::wcsncpy;=0A= using ::wcsrtombs;=0A= using ::wcsspn;=0A= using ::wcstod;=0A= using ::wcstof;=0A= using ::wcstok;=0A= using ::wcstol;=0A= using ::wcstoul;=0A= using ::wcsxfrm;=0A= using ::wctob;=0A= using ::wmemcmp;=0A= using ::wmemcpy;=0A= using ::wmemmove;=0A= using ::wmemset;=0A= using ::wprintf;=0A= using ::wscanf;=0A= =0A= using ::wcschr;=0A= =0A= inline wchar_t*=0A= wcschr(wchar_t* __p, wchar_t __c)=0A= { return wcschr(const_cast(__p), __c); }=0A= =0A= using ::wcspbrk;=0A= =0A= inline wchar_t*=0A= wcspbrk(wchar_t* __s1, wchar_t* __s2)=0A= { return wcspbrk(const_cast(__s1), __s2); }=0A= =0A= using ::wcsrchr;=0A= =0A= inline wchar_t*=0A= wcsrchr(wchar_t* __p, wchar_t __c)=0A= { return wcsrchr(const_cast(__p), __c); }=0A= =0A= using ::wcsstr;=0A= =0A= inline wchar_t*=0A= wcsstr(wchar_t* __s1, wchar_t* __s2)=0A= { return wcsstr(const_cast(__s1), __s2); }=0A= =0A= using ::wmemchr;=0A= =0A= inline wchar_t*=0A= wmemchr(wchar_t* __p, wchar_t __c, size_t __n)=0A= { return wmemchr(const_cast(__p), __c, __n); }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= namespace __gnu_cxx=0A= {=0A= using ::wcstold;=0A= using ::wcstoll;=0A= using ::wcstoull;=0A= }=0A= =0A= namespace std=0A= {=0A= using __gnu_cxx::wcstold;=0A= using __gnu_cxx::wcstoll;=0A= using __gnu_cxx::wcstoull;=0A= }=0A= # 46 "/usr/local/gcc3.1/include/g++-v3/bits/fpos.h" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= =0A= =0A= template=0A= class fpos=0A= {=0A= public:=0A= =0A= typedef _StateT __state_type;=0A= =0A= private:=0A= streamoff _M_off;=0A= __state_type _M_st;=0A= =0A= public:=0A= __state_type=0A= state() const { return _M_st; }=0A= =0A= void=0A= state(__state_type __st) { _M_st =3D __st; }=0A= =0A= =0A= =0A= fpos(): _M_off(streamoff()), _M_st(__state_type()) { }=0A= =0A= fpos(streamoff __off, __state_type __st =3D __state_type())=0A= : _M_off(__off), _M_st(__st) { }=0A= =0A= operator streamoff() const { return _M_off; }=0A= =0A= fpos&=0A= operator+=3D(streamoff __off) { _M_off +=3D __off; return *this; }=0A= =0A= fpos&=0A= operator-=3D(streamoff __off) { _M_off -=3D __off; return *this; }=0A= =0A= fpos=0A= operator+(streamoff __off)=0A= {=0A= fpos __t(*this);=0A= __t +=3D __off;=0A= return __t;=0A= }=0A= =0A= fpos=0A= operator-(streamoff __off)=0A= {=0A= fpos __t(*this);=0A= __t -=3D __off;=0A= return __t;=0A= }=0A= =0A= bool=0A= operator=3D=3D(const fpos& __pos) const=0A= { return _M_off =3D=3D __pos._M_off; }=0A= =0A= bool=0A= operator!=3D(const fpos& __pos) const=0A= { return _M_off !=3D __pos._M_off; }=0A= =0A= streamoff=0A= _M_position() const { return _M_off; }=0A= =0A= void=0A= _M_position(streamoff __off) { _M_off =3D __off; }=0A= };=0A= =0A= =0A= typedef fpos streampos;=0A= =0A= typedef fpos wstreampos;=0A= =0A= }=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A= # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A= # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= void=0A= __throw_bad_exception(void);=0A= =0A= =0A= void=0A= __throw_bad_alloc(void);=0A= =0A= =0A= void=0A= __throw_bad_cast(void);=0A= =0A= void=0A= __throw_bad_typeid(void);=0A= =0A= =0A= void=0A= __throw_logic_error(const char* __s);=0A= =0A= void=0A= __throw_domain_error(const char* __s);=0A= =0A= void=0A= __throw_invalid_argument(const char* __s);=0A= =0A= void=0A= __throw_length_error(const char* __s);=0A= =0A= void=0A= __throw_out_of_range(const char* __s);=0A= =0A= void=0A= __throw_runtime_error(const char* __s);=0A= =0A= void=0A= __throw_range_error(const char* __s);=0A= =0A= void=0A= __throw_overflow_error(const char* __s);=0A= =0A= void=0A= __throw_underflow_error(const char* __s);=0A= =0A= =0A= void=0A= __throw_ios_failure(const char* __s);=0A= }=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/iosfwd" 2 3=0A= =0A= namespace std=0A= {=0A= template >=0A= class basic_ios;=0A= =0A= template >=0A= class basic_streambuf;=0A= =0A= template >=0A= class basic_istream;=0A= =0A= template >=0A= class basic_ostream;=0A= =0A= template >=0A= class basic_iostream;=0A= =0A= template,=0A= typename _Alloc =3D allocator<_CharT> >=0A= class basic_stringbuf;=0A= =0A= template,=0A= typename _Alloc =3D allocator<_CharT> >=0A= class basic_istringstream;=0A= =0A= template,=0A= typename _Alloc =3D allocator<_CharT> >=0A= class basic_ostringstream;=0A= =0A= template,=0A= typename _Alloc =3D allocator<_CharT> >=0A= class basic_stringstream;=0A= =0A= template >=0A= class basic_filebuf;=0A= =0A= template >=0A= class basic_ifstream;=0A= =0A= template >=0A= class basic_ofstream;=0A= =0A= template >=0A= class basic_fstream;=0A= =0A= template >=0A= class istreambuf_iterator;=0A= =0A= template >=0A= class ostreambuf_iterator;=0A= =0A= =0A= =0A= class ios_base;=0A= =0A= =0A= typedef basic_ios ios;=0A= typedef basic_streambuf streambuf;=0A= typedef basic_istream istream;=0A= typedef basic_ostream ostream;=0A= typedef basic_iostream iostream;=0A= typedef basic_stringbuf stringbuf;=0A= typedef basic_istringstream istringstream;=0A= typedef basic_ostringstream ostringstream;=0A= typedef basic_stringstream stringstream;=0A= typedef basic_filebuf filebuf;=0A= typedef basic_ifstream ifstream;=0A= typedef basic_ofstream ofstream;=0A= typedef basic_fstream fstream;=0A= =0A= typedef basic_ios wios;=0A= typedef basic_streambuf wstreambuf;=0A= typedef basic_istream wistream;=0A= typedef basic_ostream wostream;=0A= typedef basic_iostream wiostream;=0A= typedef basic_stringbuf wstringbuf;=0A= typedef basic_istringstream wistringstream;=0A= typedef basic_ostringstream wostringstream;=0A= typedef basic_stringstream wstringstream;=0A= typedef basic_filebuf wfilebuf;=0A= typedef basic_ifstream wifstream;=0A= typedef basic_ofstream wofstream;=0A= typedef basic_fstream wfstream;=0A= }=0A= # 45 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/exception" 1 3=0A= # 40 "/usr/local/gcc3.1/include/g++-v3/exception" 3=0A= extern "C++" {=0A= =0A= namespace std=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= class exception=0A= {=0A= public:=0A= exception() throw() { }=0A= virtual ~exception() throw();=0A= =0A= =0A= virtual const char* what() const throw();=0A= };=0A= =0A= =0A= =0A= class bad_exception : public exception=0A= {=0A= public:=0A= bad_exception() throw() { }=0A= =0A= =0A= virtual ~bad_exception() throw();=0A= };=0A= =0A= =0A= typedef void (*terminate_handler) ();=0A= =0A= typedef void (*unexpected_handler) ();=0A= =0A= =0A= terminate_handler set_terminate(terminate_handler) throw();=0A= =0A= =0A= void terminate() __attribute__ ((__noreturn__));=0A= =0A= =0A= unexpected_handler set_unexpected(unexpected_handler) throw();=0A= =0A= =0A= void unexpected() __attribute__ ((__noreturn__));=0A= # 98 "/usr/local/gcc3.1/include/g++-v3/exception" 3=0A= bool uncaught_exception() throw();=0A= }=0A= =0A= namespace __gnu_cxx=0A= {=0A= # 111 "/usr/local/gcc3.1/include/g++-v3/exception" 3=0A= void __verbose_terminate_handler ();=0A= }=0A= =0A= }=0A= # 46 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/char_traits.h" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/bits/char_traits.h" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cstring" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/cstring" 3=0A= =0A= =0A= =0A= # 1 "/usr/include/string.h" 1 3=0A= # 28 "/usr/include/string.h" 3=0A= extern "C" {=0A= =0A= =0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 34 "/usr/include/string.h" 2 3=0A= =0A= =0A= =0A= extern void *memcpy (void *__restrict __dest,=0A= __const void *__restrict __src, size_t __n) throw = ();=0A= =0A= =0A= extern void *memmove (void *__dest, __const void *__src, size_t __n)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern void *memccpy (void *__restrict __dest, __const void *__restrict = __src,=0A= int __c, size_t __n)=0A= throw ();=0A= =0A= =0A= =0A= =0A= extern void *memset (void *__s, int __c, size_t __n) throw ();=0A= =0A= =0A= extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern void *memchr (__const void *__s, int __c, size_t __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= extern void *rawmemchr (__const void *__s, int __c) throw () = __attribute__ ((__pure__));=0A= =0A= =0A= extern void *memrchr (__const void *__s, int __c, size_t __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= extern char *strcpy (char *__restrict __dest, __const char *__restrict = __src)=0A= throw ();=0A= =0A= extern char *strncpy (char *__restrict __dest,=0A= __const char *__restrict __src, size_t __n) throw = ();=0A= =0A= =0A= extern char *strcat (char *__restrict __dest, __const char *__restrict = __src)=0A= throw ();=0A= =0A= extern char *strncat (char *__restrict __dest, __const char *__restrict = __src,=0A= size_t __n) throw ();=0A= =0A= =0A= extern int strcmp (__const char *__s1, __const char *__s2)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern int strcoll (__const char *__s1, __const char *__s2)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern size_t strxfrm (char *__restrict __dest,=0A= __const char *__restrict __src, size_t __n) throw = ();=0A= # 111 "/usr/include/string.h" 3=0A= extern int __strcoll_l (__const char *__s1, __const char *__s2, = __locale_t __l)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n,=0A= __locale_t __l) throw ();=0A= =0A= =0A= =0A= =0A= extern char *strdup (__const char *__s) throw () __attribute__ = ((__malloc__));=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern char *strndup (__const char *__string, size_t __n)=0A= throw () __attribute__ ((__malloc__));=0A= # 155 "/usr/include/string.h" 3=0A= extern char *strchr (__const char *__s, int __c) throw () __attribute__ = ((__pure__));=0A= =0A= extern char *strrchr (__const char *__s, int __c) throw () __attribute__ = ((__pure__));=0A= =0A= =0A= =0A= =0A= extern char *strchrnul (__const char *__s, int __c) throw () = __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= extern size_t strcspn (__const char *__s, __const char *__reject)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern size_t strspn (__const char *__s, __const char *__accept)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern char *strpbrk (__const char *__s, __const char *__accept)=0A= throw () __attribute__ ((__pure__));=0A= =0A= extern char *strstr (__const char *__haystack, __const char *__needle)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= extern char *strcasestr (__const char *__haystack, __const char = *__needle)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= extern char *strtok (char *__restrict __s, __const char *__restrict = __delim)=0A= throw ();=0A= =0A= =0A= =0A= extern char *__strtok_r (char *__restrict __s,=0A= __const char *__restrict __delim,=0A= char **__restrict __save_ptr) throw ();=0A= =0A= extern char *strtok_r (char *__restrict __s, __const char *__restrict = __delim,=0A= char **__restrict __save_ptr) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern void *memmem (__const void *__haystack, size_t __haystacklen,=0A= __const void *__needle, size_t __needlelen)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= extern void *__mempcpy (void *__restrict __dest,=0A= __const void *__restrict __src, size_t __n) = throw ();=0A= extern void *mempcpy (void *__restrict __dest,=0A= __const void *__restrict __src, size_t __n) throw = ();=0A= =0A= =0A= =0A= =0A= extern size_t strlen (__const char *__s) throw () __attribute__ = ((__pure__));=0A= =0A= =0A= =0A= =0A= extern size_t strnlen (__const char *__string, size_t __maxlen)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= extern char *strerror (int __errnum) throw ();=0A= =0A= =0A= =0A= extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) = throw ();=0A= =0A= =0A= =0A= =0A= extern void __bzero (void *__s, size_t __n) throw ();=0A= =0A= =0A= =0A= extern void bcopy (__const void *__src, void *__dest, size_t __n) throw = ();=0A= =0A= =0A= extern void bzero (void *__s, size_t __n) throw ();=0A= =0A= =0A= extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern char *index (__const char *__s, int __c) throw () __attribute__ = ((__pure__));=0A= =0A= =0A= extern char *rindex (__const char *__s, int __c) throw () __attribute__ = ((__pure__));=0A= =0A= =0A= =0A= extern int ffs (int __i) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern int ffsl (long int __l) throw () __attribute__ ((__const__));=0A= =0A= __extension__ extern int ffsll (long long int __ll)=0A= throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern int strcasecmp (__const char *__s1, __const char *__s2)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern int strncasecmp (__const char *__s1, __const char *__s2, size_t = __n)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= =0A= extern int __strcasecmp_l (__const char *__s1, __const char *__s2,=0A= __locale_t __loc) throw () __attribute__ = ((__pure__));=0A= =0A= extern int __strncasecmp_l (__const char *__s1, __const char *__s2,=0A= size_t __n, __locale_t __loc)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= =0A= =0A= extern char *strsep (char **__restrict __stringp,=0A= __const char *__restrict __delim) throw ();=0A= =0A= =0A= =0A= =0A= extern int strverscmp (__const char *__s1, __const char *__s2)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= extern char *strsignal (int __sig) throw ();=0A= =0A= =0A= extern char *__stpcpy (char *__restrict __dest, __const char *__restrict = __src)=0A= throw ();=0A= extern char *stpcpy (char *__restrict __dest, __const char *__restrict = __src)=0A= throw ();=0A= =0A= =0A= =0A= extern char *__stpncpy (char *__restrict __dest,=0A= __const char *__restrict __src, size_t __n) = throw ();=0A= extern char *stpncpy (char *__restrict __dest,=0A= __const char *__restrict __src, size_t __n) throw = ();=0A= =0A= =0A= extern char *strfry (char *__string) throw ();=0A= =0A= =0A= extern void *memfrob (void *__s, size_t __n) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern char *basename (__const char *__filename) throw ();=0A= # 364 "/usr/include/string.h" 3=0A= }=0A= # 52 "/usr/local/gcc3.1/include/g++-v3/cstring" 2 3=0A= # 77 "/usr/local/gcc3.1/include/g++-v3/cstring" 3=0A= namespace std=0A= {=0A= using ::memcpy;=0A= using ::memmove;=0A= using ::strcpy;=0A= using ::strncpy;=0A= using ::strcat;=0A= using ::strncat;=0A= using ::memcmp;=0A= using ::strcmp;=0A= using ::strcoll;=0A= using ::strncmp;=0A= using ::strxfrm;=0A= using ::strcspn;=0A= using ::strspn;=0A= using ::strtok;=0A= using ::memset;=0A= using ::strerror;=0A= using ::strlen;=0A= =0A= using ::memchr;=0A= =0A= inline void*=0A= memchr(void* __p, int __c, size_t __n)=0A= { return memchr(const_cast(__p), __c, __n); }=0A= =0A= using ::strchr;=0A= =0A= inline char*=0A= strchr(char* __s1, int __n)=0A= { return __builtin_strchr(const_cast(__s1), __n); }=0A= =0A= using ::strpbrk;=0A= =0A= inline char*=0A= strpbrk(char* __s1, const char* __s2)=0A= { return __builtin_strpbrk(const_cast(__s1), __s2); }=0A= =0A= using ::strrchr;=0A= =0A= inline char*=0A= strrchr(char* __s1, int __n)=0A= { return __builtin_strrchr(const_cast(__s1), __n); }=0A= =0A= using ::strstr;=0A= =0A= inline char*=0A= strstr(char* __s1, const char* __s2)=0A= { return __builtin_strstr(const_cast(__s1), __s2); }=0A= }=0A= # 45 "/usr/local/gcc3.1/include/g++-v3/bits/char_traits.h" 2 3=0A= =0A= =0A= namespace std=0A= {=0A= =0A= =0A= =0A= template=0A= struct char_traits=0A= {=0A= typedef _CharT char_type;=0A= =0A= typedef unsigned long int_type;=0A= typedef streampos pos_type;=0A= typedef streamoff off_type;=0A= typedef mbstate_t state_type;=0A= =0A= static void=0A= assign(char_type& __c1, const char_type& __c2)=0A= { __c1 =3D __c2; }=0A= =0A= static bool=0A= eq(const char_type& __c1, const char_type& __c2)=0A= { return __c1 =3D=3D __c2; }=0A= =0A= static bool=0A= lt(const char_type& __c1, const char_type& __c2)=0A= { return __c1 < __c2; }=0A= =0A= static int=0A= compare(const char_type* __s1, const char_type* __s2, size_t __n)=0A= {=0A= for (size_t __i =3D 0; __i < __n; ++__i)=0A= if (!eq(__s1[__i], __s2[__i]))=0A= return lt(__s1[__i], __s2[__i]) ? -1 : 1;=0A= return 0;=0A= }=0A= =0A= static size_t=0A= length(const char_type* __s)=0A= {=0A= const char_type* __p =3D __s;=0A= while (*__p) ++__p;=0A= return (__p - __s);=0A= }=0A= =0A= static const char_type*=0A= find(const char_type* __s, size_t __n, const char_type& __a)=0A= {=0A= for (const char_type* __p =3D __s; size_t(__p - __s) < __n; = ++__p)=0A= if (*__p =3D=3D __a) return __p;=0A= return 0;=0A= }=0A= =0A= static char_type*=0A= move(char_type* __s1, const char_type* __s2, size_t __n)=0A= { return (char_type*) memmove(__s1, __s2, __n * = sizeof(char_type)); }=0A= =0A= static char_type*=0A= copy(char_type* __s1, const char_type* __s2, size_t __n)=0A= { return (char_type*) memcpy(__s1, __s2, __n * sizeof(char_type)); = }=0A= =0A= static char_type*=0A= assign(char_type* __s, size_t __n, char_type __a)=0A= {=0A= for (char_type* __p =3D __s; __p < __s + __n; ++__p)=0A= assign(*__p, __a);=0A= return __s;=0A= }=0A= =0A= static char_type=0A= to_char_type(const int_type& __c)=0A= { return char_type(__c); }=0A= =0A= static int_type=0A= to_int_type(const char_type& __c) { return int_type(__c); }=0A= =0A= static bool=0A= eq_int_type(const int_type& __c1, const int_type& __c2)=0A= { return __c1 =3D=3D __c2; }=0A= =0A= static int_type=0A= eof() { return static_cast(-1); }=0A= =0A= static int_type=0A= not_eof(const int_type& __c)=0A= { return eq_int_type(__c, eof()) ? int_type(0) : __c; }=0A= };=0A= =0A= =0A= =0A= template<>=0A= struct char_traits=0A= {=0A= typedef char char_type;=0A= typedef int int_type;=0A= typedef streampos pos_type;=0A= typedef streamoff off_type;=0A= typedef mbstate_t state_type;=0A= =0A= static void=0A= assign(char_type& __c1, const char_type& __c2)=0A= { __c1 =3D __c2; }=0A= =0A= static bool=0A= eq(const char_type& __c1, const char_type& __c2)=0A= { return __c1 =3D=3D __c2; }=0A= =0A= static bool=0A= lt(const char_type& __c1, const char_type& __c2)=0A= { return __c1 < __c2; }=0A= =0A= static int=0A= compare(const char_type* __s1, const char_type* __s2, size_t __n)=0A= { return memcmp(__s1, __s2, __n); }=0A= =0A= static size_t=0A= length(const char_type* __s)=0A= { return strlen(__s); }=0A= =0A= static const char_type*=0A= find(const char_type* __s, size_t __n, const char_type& __a)=0A= { return static_cast(memchr(__s, __a, __n)); }=0A= =0A= static char_type*=0A= move(char_type* __s1, const char_type* __s2, size_t __n)=0A= { return static_cast(memmove(__s1, __s2, __n)); }=0A= =0A= static char_type*=0A= copy(char_type* __s1, const char_type* __s2, size_t __n)=0A= { return static_cast(memcpy(__s1, __s2, __n)); }=0A= =0A= static char_type*=0A= assign(char_type* __s, size_t __n, char_type __a)=0A= { return static_cast(memset(__s, __a, __n)); }=0A= =0A= static char_type=0A= to_char_type(const int_type& __c)=0A= { return static_cast(__c); }=0A= =0A= =0A= =0A= static int_type=0A= to_int_type(const char_type& __c)=0A= { return static_cast(static_cast(__c)); }=0A= =0A= static bool=0A= eq_int_type(const int_type& __c1, const int_type& __c2)=0A= { return __c1 =3D=3D __c2; }=0A= =0A= static int_type=0A= eof() { return static_cast((-1)); }=0A= =0A= static int_type=0A= not_eof(const int_type& __c)=0A= { return (__c =3D=3D eof()) ? 0 : __c; }=0A= };=0A= =0A= =0A= =0A= template<>=0A= struct char_traits=0A= {=0A= typedef wchar_t char_type;=0A= typedef wint_t int_type;=0A= typedef streamoff off_type;=0A= typedef wstreampos pos_type;=0A= typedef mbstate_t state_type;=0A= =0A= static void=0A= assign(char_type& __c1, const char_type& __c2)=0A= { __c1 =3D __c2; }=0A= =0A= static bool=0A= eq(const char_type& __c1, const char_type& __c2)=0A= { return __c1 =3D=3D __c2; }=0A= =0A= static bool=0A= lt(const char_type& __c1, const char_type& __c2)=0A= { return __c1 < __c2; }=0A= =0A= static int=0A= compare(const char_type* __s1, const char_type* __s2, size_t __n)=0A= { return wmemcmp(__s1, __s2, __n); }=0A= =0A= static size_t=0A= length(const char_type* __s)=0A= { return wcslen(__s); }=0A= =0A= static const char_type*=0A= find(const char_type* __s, size_t __n, const char_type& __a)=0A= { return wmemchr(__s, __a, __n); }=0A= =0A= static char_type*=0A= move(char_type* __s1, const char_type* __s2, int_type __n)=0A= { return wmemmove(__s1, __s2, __n); }=0A= =0A= static char_type*=0A= copy(char_type* __s1, const char_type* __s2, size_t __n)=0A= { return wmemcpy(__s1, __s2, __n); }=0A= =0A= static char_type*=0A= assign(char_type* __s, size_t __n, char_type __a)=0A= { return wmemset(__s, __a, __n); }=0A= =0A= static char_type=0A= to_char_type(const int_type& __c) { return char_type(__c); }=0A= =0A= static int_type=0A= to_int_type(const char_type& __c) { return int_type(__c); }=0A= =0A= static bool=0A= eq_int_type(const int_type& __c1, const int_type& __c2)=0A= { return __c1 =3D=3D __c2; }=0A= =0A= static int_type=0A= eof() { return static_cast((0xffffffffu)); }=0A= =0A= static int_type=0A= not_eof(const int_type& __c)=0A= { return eq_int_type(__c, eof()) ? 0 : __c; }=0A= };=0A= =0A= =0A= template=0A= struct _Char_traits_match=0A= {=0A= _CharT _M_c;=0A= _Char_traits_match(_CharT const& __c) : _M_c(__c) { }=0A= =0A= bool=0A= operator()(_CharT const& __a) { return _Traits::eq(_M_c, __a); }=0A= };=0A= }=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 1 3=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 3=0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 1 3=0A= # 36 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/clocale" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/clocale" 3=0A= =0A= # 1 "/usr/include/locale.h" 1 3=0A= # 29 "/usr/include/locale.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 30 "/usr/include/locale.h" 2 3=0A= # 1 "/usr/include/bits/locale.h" 1 3=0A= # 27 "/usr/include/bits/locale.h" 3=0A= enum=0A= {=0A= __LC_CTYPE =3D 0,=0A= __LC_NUMERIC =3D 1,=0A= __LC_TIME =3D 2,=0A= __LC_COLLATE =3D 3,=0A= __LC_MONETARY =3D 4,=0A= __LC_MESSAGES =3D 5,=0A= __LC_ALL =3D 6,=0A= __LC_PAPER =3D 7,=0A= __LC_NAME =3D 8,=0A= __LC_ADDRESS =3D 9,=0A= __LC_TELEPHONE =3D 10,=0A= __LC_MEASUREMENT =3D 11,=0A= __LC_IDENTIFICATION =3D 12=0A= };=0A= # 31 "/usr/include/locale.h" 2 3=0A= =0A= extern "C" {=0A= # 52 "/usr/include/locale.h" 3=0A= struct lconv=0A= {=0A= =0A= =0A= char *decimal_point;=0A= char *thousands_sep;=0A= =0A= =0A= =0A= =0A= =0A= char *grouping;=0A= =0A= =0A= =0A= =0A= =0A= char *int_curr_symbol;=0A= char *currency_symbol;=0A= char *mon_decimal_point;=0A= char *mon_thousands_sep;=0A= char *mon_grouping;=0A= char *positive_sign;=0A= char *negative_sign;=0A= char int_frac_digits;=0A= char frac_digits;=0A= =0A= char p_cs_precedes;=0A= =0A= char p_sep_by_space;=0A= =0A= char n_cs_precedes;=0A= =0A= char n_sep_by_space;=0A= =0A= =0A= =0A= =0A= =0A= =0A= char p_sign_posn;=0A= char n_sign_posn;=0A= =0A= =0A= char int_p_cs_precedes;=0A= =0A= char int_p_sep_by_space;=0A= =0A= char int_n_cs_precedes;=0A= =0A= char int_n_sep_by_space;=0A= =0A= =0A= =0A= =0A= =0A= =0A= char int_p_sign_posn;=0A= char int_n_sign_posn;=0A= # 119 "/usr/include/locale.h" 3=0A= };=0A= =0A= =0A= =0A= extern char *setlocale (int __category, __const char *__locale) throw ();=0A= =0A= =0A= extern struct lconv *localeconv (void) throw ();=0A= # 149 "/usr/include/locale.h" 3=0A= extern __locale_t __newlocale (int __category_mask, __const char = *__locale,=0A= __locale_t __base) throw ();=0A= =0A= =0A= =0A= extern __locale_t __duplocale (__locale_t __dataset) throw ();=0A= =0A= =0A= =0A= extern void __freelocale (__locale_t __dataset) throw ();=0A= =0A= =0A= }=0A= # 50 "/usr/local/gcc3.1/include/g++-v3/clocale" 2 3=0A= =0A= =0A= =0A= =0A= =0A= namespace std=0A= {=0A= using ::lconv;=0A= using ::setlocale;=0A= using ::localeconv;=0A= }=0A= # 37 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3=0A= =0A= namespace std=0A= {=0A= typedef int* __c_locale;=0A= }=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/climits" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/climits" 3=0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 = 3=0A= # 11 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/syslimits.h"= 1 3=0A= =0A= =0A= =0A= =0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 = 3=0A= # 132 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 3=0A= # 1 "/usr/include/limits.h" 1 3=0A= # 144 "/usr/include/limits.h" 3=0A= # 1 "/usr/include/bits/posix1_lim.h" 1 3=0A= # 126 "/usr/include/bits/posix1_lim.h" 3=0A= # 1 "/usr/include/bits/local_lim.h" 1 3=0A= # 36 "/usr/include/bits/local_lim.h" 3=0A= # 1 "/usr/include/linux/limits.h" 1 3=0A= # 37 "/usr/include/bits/local_lim.h" 2 3=0A= # 127 "/usr/include/bits/posix1_lim.h" 2 3=0A= # 145 "/usr/include/limits.h" 2 3=0A= =0A= =0A= =0A= # 1 "/usr/include/bits/posix2_lim.h" 1 3=0A= # 149 "/usr/include/limits.h" 2 3=0A= =0A= =0A= =0A= # 1 "/usr/include/bits/xopen_lim.h" 1 3=0A= # 34 "/usr/include/bits/xopen_lim.h" 3=0A= # 1 "/usr/include/bits/stdio_lim.h" 1 3=0A= # 35 "/usr/include/bits/xopen_lim.h" 2 3=0A= # 136 "/usr/include/bits/xopen_lim.h" 3=0A= # 1 "/usr/include/bits/wordsize.h" 1 3=0A= # 137 "/usr/include/bits/xopen_lim.h" 2 3=0A= # 153 "/usr/include/limits.h" 2 3=0A= # 133 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 2 = 3=0A= # 8 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/syslimits.h"= 2 3=0A= # 12 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 2 = 3=0A= # 50 "/usr/local/gcc3.1/include/g++-v3/climits" 2 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cctype" 1 3=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/cctype" 3=0A= =0A= =0A= # 1 "/usr/include/ctype.h" 1 3=0A= # 29 "/usr/include/ctype.h" 3=0A= extern "C" {=0A= # 40 "/usr/include/ctype.h" 3=0A= # 1 "/usr/include/endian.h" 1 3=0A= # 37 "/usr/include/endian.h" 3=0A= # 1 "/usr/include/bits/endian.h" 1 3=0A= # 38 "/usr/include/endian.h" 2 3=0A= # 41 "/usr/include/ctype.h" 2 3=0A= =0A= =0A= =0A= =0A= =0A= =0A= enum=0A= {=0A= _ISupper =3D ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),=0A= _ISlower =3D ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),=0A= _ISalpha =3D ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),=0A= _ISdigit =3D ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),=0A= _ISxdigit =3D ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),=0A= _ISspace =3D ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),=0A= _ISprint =3D ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),=0A= _ISgraph =3D ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),=0A= _ISblank =3D ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),=0A= _IScntrl =3D ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),=0A= _ISpunct =3D ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),=0A= _ISalnum =3D ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))=0A= };=0A= # 75 "/usr/include/ctype.h" 3=0A= extern __const unsigned short int *__ctype_b;=0A= extern __const __int32_t *__ctype_tolower;=0A= extern __const __int32_t *__ctype_toupper;=0A= # 91 "/usr/include/ctype.h" 3=0A= extern int isalnum (int) throw ();=0A= extern int isalpha (int) throw ();=0A= extern int iscntrl (int) throw ();=0A= extern int isdigit (int) throw ();=0A= extern int islower (int) throw ();=0A= extern int isgraph (int) throw ();=0A= extern int isprint (int) throw ();=0A= extern int ispunct (int) throw ();=0A= extern int isspace (int) throw ();=0A= extern int isupper (int) throw ();=0A= extern int isxdigit (int) throw ();=0A= =0A= =0A= extern int isblank (int) throw ();=0A= =0A= =0A= =0A= =0A= extern int tolower (int __c) throw ();=0A= =0A= =0A= extern int toupper (int __c) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int isascii (int __c) throw ();=0A= =0A= =0A= =0A= extern int toascii (int __c) throw ();=0A= =0A= =0A= =0A= extern int _toupper (int) throw ();=0A= extern int _tolower (int) throw ();=0A= # 223 "/usr/include/ctype.h" 3=0A= extern int __isalnum_l (int, __locale_t) throw ();=0A= extern int __isalpha_l (int, __locale_t) throw ();=0A= extern int __iscntrl_l (int, __locale_t) throw ();=0A= extern int __isdigit_l (int, __locale_t) throw ();=0A= extern int __islower_l (int, __locale_t) throw ();=0A= extern int __isgraph_l (int, __locale_t) throw ();=0A= extern int __isprint_l (int, __locale_t) throw ();=0A= extern int __ispunct_l (int, __locale_t) throw ();=0A= extern int __isspace_l (int, __locale_t) throw ();=0A= extern int __isupper_l (int, __locale_t) throw ();=0A= extern int __isxdigit_l (int, __locale_t) throw ();=0A= =0A= extern int __isblank_l (int, __locale_t) throw ();=0A= =0A= =0A= =0A= extern int __tolower_l (int __c, __locale_t __l) throw ();=0A= =0A= =0A= extern int __toupper_l (int __c, __locale_t __l) throw ();=0A= # 276 "/usr/include/ctype.h" 3=0A= }=0A= # 50 "/usr/local/gcc3.1/include/g++-v3/cctype" 2 3=0A= # 66 "/usr/local/gcc3.1/include/g++-v3/cctype" 3=0A= namespace std=0A= {=0A= using ::isalnum;=0A= using ::isalpha;=0A= using ::iscntrl;=0A= using ::isdigit;=0A= using ::isgraph;=0A= using ::islower;=0A= using ::isprint;=0A= using ::ispunct;=0A= using ::isspace;=0A= using ::isupper;=0A= using ::isxdigit;=0A= using ::tolower;=0A= using ::toupper;=0A= }=0A= # 49 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/string" 1 3=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/string" 3=0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/memory" 1 3=0A= # 53 "/usr/local/gcc3.1/include/g++-v3/memory" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 1 3=0A= # 67 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 3=0A= =0A= =0A= =0A= =0A= # 1 "/usr/include/stdlib.h" 1 3=0A= # 33 "/usr/include/stdlib.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 34 "/usr/include/stdlib.h" 2 3=0A= =0A= extern "C" {=0A= =0A= =0A= =0A= =0A= =0A= =0A= # 1 "/usr/include/bits/waitflags.h" 1 3=0A= # 43 "/usr/include/stdlib.h" 2 3=0A= # 1 "/usr/include/bits/waitstatus.h" 1 3=0A= # 65 "/usr/include/bits/waitstatus.h" 3=0A= union wait=0A= {=0A= int w_status;=0A= struct=0A= {=0A= =0A= unsigned int __w_termsig:7;=0A= unsigned int __w_coredump:1;=0A= unsigned int __w_retcode:8;=0A= unsigned int:16;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= } __wait_terminated;=0A= struct=0A= {=0A= =0A= unsigned int __w_stopval:8;=0A= unsigned int __w_stopsig:8;=0A= unsigned int:16;=0A= =0A= =0A= =0A= =0A= =0A= =0A= } __wait_stopped;=0A= };=0A= # 44 "/usr/include/stdlib.h" 2 3=0A= # 94 "/usr/include/stdlib.h" 3=0A= typedef struct=0A= {=0A= int quot;=0A= int rem;=0A= } div_t;=0A= =0A= =0A= =0A= typedef struct=0A= {=0A= long int quot;=0A= long int rem;=0A= } ldiv_t;=0A= =0A= =0A= =0A= =0A= =0A= __extension__ typedef struct=0A= {=0A= long long int quot;=0A= long long int rem;=0A= } lldiv_t;=0A= # 133 "/usr/include/stdlib.h" 3=0A= extern size_t __ctype_get_mb_cur_max (void) throw ();=0A= =0A= =0A= =0A= extern double atof (__const char *__nptr) throw () __attribute__ = ((__pure__));=0A= =0A= extern int atoi (__const char *__nptr) throw () __attribute__ = ((__pure__));=0A= =0A= extern long int atol (__const char *__nptr) throw () __attribute__ = ((__pure__));=0A= =0A= =0A= =0A= __extension__ extern long long int atoll (__const char *__nptr)=0A= throw () __attribute__ ((__pure__));=0A= =0A= =0A= =0A= extern double strtod (__const char *__restrict __nptr,=0A= char **__restrict __endptr) throw ();=0A= =0A= =0A= =0A= extern float strtof (__const char *__restrict __nptr,=0A= char **__restrict __endptr) throw ();=0A= =0A= extern long double strtold (__const char *__restrict __nptr,=0A= char **__restrict __endptr) throw ();=0A= =0A= =0A= =0A= extern long int strtol (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int __base) throw ();=0A= =0A= extern unsigned long int strtoul (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int __base)=0A= throw ();=0A= =0A= =0A= =0A= __extension__=0A= extern long long int strtoq (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int __base) = throw ();=0A= =0A= __extension__=0A= extern unsigned long long int strtouq (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int = __base)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= __extension__=0A= extern long long int strtoll (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int __base) = throw ();=0A= =0A= __extension__=0A= extern unsigned long long int strtoull (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int = __base)=0A= throw ();=0A= # 215 "/usr/include/stdlib.h" 3=0A= extern long int __strtol_l (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int __base,=0A= __locale_t __loc) throw ();=0A= =0A= extern unsigned long int __strtoul_l (__const char *__restrict __nptr,=0A= char **__restrict __endptr,=0A= int __base, __locale_t __loc) = throw ();=0A= =0A= __extension__=0A= extern long long int __strtoll_l (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int __base,=0A= __locale_t __loc) throw ();=0A= =0A= __extension__=0A= extern unsigned long long int __strtoull_l (__const char *__restrict = __nptr,=0A= char **__restrict __endptr,=0A= int __base, __locale_t __loc)=0A= throw ();=0A= =0A= extern double __strtod_l (__const char *__restrict __nptr,=0A= char **__restrict __endptr, __locale_t __loc)=0A= throw ();=0A= =0A= extern float __strtof_l (__const char *__restrict __nptr,=0A= char **__restrict __endptr, __locale_t __loc) = throw ();=0A= =0A= extern long double __strtold_l (__const char *__restrict __nptr,=0A= char **__restrict __endptr,=0A= __locale_t __loc) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern double __strtod_internal (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int __group)=0A= throw ();=0A= extern float __strtof_internal (__const char *__restrict __nptr,=0A= char **__restrict __endptr, int __group)=0A= throw ();=0A= extern long double __strtold_internal (__const char *__restrict __nptr,=0A= char **__restrict __endptr,=0A= int __group) throw ();=0A= =0A= extern long int __strtol_internal (__const char *__restrict __nptr,=0A= char **__restrict __endptr,=0A= int __base, int __group) throw ();=0A= =0A= =0A= =0A= extern unsigned long int __strtoul_internal (__const char *__restrict = __nptr,=0A= char **__restrict __endptr,=0A= int __base, int __group) = throw ();=0A= =0A= =0A= =0A= =0A= __extension__=0A= extern long long int __strtoll_internal (__const char *__restrict __nptr,=0A= char **__restrict __endptr,=0A= int __base, int __group) throw = ();=0A= =0A= =0A= =0A= __extension__=0A= extern unsigned long long int __strtoull_internal (__const char *=0A= __restrict __nptr,=0A= char **__restrict = __endptr,=0A= int __base, int = __group)=0A= throw ();=0A= # 384 "/usr/include/stdlib.h" 3=0A= extern char *l64a (long int __n) throw ();=0A= =0A= =0A= extern long int a64l (__const char *__s) throw () __attribute__ = ((__pure__));=0A= =0A= =0A= # 1 "/usr/include/sys/types.h" 1 3=0A= # 28 "/usr/include/sys/types.h" 3=0A= extern "C" {=0A= =0A= =0A= =0A= =0A= =0A= typedef __u_char u_char;=0A= typedef __u_short u_short;=0A= typedef __u_int u_int;=0A= typedef __u_long u_long;=0A= typedef __quad_t quad_t;=0A= typedef __u_quad_t u_quad_t;=0A= typedef __fsid_t fsid_t;=0A= =0A= =0A= =0A= =0A= typedef __loff_t loff_t;=0A= =0A= =0A= =0A= typedef __ino_t ino_t;=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef __ino64_t ino64_t;=0A= =0A= =0A= =0A= =0A= typedef __dev_t dev_t;=0A= =0A= =0A= =0A= =0A= typedef __gid_t gid_t;=0A= =0A= =0A= =0A= =0A= typedef __mode_t mode_t;=0A= =0A= =0A= =0A= =0A= typedef __nlink_t nlink_t;=0A= =0A= =0A= =0A= =0A= typedef __uid_t uid_t;=0A= =0A= =0A= =0A= =0A= =0A= typedef __off_t off_t;=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef __off64_t off64_t;=0A= # 104 "/usr/include/sys/types.h" 3=0A= typedef __id_t id_t;=0A= =0A= =0A= =0A= =0A= typedef __ssize_t ssize_t;=0A= =0A= =0A= =0A= =0A= =0A= typedef __daddr_t daddr_t;=0A= typedef __caddr_t caddr_t;=0A= =0A= =0A= =0A= =0A= =0A= typedef __key_t key_t;=0A= # 136 "/usr/include/sys/types.h" 3=0A= typedef __useconds_t useconds_t;=0A= =0A= =0A= =0A= typedef __suseconds_t suseconds_t;=0A= =0A= =0A= =0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 147 "/usr/include/sys/types.h" 2 3=0A= =0A= =0A= =0A= typedef unsigned long int ulong;=0A= typedef unsigned short int ushort;=0A= typedef unsigned int uint;=0A= # 190 "/usr/include/sys/types.h" 3=0A= typedef int int8_t __attribute__ ((__mode__ (__QI__)));=0A= typedef int int16_t __attribute__ ((__mode__ (__HI__)));=0A= typedef int int32_t __attribute__ ((__mode__ (__SI__)));=0A= typedef int int64_t __attribute__ ((__mode__ (__DI__)));=0A= =0A= =0A= typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));=0A= typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));=0A= typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));=0A= typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));=0A= =0A= typedef int register_t __attribute__ ((__mode__ (__word__)));=0A= # 215 "/usr/include/sys/types.h" 3=0A= # 1 "/usr/include/sys/select.h" 1 3=0A= # 31 "/usr/include/sys/select.h" 3=0A= # 1 "/usr/include/bits/select.h" 1 3=0A= # 32 "/usr/include/sys/select.h" 2 3=0A= =0A= =0A= # 1 "/usr/include/bits/sigset.h" 1 3=0A= # 35 "/usr/include/sys/select.h" 2 3=0A= # 46 "/usr/include/sys/select.h" 3=0A= # 1 "/usr/include/bits/time.h" 1 3=0A= # 67 "/usr/include/bits/time.h" 3=0A= struct timeval=0A= {=0A= __time_t tv_sec;=0A= __suseconds_t tv_usec;=0A= };=0A= # 47 "/usr/include/sys/select.h" 2 3=0A= # 55 "/usr/include/sys/select.h" 3=0A= typedef long int __fd_mask;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef struct=0A= {=0A= =0A= =0A= =0A= __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];=0A= =0A= =0A= =0A= =0A= =0A= } fd_set;=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef __fd_mask fd_mask;=0A= # 95 "/usr/include/sys/select.h" 3=0A= extern "C" {=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int select (int __nfds, fd_set *__restrict __readfds,=0A= fd_set *__restrict __writefds,=0A= fd_set *__restrict __exceptfds,=0A= struct timeval *__restrict __timeout) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pselect (int __nfds, fd_set *__restrict __readfds,=0A= fd_set *__restrict __writefds,=0A= fd_set *__restrict __exceptfds,=0A= const struct timespec *__restrict __timeout,=0A= const __sigset_t *__restrict __sigmask) throw ();=0A= =0A= =0A= }=0A= # 216 "/usr/include/sys/types.h" 2 3=0A= =0A= =0A= # 1 "/usr/include/sys/sysmacros.h" 1 3=0A= # 219 "/usr/include/sys/types.h" 2 3=0A= =0A= =0A= =0A= =0A= typedef __blksize_t blksize_t;=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef __blkcnt_t blkcnt_t;=0A= =0A= =0A= =0A= typedef __fsblkcnt_t fsblkcnt_t;=0A= =0A= =0A= =0A= typedef __fsfilcnt_t fsfilcnt_t;=0A= # 257 "/usr/include/sys/types.h" 3=0A= typedef __blkcnt64_t blkcnt64_t;=0A= typedef __fsblkcnt64_t fsblkcnt64_t;=0A= typedef __fsfilcnt64_t fsfilcnt64_t;=0A= =0A= =0A= }=0A= # 391 "/usr/include/stdlib.h" 2 3=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long int random (void) throw ();=0A= =0A= =0A= extern void srandom (unsigned int __seed) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern char *initstate (unsigned int __seed, char *__statebuf,=0A= size_t __statelen) throw ();=0A= =0A= =0A= =0A= extern char *setstate (char *__statebuf) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= struct random_data=0A= {=0A= int32_t *fptr;=0A= int32_t *rptr;=0A= int32_t *state;=0A= int rand_type;=0A= int rand_deg;=0A= int rand_sep;=0A= int32_t *end_ptr;=0A= };=0A= =0A= extern int random_r (struct random_data *__restrict __buf,=0A= int32_t *__restrict __result) throw ();=0A= =0A= extern int srandom_r (unsigned int __seed, struct random_data *__buf) = throw ();=0A= =0A= extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,=0A= size_t __statelen,=0A= struct random_data *__restrict __buf) throw ();=0A= =0A= extern int setstate_r (char *__restrict __statebuf,=0A= struct random_data *__restrict __buf) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int rand (void) throw ();=0A= =0A= extern void srand (unsigned int __seed) throw ();=0A= =0A= =0A= =0A= extern int rand_r (unsigned int *__seed) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern double drand48 (void) throw ();=0A= extern double erand48 (unsigned short int __xsubi[3]) throw ();=0A= =0A= =0A= extern long int lrand48 (void) throw ();=0A= extern long int nrand48 (unsigned short int __xsubi[3]) throw ();=0A= =0A= =0A= extern long int mrand48 (void) throw ();=0A= extern long int jrand48 (unsigned short int __xsubi[3]) throw ();=0A= =0A= =0A= extern void srand48 (long int __seedval) throw ();=0A= extern unsigned short int *seed48 (unsigned short int __seed16v[3]) = throw ();=0A= extern void lcong48 (unsigned short int __param[7]) throw ();=0A= =0A= =0A= =0A= =0A= =0A= struct drand48_data=0A= {=0A= unsigned short int __x[3];=0A= unsigned short int __old_x[3];=0A= unsigned short int __c;=0A= unsigned short int __init;=0A= unsigned long long int __a;=0A= };=0A= =0A= =0A= extern int drand48_r (struct drand48_data *__restrict __buffer,=0A= double *__restrict __result) throw ();=0A= extern int erand48_r (unsigned short int __xsubi[3],=0A= struct drand48_data *__restrict __buffer,=0A= double *__restrict __result) throw ();=0A= =0A= =0A= extern int lrand48_r (struct drand48_data *__restrict __buffer,=0A= long int *__restrict __result) throw ();=0A= extern int nrand48_r (unsigned short int __xsubi[3],=0A= struct drand48_data *__restrict __buffer,=0A= long int *__restrict __result) throw ();=0A= =0A= =0A= extern int mrand48_r (struct drand48_data *__restrict __buffer,=0A= long int *__restrict __result) throw ();=0A= extern int jrand48_r (unsigned short int __xsubi[3],=0A= struct drand48_data *__restrict __buffer,=0A= long int *__restrict __result) throw ();=0A= =0A= =0A= extern int srand48_r (long int __seedval, struct drand48_data *__buffer)=0A= throw ();=0A= =0A= extern int seed48_r (unsigned short int __seed16v[3],=0A= struct drand48_data *__buffer) throw ();=0A= =0A= extern int lcong48_r (unsigned short int __param[7],=0A= struct drand48_data *__buffer) throw ();=0A= # 527 "/usr/include/stdlib.h" 3=0A= extern void *malloc (size_t __size) throw () __attribute__ = ((__malloc__));=0A= =0A= extern void *calloc (size_t __nmemb, size_t __size)=0A= throw () __attribute__ ((__malloc__));=0A= =0A= =0A= =0A= =0A= =0A= extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ = ((__malloc__));=0A= =0A= extern void free (void *__ptr) throw ();=0A= =0A= =0A= =0A= extern void cfree (void *__ptr) throw ();=0A= =0A= =0A= =0A= # 1 "/usr/include/alloca.h" 1 3=0A= # 25 "/usr/include/alloca.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 26 "/usr/include/alloca.h" 2 3=0A= =0A= extern "C" {=0A= =0A= =0A= =0A= =0A= =0A= extern void *alloca (size_t __size) throw ();=0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 547 "/usr/include/stdlib.h" 2 3=0A= =0A= =0A= =0A= =0A= extern void *valloc (size_t __size) throw () __attribute__ = ((__malloc__));=0A= =0A= =0A= =0A= =0A= extern int posix_memalign (void **__memptr, size_t __alignment, size_t = __size)=0A= throw () __attribute__ ((__malloc__));=0A= =0A= =0A= =0A= extern void abort (void) throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= extern int atexit (void (*__func) (void)) throw ();=0A= =0A= =0A= =0A= =0A= extern int on_exit (void (*__func) (int __status, void *__arg), void = *__arg)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern void exit (int __status) throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= extern char *getenv (__const char *__name) throw ();=0A= =0A= =0A= =0A= extern char *__secure_getenv (__const char *__name) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int putenv (char *__string) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int setenv (__const char *__name, __const char *__value, int = __replace)=0A= throw ();=0A= =0A= =0A= extern int unsetenv (__const char *__name) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int clearenv (void) throw ();=0A= # 623 "/usr/include/stdlib.h" 3=0A= extern char *mktemp (char *__template) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int mkstemp (char *__template) throw ();=0A= # 640 "/usr/include/stdlib.h" 3=0A= extern int mkstemp64 (char *__template) throw ();=0A= # 650 "/usr/include/stdlib.h" 3=0A= extern char *mkdtemp (char *__template) throw ();=0A= =0A= =0A= =0A= =0A= extern int system (__const char *__command) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern char *canonicalize_file_name (__const char *__name) throw ();=0A= # 672 "/usr/include/stdlib.h" 3=0A= extern char *realpath (__const char *__restrict __name,=0A= char *__restrict __resolved) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef int (*__compar_fn_t) (__const void *, __const void *);=0A= =0A= =0A= typedef __compar_fn_t comparison_fn_t;=0A= =0A= =0A= =0A= =0A= =0A= extern void *bsearch (__const void *__key, __const void *__base,=0A= size_t __nmemb, size_t __size, __compar_fn_t = __compar);=0A= =0A= =0A= =0A= extern void qsort (void *__base, size_t __nmemb, size_t __size,=0A= __compar_fn_t __compar);=0A= =0A= =0A= =0A= extern int abs (int __x) throw () __attribute__ ((__const__));=0A= extern long int labs (long int __x) throw () __attribute__ ((__const__));=0A= =0A= __extension__ extern long long int llabs (long long int __x)=0A= throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern div_t div (int __numer, int __denom)=0A= throw () __attribute__ ((__const__));=0A= extern ldiv_t ldiv (long int __numer, long int __denom)=0A= throw () __attribute__ ((__const__));=0A= =0A= __extension__ extern lldiv_t lldiv (long long int __numer,=0A= long long int __denom)=0A= throw () __attribute__ ((__const__));=0A= # 728 "/usr/include/stdlib.h" 3=0A= extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,=0A= int *__restrict __sign) throw ();=0A= =0A= =0A= =0A= =0A= extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,=0A= int *__restrict __sign) throw ();=0A= =0A= =0A= =0A= =0A= extern char *gcvt (double __value, int __ndigit, char *__buf) throw ();=0A= =0A= =0A= =0A= =0A= extern char *qecvt (long double __value, int __ndigit,=0A= int *__restrict __decpt, int *__restrict __sign) = throw ();=0A= extern char *qfcvt (long double __value, int __ndigit,=0A= int *__restrict __decpt, int *__restrict __sign) = throw ();=0A= extern char *qgcvt (long double __value, int __ndigit, char *__buf) = throw ();=0A= =0A= =0A= =0A= =0A= extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,=0A= int *__restrict __sign, char *__restrict __buf,=0A= size_t __len) throw ();=0A= extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,=0A= int *__restrict __sign, char *__restrict __buf,=0A= size_t __len) throw ();=0A= =0A= extern int qecvt_r (long double __value, int __ndigit,=0A= int *__restrict __decpt, int *__restrict __sign,=0A= char *__restrict __buf, size_t __len) throw ();=0A= extern int qfcvt_r (long double __value, int __ndigit,=0A= int *__restrict __decpt, int *__restrict __sign,=0A= char *__restrict __buf, size_t __len) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int mblen (__const char *__s, size_t __n) throw ();=0A= =0A= =0A= extern int mbtowc (wchar_t *__restrict __pwc,=0A= __const char *__restrict __s, size_t __n) throw ();=0A= =0A= =0A= extern int wctomb (char *__s, wchar_t __wchar) throw ();=0A= =0A= =0A= =0A= extern size_t mbstowcs (wchar_t *__restrict __pwcs,=0A= __const char *__restrict __s, size_t __n) throw = ();=0A= =0A= extern size_t wcstombs (char *__restrict __s,=0A= __const wchar_t *__restrict __pwcs, size_t __n)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int rpmatch (__const char *__response) throw ();=0A= # 808 "/usr/include/stdlib.h" 3=0A= extern int getsubopt (char **__restrict __optionp,=0A= char *__const *__restrict __tokens,=0A= char **__restrict __valuep) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern void setkey (__const char *__key) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int posix_openpt (int __oflag) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int grantpt (int __fd) throw ();=0A= =0A= =0A= =0A= extern int unlockpt (int __fd) throw ();=0A= =0A= =0A= =0A= =0A= extern char *ptsname (int __fd) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int ptsname_r (int __fd, char *__buf, size_t __buflen) throw ();=0A= =0A= =0A= extern int getpt (void) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int getloadavg (double __loadavg[], int __nelem) throw ();=0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 53 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 2 3=0A= # 84 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 3=0A= namespace std=0A= {=0A= using ::div_t;=0A= using ::ldiv_t;=0A= =0A= using ::abort;=0A= using ::abs;=0A= using ::atexit;=0A= using ::atof;=0A= using ::atoi;=0A= using ::atol;=0A= using ::bsearch;=0A= using ::calloc;=0A= using ::div;=0A= using ::exit;=0A= using ::free;=0A= using ::getenv;=0A= using ::labs;=0A= using ::ldiv;=0A= using ::malloc;=0A= using ::mblen;=0A= using ::mbstowcs;=0A= using ::mbtowc;=0A= using ::qsort;=0A= using ::rand;=0A= using ::realloc;=0A= using ::srand;=0A= using ::strtod;=0A= using ::strtol;=0A= using ::strtoul;=0A= using ::system;=0A= using ::wcstombs;=0A= using ::wctomb;=0A= =0A= inline long=0A= abs(long __i) { return labs(__i); }=0A= =0A= inline ldiv_t=0A= div(long __i, long __j) { return ldiv(__i, __j); }=0A= }=0A= # 136 "/usr/local/gcc3.1/include/g++-v3/cstdlib" 3=0A= namespace __gnu_cxx=0A= {=0A= using ::lldiv_t;=0A= using ::_Exit;=0A= =0A= inline long long=0A= abs(long long __x) { return __x >=3D 0 ? __x : -__x; }=0A= =0A= inline long long=0A= llabs(long long __x) { return __x >=3D 0 ? __x : -__x; }=0A= =0A= inline lldiv_t=0A= div(long long __n, long long __d)=0A= { lldiv_t __q; __q.quot =3D __n / __d; __q.rem =3D __n % __d; return = __q; }=0A= =0A= inline lldiv_t=0A= lldiv(long long __n, long long __d)=0A= { lldiv_t __q; __q.quot =3D __n / __d; __q.rem =3D __n % __d; return = __q; }=0A= =0A= using ::atoll;=0A= using ::strtof;=0A= using ::strtoll;=0A= using ::strtoull;=0A= using ::strtold;=0A= }=0A= =0A= namespace std=0A= {=0A= using __gnu_cxx::lldiv_t;=0A= using __gnu_cxx::_Exit;=0A= using __gnu_cxx::abs;=0A= using __gnu_cxx::llabs;=0A= using __gnu_cxx::div;=0A= using __gnu_cxx::lldiv;=0A= using __gnu_cxx::atoll;=0A= using __gnu_cxx::strtof;=0A= using __gnu_cxx::strtoll;=0A= using __gnu_cxx::strtoull;=0A= using __gnu_cxx::strtold;=0A= }=0A= # 68 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/new" 1 3=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/new" 3=0A= extern "C++" {=0A= =0A= namespace std=0A= {=0A= =0A= =0A= class bad_alloc : public exception=0A= {=0A= public:=0A= bad_alloc() throw() { }=0A= =0A= =0A= virtual ~bad_alloc() throw();=0A= };=0A= =0A= struct nothrow_t { };=0A= extern const nothrow_t nothrow;=0A= =0A= =0A= typedef void (*new_handler)();=0A= =0A= new_handler set_new_handler(new_handler);=0A= }=0A= # 79 "/usr/local/gcc3.1/include/g++-v3/new" 3=0A= void* operator new(std::size_t) throw (std::bad_alloc);=0A= void* operator new[](std::size_t) throw (std::bad_alloc);=0A= void operator delete(void*) throw();=0A= void operator delete[](void*) throw();=0A= void* operator new(std::size_t, const std::nothrow_t&) throw();=0A= void* operator new[](std::size_t, const std::nothrow_t&) throw();=0A= void operator delete(void*, const std::nothrow_t&) throw();=0A= void operator delete[](void*, const std::nothrow_t&) throw();=0A= =0A= =0A= inline void* operator new(std::size_t, void* __p) throw() { return __p; }=0A= inline void* operator new[](std::size_t, void* __p) throw() { return = __p; }=0A= =0A= }=0A= # 70 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_pair.h" 1 3=0A= # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_pair.h" 3=0A= namespace std=0A= {=0A= =0A= =0A= template =0A= struct pair {=0A= typedef _T1 first_type;=0A= typedef _T2 second_type;=0A= =0A= _T1 first;=0A= _T2 second;=0A= =0A= =0A= =0A= =0A= pair() : first(), second() {}=0A= =0A= =0A= =0A= =0A= pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {}=0A= =0A= =0A= template =0A= pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) = {}=0A= };=0A= =0A= =0A= template =0A= inline bool operator=3D=3D(const pair<_T1, _T2>& __x, const pair<_T1, = _T2>& __y)=0A= {=0A= return __x.first =3D=3D __y.first && __x.second =3D=3D __y.second;=0A= }=0A= =0A= =0A= template =0A= inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& = __y)=0A= {=0A= return __x.first < __y.first ||=0A= (!(__y.first < __x.first) && __x.second < __y.second);=0A= }=0A= =0A= =0A= template =0A= inline bool operator!=3D(const pair<_T1, _T2>& __x, const pair<_T1, = _T2>& __y) {=0A= return !(__x =3D=3D __y);=0A= }=0A= =0A= =0A= template =0A= inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& = __y) {=0A= return __y < __x;=0A= }=0A= =0A= =0A= template =0A= inline bool operator<=3D(const pair<_T1, _T2>& __x, const pair<_T1, = _T2>& __y) {=0A= return !(__y < __x);=0A= }=0A= =0A= =0A= template =0A= inline bool operator>=3D(const pair<_T1, _T2>& __x, const pair<_T1, = _T2>& __y) {=0A= return !(__x < __y);=0A= }=0A= # 140 "/usr/local/gcc3.1/include/g++-v3/bits/stl_pair.h" 3=0A= template =0A= =0A= =0A= inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y)=0A= =0A= =0A= =0A= {=0A= return pair<_T1, _T2>(__x, __y);=0A= }=0A= =0A= }=0A= # 72 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/type_traits.h" 1 3=0A= # 53 "/usr/local/gcc3.1/include/g++-v3/bits/type_traits.h" 3=0A= # 90 "/usr/local/gcc3.1/include/g++-v3/bits/type_traits.h" 3=0A= struct __true_type {};=0A= struct __false_type {};=0A= =0A= template =0A= struct __type_traits {=0A= typedef __true_type this_dummy_member_must_be_first;=0A= # 113 "/usr/local/gcc3.1/include/g++-v3/bits/type_traits.h" 3=0A= typedef __false_type has_trivial_default_constructor;=0A= typedef __false_type has_trivial_copy_constructor;=0A= typedef __false_type has_trivial_assignment_operator;=0A= typedef __false_type has_trivial_destructor;=0A= typedef __false_type is_POD_type;=0A= };=0A= =0A= =0A= =0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template<> struct __type_traits {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= template =0A= struct __type_traits<_Tp*> {=0A= typedef __true_type has_trivial_default_constructor;=0A= typedef __true_type has_trivial_copy_constructor;=0A= typedef __true_type has_trivial_assignment_operator;=0A= typedef __true_type has_trivial_destructor;=0A= typedef __true_type is_POD_type;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template struct _Is_integer {=0A= typedef __false_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template<> struct _Is_integer {=0A= typedef __true_type _Integral;=0A= };=0A= =0A= template struct _Is_normal_iterator {=0A= typedef __false_type _Normal;=0A= };=0A= =0A= =0A= namespace __gnu_cxx=0A= {=0A= template class = __normal_iterator;=0A= }=0A= =0A= template=0A= struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, = _Container> > {=0A= typedef __true_type _Normal;=0A= };=0A= # 73 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_types.h" 1 3=0A= # 68 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_types.h" 3=0A= =0A= namespace std=0A= {=0A= # 80 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_types.h" 3=0A= struct input_iterator_tag {};=0A= =0A= struct output_iterator_tag {};=0A= =0A= struct forward_iterator_tag : public input_iterator_tag {};=0A= =0A= struct bidirectional_iterator_tag : public forward_iterator_tag {};=0A= =0A= struct random_access_iterator_tag : public bidirectional_iterator_tag = {};=0A= # 100 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_types.h" 3=0A= template=0A= struct iterator {=0A= =0A= typedef _Category iterator_category;=0A= =0A= typedef _Tp value_type;=0A= =0A= typedef _Distance difference_type;=0A= =0A= typedef _Pointer pointer;=0A= =0A= typedef _Reference reference;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= struct iterator_traits {=0A= typedef typename _Iterator::iterator_category iterator_category;=0A= typedef typename _Iterator::value_type value_type;=0A= typedef typename _Iterator::difference_type difference_type;=0A= typedef typename _Iterator::pointer pointer;=0A= typedef typename _Iterator::reference reference;=0A= };=0A= =0A= template=0A= struct iterator_traits<_Tp*> {=0A= typedef random_access_iterator_tag iterator_category;=0A= typedef _Tp value_type;=0A= typedef ptrdiff_t difference_type;=0A= typedef _Tp* pointer;=0A= typedef _Tp& reference;=0A= };=0A= =0A= template=0A= struct iterator_traits {=0A= typedef random_access_iterator_tag iterator_category;=0A= typedef _Tp value_type;=0A= typedef ptrdiff_t difference_type;=0A= typedef const _Tp* pointer;=0A= typedef const _Tp& reference;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= inline typename iterator_traits<_Iter>::iterator_category=0A= __iterator_category(const _Iter&)=0A= { return typename iterator_traits<_Iter>::iterator_category(); }=0A= =0A= }=0A= # 74 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 1 3=0A= # 68 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/concept_check.h" 1 3=0A= # 39 "/usr/local/gcc3.1/include/g++-v3/bits/concept_check.h" 3=0A= # 69 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 2 = 3=0A= =0A= =0A= =0A= =0A= namespace std=0A= {=0A= template=0A= inline typename iterator_traits<_InputIterator>::difference_type=0A= __distance(_InputIterator __first, _InputIterator __last, = input_iterator_tag)=0A= {=0A= =0A= =0A= =0A= typename iterator_traits<_InputIterator>::difference_type __n =3D 0;=0A= while (__first !=3D __last) {=0A= ++__first; ++__n;=0A= }=0A= return __n;=0A= }=0A= =0A= template=0A= inline typename iterator_traits<_RandomAccessIterator>::difference_type=0A= __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,=0A= random_access_iterator_tag)=0A= {=0A= =0A= =0A= return __last - __first;=0A= }=0A= # 111 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 3=0A= template=0A= inline typename iterator_traits<_InputIterator>::difference_type=0A= distance(_InputIterator __first, _InputIterator __last)=0A= {=0A= =0A= return __distance(__first, __last, __iterator_category(__first));=0A= }=0A= =0A= template=0A= inline void=0A= __advance(_InputIter& __i, _Distance __n, input_iterator_tag)=0A= {=0A= =0A= =0A= while (__n--) ++__i;=0A= }=0A= =0A= template=0A= inline void=0A= __advance(_BidirectionalIterator& __i, _Distance __n,=0A= bidirectional_iterator_tag)=0A= {=0A= =0A= =0A= =0A= if (__n > 0)=0A= while (__n--) ++__i;=0A= else=0A= while (__n++) --__i;=0A= }=0A= =0A= template=0A= inline void=0A= __advance(_RandomAccessIterator& __i, _Distance __n,=0A= random_access_iterator_tag)=0A= {=0A= =0A= =0A= __i +=3D __n;=0A= }=0A= # 164 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator_base_funcs.h" 3=0A= template=0A= inline void=0A= advance(_InputIterator& __i, _Distance __n)=0A= {=0A= =0A= __advance(__i, __n, __iterator_category(__i));=0A= }=0A= =0A= }=0A= # 75 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 1 3=0A= # 68 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= namespace std=0A= {=0A= # 89 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= class reverse_iterator=0A= : public iterator::iterator_category,=0A= typename iterator_traits<_Iterator>::value_type,=0A= typename = iterator_traits<_Iterator>::difference_type,=0A= typename iterator_traits<_Iterator>::pointer,=0A= typename iterator_traits<_Iterator>::reference>=0A= {=0A= protected:=0A= _Iterator current;=0A= =0A= public:=0A= typedef _Iterator iterator_type;=0A= typedef typename iterator_traits<_Iterator>::difference_type=0A= = difference_type;=0A= typedef typename iterator_traits<_Iterator>::reference reference;=0A= typedef typename iterator_traits<_Iterator>::pointer pointer;=0A= =0A= public:=0A= =0A= =0A= =0A= reverse_iterator() { }=0A= =0A= =0A= =0A= =0A= explicit=0A= reverse_iterator(iterator_type __x) : current(__x) { }=0A= =0A= =0A= =0A= =0A= reverse_iterator(const reverse_iterator& __x)=0A= : current(__x.current) { }=0A= =0A= =0A= =0A= =0A= =0A= template=0A= reverse_iterator(const reverse_iterator<_Iter>& __x)=0A= : current(__x.base()) { }=0A= =0A= =0A= =0A= =0A= iterator_type=0A= base() const { return current; }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reference=0A= operator*() const=0A= {=0A= _Iterator __tmp =3D current;=0A= return *--__tmp;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= pointer=0A= operator->() const { return &(operator*()); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator&=0A= operator++()=0A= {=0A= --current;=0A= return *this;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator=0A= operator++(int)=0A= {=0A= reverse_iterator __tmp =3D *this;=0A= --current;=0A= return __tmp;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator&=0A= operator--()=0A= {=0A= ++current;=0A= return *this;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator operator--(int)=0A= {=0A= reverse_iterator __tmp =3D *this;=0A= ++current;=0A= return __tmp;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator=0A= operator+(difference_type __n) const=0A= { return reverse_iterator(current - __n); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator&=0A= operator+=3D(difference_type __n)=0A= {=0A= current -=3D __n;=0A= return *this;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator=0A= operator-(difference_type __n) const=0A= { return reverse_iterator(current + __n); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator&=0A= operator-=3D(difference_type __n)=0A= {=0A= current +=3D __n;=0A= return *this;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reference=0A= operator[](difference_type __n) const { return *(*this + __n); }=0A= };=0A= # 269 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= inline bool=0A= operator=3D=3D(const reverse_iterator<_Iterator>& __x,=0A= const reverse_iterator<_Iterator>& __y)=0A= { return __x.base() =3D=3D __y.base(); }=0A= =0A= template=0A= inline bool=0A= operator<(const reverse_iterator<_Iterator>& __x,=0A= const reverse_iterator<_Iterator>& __y)=0A= { return __y.base() < __x.base(); }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const reverse_iterator<_Iterator>& __x,=0A= const reverse_iterator<_Iterator>& __y)=0A= { return !(__x =3D=3D __y); }=0A= =0A= template=0A= inline bool=0A= operator>(const reverse_iterator<_Iterator>& __x,=0A= const reverse_iterator<_Iterator>& __y)=0A= { return __y < __x; }=0A= =0A= template=0A= inline bool=0A= operator<=3D(const reverse_iterator<_Iterator>& __x,=0A= const reverse_iterator<_Iterator>& __y)=0A= { return !(__y < __x); }=0A= =0A= template=0A= inline bool=0A= operator>=3D(const reverse_iterator<_Iterator>& __x,=0A= const reverse_iterator<_Iterator>& __y)=0A= { return !(__x < __y); }=0A= =0A= template=0A= inline typename reverse_iterator<_Iterator>::difference_type=0A= operator-(const reverse_iterator<_Iterator>& __x,=0A= const reverse_iterator<_Iterator>& __y)=0A= { return __y.base() - __x.base(); }=0A= =0A= template=0A= inline reverse_iterator<_Iterator>=0A= operator+(typename reverse_iterator<_Iterator>::difference_type __n,=0A= const reverse_iterator<_Iterator>& __x)=0A= { return reverse_iterator<_Iterator>(__x.base() - __n); }=0A= # 327 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= class back_insert_iterator=0A= : public iterator=0A= {=0A= protected:=0A= _Container* container;=0A= =0A= public:=0A= =0A= typedef _Container container_type;=0A= =0A= =0A= explicit=0A= back_insert_iterator(_Container& __x) : container(&__x) { }=0A= # 353 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= back_insert_iterator&=0A= operator=3D(typename _Container::const_reference __value)=0A= {=0A= container->push_back(__value);=0A= return *this;=0A= }=0A= =0A= =0A= back_insert_iterator&=0A= operator*() { return *this; }=0A= =0A= =0A= back_insert_iterator&=0A= operator++() { return *this; }=0A= =0A= =0A= back_insert_iterator=0A= operator++(int) { return *this; }=0A= };=0A= # 384 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= inline back_insert_iterator<_Container>=0A= back_inserter(_Container& __x)=0A= { return back_insert_iterator<_Container>(__x); }=0A= # 397 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= class front_insert_iterator=0A= : public iterator=0A= {=0A= protected:=0A= _Container* container;=0A= =0A= public:=0A= =0A= typedef _Container container_type;=0A= =0A= =0A= explicit front_insert_iterator(_Container& __x) : container(&__x) = { }=0A= # 422 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= front_insert_iterator&=0A= operator=3D(typename _Container::const_reference __value)=0A= {=0A= container->push_front(__value);=0A= return *this;=0A= }=0A= =0A= =0A= front_insert_iterator&=0A= operator*() { return *this; }=0A= =0A= =0A= front_insert_iterator&=0A= operator++() { return *this; }=0A= =0A= =0A= front_insert_iterator=0A= operator++(int) { return *this; }=0A= };=0A= # 453 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= inline front_insert_iterator<_Container>=0A= front_inserter(_Container& __x)=0A= { return front_insert_iterator<_Container>(__x); }=0A= # 470 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= class insert_iterator=0A= : public iterator=0A= {=0A= protected:=0A= _Container* container;=0A= typename _Container::iterator iter;=0A= =0A= public:=0A= =0A= typedef _Container container_type;=0A= =0A= =0A= =0A= =0A= =0A= insert_iterator(_Container& __x, typename _Container::iterator __i)=0A= : container(&__x), iter(__i) {}=0A= # 512 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= insert_iterator&=0A= operator=3D(const typename _Container::const_reference __value)=0A= {=0A= iter =3D container->insert(iter, __value);=0A= ++iter;=0A= return *this;=0A= }=0A= =0A= =0A= insert_iterator&=0A= operator*() { return *this; }=0A= =0A= =0A= insert_iterator&=0A= operator++() { return *this; }=0A= =0A= =0A= insert_iterator&=0A= operator++(int) { return *this; }=0A= };=0A= # 544 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= inline insert_iterator<_Container>=0A= inserter(_Container& __x, _Iterator __i)=0A= {=0A= return insert_iterator<_Container>(__x,=0A= typename = _Container::iterator(__i));=0A= }=0A= }=0A= =0A= namespace __gnu_cxx=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= using std::iterator_traits;=0A= using std::iterator;=0A= template=0A= class __normal_iterator=0A= : public iterator::iterator_category,=0A= typename iterator_traits<_Iterator>::value_type,=0A= typename = iterator_traits<_Iterator>::difference_type,=0A= typename iterator_traits<_Iterator>::pointer,=0A= typename iterator_traits<_Iterator>::reference>=0A= {=0A= protected:=0A= _Iterator _M_current;=0A= =0A= public:=0A= typedef typename iterator_traits<_Iterator>::difference_type=0A= = difference_type;=0A= typedef typename iterator_traits<_Iterator>::reference reference;=0A= typedef typename iterator_traits<_Iterator>::pointer pointer;=0A= =0A= __normal_iterator() : _M_current(_Iterator()) { }=0A= =0A= explicit=0A= __normal_iterator(const _Iterator& __i) : _M_current(__i) { }=0A= =0A= =0A= template=0A= inline __normal_iterator(const __normal_iterator<_Iter, = _Container>& __i)=0A= : _M_current(__i.base()) { }=0A= =0A= =0A= reference=0A= operator*() const { return *_M_current; }=0A= =0A= pointer=0A= operator->() const { return _M_current; }=0A= =0A= __normal_iterator&=0A= operator++() { ++_M_current; return *this; }=0A= =0A= __normal_iterator=0A= operator++(int) { return __normal_iterator(_M_current++); }=0A= =0A= =0A= __normal_iterator&=0A= operator--() { --_M_current; return *this; }=0A= =0A= __normal_iterator=0A= operator--(int) { return __normal_iterator(_M_current--); }=0A= =0A= =0A= reference=0A= operator[](const difference_type& __n) const=0A= { return _M_current[__n]; }=0A= =0A= __normal_iterator&=0A= operator+=3D(const difference_type& __n)=0A= { _M_current +=3D __n; return *this; }=0A= =0A= __normal_iterator=0A= operator+(const difference_type& __n) const=0A= { return __normal_iterator(_M_current + __n); }=0A= =0A= __normal_iterator&=0A= operator-=3D(const difference_type& __n)=0A= { _M_current -=3D __n; return *this; }=0A= =0A= __normal_iterator=0A= operator-(const difference_type& __n) const=0A= { return __normal_iterator(_M_current - __n); }=0A= =0A= difference_type=0A= operator-(const __normal_iterator& __i) const=0A= { return _M_current - __i._M_current; }=0A= =0A= const _Iterator&=0A= base() const { return _M_current; }=0A= };=0A= # 649 "/usr/local/gcc3.1/include/g++-v3/bits/stl_iterator.h" 3=0A= template=0A= inline bool=0A= operator=3D=3D(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A= const __normal_iterator<_IteratorR, _Container>& __rhs)=0A= { return __lhs.base() =3D=3D __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const __normal_iterator<_Iterator, _Container>& __lhs,=0A= const __normal_iterator<_Iterator, _Container>& __rhs)=0A= { return __lhs.base() =3D=3D __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A= const __normal_iterator<_IteratorR, _Container>& __rhs)=0A= { return __lhs.base() !=3D __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const __normal_iterator<_Iterator, _Container>& __lhs,=0A= const __normal_iterator<_Iterator, _Container>& __rhs)=0A= { return __lhs.base() !=3D __rhs.base(); }=0A= =0A= =0A= template=0A= inline bool=0A= operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A= const __normal_iterator<_IteratorR, _Container>& __rhs)=0A= { return __lhs.base() < __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator<(const __normal_iterator<_Iterator, _Container>& __lhs,=0A= const __normal_iterator<_Iterator, _Container>& __rhs)=0A= { return __lhs.base() < __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A= const __normal_iterator<_IteratorR, _Container>& __rhs)=0A= { return __lhs.base() > __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator>(const __normal_iterator<_Iterator, _Container>& __lhs,=0A= const __normal_iterator<_Iterator, _Container>& __rhs)=0A= { return __lhs.base() > __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator<=3D(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A= const __normal_iterator<_IteratorR, _Container>& __rhs)=0A= { return __lhs.base() <=3D __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator<=3D(const __normal_iterator<_Iterator, _Container>& __lhs,=0A= const __normal_iterator<_Iterator, _Container>& __rhs)=0A= { return __lhs.base() <=3D __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator>=3D(const __normal_iterator<_IteratorL, _Container>& __lhs,=0A= const __normal_iterator<_IteratorR, _Container>& __rhs)=0A= { return __lhs.base() >=3D __rhs.base(); }=0A= =0A= template=0A= inline bool=0A= operator>=3D(const __normal_iterator<_Iterator, _Container>& __lhs,=0A= const __normal_iterator<_Iterator, _Container>& __rhs)=0A= { return __lhs.base() >=3D __rhs.base(); }=0A= =0A= template=0A= inline __normal_iterator<_Iterator, _Container>=0A= operator+(typename __normal_iterator<_Iterator, = _Container>::difference_type __n,=0A= const __normal_iterator<_Iterator, _Container>& __i)=0A= { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }=0A= }=0A= # 76 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 2 3=0A= =0A= =0A= namespace std=0A= {=0A= # 91 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline void=0A= iter_swap(_ForwardIter1 __a, _ForwardIter2 __b)=0A= {=0A= typedef typename iterator_traits<_ForwardIter1>::value_type = _ValueType1;=0A= typedef typename iterator_traits<_ForwardIter2>::value_type = _ValueType2;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= _ValueType1 __tmp =3D *__a;=0A= *__a =3D *__b;=0A= *__b =3D __tmp;=0A= }=0A= # 118 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline void=0A= swap(_Tp& __a, _Tp& __b)=0A= {=0A= =0A= =0A= =0A= _Tp __tmp =3D __a;=0A= __a =3D __b;=0A= __b =3D __tmp;=0A= }=0A= # 146 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline const _Tp&=0A= min(const _Tp& __a, const _Tp& __b)=0A= {=0A= =0A= =0A= =0A= if (__b < __a) return __b; return __a;=0A= }=0A= # 166 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline const _Tp&=0A= max(const _Tp& __a, const _Tp& __b)=0A= {=0A= =0A= =0A= =0A= if (__a < __b) return __b; return __a;=0A= }=0A= # 186 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline const _Tp&=0A= min(const _Tp& __a, const _Tp& __b, _Compare __comp)=0A= {=0A= =0A= if (__comp(__b, __a)) return __b; return __a;=0A= }=0A= # 204 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline const _Tp&=0A= max(const _Tp& __a, const _Tp& __b, _Compare __comp)=0A= {=0A= =0A= if (__comp(__a, __b)) return __b; return __a;=0A= }=0A= # 221 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline _OutputIter=0A= __copy(_InputIter __first, _InputIter __last,=0A= _OutputIter __result,=0A= input_iterator_tag)=0A= {=0A= for ( ; __first !=3D __last; ++__result, ++__first)=0A= *__result =3D *__first;=0A= return __result;=0A= }=0A= =0A= template=0A= inline _OutputIter=0A= __copy(_RandomAccessIter __first, _RandomAccessIter __last,=0A= _OutputIter __result,=0A= random_access_iterator_tag)=0A= {=0A= typedef typename = iterator_traits<_RandomAccessIter>::difference_type=0A= _Distance;=0A= for (_Distance __n =3D __last - __first; __n > 0; --__n) {=0A= *__result =3D *__first;=0A= ++__first;=0A= ++__result;=0A= }=0A= return __result;=0A= }=0A= =0A= template=0A= inline _Tp*=0A= __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result)=0A= {=0A= memmove(__result, __first, sizeof(_Tp) * (__last - __first));=0A= return __result + (__last - __first);=0A= }=0A= =0A= template=0A= inline _OutputIter=0A= __copy_aux2(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, __false_type)=0A= { return __copy(__first, __last, __result, = __iterator_category(__first)); }=0A= =0A= template=0A= inline _OutputIter=0A= __copy_aux2(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, __true_type)=0A= { return __copy(__first, __last, __result, = __iterator_category(__first)); }=0A= =0A= template=0A= inline _Tp*=0A= __copy_aux2(_Tp* __first, _Tp* __last,=0A= _Tp* __result, __true_type)=0A= { return __copy_trivial(__first, __last, __result); }=0A= =0A= template=0A= inline _Tp*=0A= __copy_aux2(const _Tp* __first, const _Tp* __last,=0A= _Tp* __result, __true_type)=0A= { return __copy_trivial(__first, __last, __result); }=0A= =0A= template=0A= inline _OutputIter=0A= __copy_ni2(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, __true_type)=0A= {=0A= typedef typename iterator_traits<_InputIter>::value_type=0A= _ValueType;=0A= typedef typename = __type_traits<_ValueType>::has_trivial_assignment_operator=0A= _Trivial;=0A= return _OutputIter(__copy_aux2(__first, __last,=0A= __result.base(),=0A= _Trivial()));=0A= }=0A= =0A= template=0A= inline _OutputIter=0A= __copy_ni2(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, __false_type)=0A= {=0A= typedef typename iterator_traits<_InputIter>::value_type=0A= _ValueType;=0A= typedef typename = __type_traits<_ValueType>::has_trivial_assignment_operator=0A= _Trivial;=0A= return __copy_aux2(__first, __last,=0A= __result,=0A= _Trivial());=0A= }=0A= =0A= template=0A= inline _OutputIter=0A= __copy_ni1(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, __true_type)=0A= {=0A= typedef typename _Is_normal_iterator<_OutputIter>::_Normal = __Normal;=0A= return __copy_ni2(__first.base(), __last.base(), __result, = __Normal());=0A= }=0A= =0A= template=0A= inline _OutputIter=0A= __copy_ni1(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, __false_type)=0A= {=0A= typedef typename _Is_normal_iterator<_OutputIter>::_Normal = __Normal;=0A= return __copy_ni2(__first, __last, __result, __Normal());=0A= }=0A= # 339 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline _OutputIter=0A= copy(_InputIter __first, _InputIter __last, _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= typedef typename _Is_normal_iterator<_InputIter>::_Normal = __Normal;=0A= return __copy_ni1(__first, __last, __result, __Normal());=0A= }=0A= =0A= =0A= =0A= =0A= template=0A= inline _BidirectionalIter2=0A= __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 = __last,=0A= _BidirectionalIter2 __result,=0A= bidirectional_iterator_tag)=0A= {=0A= while (__first !=3D __last)=0A= *--__result =3D *--__last;=0A= return __result;=0A= }=0A= =0A= template=0A= inline _BidirectionalIter=0A= __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last,=0A= _BidirectionalIter __result,=0A= random_access_iterator_tag)=0A= {=0A= typename iterator_traits<_RandomAccessIter>::difference_type __n;=0A= for (__n =3D __last - __first; __n > 0; --__n)=0A= *--__result =3D *--__last;=0A= return __result;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= struct __copy_backward_dispatch=0A= {=0A= static _BidirectionalIter2=0A= copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last,=0A= _BidirectionalIter2 __result)=0A= {=0A= return __copy_backward(__first, __last,=0A= __result,=0A= __iterator_category(__first));=0A= }=0A= };=0A= =0A= template=0A= struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type>=0A= {=0A= static _Tp*=0A= copy(const _Tp* __first, const _Tp* __last, _Tp* __result)=0A= {=0A= const ptrdiff_t _Num =3D __last - __first;=0A= memmove(__result - _Num, __first, sizeof(_Tp) * _Num);=0A= return __result - _Num;=0A= }=0A= };=0A= =0A= template=0A= struct __copy_backward_dispatch=0A= {=0A= static _Tp*=0A= copy(const _Tp* __first, const _Tp* __last, _Tp* __result)=0A= {=0A= return __copy_backward_dispatch<_Tp*, _Tp*, __true_type>=0A= ::copy(__first, __last, __result);=0A= }=0A= };=0A= =0A= template=0A= inline _BI2=0A= __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)=0A= {=0A= typedef typename __type_traits::value_type>=0A= ::has_trivial_assignment_operator _Trivial;=0A= return __copy_backward_dispatch<_BI1, _BI2, _Trivial>=0A= ::copy(__first, __last, __result);=0A= }=0A= =0A= template =0A= inline _BI2=0A= __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,=0A= _BI2 __result, __true_type)=0A= { return _BI2(__copy_backward_aux(__first, __last, = __result.base())); }=0A= =0A= template =0A= inline _BI2=0A= __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,=0A= _BI2 __result, __false_type)=0A= { return __copy_backward_aux(__first, __last, __result); }=0A= =0A= template =0A= inline _BI2=0A= __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,=0A= _BI2 __result, __true_type)=0A= {=0A= typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;=0A= return __copy_backward_output_normal_iterator(__first.base(), = __last.base(),=0A= __result, = __Normal());=0A= }=0A= =0A= template =0A= inline _BI2=0A= __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,=0A= _BI2 __result, __false_type)=0A= {=0A= typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;=0A= return __copy_backward_output_normal_iterator(__first, __last, = __result,=0A= __Normal());=0A= }=0A= # 477 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template =0A= inline _BI2=0A= copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal;=0A= return __copy_backward_input_normal_iterator(__first, __last, = __result,=0A= __Normal());=0A= }=0A= # 509 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= void=0A= fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value)=0A= {=0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first)=0A= *__first =3D __value;=0A= }=0A= # 531 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= _OutputIter=0A= fill_n(_OutputIter __first, _Size __n, const _Tp& __value)=0A= {=0A= =0A= =0A= =0A= for ( ; __n > 0; --__n, ++__first)=0A= *__first =3D __value;=0A= return __first;=0A= }=0A= =0A= =0A= =0A= inline void=0A= fill(unsigned char* __first, unsigned char* __last, const unsigned = char& __c)=0A= {=0A= unsigned char __tmp =3D __c;=0A= memset(__first, __tmp, __last - __first);=0A= }=0A= =0A= inline void=0A= fill(signed char* __first, signed char* __last, const signed char& __c)=0A= {=0A= signed char __tmp =3D __c;=0A= memset(__first, static_cast(__tmp), __last - __first);=0A= }=0A= =0A= inline void=0A= fill(char* __first, char* __last, const char& __c)=0A= {=0A= char __tmp =3D __c;=0A= memset(__first, static_cast(__tmp), __last - __first);=0A= }=0A= =0A= template=0A= inline unsigned char*=0A= fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)=0A= {=0A= fill(__first, __first + __n, __c);=0A= return __first + __n;=0A= }=0A= =0A= template=0A= inline signed char*=0A= fill_n(char* __first, _Size __n, const signed char& __c)=0A= {=0A= fill(__first, __first + __n, __c);=0A= return __first + __n;=0A= }=0A= =0A= template=0A= inline char*=0A= fill_n(char* __first, _Size __n, const char& __c)=0A= {=0A= fill(__first, __first + __n, __c);=0A= return __first + __n;=0A= }=0A= # 606 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= pair<_InputIter1, _InputIter2>=0A= mismatch(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && *__first1 =3D=3D *__first2) {=0A= ++__first1;=0A= ++__first2;=0A= }=0A= return pair<_InputIter1, _InputIter2>(__first1, __first2);=0A= }=0A= # 640 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= pair<_InputIter1, _InputIter2>=0A= mismatch(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2,=0A= _BinaryPredicate __binary_pred)=0A= {=0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __binary_pred(*__first1, = *__first2)) {=0A= ++__first1;=0A= ++__first2;=0A= }=0A= return pair<_InputIter1, _InputIter2>(__first1, __first2);=0A= }=0A= # 668 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline bool=0A= equal(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first1 !=3D __last1; ++__first1, ++__first2)=0A= if (!(*__first1 =3D=3D *__first2))=0A= return false;=0A= return true;=0A= }=0A= # 699 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= inline bool=0A= equal(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2,=0A= _BinaryPredicate __binary_pred)=0A= {=0A= =0A= =0A= =0A= =0A= for ( ; __first1 !=3D __last1; ++__first1, ++__first2)=0A= if (!__binary_pred(*__first1, *__first2))=0A= return false;=0A= return true;=0A= }=0A= # 732 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= bool=0A= lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first1 !=3D __last1 && __first2 !=3D __last2=0A= ; ++__first1, ++__first2) {=0A= if (*__first1 < *__first2)=0A= return true;=0A= if (*__first2 < *__first1)=0A= return false;=0A= }=0A= return __first1 =3D=3D __last1 && __first2 !=3D __last2;=0A= }=0A= # 767 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algobase.h" 3=0A= template=0A= bool=0A= lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= for ( ; __first1 !=3D __last1 && __first2 !=3D __last2=0A= ; ++__first1, ++__first2) {=0A= if (__comp(*__first1, *__first2))=0A= return true;=0A= if (__comp(*__first2, *__first1))=0A= return false;=0A= }=0A= return __first1 =3D=3D __last1 && __first2 !=3D __last2;=0A= }=0A= =0A= inline bool=0A= lexicographical_compare(const unsigned char* __first1, const unsigned = char* __last1,=0A= const unsigned char* __first2, const unsigned = char* __last2)=0A= {=0A= const size_t __len1 =3D __last1 - __first1;=0A= const size_t __len2 =3D __last2 - __first2;=0A= const int __result =3D memcmp(__first1, __first2, min(__len1, = __len2));=0A= return __result !=3D 0 ? __result < 0 : __len1 < __len2;=0A= }=0A= =0A= inline bool=0A= lexicographical_compare(const char* __first1, const char* __last1,=0A= const char* __first2, const char* __last2)=0A= {=0A= =0A= return lexicographical_compare((const signed char*) __first1,=0A= (const signed char*) __last1,=0A= (const signed char*) __first2,=0A= (const signed char*) __last2);=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= =0A= }=0A= # 55 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 1 3=0A= # 84 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cassert" 1 3=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/cassert" 3=0A= =0A= # 1 "/usr/include/assert.h" 1 3=0A= # 65 "/usr/include/assert.h" 3=0A= extern "C" {=0A= =0A= =0A= extern void __assert_fail (__const char *__assertion, __const char = *__file,=0A= unsigned int __line, __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= extern void __assert_perror_fail (int __errnum, __const char *__file,=0A= unsigned int __line,=0A= __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= extern void __assert (const char *__assertion, const char *__file, int = __line)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= }=0A= # 49 "/usr/local/gcc3.1/include/g++-v3/cassert" 2 3=0A= # 85 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A= # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A= # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= void=0A= __throw_bad_exception(void);=0A= =0A= =0A= void=0A= __throw_bad_alloc(void);=0A= =0A= =0A= void=0A= __throw_bad_cast(void);=0A= =0A= void=0A= __throw_bad_typeid(void);=0A= =0A= =0A= void=0A= __throw_logic_error(const char* __s);=0A= =0A= void=0A= __throw_domain_error(const char* __s);=0A= =0A= void=0A= __throw_invalid_argument(const char* __s);=0A= =0A= void=0A= __throw_length_error(const char* __s);=0A= =0A= void=0A= __throw_out_of_range(const char* __s);=0A= =0A= void=0A= __throw_runtime_error(const char* __s);=0A= =0A= void=0A= __throw_range_error(const char* __s);=0A= =0A= void=0A= __throw_overflow_error(const char* __s);=0A= =0A= void=0A= __throw_underflow_error(const char* __s);=0A= =0A= =0A= void=0A= __throw_ios_failure(const char* __s);=0A= }=0A= # 86 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 1 3=0A= # 54 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A= namespace std=0A= {=0A= =0A= =0A= =0A= =0A= struct _Refcount_Base=0A= {=0A= =0A= typedef size_t _RC_t;=0A= =0A= =0A= volatile _RC_t _M_ref_count;=0A= =0A= =0A= __gthread_mutex_t _M_ref_count_lock;=0A= =0A= _Refcount_Base(_RC_t __n) : _M_ref_count(__n)=0A= {=0A= =0A= __gthread_mutex_t __tmp =3D {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, = 0 }};=0A= _M_ref_count_lock =3D __tmp;=0A= =0A= =0A= =0A= =0A= =0A= }=0A= =0A= void=0A= _M_incr()=0A= {=0A= __gthread_mutex_lock(&_M_ref_count_lock);=0A= ++_M_ref_count;=0A= __gthread_mutex_unlock(&_M_ref_count_lock);=0A= }=0A= =0A= _RC_t=0A= _M_decr()=0A= {=0A= __gthread_mutex_lock(&_M_ref_count_lock);=0A= volatile _RC_t __tmp =3D --_M_ref_count;=0A= __gthread_mutex_unlock(&_M_ref_count_lock);=0A= return __tmp;=0A= }=0A= };=0A= # 109 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A= template=0A= struct _Swap_lock_struct=0A= { static __gthread_mutex_t _S_swap_lock; };=0A= =0A= template=0A= __gthread_mutex_t=0A= _Swap_lock_struct<__dummy>::_S_swap_lock =3D {0, 0, 0, = PTHREAD_MUTEX_TIMED_NP, { 0, 0 }};=0A= =0A= =0A= =0A= inline unsigned long=0A= _Atomic_swap(unsigned long * __p, unsigned long __q)=0A= {=0A= __gthread_mutex_lock(&_Swap_lock_struct<0>::_S_swap_lock);=0A= unsigned long __result =3D *__p;=0A= *__p =3D __q;=0A= __gthread_mutex_unlock(&_Swap_lock_struct<0>::_S_swap_lock);=0A= return __result;=0A= }=0A= # 151 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A= struct _STL_mutex_lock=0A= {=0A= =0A= =0A= =0A= =0A= =0A= __gthread_mutex_t _M_lock;=0A= =0A= void=0A= _M_initialize()=0A= {=0A= # 184 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A= }=0A= =0A= void=0A= _M_acquire_lock()=0A= {=0A= =0A= =0A= =0A= __gthread_mutex_lock(&_M_lock);=0A= }=0A= =0A= void=0A= _M_release_lock()=0A= {=0A= =0A= =0A= =0A= __gthread_mutex_unlock(&_M_lock);=0A= }=0A= };=0A= # 220 "/usr/local/gcc3.1/include/g++-v3/bits/stl_threads.h" 3=0A= struct _STL_auto_lock=0A= {=0A= _STL_mutex_lock& _M_lock;=0A= =0A= _STL_auto_lock(_STL_mutex_lock& __lock) : _M_lock(__lock)=0A= { _M_lock._M_acquire_lock(); }=0A= =0A= ~_STL_auto_lock() { _M_lock._M_release_lock(); }=0A= =0A= private:=0A= void operator=3D(const _STL_auto_lock&);=0A= _STL_auto_lock(const _STL_auto_lock&);=0A= };=0A= =0A= }=0A= # 87 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 2 3=0A= =0A= namespace std=0A= {=0A= # 98 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= class __new_alloc=0A= {=0A= public:=0A= static void*=0A= allocate(size_t __n)=0A= { return ::operator new(__n); }=0A= =0A= static void=0A= deallocate(void* __p, size_t)=0A= { ::operator delete(__p); }=0A= };=0A= # 121 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= template =0A= class __malloc_alloc_template=0A= {=0A= private:=0A= static void* _S_oom_malloc(size_t);=0A= static void* _S_oom_realloc(void*, size_t);=0A= static void (* __malloc_alloc_oom_handler)();=0A= =0A= public:=0A= static void*=0A= allocate(size_t __n)=0A= {=0A= void* __result =3D malloc(__n);=0A= if (0 =3D=3D __result) __result =3D _S_oom_malloc(__n);=0A= return __result;=0A= }=0A= =0A= static void=0A= deallocate(void* __p, size_t )=0A= { free(__p); }=0A= =0A= static void*=0A= reallocate(void* __p, size_t , size_t __new_sz)=0A= {=0A= void* __result =3D realloc(__p, __new_sz);=0A= if (0 =3D=3D __result) __result =3D _S_oom_realloc(__p, = __new_sz);=0A= return __result;=0A= }=0A= =0A= static void (* __set_malloc_handler(void (*__f)()))()=0A= {=0A= void (* __old)() =3D __malloc_alloc_oom_handler;=0A= __malloc_alloc_oom_handler =3D __f;=0A= return(__old);=0A= }=0A= };=0A= =0A= =0A= template =0A= void (* = __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() =3D 0;=0A= =0A= template =0A= void*=0A= __malloc_alloc_template<__inst>::_S_oom_malloc(size_t __n)=0A= {=0A= void (* __my_malloc_handler)();=0A= void* __result;=0A= =0A= for (;;)=0A= {=0A= __my_malloc_handler =3D __malloc_alloc_oom_handler;=0A= if (0 =3D=3D __my_malloc_handler)=0A= std::__throw_bad_alloc();=0A= (*__my_malloc_handler)();=0A= __result =3D malloc(__n);=0A= if (__result)=0A= return(__result);=0A= }=0A= }=0A= =0A= template =0A= void*=0A= __malloc_alloc_template<__inst>::_S_oom_realloc(void* __p, size_t = __n)=0A= {=0A= void (* __my_malloc_handler)();=0A= void* __result;=0A= =0A= for (;;)=0A= {=0A= __my_malloc_handler =3D __malloc_alloc_oom_handler;=0A= if (0 =3D=3D __my_malloc_handler)=0A= std::__throw_bad_alloc();=0A= (*__my_malloc_handler)();=0A= __result =3D realloc(__p, __n);=0A= if (__result)=0A= return(__result);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef __new_alloc __mem_interface;=0A= # 219 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= template=0A= class __simple_alloc=0A= {=0A= public:=0A= static _Tp* allocate(size_t __n)=0A= { return 0 =3D=3D __n ? 0 : (_Tp*) _Alloc::allocate(__n * sizeof = (_Tp)); }=0A= =0A= static _Tp* allocate()=0A= { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); }=0A= =0A= static void deallocate(_Tp* __p, size_t __n)=0A= { if (0 !=3D __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); }=0A= =0A= static void deallocate(_Tp* __p)=0A= { _Alloc::deallocate(__p, sizeof (_Tp)); }=0A= };=0A= # 251 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= template =0A= class __debug_alloc=0A= {=0A= private:=0A= enum {_S_extra =3D 8};=0A= =0A= =0A= public:=0A= =0A= static void* allocate(size_t __n)=0A= {=0A= char* __result =3D (char*)_Alloc::allocate(__n + (int) _S_extra);=0A= *(size_t*)__result =3D __n;=0A= return __result + (int) _S_extra;=0A= }=0A= =0A= static void deallocate(void* __p, size_t __n)=0A= {=0A= char* __real_p =3D (char*)__p - (int) _S_extra;=0A= (static_cast ((*(size_t*)__real_p =3D=3D __n) ? 0 : = (__assert_fail ("*(size_t*)__real_p =3D=3D __n", = "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h", 270, = __PRETTY_FUNCTION__), 0)));=0A= _Alloc::deallocate(__real_p, __n + (int) _S_extra);=0A= }=0A= =0A= static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz)=0A= {=0A= char* __real_p =3D (char*)__p - (int) _S_extra;=0A= (static_cast ((*(size_t*)__real_p =3D=3D __old_sz) ? 0 : = (__assert_fail ("*(size_t*)__real_p =3D=3D __old_sz", = "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h", 277, = __PRETTY_FUNCTION__), 0)));=0A= char* __result =3D (char*)=0A= _Alloc::reallocate(__real_p, __old_sz + (int) _S_extra,=0A= __new_sz + (int) _S_extra);=0A= *(size_t*)__result =3D __new_sz;=0A= return __result + (int) _S_extra;=0A= }=0A= };=0A= # 324 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= template=0A= class __default_alloc_template=0A= {=0A= private:=0A= enum {_ALIGN =3D 8};=0A= enum {_MAX_BYTES =3D 128};=0A= enum {_NFREELISTS =3D _MAX_BYTES / _ALIGN};=0A= =0A= union _Obj=0A= {=0A= union _Obj* _M_free_list_link;=0A= char _M_client_data[1];=0A= };=0A= =0A= static _Obj* volatile _S_free_list[_NFREELISTS];=0A= =0A= =0A= static char* _S_start_free;=0A= static char* _S_end_free;=0A= static size_t _S_heap_size;=0A= =0A= static _STL_mutex_lock _S_node_allocator_lock;=0A= =0A= static size_t=0A= _S_round_up(size_t __bytes)=0A= { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); = }=0A= =0A= static size_t=0A= _S_freelist_index(size_t __bytes)=0A= { return (((__bytes) + (size_t)_ALIGN-1)/(size_t)_ALIGN - 1); }=0A= =0A= =0A= =0A= static void*=0A= _S_refill(size_t __n);=0A= =0A= =0A= =0A= static char*=0A= _S_chunk_alloc(size_t __size, int& __nobjs);=0A= =0A= =0A= =0A= class _Lock=0A= {=0A= public:=0A= _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); = }=0A= ~_Lock() { if (__threads) = _S_node_allocator_lock._M_release_lock(); }=0A= } __attribute__ ((__unused__));=0A= friend class _Lock;=0A= =0A= public:=0A= =0A= static void*=0A= allocate(size_t __n)=0A= {=0A= void* __ret =3D 0;=0A= =0A= if (__n > (size_t) _MAX_BYTES)=0A= __ret =3D __mem_interface::allocate(__n);=0A= else=0A= {=0A= _Obj* volatile* __my_free_list =3D _S_free_list=0A= + _S_freelist_index(__n);=0A= =0A= =0A= =0A= _Lock __lock_instance;=0A= _Obj* __restrict__ __result =3D *__my_free_list;=0A= if (__result =3D=3D 0)=0A= __ret =3D _S_refill(_S_round_up(__n));=0A= else=0A= {=0A= *__my_free_list =3D __result -> _M_free_list_link;=0A= __ret =3D __result;=0A= }=0A= }=0A= return __ret;=0A= };=0A= =0A= =0A= static void=0A= deallocate(void* __p, size_t __n)=0A= {=0A= if (__n > (size_t) _MAX_BYTES)=0A= __mem_interface::deallocate(__p, __n);=0A= else=0A= {=0A= _Obj* volatile* __my_free_list=0A= =3D _S_free_list + _S_freelist_index(__n);=0A= _Obj* __q =3D (_Obj*)__p;=0A= =0A= =0A= =0A= _Lock __lock_instance;=0A= __q -> _M_free_list_link =3D *__my_free_list;=0A= *__my_free_list =3D __q;=0A= }=0A= }=0A= =0A= static void*=0A= reallocate(void* __p, size_t __old_sz, size_t __new_sz);=0A= };=0A= =0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const __default_alloc_template<__threads, __inst>&,=0A= const __default_alloc_template<__threads, __inst>&)=0A= { return true; }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const __default_alloc_template<__threads, __inst>&,=0A= const __default_alloc_template<__threads, __inst>&)=0A= { return false; }=0A= =0A= =0A= =0A= =0A= =0A= template=0A= char*=0A= __default_alloc_template<__threads, __inst>::_S_chunk_alloc(size_t = __size,=0A= int& = __nobjs)=0A= {=0A= char* __result;=0A= size_t __total_bytes =3D __size * __nobjs;=0A= size_t __bytes_left =3D _S_end_free - _S_start_free;=0A= =0A= if (__bytes_left >=3D __total_bytes)=0A= {=0A= __result =3D _S_start_free;=0A= _S_start_free +=3D __total_bytes;=0A= return(__result);=0A= }=0A= else if (__bytes_left >=3D __size)=0A= {=0A= __nobjs =3D (int)(__bytes_left/__size);=0A= __total_bytes =3D __size * __nobjs;=0A= __result =3D _S_start_free;=0A= _S_start_free +=3D __total_bytes;=0A= return(__result);=0A= }=0A= else=0A= {=0A= size_t __bytes_to_get =3D=0A= 2 * __total_bytes + _S_round_up(_S_heap_size >> 4);=0A= =0A= if (__bytes_left > 0)=0A= {=0A= _Obj* volatile* __my_free_list =3D=0A= _S_free_list + _S_freelist_index(__bytes_left);=0A= =0A= ((_Obj*)_S_start_free) -> _M_free_list_link =3D = *__my_free_list;=0A= *__my_free_list =3D (_Obj*)_S_start_free;=0A= }=0A= _S_start_free =3D (char*) = __mem_interface::allocate(__bytes_to_get);=0A= if (0 =3D=3D _S_start_free)=0A= {=0A= size_t __i;=0A= _Obj* volatile* __my_free_list;=0A= _Obj* __p;=0A= =0A= =0A= =0A= __i =3D __size;=0A= for (; __i <=3D (size_t) _MAX_BYTES; __i +=3D (size_t) = _ALIGN)=0A= {=0A= __my_free_list =3D _S_free_list + = _S_freelist_index(__i);=0A= __p =3D *__my_free_list;=0A= if (0 !=3D __p)=0A= {=0A= *__my_free_list =3D __p -> _M_free_list_link;=0A= _S_start_free =3D (char*)__p;=0A= _S_end_free =3D _S_start_free + __i;=0A= return(_S_chunk_alloc(__size, __nobjs));=0A= =0A= =0A= }=0A= }=0A= _S_end_free =3D 0;=0A= _S_start_free =3D = (char*)__mem_interface::allocate(__bytes_to_get);=0A= =0A= =0A= }=0A= _S_heap_size +=3D __bytes_to_get;=0A= _S_end_free =3D _S_start_free + __bytes_to_get;=0A= return(_S_chunk_alloc(__size, __nobjs));=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template=0A= void*=0A= __default_alloc_template<__threads, __inst>::_S_refill(size_t __n)=0A= {=0A= int __nobjs =3D 20;=0A= char* __chunk =3D _S_chunk_alloc(__n, __nobjs);=0A= _Obj* volatile* __my_free_list;=0A= _Obj* __result;=0A= _Obj* __current_obj;=0A= _Obj* __next_obj;=0A= int __i;=0A= =0A= if (1 =3D=3D __nobjs) return(__chunk);=0A= __my_free_list =3D _S_free_list + _S_freelist_index(__n);=0A= =0A= =0A= __result =3D (_Obj*)__chunk;=0A= *__my_free_list =3D __next_obj =3D (_Obj*)(__chunk + __n);=0A= for (__i =3D 1; ; __i++) {=0A= __current_obj =3D __next_obj;=0A= __next_obj =3D (_Obj*)((char*)__next_obj + __n);=0A= if (__nobjs - 1 =3D=3D __i) {=0A= __current_obj -> _M_free_list_link =3D 0;=0A= break;=0A= } else {=0A= __current_obj -> _M_free_list_link =3D __next_obj;=0A= }=0A= }=0A= return(__result);=0A= }=0A= =0A= =0A= template=0A= void*=0A= __default_alloc_template::reallocate(void* __p,=0A= size_t __old_sz,=0A= size_t __new_sz)=0A= {=0A= void* __result;=0A= size_t __copy_sz;=0A= =0A= if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) = _MAX_BYTES) {=0A= return(realloc(__p, __new_sz));=0A= }=0A= if (_S_round_up(__old_sz) =3D=3D _S_round_up(__new_sz)) = return(__p);=0A= __result =3D allocate(__new_sz);=0A= __copy_sz =3D __new_sz > __old_sz? __old_sz : __new_sz;=0A= memcpy(__result, __p, __copy_sz);=0A= deallocate(__p, __old_sz);=0A= return(__result);=0A= }=0A= =0A= template=0A= _STL_mutex_lock=0A= __default_alloc_template<__threads, __inst>::_S_node_allocator_lock=0A= =3D { {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }} };=0A= =0A= template=0A= char* __default_alloc_template<__threads, __inst>::_S_start_free =3D 0;=0A= =0A= template=0A= char* __default_alloc_template<__threads, __inst>::_S_end_free =3D 0;=0A= =0A= template=0A= size_t __default_alloc_template<__threads, __inst>::_S_heap_size =3D 0;=0A= =0A= template=0A= typename __default_alloc_template<__threads, __inst>::_Obj* volatile=0A= __default_alloc_template<__threads, __inst>::_S_free_list[_NFREELISTS];=0A= =0A= typedef __default_alloc_template __alloc;=0A= typedef __default_alloc_template __single_client_alloc;=0A= # 613 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= template =0A= class allocator=0A= {=0A= typedef __alloc _Alloc;=0A= public:=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= typedef _Tp* pointer;=0A= typedef const _Tp* const_pointer;=0A= typedef _Tp& reference;=0A= typedef const _Tp& const_reference;=0A= typedef _Tp value_type;=0A= =0A= template struct rebind {=0A= typedef allocator<_Tp1> other;=0A= };=0A= =0A= allocator() throw() {}=0A= allocator(const allocator&) throw() {}=0A= template allocator(const allocator<_Tp1>&) throw() {}=0A= ~allocator() throw() {}=0A= =0A= pointer address(reference __x) const { return &__x; }=0A= const_pointer address(const_reference __x) const { return &__x; }=0A= =0A= =0A= =0A= _Tp* allocate(size_type __n, const void* =3D 0) {=0A= return __n !=3D 0 ? static_cast<_Tp*>(_Alloc::allocate(__n * = sizeof(_Tp)))=0A= : 0;=0A= }=0A= =0A= =0A= void deallocate(pointer __p, size_type __n)=0A= { _Alloc::deallocate(__p, __n * sizeof(_Tp)); }=0A= =0A= size_type max_size() const throw()=0A= { return size_t(-1) / sizeof(_Tp); }=0A= =0A= void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); }=0A= void destroy(pointer __p) { __p->~_Tp(); }=0A= };=0A= =0A= template<>=0A= class allocator {=0A= public:=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= typedef void* pointer;=0A= typedef const void* const_pointer;=0A= typedef void value_type;=0A= =0A= template struct rebind {=0A= typedef allocator<_Tp1> other;=0A= };=0A= };=0A= =0A= =0A= template =0A= inline bool operator=3D=3D(const allocator<_T1>&, const allocator<_T2>&)=0A= {=0A= return true;=0A= }=0A= =0A= template =0A= inline bool operator!=3D(const allocator<_T1>&, const allocator<_T2>&)=0A= {=0A= return false;=0A= }=0A= # 695 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= template =0A= struct __allocator=0A= {=0A= _Alloc __underlying_alloc;=0A= =0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= typedef _Tp* pointer;=0A= typedef const _Tp* const_pointer;=0A= typedef _Tp& reference;=0A= typedef const _Tp& const_reference;=0A= typedef _Tp value_type;=0A= =0A= template struct rebind {=0A= typedef __allocator<_Tp1, _Alloc> other;=0A= };=0A= =0A= __allocator() throw() {}=0A= __allocator(const __allocator& __a) throw()=0A= : __underlying_alloc(__a.__underlying_alloc) {}=0A= template =0A= __allocator(const __allocator<_Tp1, _Alloc>& __a) throw()=0A= : __underlying_alloc(__a.__underlying_alloc) {}=0A= ~__allocator() throw() {}=0A= =0A= pointer address(reference __x) const { return &__x; }=0A= const_pointer address(const_reference __x) const { return &__x; }=0A= =0A= =0A= _Tp* allocate(size_type __n, const void* =3D 0) {=0A= return __n !=3D 0=0A= ? static_cast<_Tp*>(__underlying_alloc.allocate(__n * = sizeof(_Tp)))=0A= : 0;=0A= }=0A= =0A= =0A= void deallocate(pointer __p, size_type __n)=0A= { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); }=0A= =0A= size_type max_size() const throw()=0A= { return size_t(-1) / sizeof(_Tp); }=0A= =0A= void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); }=0A= void destroy(pointer __p) { __p->~_Tp(); }=0A= };=0A= =0A= template =0A= class __allocator {=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= typedef void* pointer;=0A= typedef const void* const_pointer;=0A= typedef void value_type;=0A= =0A= template struct rebind {=0A= typedef __allocator<_Tp1, _Alloc> other;=0A= };=0A= };=0A= =0A= template =0A= inline bool operator=3D=3D(const __allocator<_Tp, _Alloc>& __a1,=0A= const __allocator<_Tp, _Alloc>& __a2)=0A= {=0A= return __a1.__underlying_alloc =3D=3D __a2.__underlying_alloc;=0A= }=0A= =0A= template =0A= inline bool operator!=3D(const __allocator<_Tp, _Alloc>& __a1,=0A= const __allocator<_Tp, _Alloc>& __a2)=0A= {=0A= return __a1.__underlying_alloc !=3D __a2.__underlying_alloc;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= inline bool operator=3D=3D(const __malloc_alloc_template&,=0A= const __malloc_alloc_template&)=0A= {=0A= return true;=0A= }=0A= =0A= template =0A= inline bool operator!=3D(const __malloc_alloc_template<__inst>&,=0A= const __malloc_alloc_template<__inst>&)=0A= {=0A= return false;=0A= }=0A= =0A= template =0A= inline bool operator=3D=3D(const __debug_alloc<_Alloc>&,=0A= const __debug_alloc<_Alloc>&) {=0A= return true;=0A= }=0A= =0A= template =0A= inline bool operator!=3D(const __debug_alloc<_Alloc>&,=0A= const __debug_alloc<_Alloc>&) {=0A= return false;=0A= }=0A= # 840 "/usr/local/gcc3.1/include/g++-v3/bits/stl_alloc.h" 3=0A= template =0A= struct _Alloc_traits=0A= {=0A= static const bool _S_instanceless =3D false;=0A= typedef typename _Allocator::template rebind<_Tp>::other = allocator_type;=0A= };=0A= =0A= template =0A= const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless;=0A= =0A= =0A= template =0A= struct _Alloc_traits<_Tp, allocator<_Tp1> >=0A= {=0A= static const bool _S_instanceless =3D true;=0A= typedef __simple_alloc<_Tp, __alloc> _Alloc_type;=0A= typedef allocator<_Tp> allocator_type;=0A= };=0A= =0A= =0A= =0A= =0A= template =0A= struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> >=0A= {=0A= static const bool _S_instanceless =3D true;=0A= typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > = _Alloc_type;=0A= typedef __allocator<_Tp, __malloc_alloc_template<__inst> > = allocator_type;=0A= };=0A= =0A= =0A= template =0A= struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> >=0A= {=0A= static const bool _S_instanceless =3D true;=0A= typedef __simple_alloc<_Tp, __default_alloc_template<__threads, = __inst> >=0A= _Alloc_type;=0A= typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> >=0A= allocator_type;=0A= };=0A= =0A= =0A= template =0A= struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> >=0A= {=0A= static const bool _S_instanceless =3D true;=0A= typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type;=0A= typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type;=0A= };=0A= =0A= =0A= =0A= =0A= template =0A= struct _Alloc_traits<_Tp,=0A= __allocator<_Tp1, __malloc_alloc_template<__inst> > = >=0A= {=0A= static const bool _S_instanceless =3D true;=0A= typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > = _Alloc_type;=0A= typedef __allocator<_Tp, __malloc_alloc_template<__inst> > = allocator_type;=0A= };=0A= =0A= =0A= template =0A= struct _Alloc_traits<_Tp,=0A= __allocator<_Tp1,=0A= __default_alloc_template<__thr, = __inst> > >=0A= {=0A= static const bool _S_instanceless =3D true;=0A= typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> >=0A= _Alloc_type;=0A= typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> >=0A= allocator_type;=0A= };=0A= =0A= =0A= template =0A= struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > >=0A= {=0A= static const bool _S_instanceless =3D true;=0A= typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type;=0A= typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= extern template class allocator;=0A= extern template class allocator;=0A= =0A= =0A= =0A= extern template class __default_alloc_template;=0A= =0A= }=0A= # 56 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 1 3=0A= # 67 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 3=0A= namespace std=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= inline void=0A= _Construct(_T1* __p, const _T2& __value)=0A= { new (static_cast(__p)) _T1(__value); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= inline void=0A= _Construct(_T1* __p)=0A= { new (static_cast(__p)) _T1(); }=0A= # 98 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 3=0A= template =0A= inline void=0A= __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, = __false_type)=0A= { for ( ; __first !=3D __last; ++__first) _Destroy(&*__first); }=0A= # 112 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 3=0A= template =0A= inline void=0A= __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)=0A= { }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= inline void=0A= _Destroy(_Tp* __pointer)=0A= { __pointer->~_Tp(); }=0A= # 134 "/usr/local/gcc3.1/include/g++-v3/bits/stl_construct.h" 3=0A= template =0A= inline void=0A= _Destroy(_ForwardIterator __first, _ForwardIterator __last)=0A= {=0A= typedef typename iterator_traits<_ForwardIterator>::value_type=0A= _Value_type;=0A= typedef typename __type_traits<_Value_type>::has_trivial_destructor=0A= _Has_trivial_destructor;=0A= =0A= __destroy_aux(__first, __last, _Has_trivial_destructor());=0A= }=0A= }=0A= # 57 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 1 3=0A= # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A= namespace std=0A= {=0A= =0A= =0A= =0A= template=0A= inline _ForwardIter=0A= __uninitialized_copy_aux(_InputIter __first, _InputIter __last,=0A= _ForwardIter __result,=0A= __true_type)=0A= { return copy(__first, __last, __result); }=0A= =0A= template=0A= _ForwardIter=0A= __uninitialized_copy_aux(_InputIter __first, _InputIter __last,=0A= _ForwardIter __result,=0A= __false_type)=0A= {=0A= _ForwardIter __cur =3D __result;=0A= try {=0A= for ( ; __first !=3D __last; ++__first, ++__cur)=0A= _Construct(&*__cur, *__first);=0A= return __cur;=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__result, __cur);=0A= throw;=0A= }=0A= }=0A= # 106 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A= template=0A= inline _ForwardIter=0A= uninitialized_copy(_InputIter __first, _InputIter __last, = _ForwardIter __result)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;=0A= return __uninitialized_copy_aux(__first, __last, __result, = _Is_POD());=0A= }=0A= =0A= inline char*=0A= uninitialized_copy(const char* __first, const char* __last, char* = __result)=0A= {=0A= memmove(__result, __first, __last - __first);=0A= return __result + (__last - __first);=0A= }=0A= =0A= inline wchar_t*=0A= uninitialized_copy(const wchar_t* __first, const wchar_t* __last,=0A= wchar_t* __result)=0A= {=0A= memmove(__result, __first, sizeof(wchar_t) * (__last - __first));=0A= return __result + (__last - __first);=0A= }=0A= =0A= =0A= =0A= template=0A= inline void=0A= __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last,=0A= const _Tp& __x, __true_type)=0A= { fill(__first, __last, __x); }=0A= =0A= template=0A= void=0A= __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last,=0A= const _Tp& __x, __false_type)=0A= {=0A= _ForwardIter __cur =3D __first;=0A= try {=0A= for ( ; __cur !=3D __last; ++__cur)=0A= _Construct(&*__cur, __x);=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__first, __cur);=0A= throw;=0A= }=0A= }=0A= # 164 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A= template=0A= inline void=0A= uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const = _Tp& __x)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;=0A= __uninitialized_fill_aux(__first, __last, __x, _Is_POD());=0A= }=0A= =0A= =0A= =0A= template=0A= inline _ForwardIter=0A= __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n,=0A= const _Tp& __x, __true_type)=0A= {=0A= return fill_n(__first, __n, __x);=0A= }=0A= =0A= template=0A= _ForwardIter=0A= __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n,=0A= const _Tp& __x, __false_type)=0A= {=0A= _ForwardIter __cur =3D __first;=0A= try {=0A= for ( ; __n > 0; --__n, ++__cur)=0A= _Construct(&*__cur, __x);=0A= return __cur;=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__first, __cur);=0A= throw;=0A= }=0A= }=0A= # 210 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A= template=0A= inline _ForwardIter=0A= uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;=0A= return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());=0A= }=0A= # 227 "/usr/local/gcc3.1/include/g++-v3/bits/stl_uninitialized.h" 3=0A= template=0A= inline _ForwardIter=0A= __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _ForwardIter __result)=0A= {=0A= _ForwardIter __mid =3D uninitialized_copy(__first1, __last1, = __result);=0A= try {=0A= return uninitialized_copy(__first2, __last2, __mid);=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__result, __mid);=0A= throw;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= template=0A= inline _ForwardIter=0A= __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid,=0A= const _Tp& __x,=0A= _InputIter __first, _InputIter __last)=0A= {=0A= uninitialized_fill(__result, __mid, __x);=0A= try {=0A= return uninitialized_copy(__first, __last, __mid);=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__result, __mid);=0A= throw;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= template=0A= inline void=0A= __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1,=0A= _ForwardIter __first2, _ForwardIter = __last2,=0A= const _Tp& __x)=0A= {=0A= _ForwardIter __mid2 =3D uninitialized_copy(__first1, __last1, = __first2);=0A= try {=0A= uninitialized_fill(__mid2, __last2, __x);=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__first2, __mid2);=0A= throw;=0A= }=0A= }=0A= =0A= }=0A= # 59 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_raw_storage_iter.h" 1 3=0A= # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_raw_storage_iter.h" 3=0A= namespace std=0A= {=0A= =0A= =0A= =0A= =0A= template =0A= class raw_storage_iterator=0A= : public iterator=0A= {=0A= protected:=0A= _ForwardIterator _M_iter;=0A= =0A= public:=0A= explicit=0A= raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {}=0A= =0A= raw_storage_iterator&=0A= operator*() { return *this; }=0A= =0A= raw_storage_iterator&=0A= operator=3D(const _Tp& __element)=0A= {=0A= _Construct(&*_M_iter, __element);=0A= return *this;=0A= }=0A= =0A= raw_storage_iterator<_ForwardIterator, _Tp>&=0A= operator++()=0A= {=0A= ++_M_iter;=0A= return *this;=0A= }=0A= =0A= raw_storage_iterator<_ForwardIterator, _Tp>=0A= operator++(int)=0A= {=0A= raw_storage_iterator<_ForwardIterator, _Tp> __tmp =3D *this;=0A= ++_M_iter;=0A= return __tmp;=0A= }=0A= };=0A= }=0A= # 60 "/usr/local/gcc3.1/include/g++-v3/memory" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= pair<_Tp*, ptrdiff_t>=0A= __get_temporary_buffer(ptrdiff_t __len, _Tp*)=0A= {=0A= if (__len > ptrdiff_t(2147483647 / sizeof(_Tp)))=0A= __len =3D 2147483647 / sizeof(_Tp);=0A= =0A= while (__len > 0) {=0A= _Tp* __tmp =3D (_Tp*) std::malloc((std::size_t)__len * = sizeof(_Tp));=0A= if (__tmp !=3D 0)=0A= return pair<_Tp*, ptrdiff_t>(__tmp, __len);=0A= __len /=3D 2;=0A= }=0A= =0A= return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0);=0A= }=0A= # 102 "/usr/local/gcc3.1/include/g++-v3/memory" 3=0A= template =0A= inline pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __len) {=0A= return __get_temporary_buffer(__len, (_Tp*) 0);=0A= }=0A= # 114 "/usr/local/gcc3.1/include/g++-v3/memory" 3=0A= template =0A= void return_temporary_buffer(_Tp* __p) {=0A= std::free(__p);=0A= }=0A= =0A= =0A= template =0A= struct auto_ptr_ref=0A= {=0A= _Tp1* _M_ptr;=0A= auto_ptr_ref(_Tp1* __p) : _M_ptr(__p) {}=0A= };=0A= =0A= =0A= =0A= =0A= template =0A= class auto_ptr=0A= {=0A= private:=0A= _Tp* _M_ptr;=0A= =0A= public:=0A= typedef _Tp element_type;=0A= =0A= explicit auto_ptr(_Tp* __p =3D 0) throw() : _M_ptr(__p) {}=0A= auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) {}=0A= =0A= template auto_ptr(auto_ptr<_Tp1>& __a) throw()=0A= : _M_ptr(__a.release()) {}=0A= =0A= auto_ptr& operator=3D(auto_ptr& __a) throw() {=0A= reset(__a.release());=0A= return *this;=0A= }=0A= =0A= template =0A= auto_ptr& operator=3D(auto_ptr<_Tp1>& __a) throw() {=0A= reset(__a.release());=0A= return *this;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= ~auto_ptr() { delete _M_ptr; }=0A= =0A= _Tp& operator*() const throw() {=0A= return *_M_ptr;=0A= }=0A= _Tp* operator->() const throw() {=0A= return _M_ptr;=0A= }=0A= _Tp* get() const throw() {=0A= return _M_ptr;=0A= }=0A= _Tp* release() throw() {=0A= _Tp* __tmp =3D _M_ptr;=0A= _M_ptr =3D 0;=0A= return __tmp;=0A= }=0A= void reset(_Tp* __p =3D 0) throw() {=0A= if (__p !=3D _M_ptr) {=0A= delete _M_ptr;=0A= _M_ptr =3D __p;=0A= }=0A= }=0A= =0A= public:=0A= auto_ptr(auto_ptr_ref<_Tp> __ref) throw()=0A= : _M_ptr(__ref._M_ptr) {}=0A= =0A= auto_ptr& operator=3D(auto_ptr_ref<_Tp> __ref) throw() {=0A= if (__ref._M_ptr !=3D this->get()) {=0A= delete _M_ptr;=0A= _M_ptr =3D __ref._M_ptr;=0A= }=0A= return *this;=0A= }=0A= =0A= template operator auto_ptr_ref<_Tp1>() throw()=0A= { return auto_ptr_ref<_Tp>(this->release()); }=0A= template operator auto_ptr<_Tp1>() throw()=0A= { return auto_ptr<_Tp1>(this->release()); }=0A= };=0A= =0A= }=0A= # 49 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 1 3=0A= # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= namespace std=0A= {=0A= # 101 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= template =0A= struct unary_function {=0A= typedef _Arg argument_type;=0A= typedef _Result result_type;=0A= };=0A= =0A= =0A= =0A= =0A= template =0A= struct binary_function {=0A= typedef _Arg1 first_argument_type;=0A= typedef _Arg2 second_argument_type;=0A= typedef _Result result_type;=0A= };=0A= # 127 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= template =0A= struct plus : public binary_function<_Tp,_Tp,_Tp> {=0A= _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + = __y; }=0A= };=0A= =0A= =0A= template =0A= struct minus : public binary_function<_Tp,_Tp,_Tp> {=0A= _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - = __y; }=0A= };=0A= =0A= =0A= template =0A= struct multiplies : public binary_function<_Tp,_Tp,_Tp> {=0A= _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * = __y; }=0A= };=0A= =0A= =0A= template =0A= struct divides : public binary_function<_Tp,_Tp,_Tp> {=0A= _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / = __y; }=0A= };=0A= =0A= =0A= template =0A= struct modulus : public binary_function<_Tp,_Tp,_Tp>=0A= {=0A= _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % = __y; }=0A= };=0A= =0A= =0A= template =0A= struct negate : public unary_function<_Tp,_Tp>=0A= {=0A= _Tp operator()(const _Tp& __x) const { return -__x; }=0A= };=0A= # 173 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= template =0A= struct equal_to : public binary_function<_Tp,_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x, const _Tp& __y) const { return __x = =3D=3D __y; }=0A= };=0A= =0A= =0A= template =0A= struct not_equal_to : public binary_function<_Tp,_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x, const _Tp& __y) const { return __x = !=3D __y; }=0A= };=0A= =0A= =0A= template =0A= struct greater : public binary_function<_Tp,_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > = __y; }=0A= };=0A= =0A= =0A= template =0A= struct less : public binary_function<_Tp,_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < = __y; }=0A= };=0A= =0A= =0A= template =0A= struct greater_equal : public binary_function<_Tp,_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x, const _Tp& __y) const { return __x = >=3D __y; }=0A= };=0A= =0A= =0A= template =0A= struct less_equal : public binary_function<_Tp,_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x, const _Tp& __y) const { return __x = <=3D __y; }=0A= };=0A= # 222 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= template =0A= struct logical_and : public binary_function<_Tp,_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && = __y; }=0A= };=0A= =0A= =0A= template =0A= struct logical_or : public binary_function<_Tp,_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || = __y; }=0A= };=0A= =0A= =0A= template =0A= struct logical_not : public unary_function<_Tp,bool>=0A= {=0A= bool operator()(const _Tp& __x) const { return !__x; }=0A= };=0A= # 271 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= template =0A= class unary_negate=0A= : public unary_function {=0A= protected:=0A= _Predicate _M_pred;=0A= public:=0A= explicit unary_negate(const _Predicate& __x) : _M_pred(__x) {}=0A= bool operator()(const typename _Predicate::argument_type& __x) const {=0A= return !_M_pred(__x);=0A= }=0A= };=0A= =0A= =0A= template =0A= inline unary_negate<_Predicate>=0A= not1(const _Predicate& __pred)=0A= {=0A= return unary_negate<_Predicate>(__pred);=0A= }=0A= =0A= =0A= template =0A= class binary_negate=0A= : public binary_function {=0A= protected:=0A= _Predicate _M_pred;=0A= public:=0A= explicit binary_negate(const _Predicate& __x) : _M_pred(__x) {}=0A= bool operator()(const typename _Predicate::first_argument_type& __x,=0A= const typename _Predicate::second_argument_type& __y) = const=0A= {=0A= return !_M_pred(__x, __y);=0A= }=0A= };=0A= =0A= =0A= template =0A= inline binary_negate<_Predicate>=0A= not2(const _Predicate& __pred)=0A= {=0A= return binary_negate<_Predicate>(__pred);=0A= }=0A= # 349 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= template =0A= class binder1st=0A= : public unary_function {=0A= protected:=0A= _Operation op;=0A= typename _Operation::first_argument_type value;=0A= public:=0A= binder1st(const _Operation& __x,=0A= const typename _Operation::first_argument_type& __y)=0A= : op(__x), value(__y) {}=0A= typename _Operation::result_type=0A= operator()(const typename _Operation::second_argument_type& __x) const = {=0A= return op(value, __x);=0A= }=0A= =0A= =0A= typename _Operation::result_type=0A= operator()(typename _Operation::second_argument_type& __x) const {=0A= return op(value, __x);=0A= }=0A= =0A= };=0A= =0A= =0A= template =0A= inline binder1st<_Operation>=0A= bind1st(const _Operation& __fn, const _Tp& __x)=0A= {=0A= typedef typename _Operation::first_argument_type _Arg1_type;=0A= return binder1st<_Operation>(__fn, _Arg1_type(__x));=0A= }=0A= =0A= =0A= template =0A= class binder2nd=0A= : public unary_function {=0A= protected:=0A= _Operation op;=0A= typename _Operation::second_argument_type value;=0A= public:=0A= binder2nd(const _Operation& __x,=0A= const typename _Operation::second_argument_type& __y)=0A= : op(__x), value(__y) {}=0A= typename _Operation::result_type=0A= operator()(const typename _Operation::first_argument_type& __x) const {=0A= return op(__x, value);=0A= }=0A= =0A= =0A= typename _Operation::result_type=0A= operator()(typename _Operation::first_argument_type& __x) const {=0A= return op(__x, value);=0A= }=0A= =0A= };=0A= =0A= =0A= template =0A= inline binder2nd<_Operation>=0A= bind2nd(const _Operation& __fn, const _Tp& __x)=0A= {=0A= typedef typename _Operation::second_argument_type _Arg2_type;=0A= return binder2nd<_Operation>(__fn, _Arg2_type(__x));=0A= }=0A= # 438 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= template =0A= class pointer_to_unary_function : public unary_function<_Arg, _Result> {=0A= protected:=0A= _Result (*_M_ptr)(_Arg);=0A= public:=0A= pointer_to_unary_function() {}=0A= explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) = {}=0A= _Result operator()(_Arg __x) const { return _M_ptr(__x); }=0A= };=0A= =0A= =0A= template =0A= inline pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result = (*__x)(_Arg))=0A= {=0A= return pointer_to_unary_function<_Arg, _Result>(__x);=0A= }=0A= =0A= =0A= template =0A= class pointer_to_binary_function :=0A= public binary_function<_Arg1,_Arg2,_Result> {=0A= protected:=0A= _Result (*_M_ptr)(_Arg1, _Arg2);=0A= public:=0A= pointer_to_binary_function() {}=0A= explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))=0A= : _M_ptr(__x) {}=0A= _Result operator()(_Arg1 __x, _Arg2 __y) const {=0A= return _M_ptr(__x, __y);=0A= }=0A= };=0A= =0A= =0A= template =0A= inline pointer_to_binary_function<_Arg1,_Arg2,_Result>=0A= ptr_fun(_Result (*__x)(_Arg1, _Arg2)) {=0A= return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__x);=0A= }=0A= =0A= =0A= template =0A= struct _Identity : public unary_function<_Tp,_Tp> {=0A= _Tp& operator()(_Tp& __x) const { return __x; }=0A= const _Tp& operator()(const _Tp& __x) const { return __x; }=0A= };=0A= =0A= template =0A= struct _Select1st : public unary_function<_Pair, typename = _Pair::first_type> {=0A= typename _Pair::first_type& operator()(_Pair& __x) const {=0A= return __x.first;=0A= }=0A= const typename _Pair::first_type& operator()(const _Pair& __x) const {=0A= return __x.first;=0A= }=0A= };=0A= =0A= template =0A= struct _Select2nd : public unary_function<_Pair, typename = _Pair::second_type>=0A= {=0A= typename _Pair::second_type& operator()(_Pair& __x) const {=0A= return __x.second;=0A= }=0A= const typename _Pair::second_type& operator()(const _Pair& __x) const {=0A= return __x.second;=0A= }=0A= };=0A= # 528 "/usr/local/gcc3.1/include/g++-v3/bits/stl_function.h" 3=0A= template =0A= class mem_fun_t : public unary_function<_Tp*,_Ret> {=0A= public:=0A= explicit mem_fun_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) {}=0A= _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); }=0A= private:=0A= _Ret (_Tp::*_M_f)();=0A= };=0A= =0A= =0A= template =0A= class const_mem_fun_t : public unary_function {=0A= public:=0A= explicit const_mem_fun_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) {}=0A= _Ret operator()(const _Tp* __p) const { return (__p->*_M_f)(); }=0A= private:=0A= _Ret (_Tp::*_M_f)() const;=0A= };=0A= =0A= =0A= template =0A= class mem_fun_ref_t : public unary_function<_Tp,_Ret> {=0A= public:=0A= explicit mem_fun_ref_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) {}=0A= _Ret operator()(_Tp& __r) const { return (__r.*_M_f)(); }=0A= private:=0A= _Ret (_Tp::*_M_f)();=0A= };=0A= =0A= =0A= template =0A= class const_mem_fun_ref_t : public unary_function<_Tp,_Ret> {=0A= public:=0A= explicit const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) {}=0A= _Ret operator()(const _Tp& __r) const { return (__r.*_M_f)(); }=0A= private:=0A= _Ret (_Tp::*_M_f)() const;=0A= };=0A= =0A= =0A= template =0A= class mem_fun1_t : public binary_function<_Tp*,_Arg,_Ret> {=0A= public:=0A= explicit mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) {}=0A= _Ret operator()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); }=0A= private:=0A= _Ret (_Tp::*_M_f)(_Arg);=0A= };=0A= =0A= =0A= template =0A= class const_mem_fun1_t : public binary_function {=0A= public:=0A= explicit const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) = {}=0A= _Ret operator()(const _Tp* __p, _Arg __x) const=0A= { return (__p->*_M_f)(__x); }=0A= private:=0A= _Ret (_Tp::*_M_f)(_Arg) const;=0A= };=0A= =0A= =0A= template =0A= class mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> {=0A= public:=0A= explicit mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) {}=0A= _Ret operator()(_Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); }=0A= private:=0A= _Ret (_Tp::*_M_f)(_Arg);=0A= };=0A= =0A= =0A= template =0A= class const_mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> {=0A= public:=0A= explicit const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) : = _M_f(__pf) {}=0A= _Ret operator()(const _Tp& __r, _Arg __x) const { return = (__r.*_M_f)(__x); }=0A= private:=0A= _Ret (_Tp::*_M_f)(_Arg) const;=0A= };=0A= =0A= =0A= template =0A= class mem_fun_t : public unary_function<_Tp*,void> {=0A= public:=0A= explicit mem_fun_t(void (_Tp::*__pf)()) : _M_f(__pf) {}=0A= void operator()(_Tp* __p) const { (__p->*_M_f)(); }=0A= private:=0A= void (_Tp::*_M_f)();=0A= };=0A= =0A= =0A= template =0A= class const_mem_fun_t : public unary_function {=0A= public:=0A= explicit const_mem_fun_t(void (_Tp::*__pf)() const) : _M_f(__pf) {}=0A= void operator()(const _Tp* __p) const { (__p->*_M_f)(); }=0A= private:=0A= void (_Tp::*_M_f)() const;=0A= };=0A= =0A= =0A= template =0A= class mem_fun_ref_t : public unary_function<_Tp,void> {=0A= public:=0A= explicit mem_fun_ref_t(void (_Tp::*__pf)()) : _M_f(__pf) {}=0A= void operator()(_Tp& __r) const { (__r.*_M_f)(); }=0A= private:=0A= void (_Tp::*_M_f)();=0A= };=0A= =0A= =0A= template =0A= class const_mem_fun_ref_t : public unary_function<_Tp,void> {=0A= public:=0A= explicit const_mem_fun_ref_t(void (_Tp::*__pf)() const) : _M_f(__pf) {}=0A= void operator()(const _Tp& __r) const { (__r.*_M_f)(); }=0A= private:=0A= void (_Tp::*_M_f)() const;=0A= };=0A= =0A= =0A= template =0A= class mem_fun1_t : public = binary_function<_Tp*,_Arg,void> {=0A= public:=0A= explicit mem_fun1_t(void (_Tp::*__pf)(_Arg)) : _M_f(__pf) {}=0A= void operator()(_Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); }=0A= private:=0A= void (_Tp::*_M_f)(_Arg);=0A= };=0A= =0A= =0A= template =0A= class const_mem_fun1_t=0A= : public binary_function {=0A= public:=0A= explicit const_mem_fun1_t(void (_Tp::*__pf)(_Arg) const) : _M_f(__pf) = {}=0A= void operator()(const _Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); }=0A= private:=0A= void (_Tp::*_M_f)(_Arg) const;=0A= };=0A= =0A= =0A= template =0A= class mem_fun1_ref_t=0A= : public binary_function<_Tp,_Arg,void> {=0A= public:=0A= explicit mem_fun1_ref_t(void (_Tp::*__pf)(_Arg)) : _M_f(__pf) {}=0A= void operator()(_Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); }=0A= private:=0A= void (_Tp::*_M_f)(_Arg);=0A= };=0A= =0A= =0A= template =0A= class const_mem_fun1_ref_t=0A= : public binary_function<_Tp,_Arg,void> {=0A= public:=0A= explicit const_mem_fun1_ref_t(void (_Tp::*__pf)(_Arg) const) : = _M_f(__pf) {}=0A= void operator()(const _Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); }=0A= private:=0A= void (_Tp::*_M_f)(_Arg) const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template =0A= inline mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)())=0A= { return mem_fun_t<_Ret,_Tp>(__f); }=0A= =0A= template =0A= inline const_mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)() const)=0A= { return const_mem_fun_t<_Ret,_Tp>(__f); }=0A= =0A= template =0A= inline mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)())=0A= { return mem_fun_ref_t<_Ret,_Tp>(__f); }=0A= =0A= template =0A= inline const_mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)() = const)=0A= { return const_mem_fun_ref_t<_Ret,_Tp>(__f); }=0A= =0A= template =0A= inline mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg))=0A= { return mem_fun1_t<_Ret,_Tp,_Arg>(__f); }=0A= =0A= template =0A= inline const_mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg) = const)=0A= { return const_mem_fun1_t<_Ret,_Tp,_Arg>(__f); }=0A= =0A= template =0A= inline mem_fun1_ref_t<_Ret,_Tp,_Arg> mem_fun_ref(_Ret (_Tp::*__f)(_Arg))=0A= { return mem_fun1_ref_t<_Ret,_Tp,_Arg>(__f); }=0A= =0A= template =0A= inline const_mem_fun1_ref_t<_Ret,_Tp,_Arg>=0A= mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)=0A= { return const_mem_fun1_ref_t<_Ret,_Tp,_Arg>(__f); }=0A= =0A= =0A= =0A= }=0A= # 53 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 1 3=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 3=0A= =0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h" 1 3=0A= # 33 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h" 3=0A= typedef int _Atomic_word;=0A= =0A= static inline _Atomic_word=0A= __attribute__ ((__unused__))=0A= __exchange_and_add (volatile _Atomic_word *__mem, int __val)=0A= {=0A= register _Atomic_word __result;=0A= __asm__ __volatile__ ("lock; xaddl %0,%2"=0A= : "=3Dr" (__result)=0A= : "0" (__val), "m" (*__mem)=0A= : "memory");=0A= return __result;=0A= }=0A= =0A= static inline void=0A= __attribute__ ((__unused__))=0A= __atomic_add (volatile _Atomic_word* __mem, int __val)=0A= {=0A= __asm__ __volatile__ ("lock; addl %0,%1"=0A= : : "ir" (__val), "m" (*__mem) : "memory");=0A= }=0A= # 46 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 2 3=0A= =0A= namespace std=0A= {=0A= # 88 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 3=0A= template=0A= class basic_string=0A= {=0A= =0A= public:=0A= typedef _Traits traits_type;=0A= typedef typename _Traits::char_type value_type;=0A= typedef _Alloc allocator_type;=0A= typedef typename _Alloc::size_type size_type;=0A= typedef typename _Alloc::difference_type difference_type;=0A= typedef typename _Alloc::reference reference;=0A= typedef typename _Alloc::const_reference const_reference;=0A= typedef typename _Alloc::pointer pointer;=0A= typedef typename _Alloc::const_pointer const_pointer;=0A= typedef __gnu_cxx::__normal_iterator = iterator;=0A= typedef __gnu_cxx::__normal_iterator=0A= = const_iterator;=0A= typedef reverse_iterator const_reverse_iterator;=0A= typedef reverse_iterator reverse_iterator;=0A= =0A= private:=0A= # 123 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 3=0A= struct _Rep=0A= {=0A= =0A= typedef typename _Alloc::template rebind::other = _Raw_bytes_alloc;=0A= # 141 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.h" 3=0A= static const size_type _S_max_size;=0A= static const _CharT _S_terminal;=0A= =0A= size_type _M_length;=0A= size_type _M_capacity;=0A= _Atomic_word _M_references;=0A= =0A= bool=0A= _M_is_leaked() const=0A= { return _M_references < 0; }=0A= =0A= bool=0A= _M_is_shared() const=0A= { return _M_references > 0; }=0A= =0A= void=0A= _M_set_leaked()=0A= { _M_references =3D -1; }=0A= =0A= void=0A= _M_set_sharable()=0A= { _M_references =3D 0; }=0A= =0A= _CharT*=0A= _M_refdata() throw()=0A= { return reinterpret_cast<_CharT*>(this + 1); }=0A= =0A= _CharT&=0A= operator[](size_t __s) throw()=0A= { return _M_refdata() [__s]; }=0A= =0A= _CharT*=0A= _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)=0A= {=0A= return (!_M_is_leaked() && __alloc1 =3D=3D __alloc2)=0A= ? _M_refcopy() : _M_clone(__alloc1);=0A= }=0A= =0A= =0A= static _Rep*=0A= _S_create(size_t, const _Alloc&);=0A= =0A= void=0A= _M_dispose(const _Alloc& __a)=0A= {=0A= if (__exchange_and_add(&_M_references, -1) <=3D 0)=0A= _M_destroy(__a);=0A= }=0A= =0A= void=0A= _M_destroy(const _Alloc&) throw();=0A= =0A= _CharT*=0A= _M_refcopy() throw()=0A= {=0A= __atomic_add(&_M_references, 1);=0A= return _M_refdata();=0A= }=0A= =0A= _CharT*=0A= _M_clone(const _Alloc&, size_type __res =3D 0);=0A= };=0A= =0A= =0A= struct _Alloc_hider : _Alloc=0A= {=0A= _Alloc_hider(_CharT* __dat, const _Alloc& __a)=0A= : _Alloc(__a), _M_p(__dat) { }=0A= =0A= _CharT* _M_p;=0A= };=0A= =0A= public:=0A= =0A= =0A= =0A= static const size_type npos =3D static_cast(-1);=0A= =0A= private:=0A= =0A= mutable _Alloc_hider _M_dataplus;=0A= =0A= =0A= =0A= static size_type _S_empty_rep_storage[(sizeof(_Rep) + = sizeof(_CharT) + sizeof(size_type) - 1)/sizeof(size_type)];=0A= =0A= _CharT*=0A= _M_data() const=0A= { return _M_dataplus._M_p; }=0A= =0A= _CharT*=0A= _M_data(_CharT* __p)=0A= { return (_M_dataplus._M_p =3D __p); }=0A= =0A= _Rep*=0A= _M_rep() const=0A= { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }=0A= =0A= =0A= =0A= iterator=0A= _M_ibegin() const { return iterator(_M_data()); }=0A= =0A= iterator=0A= _M_iend() const { return iterator(_M_data() + this->size()); }=0A= =0A= void=0A= _M_leak()=0A= {=0A= if (!_M_rep()->_M_is_leaked())=0A= _M_leak_hard();=0A= }=0A= =0A= iterator=0A= _M_check(size_type __pos) const=0A= {=0A= if (__pos > this->size())=0A= __throw_out_of_range("basic_string::_M_check");=0A= return _M_ibegin() + __pos;=0A= }=0A= =0A= =0A= iterator=0A= _M_fold(size_type __pos, size_type __off) const=0A= {=0A= bool __testoff =3D __off < this->size() - __pos;=0A= size_type __newoff =3D __testoff ? __off : this->size() - __pos;=0A= return (_M_ibegin() + __pos + __newoff);=0A= }=0A= =0A= =0A= =0A= template=0A= static void=0A= _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)=0A= {=0A= for (; __k1 !=3D __k2; ++__k1, ++__p)=0A= traits_type::assign(*__p, *__k1);=0A= }=0A= =0A= static void=0A= _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)=0A= { _S_copy_chars(__p, __k1.base(), __k2.base()); }=0A= =0A= static void=0A= _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator = __k2)=0A= { _S_copy_chars(__p, __k1.base(), __k2.base()); }=0A= =0A= static void=0A= _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)=0A= { traits_type::copy(__p, __k1, __k2 - __k1); }=0A= =0A= static void=0A= _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)=0A= { traits_type::copy(__p, __k1, __k2 - __k1); }=0A= =0A= void=0A= _M_mutate(size_type __pos, size_type __len1, size_type __len2);=0A= =0A= void=0A= _M_leak_hard();=0A= =0A= static _Rep&=0A= _S_empty_rep()=0A= { return *reinterpret_cast<_Rep*>(&_S_empty_rep_storage); }=0A= =0A= public:=0A= =0A= =0A= =0A= =0A= inline=0A= basic_string();=0A= =0A= explicit=0A= basic_string(const _Alloc& __a);=0A= =0A= =0A= basic_string(const basic_string& __str);=0A= basic_string(const basic_string& __str, size_type __pos,=0A= size_type __n =3D npos);=0A= basic_string(const basic_string& __str, size_type __pos,=0A= size_type __n, const _Alloc& __a);=0A= =0A= basic_string(const _CharT* __s, size_type __n,=0A= const _Alloc& __a =3D _Alloc());=0A= basic_string(const _CharT* __s, const _Alloc& __a =3D _Alloc());=0A= basic_string(size_type __n, _CharT __c, const _Alloc& __a =3D = _Alloc());=0A= =0A= template=0A= basic_string(_InputIterator __beg, _InputIterator __end,=0A= const _Alloc& __a =3D _Alloc());=0A= =0A= ~basic_string()=0A= { _M_rep()->_M_dispose(this->get_allocator()); }=0A= =0A= basic_string&=0A= operator=3D(const basic_string& __str) { return = this->assign(__str); }=0A= =0A= basic_string&=0A= operator=3D(const _CharT* __s) { return this->assign(__s); }=0A= =0A= basic_string&=0A= operator=3D(_CharT __c) { return this->assign(1, __c); }=0A= =0A= =0A= iterator=0A= begin()=0A= {=0A= _M_leak();=0A= return iterator(_M_data());=0A= }=0A= =0A= const_iterator=0A= begin() const=0A= { return const_iterator(_M_data()); }=0A= =0A= iterator=0A= end()=0A= {=0A= _M_leak();=0A= return iterator(_M_data() + this->size());=0A= }=0A= =0A= const_iterator=0A= end() const=0A= { return const_iterator(_M_data() + this->size()); }=0A= =0A= reverse_iterator=0A= rbegin()=0A= { return reverse_iterator(this->end()); }=0A= =0A= const_reverse_iterator=0A= rbegin() const=0A= { return const_reverse_iterator(this->end()); }=0A= =0A= reverse_iterator=0A= rend()=0A= { return reverse_iterator(this->begin()); }=0A= =0A= const_reverse_iterator=0A= rend() const=0A= { return const_reverse_iterator(this->begin()); }=0A= =0A= public:=0A= =0A= size_type=0A= size() const { return _M_rep()->_M_length; }=0A= =0A= size_type=0A= length() const { return _M_rep()->_M_length; }=0A= =0A= size_type=0A= max_size() const { return _Rep::_S_max_size; }=0A= =0A= void=0A= resize(size_type __n, _CharT __c);=0A= =0A= void=0A= resize(size_type __n) { this->resize(__n, _CharT()); }=0A= =0A= size_type=0A= capacity() const { return _M_rep()->_M_capacity; }=0A= =0A= void=0A= reserve(size_type __res_arg =3D 0);=0A= =0A= void=0A= clear() { _M_mutate(0, this->size(), 0); }=0A= =0A= bool=0A= empty() const { return this->size() =3D=3D 0; }=0A= =0A= =0A= const_reference=0A= operator[] (size_type __pos) const=0A= { return _M_data()[__pos]; }=0A= =0A= reference=0A= operator[](size_type __pos)=0A= {=0A= _M_leak();=0A= return _M_data()[__pos];=0A= }=0A= =0A= const_reference=0A= at(size_type __n) const=0A= {=0A= if (__n >=3D this->size())=0A= __throw_out_of_range("basic_string::at");=0A= return _M_data()[__n];=0A= }=0A= =0A= reference=0A= at(size_type __n)=0A= {=0A= if (__n >=3D size())=0A= __throw_out_of_range("basic_string::at");=0A= _M_leak();=0A= return _M_data()[__n];=0A= }=0A= =0A= =0A= basic_string&=0A= operator+=3D(const basic_string& __str) { return = this->append(__str); }=0A= =0A= basic_string&=0A= operator+=3D(const _CharT* __s) { return this->append(__s); }=0A= =0A= basic_string&=0A= operator+=3D(_CharT __c) { return this->append(size_type(1), __c); = }=0A= =0A= basic_string&=0A= append(const basic_string& __str);=0A= =0A= basic_string&=0A= append(const basic_string& __str, size_type __pos, size_type __n);=0A= =0A= basic_string&=0A= append(const _CharT* __s, size_type __n);=0A= =0A= basic_string&=0A= append(const _CharT* __s)=0A= { return this->append(__s, traits_type::length(__s)); }=0A= =0A= basic_string&=0A= append(size_type __n, _CharT __c);=0A= =0A= template=0A= basic_string&=0A= append(_InputIterator __first, _InputIterator __last)=0A= { return this->replace(_M_iend(), _M_iend(), __first, __last); }=0A= =0A= void=0A= push_back(_CharT __c)=0A= { this->replace(_M_iend(), _M_iend(), 1, __c); }=0A= =0A= basic_string&=0A= assign(const basic_string& __str);=0A= =0A= basic_string&=0A= assign(const basic_string& __str, size_type __pos, size_type __n)=0A= {=0A= const size_type __strsize =3D __str.size();=0A= if (__pos > __strsize)=0A= __throw_out_of_range("basic_string::assign");=0A= const bool __testn =3D __n < __strsize - __pos;=0A= const size_type __newsize =3D __testn ? __n : __strsize - __pos;=0A= return this->assign(__str._M_data() + __pos, __newsize);=0A= }=0A= =0A= basic_string&=0A= assign(const _CharT* __s, size_type __n)=0A= {=0A= if (__n > this->max_size())=0A= __throw_length_error("basic_string::assign");=0A= if (_M_rep()->_M_is_shared() || less()(__s, = _M_data())=0A= || less()(_M_data() + this->size(), __s))=0A= return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n);=0A= else=0A= {=0A= =0A= const size_type __pos =3D __s - _M_data();=0A= if (__pos >=3D __n)=0A= traits_type::copy(_M_data(), __s, __n);=0A= else if (__pos)=0A= traits_type::move(_M_data(), __s, __n);=0A= _M_rep()->_M_length =3D __n;=0A= _M_data()[__n] =3D _Rep::_S_terminal;=0A= return *this;=0A= }=0A= }=0A= =0A= basic_string&=0A= assign(const _CharT* __s)=0A= { return this->assign(__s, traits_type::length(__s)); }=0A= =0A= basic_string&=0A= assign(size_type __n, _CharT __c)=0A= { return this->replace(_M_ibegin(), _M_iend(), __n, __c); }=0A= =0A= template=0A= basic_string&=0A= assign(_InputIterator __first, _InputIterator __last)=0A= { return this->replace(_M_ibegin(), _M_iend(), __first, __last); = }=0A= =0A= void=0A= insert(iterator __p, size_type __n, _CharT __c)=0A= { this->replace(__p, __p, __n, __c); }=0A= =0A= template=0A= void insert(iterator __p, _InputIterator __beg, _InputIterator = __end)=0A= { this->replace(__p, __p, __beg, __end); }=0A= =0A= basic_string&=0A= insert(size_type __pos1, const basic_string& __str)=0A= { return this->insert(__pos1, __str, 0, __str.size()); }=0A= =0A= basic_string&=0A= insert(size_type __pos1, const basic_string& __str,=0A= size_type __pos2, size_type __n)=0A= {=0A= const size_type __strsize =3D __str.size();=0A= if (__pos2 > __strsize)=0A= __throw_out_of_range("basic_string::insert");=0A= const bool __testn =3D __n < __strsize - __pos2;=0A= const size_type __newsize =3D __testn ? __n : __strsize - __pos2;=0A= return this->insert(__pos1, __str._M_data() + __pos2, __newsize);=0A= }=0A= =0A= basic_string&=0A= insert(size_type __pos, const _CharT* __s, size_type __n)=0A= {=0A= const size_type __size =3D this->size();=0A= if (__pos > __size)=0A= __throw_out_of_range("basic_string::insert");=0A= if (__size > this->max_size() - __n)=0A= __throw_length_error("basic_string::insert");=0A= if (_M_rep()->_M_is_shared() || less()(__s, = _M_data())=0A= || less()(_M_data() + __size, __s))=0A= return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + = __pos,=0A= __s, __s + __n);=0A= else=0A= {=0A= =0A= =0A= =0A= const size_type __off =3D __s - _M_data();=0A= _M_mutate(__pos, 0, __n);=0A= __s =3D _M_data() + __off;=0A= _CharT* __p =3D _M_data() + __pos;=0A= if (__s + __n <=3D __p)=0A= traits_type::copy(__p, __s, __n);=0A= else if (__s >=3D __p)=0A= traits_type::copy(__p, __s + __n, __n);=0A= else=0A= {=0A= traits_type::copy(__p, __s, __p - __s);=0A= traits_type::copy(__p + (__p - __s), __p + __n, __n - = (__p - __s));=0A= }=0A= return *this;=0A= }=0A= }=0A= =0A= basic_string&=0A= insert(size_type __pos, const _CharT* __s)=0A= { return this->insert(__pos, __s, traits_type::length(__s)); }=0A= =0A= basic_string&=0A= insert(size_type __pos, size_type __n, _CharT __c)=0A= {=0A= this->insert(_M_check(__pos), __n, __c);=0A= return *this;=0A= }=0A= =0A= iterator=0A= insert(iterator __p, _CharT __c =3D _CharT())=0A= {=0A= size_type __pos =3D __p - _M_ibegin();=0A= this->insert(_M_check(__pos), size_type(1), __c);=0A= _M_rep()->_M_set_leaked();=0A= return this->_M_ibegin() + __pos;=0A= }=0A= =0A= basic_string&=0A= erase(size_type __pos =3D 0, size_type __n =3D npos)=0A= {=0A= return this->replace(_M_check(__pos), _M_fold(__pos, __n),=0A= _M_data(), _M_data());=0A= }=0A= =0A= iterator=0A= erase(iterator __position)=0A= {=0A= size_type __i =3D __position - _M_ibegin();=0A= this->replace(__position, __position + 1, _M_data(), _M_data());=0A= _M_rep()->_M_set_leaked();=0A= return _M_ibegin() + __i;=0A= }=0A= =0A= iterator=0A= erase(iterator __first, iterator __last)=0A= {=0A= size_type __i =3D __first - _M_ibegin();=0A= this->replace(__first, __last, _M_data(), _M_data());=0A= _M_rep()->_M_set_leaked();=0A= return _M_ibegin() + __i;=0A= }=0A= =0A= basic_string&=0A= replace(size_type __pos, size_type __n, const basic_string& __str)=0A= { return this->replace(__pos, __n, __str._M_data(), __str.size()); = }=0A= =0A= basic_string&=0A= replace(size_type __pos1, size_type __n1, const basic_string& = __str,=0A= size_type __pos2, size_type __n2);=0A= =0A= basic_string&=0A= replace(size_type __pos, size_type __n1, const _CharT* __s,=0A= size_type __n2)=0A= {=0A= const size_type __size =3D this->size();=0A= if (__pos > __size)=0A= __throw_out_of_range("basic_string::replace");=0A= const bool __testn1 =3D __n1 < __size - __pos;=0A= const size_type __foldn1 =3D __testn1 ? __n1 : __size - __pos;=0A= if (__size - __foldn1 > this->max_size() - __n2)=0A= __throw_length_error("basic_string::replace");=0A= if (_M_rep()->_M_is_shared() || less()(__s, = _M_data())=0A= || less()(_M_data() + __size, __s))=0A= return _M_replace_safe(_M_ibegin() + __pos,=0A= _M_ibegin() + __pos + __foldn1, __s, = __s + __n2);=0A= else return this->replace(_M_check(__pos), _M_fold(__pos, __n1),=0A= __s, __s + __n2);=0A= }=0A= =0A= basic_string&=0A= replace(size_type __pos, size_type __n1, const _CharT* __s)=0A= { return this->replace(__pos, __n1, __s, = traits_type::length(__s)); }=0A= =0A= basic_string&=0A= replace(size_type __pos, size_type __n1, size_type __n2, _CharT = __c)=0A= { return this->replace(_M_check(__pos), _M_fold(__pos, __n1), = __n2, __c); }=0A= =0A= basic_string&=0A= replace(iterator __i1, iterator __i2, const basic_string& __str)=0A= { return this->replace(__i1, __i2, __str._M_data(), __str.size()); = }=0A= =0A= basic_string&=0A= replace(iterator __i1, iterator __i2,=0A= const _CharT* __s, size_type __n)=0A= { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); = }=0A= =0A= basic_string&=0A= replace(iterator __i1, iterator __i2, const _CharT* __s)=0A= { return this->replace(__i1, __i2, __s, traits_type::length(__s)); = }=0A= =0A= basic_string&=0A= replace(iterator __i1, iterator __i2, size_type __n, _CharT __c);=0A= =0A= template=0A= basic_string&=0A= replace(iterator __i1, iterator __i2,=0A= _InputIterator __k1, _InputIterator __k2)=0A= { return _M_replace(__i1, __i2, __k1, __k2,=0A= typename = iterator_traits<_InputIterator>::iterator_category()); }=0A= =0A= private:=0A= template=0A= basic_string&=0A= _M_replace(iterator __i1, iterator __i2, _InputIterator __k1,=0A= _InputIterator __k2, input_iterator_tag);=0A= =0A= template=0A= basic_string&=0A= _M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator = __k1,=0A= _ForwardIterator __k2);=0A= =0A= =0A= =0A= template=0A= static _CharT*=0A= _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,=0A= __false_type)=0A= {=0A= typedef typename iterator_traits<_InIter>::iterator_category = _Tag;=0A= return _S_construct(__beg, __end, __a, _Tag());=0A= }=0A= =0A= template=0A= static _CharT*=0A= _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,=0A= __true_type)=0A= {=0A= return _S_construct(static_cast(__beg),=0A= static_cast(__end), __a);=0A= }=0A= =0A= template=0A= static _CharT*=0A= _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a)=0A= {=0A= typedef typename _Is_integer<_InIter>::_Integral _Integral;=0A= return _S_construct_aux(__beg, __end, __a, _Integral());=0A= }=0A= =0A= =0A= template=0A= static _CharT*=0A= _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,=0A= input_iterator_tag);=0A= =0A= =0A= =0A= template=0A= static _CharT*=0A= _S_construct(_FwdIter __beg, _FwdIter __end, const _Alloc& __a,=0A= forward_iterator_tag);=0A= =0A= static _CharT*=0A= _S_construct(size_type __req, _CharT __c, const _Alloc& __a);=0A= =0A= public:=0A= =0A= size_type=0A= copy(_CharT* __s, size_type __n, size_type __pos =3D 0) const;=0A= =0A= void=0A= swap(basic_string<_CharT, _Traits, _Alloc>& __s);=0A= =0A= =0A= const _CharT*=0A= c_str() const=0A= {=0A= =0A= size_type __n =3D this->size();=0A= traits_type::assign(_M_data()[__n], _Rep::_S_terminal);=0A= return _M_data();=0A= }=0A= =0A= const _CharT*=0A= data() const { return _M_data(); }=0A= =0A= allocator_type=0A= get_allocator() const { return _M_dataplus; }=0A= =0A= size_type=0A= find(const _CharT* __s, size_type __pos, size_type __n) const;=0A= =0A= size_type=0A= find(const basic_string& __str, size_type __pos =3D 0) const=0A= { return this->find(__str.data(), __pos, __str.size()); }=0A= =0A= size_type=0A= find(const _CharT* __s, size_type __pos =3D 0) const=0A= { return this->find(__s, __pos, traits_type::length(__s)); }=0A= =0A= size_type=0A= find(_CharT __c, size_type __pos =3D 0) const;=0A= =0A= size_type=0A= rfind(const basic_string& __str, size_type __pos =3D npos) const=0A= { return this->rfind(__str.data(), __pos, __str.size()); }=0A= =0A= size_type=0A= rfind(const _CharT* __s, size_type __pos, size_type __n) const;=0A= =0A= size_type=0A= rfind(const _CharT* __s, size_type __pos =3D npos) const=0A= { return this->rfind(__s, __pos, traits_type::length(__s)); }=0A= =0A= size_type=0A= rfind(_CharT __c, size_type __pos =3D npos) const;=0A= =0A= size_type=0A= find_first_of(const basic_string& __str, size_type __pos =3D 0) = const=0A= { return this->find_first_of(__str.data(), __pos, __str.size()); }=0A= =0A= size_type=0A= find_first_of(const _CharT* __s, size_type __pos, size_type __n) = const;=0A= =0A= size_type=0A= find_first_of(const _CharT* __s, size_type __pos =3D 0) const=0A= { return this->find_first_of(__s, __pos, = traits_type::length(__s)); }=0A= =0A= size_type=0A= find_first_of(_CharT __c, size_type __pos =3D 0) const=0A= { return this->find(__c, __pos); }=0A= =0A= size_type=0A= find_last_of(const basic_string& __str, size_type __pos =3D npos) = const=0A= { return this->find_last_of(__str.data(), __pos, __str.size()); }=0A= =0A= size_type=0A= find_last_of(const _CharT* __s, size_type __pos, size_type __n) = const;=0A= =0A= size_type=0A= find_last_of(const _CharT* __s, size_type __pos =3D npos) const=0A= { return this->find_last_of(__s, __pos, traits_type::length(__s)); = }=0A= =0A= size_type=0A= find_last_of(_CharT __c, size_type __pos =3D npos) const=0A= { return this->rfind(__c, __pos); }=0A= =0A= size_type=0A= find_first_not_of(const basic_string& __str, size_type __pos =3D = 0) const=0A= { return this->find_first_not_of(__str.data(), __pos, = __str.size()); }=0A= =0A= size_type=0A= find_first_not_of(const _CharT* __s, size_type __pos,=0A= size_type __n) const;=0A= =0A= size_type=0A= find_first_not_of(const _CharT* __s, size_type __pos =3D 0) const=0A= { return this->find_first_not_of(__s, __pos, = traits_type::length(__s)); }=0A= =0A= size_type=0A= find_first_not_of(_CharT __c, size_type __pos =3D 0) const;=0A= =0A= size_type=0A= find_last_not_of(const basic_string& __str, size_type __pos =3D = npos) const=0A= { return this->find_last_not_of(__str.data(), __pos, = __str.size()); }=0A= =0A= size_type=0A= find_last_not_of(const _CharT* __s, size_type __pos,=0A= size_type __n) const;=0A= size_type=0A= find_last_not_of(const _CharT* __s, size_type __pos =3D npos) const=0A= { return this->find_last_not_of(__s, __pos, = traits_type::length(__s)); }=0A= =0A= size_type=0A= find_last_not_of(_CharT __c, size_type __pos =3D npos) const;=0A= =0A= basic_string=0A= substr(size_type __pos =3D 0, size_type __n =3D npos) const=0A= {=0A= if (__pos > this->size())=0A= __throw_out_of_range("basic_string::substr");=0A= return basic_string(*this, __pos, __n);=0A= }=0A= =0A= int=0A= compare(const basic_string& __str) const=0A= {=0A= size_type __size =3D this->size();=0A= size_type __osize =3D __str.size();=0A= size_type __len =3D min(__size, __osize);=0A= =0A= int __r =3D traits_type::compare(_M_data(), __str.data(), __len);=0A= if (!__r)=0A= __r =3D __size - __osize;=0A= return __r;=0A= }=0A= =0A= int=0A= compare(size_type __pos, size_type __n, const basic_string& __str) = const;=0A= =0A= int=0A= compare(size_type __pos1, size_type __n1, const basic_string& = __str,=0A= size_type __pos2, size_type __n2) const;=0A= =0A= int=0A= compare(const _CharT* __s) const;=0A= =0A= =0A= =0A= int=0A= compare(size_type __pos, size_type __n1, const _CharT* __s) const;=0A= =0A= int=0A= compare(size_type __pos, size_type __n1, const _CharT* __s,=0A= size_type __n2) const;=0A= };=0A= =0A= =0A= template=0A= inline basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string()=0A= : _M_dataplus(_S_empty_rep()._M_refcopy(), _Alloc()) { }=0A= =0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>=0A= operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= {=0A= basic_string<_CharT, _Traits, _Alloc> __str(__lhs);=0A= __str.append(__rhs);=0A= return __str;=0A= }=0A= =0A= template=0A= basic_string<_CharT,_Traits,_Alloc>=0A= operator+(const _CharT* __lhs,=0A= const basic_string<_CharT,_Traits,_Alloc>& __rhs);=0A= =0A= template=0A= basic_string<_CharT,_Traits,_Alloc>=0A= operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& = __rhs);=0A= =0A= template=0A= inline basic_string<_CharT, _Traits, _Alloc>=0A= operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const _CharT* __rhs)=0A= {=0A= basic_string<_CharT, _Traits, _Alloc> __str(__lhs);=0A= __str.append(__rhs);=0A= return __str;=0A= }=0A= =0A= template=0A= inline basic_string<_CharT, _Traits, _Alloc>=0A= operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT = __rhs)=0A= {=0A= typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A= typedef typename __string_type::size_type __size_type;=0A= __string_type __str(__lhs);=0A= __str.append(__size_type(1), __rhs);=0A= return __str;=0A= }=0A= =0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __lhs.compare(__rhs) =3D=3D 0; }=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const _CharT* __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __rhs.compare(__lhs) =3D=3D 0; }=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const _CharT* __rhs)=0A= { return __lhs.compare(__rhs) =3D=3D 0; }=0A= =0A= =0A= template=0A= inline bool=0A= operator!=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __rhs.compare(__lhs) !=3D 0; }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const _CharT* __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __rhs.compare(__lhs) !=3D 0; }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const _CharT* __rhs)=0A= { return __lhs.compare(__rhs) !=3D 0; }=0A= =0A= =0A= template=0A= inline bool=0A= operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __lhs.compare(__rhs) < 0; }=0A= =0A= template=0A= inline bool=0A= operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const _CharT* __rhs)=0A= { return __lhs.compare(__rhs) < 0; }=0A= =0A= template=0A= inline bool=0A= operator<(const _CharT* __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __rhs.compare(__lhs) > 0; }=0A= =0A= =0A= template=0A= inline bool=0A= operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __lhs.compare(__rhs) > 0; }=0A= =0A= template=0A= inline bool=0A= operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const _CharT* __rhs)=0A= { return __lhs.compare(__rhs) > 0; }=0A= =0A= template=0A= inline bool=0A= operator>(const _CharT* __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __rhs.compare(__lhs) < 0; }=0A= =0A= =0A= template=0A= inline bool=0A= operator<=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __lhs.compare(__rhs) <=3D 0; }=0A= =0A= template=0A= inline bool=0A= operator<=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const _CharT* __rhs)=0A= { return __lhs.compare(__rhs) <=3D 0; }=0A= =0A= template=0A= inline bool=0A= operator<=3D(const _CharT* __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __rhs.compare(__lhs) >=3D 0; }=0A= =0A= =0A= template=0A= inline bool=0A= operator>=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __lhs.compare(__rhs) >=3D 0; }=0A= =0A= template=0A= inline bool=0A= operator>=3D(const basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= const _CharT* __rhs)=0A= { return __lhs.compare(__rhs) >=3D 0; }=0A= =0A= template=0A= inline bool=0A= operator>=3D(const _CharT* __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { return __rhs.compare(__lhs) <=3D 0; }=0A= =0A= =0A= template=0A= inline void=0A= swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,=0A= basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= { __lhs.swap(__rhs); }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= operator>>(basic_istream<_CharT, _Traits>& __is,=0A= basic_string<_CharT, _Traits, _Alloc>& __str);=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= operator<<(basic_ostream<_CharT, _Traits>& __os,=0A= const basic_string<_CharT, _Traits, _Alloc>& __str);=0A= =0A= template=0A= basic_istream<_CharT,_Traits>&=0A= getline(basic_istream<_CharT, _Traits>& __is,=0A= basic_string<_CharT, _Traits, _Alloc>& __str, _CharT = __delim);=0A= =0A= template=0A= inline basic_istream<_CharT,_Traits>&=0A= getline(basic_istream<_CharT, _Traits>& __is,=0A= basic_string<_CharT, _Traits, _Alloc>& __str);=0A= }=0A= # 54 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/algorithm" 1 3=0A= # 65 "/usr/local/gcc3.1/include/g++-v3/algorithm" 3=0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 1 3=0A= # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_heap.h" 1 3=0A= # 63 "/usr/local/gcc3.1/include/g++-v3/bits/stl_heap.h" 3=0A= namespace std=0A= {=0A= =0A= =0A= =0A= template=0A= void=0A= __push_heap(_RandomAccessIterator __first,=0A= _Distance __holeIndex, _Distance __topIndex, _Tp __value)=0A= {=0A= _Distance __parent =3D (__holeIndex - 1) / 2;=0A= while (__holeIndex > __topIndex && *(__first + __parent) < = __value) {=0A= *(__first + __holeIndex) =3D *(__first + __parent);=0A= __holeIndex =3D __parent;=0A= __parent =3D (__holeIndex - 1) / 2;=0A= }=0A= *(__first + __holeIndex) =3D __value;=0A= }=0A= =0A= template=0A= inline void=0A= push_heap(_RandomAccessIterator __first, _RandomAccessIterator = __last)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIterator>::value_type=0A= _ValueType;=0A= typedef typename = iterator_traits<_RandomAccessIterator>::difference_type=0A= _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= __push_heap(__first, _DistanceType((__last - __first) - 1), = _DistanceType(0),=0A= _ValueType(*(__last - 1)));=0A= }=0A= =0A= template=0A= void=0A= __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,=0A= _Distance __topIndex, _Tp __value, _Compare __comp)=0A= {=0A= _Distance __parent =3D (__holeIndex - 1) / 2;=0A= while (__holeIndex > __topIndex && __comp(*(__first + __parent), = __value)) {=0A= *(__first + __holeIndex) =3D *(__first + __parent);=0A= __holeIndex =3D __parent;=0A= __parent =3D (__holeIndex - 1) / 2;=0A= }=0A= *(__first + __holeIndex) =3D __value;=0A= }=0A= =0A= template=0A= inline void=0A= push_heap(_RandomAccessIterator __first, _RandomAccessIterator = __last,=0A= _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIterator>::value_type=0A= _ValueType;=0A= typedef typename = iterator_traits<_RandomAccessIterator>::difference_type=0A= _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= __push_heap(__first, _DistanceType((__last - __first) - 1), = _DistanceType(0),=0A= _ValueType(*(__last - 1)), __comp);=0A= }=0A= =0A= template=0A= void=0A= __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,=0A= _Distance __len, _Tp __value)=0A= {=0A= _Distance __topIndex =3D __holeIndex;=0A= _Distance __secondChild =3D 2 * __holeIndex + 2;=0A= while (__secondChild < __len) {=0A= if (*(__first + __secondChild) < *(__first + (__secondChild - = 1)))=0A= __secondChild--;=0A= *(__first + __holeIndex) =3D *(__first + __secondChild);=0A= __holeIndex =3D __secondChild;=0A= __secondChild =3D 2 * (__secondChild + 1);=0A= }=0A= if (__secondChild =3D=3D __len) {=0A= *(__first + __holeIndex) =3D *(__first + (__secondChild - 1));=0A= __holeIndex =3D __secondChild - 1;=0A= }=0A= __push_heap(__first, __holeIndex, __topIndex, __value);=0A= }=0A= =0A= template=0A= inline void=0A= __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator = __last,=0A= _RandomAccessIterator __result, _Tp __value)=0A= {=0A= typedef typename = iterator_traits<_RandomAccessIterator>::difference_type _Distance;=0A= *__result =3D *__first;=0A= __adjust_heap(__first, _Distance(0), _Distance(__last - __first), = __value);=0A= }=0A= =0A= template=0A= inline void=0A= pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)=0A= {=0A= typedef typename = iterator_traits<_RandomAccessIterator>::value_type _ValueType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - = 1)));=0A= }=0A= =0A= template=0A= void=0A= __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,=0A= _Distance __len, _Tp __value, _Compare __comp)=0A= {=0A= _Distance __topIndex =3D __holeIndex;=0A= _Distance __secondChild =3D 2 * __holeIndex + 2;=0A= while (__secondChild < __len) {=0A= if (__comp(*(__first + __secondChild), *(__first + = (__secondChild - 1))))=0A= __secondChild--;=0A= *(__first + __holeIndex) =3D *(__first + __secondChild);=0A= __holeIndex =3D __secondChild;=0A= __secondChild =3D 2 * (__secondChild + 1);=0A= }=0A= if (__secondChild =3D=3D __len) {=0A= *(__first + __holeIndex) =3D *(__first + (__secondChild - 1));=0A= __holeIndex =3D __secondChild - 1;=0A= }=0A= __push_heap(__first, __holeIndex, __topIndex, __value, __comp);=0A= }=0A= =0A= template=0A= inline void=0A= __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator = __last,=0A= _RandomAccessIterator __result, _Tp __value, _Compare = __comp)=0A= {=0A= typedef typename = iterator_traits<_RandomAccessIterator>::difference_type _Distance;=0A= *__result =3D *__first;=0A= __adjust_heap(__first, _Distance(0), _Distance(__last - __first),=0A= __value, __comp);=0A= }=0A= =0A= template=0A= inline void=0A= pop_heap(_RandomAccessIterator __first,=0A= _RandomAccessIterator __last, _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= typedef typename = iterator_traits<_RandomAccessIterator>::value_type _ValueType;=0A= __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - = 1)), __comp);=0A= }=0A= =0A= template=0A= void=0A= make_heap(_RandomAccessIterator __first, _RandomAccessIterator = __last)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIterator>::value_type=0A= _ValueType;=0A= typedef typename = iterator_traits<_RandomAccessIterator>::difference_type=0A= _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__last - __first < 2) return;=0A= _DistanceType __len =3D __last - __first;=0A= _DistanceType __parent =3D (__len - 2)/2;=0A= =0A= while (true) {=0A= __adjust_heap(__first, __parent, __len, _ValueType(*(__first + = __parent)));=0A= if (__parent =3D=3D 0) return;=0A= __parent--;=0A= }=0A= }=0A= =0A= template=0A= inline void=0A= make_heap(_RandomAccessIterator __first, _RandomAccessIterator = __last,=0A= _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIterator>::value_type=0A= _ValueType;=0A= typedef typename = iterator_traits<_RandomAccessIterator>::difference_type=0A= _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= if (__last - __first < 2) return;=0A= _DistanceType __len =3D __last - __first;=0A= _DistanceType __parent =3D (__len - 2)/2;=0A= =0A= while (true) {=0A= __adjust_heap(__first, __parent, __len,=0A= _ValueType(*(__first + __parent)), __comp);=0A= if (__parent =3D=3D 0) return;=0A= __parent--;=0A= }=0A= }=0A= =0A= template=0A= void=0A= sort_heap(_RandomAccessIterator __first, _RandomAccessIterator = __last)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__last - __first > 1)=0A= pop_heap(__first, __last--);=0A= }=0A= =0A= template=0A= void=0A= sort_heap(_RandomAccessIterator __first, _RandomAccessIterator = __last,=0A= _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= while (__last - __first > 1)=0A= pop_heap(__first, __last--, __comp);=0A= }=0A= =0A= }=0A= # 65 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tempbuf.h" 1 3=0A= # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tempbuf.h" 3=0A= namespace std=0A= {=0A= # 74 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tempbuf.h" 3=0A= template =0A= class _Temporary_buffer=0A= {=0A= =0A= =0A= =0A= ptrdiff_t _M_original_len;=0A= ptrdiff_t _M_len;=0A= _Tp* _M_buffer;=0A= =0A= =0A= void _M_allocate_buffer() {=0A= _M_original_len =3D _M_len;=0A= _M_buffer =3D 0;=0A= =0A= if (_M_len > (ptrdiff_t)(2147483647 / sizeof(_Tp)))=0A= _M_len =3D 2147483647 / sizeof(_Tp);=0A= =0A= while (_M_len > 0) {=0A= _M_buffer =3D (_Tp*) malloc(_M_len * sizeof(_Tp));=0A= if (_M_buffer)=0A= break;=0A= _M_len /=3D 2;=0A= }=0A= }=0A= =0A= void _M_initialize_buffer(const _Tp&, __true_type) {}=0A= void _M_initialize_buffer(const _Tp& val, __false_type) {=0A= uninitialized_fill_n(_M_buffer, _M_len, val);=0A= }=0A= =0A= public:=0A= =0A= ptrdiff_t size() const { return _M_len; }=0A= =0A= ptrdiff_t requested_size() const { return _M_original_len; }=0A= =0A= _Tp* begin() { return _M_buffer; }=0A= =0A= _Tp* end() { return _M_buffer + _M_len; }=0A= =0A= _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) {=0A= =0A= typedef typename __type_traits<_Tp>::has_trivial_default_constructor=0A= _Trivial;=0A= =0A= try {=0A= _M_len =3D distance(__first, __last);=0A= _M_allocate_buffer();=0A= if (_M_len > 0)=0A= _M_initialize_buffer(*__first, _Trivial());=0A= }=0A= catch(...)=0A= {=0A= free(_M_buffer);=0A= _M_buffer =3D 0;=0A= _M_len =3D 0;=0A= throw;=0A= }=0A= }=0A= =0A= ~_Temporary_buffer() {=0A= _Destroy(_M_buffer, _M_buffer + _M_len);=0A= free(_M_buffer);=0A= }=0A= =0A= private:=0A= =0A= _Temporary_buffer(const _Temporary_buffer&) {}=0A= void operator=3D(const _Temporary_buffer&) {}=0A= };=0A= =0A= }=0A= # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 2 3=0A= =0A= =0A= =0A= namespace std=0A= {=0A= # 84 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline const _Tp&=0A= __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)=0A= {=0A= =0A= =0A= if (__a < __b)=0A= if (__b < __c)=0A= return __b;=0A= else if (__a < __c)=0A= return __c;=0A= else=0A= return __a;=0A= else if (__a < __c)=0A= return __a;=0A= else if (__b < __c)=0A= return __c;=0A= else=0A= return __b;=0A= }=0A= # 118 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline const _Tp&=0A= __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare = __comp)=0A= {=0A= =0A= =0A= if (__comp(__a, __b))=0A= if (__comp(__b, __c))=0A= return __b;=0A= else if (__comp(__a, __c))=0A= return __c;=0A= else=0A= return __a;=0A= else if (__comp(__a, __c))=0A= return __a;=0A= else if (__comp(__b, __c))=0A= return __c;=0A= else=0A= return __b;=0A= }=0A= # 150 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _Function=0A= for_each(_InputIter __first, _InputIter __last, _Function __f)=0A= {=0A= =0A= =0A= for ( ; __first !=3D __last; ++__first)=0A= __f(*__first);=0A= return __f;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= inline _InputIter=0A= find(_InputIter __first, _InputIter __last,=0A= const _Tp& __val,=0A= input_iterator_tag)=0A= {=0A= while (__first !=3D __last && !(*__first =3D=3D __val))=0A= ++__first;=0A= return __first;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= inline _InputIter=0A= find_if(_InputIter __first, _InputIter __last,=0A= _Predicate __pred,=0A= input_iterator_tag)=0A= {=0A= while (__first !=3D __last && !__pred(*__first))=0A= ++__first;=0A= return __first;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _RandomAccessIter=0A= find(_RandomAccessIter __first, _RandomAccessIter __last,=0A= const _Tp& __val,=0A= random_access_iterator_tag)=0A= {=0A= typename iterator_traits<_RandomAccessIter>::difference_type = __trip_count=0A= =3D (__last - __first) >> 2;=0A= =0A= for ( ; __trip_count > 0 ; --__trip_count) {=0A= if (*__first =3D=3D __val) return __first;=0A= ++__first;=0A= =0A= if (*__first =3D=3D __val) return __first;=0A= ++__first;=0A= =0A= if (*__first =3D=3D __val) return __first;=0A= ++__first;=0A= =0A= if (*__first =3D=3D __val) return __first;=0A= ++__first;=0A= }=0A= =0A= switch(__last - __first) {=0A= case 3:=0A= if (*__first =3D=3D __val) return __first;=0A= ++__first;=0A= case 2:=0A= if (*__first =3D=3D __val) return __first;=0A= ++__first;=0A= case 1:=0A= if (*__first =3D=3D __val) return __first;=0A= ++__first;=0A= case 0:=0A= default:=0A= return __last;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _RandomAccessIter=0A= find_if(_RandomAccessIter __first, _RandomAccessIter __last,=0A= _Predicate __pred,=0A= random_access_iterator_tag)=0A= {=0A= typename iterator_traits<_RandomAccessIter>::difference_type = __trip_count=0A= =3D (__last - __first) >> 2;=0A= =0A= for ( ; __trip_count > 0 ; --__trip_count) {=0A= if (__pred(*__first)) return __first;=0A= ++__first;=0A= =0A= if (__pred(*__first)) return __first;=0A= ++__first;=0A= =0A= if (__pred(*__first)) return __first;=0A= ++__first;=0A= =0A= if (__pred(*__first)) return __first;=0A= ++__first;=0A= }=0A= =0A= switch(__last - __first) {=0A= case 3:=0A= if (__pred(*__first)) return __first;=0A= ++__first;=0A= case 2:=0A= if (__pred(*__first)) return __first;=0A= ++__first;=0A= case 1:=0A= if (__pred(*__first)) return __first;=0A= ++__first;=0A= case 0:=0A= default:=0A= return __last;=0A= }=0A= }=0A= # 289 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline _InputIter=0A= find(_InputIter __first, _InputIter __last,=0A= const _Tp& __val)=0A= {=0A= =0A= =0A= =0A= =0A= return find(__first, __last, __val, __iterator_category(__first));=0A= }=0A= # 309 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline _InputIter=0A= find_if(_InputIter __first, _InputIter __last,=0A= _Predicate __pred)=0A= {=0A= =0A= =0A= =0A= =0A= return find_if(__first, __last, __pred, = __iterator_category(__first));=0A= }=0A= # 329 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= adjacent_find(_ForwardIter __first, _ForwardIter __last)=0A= {=0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last)=0A= return __last;=0A= _ForwardIter __next =3D __first;=0A= while(++__next !=3D __last) {=0A= if (*__first =3D=3D *__next)=0A= return __first;=0A= __first =3D __next;=0A= }=0A= return __last;=0A= }=0A= # 358 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= adjacent_find(_ForwardIter __first, _ForwardIter __last,=0A= _BinaryPredicate __binary_pred)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last)=0A= return __last;=0A= _ForwardIter __next =3D __first;=0A= while(++__next !=3D __last) {=0A= if (__binary_pred(*__first, *__next))=0A= return __first;=0A= __first =3D __next;=0A= }=0A= return __last;=0A= }=0A= # 387 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= typename iterator_traits<_InputIter>::difference_type=0A= count(_InputIter __first, _InputIter __last, const _Tp& __value)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= typename iterator_traits<_InputIter>::difference_type __n =3D 0;=0A= for ( ; __first !=3D __last; ++__first)=0A= if (*__first =3D=3D __value)=0A= ++__n;=0A= return __n;=0A= }=0A= # 411 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= typename iterator_traits<_InputIter>::difference_type=0A= count_if(_InputIter __first, _InputIter __last, _Predicate __pred)=0A= {=0A= =0A= =0A= =0A= =0A= typename iterator_traits<_InputIter>::difference_type __n =3D 0;=0A= for ( ; __first !=3D __last; ++__first)=0A= if (__pred(*__first))=0A= ++__n;=0A= return __n;=0A= }=0A= # 450 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter1=0A= search(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A= _ForwardIter2 __first2, _ForwardIter2 __last2)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first1 =3D=3D __last1 || __first2 =3D=3D __last2)=0A= return __first1;=0A= =0A= =0A= _ForwardIter2 __tmp(__first2);=0A= ++__tmp;=0A= if (__tmp =3D=3D __last2)=0A= return find(__first1, __last1, *__first2);=0A= =0A= =0A= =0A= _ForwardIter2 __p1, __p;=0A= =0A= __p1 =3D __first2; ++__p1;=0A= =0A= _ForwardIter1 __current =3D __first1;=0A= =0A= while (__first1 !=3D __last1) {=0A= __first1 =3D find(__first1, __last1, *__first2);=0A= if (__first1 =3D=3D __last1)=0A= return __last1;=0A= =0A= __p =3D __p1;=0A= __current =3D __first1;=0A= if (++__current =3D=3D __last1)=0A= return __last1;=0A= =0A= while (*__current =3D=3D *__p) {=0A= if (++__p =3D=3D __last2)=0A= return __first1;=0A= if (++__current =3D=3D __last1)=0A= return __last1;=0A= }=0A= =0A= ++__first1;=0A= }=0A= return __first1;=0A= }=0A= # 522 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter1=0A= search(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A= _ForwardIter2 __first2, _ForwardIter2 __last2,=0A= _BinaryPred __predicate)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first1 =3D=3D __last1 || __first2 =3D=3D __last2)=0A= return __first1;=0A= =0A= =0A= _ForwardIter2 __tmp(__first2);=0A= ++__tmp;=0A= if (__tmp =3D=3D __last2) {=0A= while (__first1 !=3D __last1 && !__predicate(*__first1, = *__first2))=0A= ++__first1;=0A= return __first1;=0A= }=0A= =0A= =0A= =0A= _ForwardIter2 __p1, __p;=0A= =0A= __p1 =3D __first2; ++__p1;=0A= =0A= _ForwardIter1 __current =3D __first1;=0A= =0A= while (__first1 !=3D __last1) {=0A= while (__first1 !=3D __last1) {=0A= if (__predicate(*__first1, *__first2))=0A= break;=0A= ++__first1;=0A= }=0A= while (__first1 !=3D __last1 && !__predicate(*__first1, = *__first2))=0A= ++__first1;=0A= if (__first1 =3D=3D __last1)=0A= return __last1;=0A= =0A= __p =3D __p1;=0A= __current =3D __first1;=0A= if (++__current =3D=3D __last1) return __last1;=0A= =0A= while (__predicate(*__current, *__p)) {=0A= if (++__p =3D=3D __last2)=0A= return __first1;=0A= if (++__current =3D=3D __last1)=0A= return __last1;=0A= }=0A= =0A= ++__first1;=0A= }=0A= return __first1;=0A= }=0A= # 596 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= search_n(_ForwardIter __first, _ForwardIter __last,=0A= _Integer __count, const _Tp& __val)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__count <=3D 0)=0A= return __first;=0A= else {=0A= __first =3D find(__first, __last, __val);=0A= while (__first !=3D __last) {=0A= _Integer __n =3D __count - 1;=0A= _ForwardIter __i =3D __first;=0A= ++__i;=0A= while (__i !=3D __last && __n !=3D 0 && *__i =3D=3D __val) {=0A= ++__i;=0A= --__n;=0A= }=0A= if (__n =3D=3D 0)=0A= return __first;=0A= else=0A= __first =3D find(__i, __last, __val);=0A= }=0A= return __last;=0A= }=0A= }=0A= # 643 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= search_n(_ForwardIter __first, _ForwardIter __last,=0A= _Integer __count, const _Tp& __val,=0A= _BinaryPred __binary_pred)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= if (__count <=3D 0)=0A= return __first;=0A= else {=0A= while (__first !=3D __last) {=0A= if (__binary_pred(*__first, __val))=0A= break;=0A= ++__first;=0A= }=0A= while (__first !=3D __last) {=0A= _Integer __n =3D __count - 1;=0A= _ForwardIter __i =3D __first;=0A= ++__i;=0A= while (__i !=3D __last && __n !=3D 0 && __binary_pred(*__i, = __val)) {=0A= ++__i;=0A= --__n;=0A= }=0A= if (__n =3D=3D 0)=0A= return __first;=0A= else {=0A= while (__i !=3D __last) {=0A= if (__binary_pred(*__i, __val))=0A= break;=0A= ++__i;=0A= }=0A= __first =3D __i;=0A= }=0A= }=0A= return __last;=0A= }=0A= }=0A= # 697 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter2=0A= swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A= _ForwardIter2 __first2)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first1 !=3D __last1; ++__first1, ++__first2)=0A= iter_swap(__first1, __first2);=0A= return __first2;=0A= }=0A= # 732 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= transform(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, _UnaryOperation __unary_op)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first, ++__result)=0A= *__result =3D __unary_op(*__first);=0A= return __result;=0A= }=0A= # 765 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= transform(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _OutputIter __result,=0A= _BinaryOperation __binary_op)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first1 !=3D __last1; ++__first1, ++__first2, ++__result)=0A= *__result =3D __binary_op(*__first1, *__first2);=0A= return __result;=0A= }=0A= # 796 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= replace(_ForwardIter __first, _ForwardIter __last,=0A= const _Tp& __old_value, const _Tp& __new_value)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first)=0A= if (*__first =3D=3D __old_value)=0A= *__first =3D __new_value;=0A= }=0A= # 825 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= replace_if(_ForwardIter __first, _ForwardIter __last,=0A= _Predicate __pred, const _Tp& __new_value)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first)=0A= if (__pred(*__first))=0A= *__first =3D __new_value;=0A= }=0A= # 856 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= replace_copy(_InputIter __first, _InputIter __last,=0A= _OutputIter __result,=0A= const _Tp& __old_value, const _Tp& __new_value)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first, ++__result)=0A= *__result =3D *__first =3D=3D __old_value ? __new_value : = *__first;=0A= return __result;=0A= }=0A= # 888 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= replace_copy_if(_InputIter __first, _InputIter __last,=0A= _OutputIter __result,=0A= _Predicate __pred, const _Tp& __new_value)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first, ++__result)=0A= *__result =3D __pred(*__first) ? __new_value : *__first;=0A= return __result;=0A= }=0A= # 918 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first)=0A= *__first =3D __gen();=0A= }=0A= # 942 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= generate_n(_OutputIter __first, _Size __n, _Generator __gen)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= for ( ; __n > 0; --__n, ++__first)=0A= *__first =3D __gen();=0A= return __first;=0A= }=0A= # 969 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= remove_copy(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, const _Tp& __value)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first)=0A= if (!(*__first =3D=3D __value)) {=0A= *__result =3D *__first;=0A= ++__result;=0A= }=0A= return __result;=0A= }=0A= # 1003 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= remove_copy_if(_InputIter __first, _InputIter __last,=0A= _OutputIter __result, _Predicate __pred)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first !=3D __last; ++__first)=0A= if (!__pred(*__first)) {=0A= *__result =3D *__first;=0A= ++__result;=0A= }=0A= return __result;=0A= }=0A= # 1039 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= remove(_ForwardIter __first, _ForwardIter __last,=0A= const _Tp& __value)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= __first =3D find(__first, __last, __value);=0A= _ForwardIter __i =3D __first;=0A= return __first =3D=3D __last ? __first=0A= : remove_copy(++__i, __last, __first, = __value);=0A= }=0A= # 1073 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= remove_if(_ForwardIter __first, _ForwardIter __last,=0A= _Predicate __pred)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= __first =3D find_if(__first, __last, __pred);=0A= _ForwardIter __i =3D __first;=0A= return __first =3D=3D __last ? __first=0A= : remove_copy_if(++__i, __last, __first, = __pred);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _OutputIter=0A= __unique_copy(_InputIter __first, _InputIter __last,=0A= _OutputIter __result,=0A= output_iterator_tag)=0A= {=0A= =0A= typename iterator_traits<_InputIter>::value_type __value =3D = *__first;=0A= *__result =3D __value;=0A= while (++__first !=3D __last)=0A= if (!(__value =3D=3D *__first)) {=0A= __value =3D *__first;=0A= *++__result =3D __value;=0A= }=0A= return ++__result;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _ForwardIter=0A= __unique_copy(_InputIter __first, _InputIter __last,=0A= _ForwardIter __result,=0A= forward_iterator_tag)=0A= {=0A= =0A= *__result =3D *__first;=0A= while (++__first !=3D __last)=0A= if (!(*__result =3D=3D *__first))=0A= *++__result =3D *__first;=0A= return ++__result;=0A= }=0A= # 1145 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline _OutputIter=0A= unique_copy(_InputIter __first, _InputIter __last,=0A= _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef typename iterator_traits<_OutputIter>::iterator_category = _IterType;=0A= =0A= if (__first =3D=3D __last) return __result;=0A= return __unique_copy(__first, __last, __result, _IterType());=0A= }=0A= # 1170 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= __unique_copy(_InputIter __first, _InputIter __last,=0A= _OutputIter __result,=0A= _BinaryPredicate __binary_pred,=0A= output_iterator_tag)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= typename iterator_traits<_InputIter>::value_type __value =3D = *__first;=0A= *__result =3D __value;=0A= while (++__first !=3D __last)=0A= if (!__binary_pred(__value, *__first)) {=0A= __value =3D *__first;=0A= *++__result =3D __value;=0A= }=0A= return ++__result;=0A= }=0A= # 1199 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= __unique_copy(_InputIter __first, _InputIter __last,=0A= _ForwardIter __result,=0A= _BinaryPredicate __binary_pred,=0A= forward_iterator_tag)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= *__result =3D *__first;=0A= while (++__first !=3D __last)=0A= if (!__binary_pred(*__result, *__first)) *++__result =3D = *__first;=0A= return ++__result;=0A= }=0A= # 1232 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline _OutputIter=0A= unique_copy(_InputIter __first, _InputIter __last,=0A= _OutputIter __result,=0A= _BinaryPredicate __binary_pred)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= typedef typename iterator_traits<_OutputIter>::iterator_category = _IterType;=0A= =0A= if (__first =3D=3D __last) return __result;=0A= return __unique_copy(__first, __last,=0A= __result, __binary_pred, _IterType());=0A= }=0A= # 1263 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= unique(_ForwardIter __first, _ForwardIter __last)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= __first =3D adjacent_find(__first, __last);=0A= return unique_copy(__first, __last, __first);=0A= }=0A= # 1290 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= unique(_ForwardIter __first, _ForwardIter __last,=0A= _BinaryPredicate __binary_pred)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= __first =3D adjacent_find(__first, __last, __binary_pred);=0A= return unique_copy(__first, __last, __first, __binary_pred);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __reverse(_BidirectionalIter __first, _BidirectionalIter __last,=0A= bidirectional_iterator_tag)=0A= {=0A= while (true)=0A= if (__first =3D=3D __last || __first =3D=3D --__last)=0A= return;=0A= else=0A= iter_swap(__first++, __last);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __reverse(_RandomAccessIter __first, _RandomAccessIter __last,=0A= random_access_iterator_tag)=0A= {=0A= while (__first < __last)=0A= iter_swap(__first++, --__last);=0A= }=0A= # 1349 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline void=0A= reverse(_BidirectionalIter __first, _BidirectionalIter __last)=0A= {=0A= =0A= =0A= =0A= __reverse(__first, __last, __iterator_category(__first));=0A= }=0A= # 1374 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= reverse_copy(_BidirectionalIter __first, _BidirectionalIter __last,=0A= _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= while (__first !=3D __last) {=0A= --__last;=0A= *__result =3D *__last;=0A= ++__result;=0A= }=0A= return __result;=0A= }=0A= # 1399 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _EuclideanRingElement=0A= __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)=0A= {=0A= while (__n !=3D 0) {=0A= _EuclideanRingElement __t =3D __m % __n;=0A= __m =3D __n;=0A= __n =3D __t;=0A= }=0A= return __m;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __rotate(_ForwardIter __first,=0A= _ForwardIter __middle,=0A= _ForwardIter __last,=0A= forward_iterator_tag)=0A= {=0A= if ((__first =3D=3D __middle) || (__last =3D=3D __middle))=0A= return;=0A= =0A= _ForwardIter __first2 =3D __middle;=0A= do {=0A= swap(*__first++, *__first2++);=0A= if (__first =3D=3D __middle)=0A= __middle =3D __first2;=0A= } while (__first2 !=3D __last);=0A= =0A= __first2 =3D __middle;=0A= =0A= while (__first2 !=3D __last) {=0A= swap(*__first++, *__first2++);=0A= if (__first =3D=3D __middle)=0A= __middle =3D __first2;=0A= else if (__first2 =3D=3D __last)=0A= __first2 =3D __middle;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __rotate(_BidirectionalIter __first,=0A= _BidirectionalIter __middle,=0A= _BidirectionalIter __last,=0A= bidirectional_iterator_tag)=0A= {=0A= =0A= =0A= =0A= =0A= if ((__first =3D=3D __middle) || (__last =3D=3D __middle))=0A= return;=0A= =0A= __reverse(__first, __middle, bidirectional_iterator_tag());=0A= __reverse(__middle, __last, bidirectional_iterator_tag());=0A= =0A= while (__first !=3D __middle && __middle !=3D __last)=0A= swap (*__first++, *--__last);=0A= =0A= if (__first =3D=3D __middle) {=0A= __reverse(__middle, __last, bidirectional_iterator_tag());=0A= }=0A= else {=0A= __reverse(__first, __middle, bidirectional_iterator_tag());=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __rotate(_RandomAccessIter __first,=0A= _RandomAccessIter __middle,=0A= _RandomAccessIter __last,=0A= random_access_iterator_tag)=0A= {=0A= =0A= =0A= =0A= =0A= if ((__first =3D=3D __middle) || (__last =3D=3D __middle))=0A= return;=0A= =0A= typedef typename = iterator_traits<_RandomAccessIter>::difference_type _Distance;=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= _Distance __n =3D __last - __first;=0A= _Distance __k =3D __middle - __first;=0A= _Distance __l =3D __n - __k;=0A= =0A= if (__k =3D=3D __l) {=0A= swap_ranges(__first, __middle, __middle);=0A= return;=0A= }=0A= =0A= _Distance __d =3D __gcd(__n, __k);=0A= =0A= for (_Distance __i =3D 0; __i < __d; __i++) {=0A= _ValueType __tmp =3D *__first;=0A= _RandomAccessIter __p =3D __first;=0A= =0A= if (__k < __l) {=0A= for (_Distance __j =3D 0; __j < __l/__d; __j++) {=0A= if (__p > __first + __l) {=0A= *__p =3D *(__p - __l);=0A= __p -=3D __l;=0A= }=0A= =0A= *__p =3D *(__p + __k);=0A= __p +=3D __k;=0A= }=0A= }=0A= =0A= else {=0A= for (_Distance __j =3D 0; __j < __k/__d - 1; __j ++) {=0A= if (__p < __last - __k) {=0A= *__p =3D *(__p + __k);=0A= __p +=3D __k;=0A= }=0A= =0A= *__p =3D * (__p - __l);=0A= __p -=3D __l;=0A= }=0A= }=0A= =0A= *__p =3D __tmp;=0A= ++__first;=0A= }=0A= }=0A= # 1561 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline void=0A= rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter = __last)=0A= {=0A= =0A= =0A= =0A= typedef typename iterator_traits<_ForwardIter>::iterator_category = _IterType;=0A= __rotate(__first, __middle, __last, _IterType());=0A= }=0A= # 1589 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= rotate_copy(_ForwardIter __first, _ForwardIter __middle,=0A= _ForwardIter __last, _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= return copy(__first, __middle, copy(__middle, __last, __result));=0A= }=0A= # 1612 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline _Distance=0A= __random_number(_Distance __n)=0A= {=0A= =0A= return lrand48() % __n;=0A= =0A= =0A= =0A= }=0A= # 1634 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline void=0A= random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last)=0A= {=0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last) return;=0A= for (_RandomAccessIter __i =3D __first + 1; __i !=3D __last; ++__i)=0A= iter_swap(__i, __first + __random_number((__i - __first) + 1));=0A= }=0A= # 1660 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last,=0A= _RandomNumberGenerator& __rand)=0A= {=0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last) return;=0A= for (_RandomAccessIter __i =3D __first + 1; __i !=3D __last; ++__i)=0A= iter_swap(__i, __first + __rand((__i - __first) + 1));=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _ForwardIter=0A= __partition(_ForwardIter __first, _ForwardIter __last,=0A= _Predicate __pred,=0A= forward_iterator_tag)=0A= {=0A= if (__first =3D=3D __last) return __first;=0A= =0A= while (__pred(*__first))=0A= if (++__first =3D=3D __last) return __first;=0A= =0A= _ForwardIter __next =3D __first;=0A= =0A= while (++__next !=3D __last)=0A= if (__pred(*__next)) {=0A= swap(*__first, *__next);=0A= ++__first;=0A= }=0A= =0A= return __first;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _BidirectionalIter=0A= __partition(_BidirectionalIter __first, _BidirectionalIter __last,=0A= _Predicate __pred,=0A= bidirectional_iterator_tag)=0A= {=0A= while (true) {=0A= while (true)=0A= if (__first =3D=3D __last)=0A= return __first;=0A= else if (__pred(*__first))=0A= ++__first;=0A= else=0A= break;=0A= --__last;=0A= while (true)=0A= if (__first =3D=3D __last)=0A= return __first;=0A= else if (!__pred(*__last))=0A= --__last;=0A= else=0A= break;=0A= iter_swap(__first, __last);=0A= ++__first;=0A= }=0A= }=0A= # 1748 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline _ForwardIter=0A= partition(_ForwardIter __first, _ForwardIter __last,=0A= _Predicate __pred)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= return __partition(__first, __last, __pred, = __iterator_category(__first));=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _ForwardIter=0A= __inplace_stable_partition(_ForwardIter __first, _ForwardIter __last,=0A= _Predicate __pred, _Distance __len)=0A= {=0A= if (__len =3D=3D 1)=0A= return __pred(*__first) ? __last : __first;=0A= _ForwardIter __middle =3D __first;=0A= advance(__middle, __len / 2);=0A= _ForwardIter __begin =3D __inplace_stable_partition(__first, = __middle,=0A= __pred,=0A= __len / 2);=0A= _ForwardIter __end =3D __inplace_stable_partition(__middle, __last,=0A= __pred,=0A= __len - __len / 2);=0A= rotate(__begin, __middle, __end);=0A= advance(__begin, distance(__middle, __end));=0A= return __begin;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _ForwardIter=0A= __stable_partition_adaptive(_ForwardIter __first, _ForwardIter = __last,=0A= _Predicate __pred, _Distance __len,=0A= _Pointer __buffer,=0A= _Distance __buffer_size)=0A= {=0A= if (__len <=3D __buffer_size) {=0A= _ForwardIter __result1 =3D __first;=0A= _Pointer __result2 =3D __buffer;=0A= for ( ; __first !=3D __last ; ++__first)=0A= if (__pred(*__first)) {=0A= *__result1 =3D *__first;=0A= ++__result1;=0A= }=0A= else {=0A= *__result2 =3D *__first;=0A= ++__result2;=0A= }=0A= copy(__buffer, __result2, __result1);=0A= return __result1;=0A= }=0A= else {=0A= _ForwardIter __middle =3D __first;=0A= advance(__middle, __len / 2);=0A= _ForwardIter __begin =3D __stable_partition_adaptive(__first, = __middle,=0A= __pred,=0A= __len / 2,=0A= __buffer, = __buffer_size);=0A= _ForwardIter __end =3D __stable_partition_adaptive( __middle, = __last,=0A= __pred,=0A= __len - __len = / 2,=0A= __buffer, = __buffer_size);=0A= rotate(__begin, __middle, __end);=0A= advance(__begin, distance(__middle, __end));=0A= return __begin;=0A= }=0A= }=0A= # 1848 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= stable_partition(_ForwardIter __first, _ForwardIter __last,=0A= _Predicate __pred)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last)=0A= return __first;=0A= else=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename iterator_traits<_ForwardIter>::difference_type = _DistanceType;=0A= =0A= _Temporary_buffer<_ForwardIter, _ValueType> __buf(__first, = __last);=0A= if (__buf.size() > 0)=0A= return __stable_partition_adaptive(__first, __last, __pred,=0A= = _DistanceType(__buf.requested_size()),=0A= __buf.begin(), = __buf.size());=0A= else=0A= return __inplace_stable_partition(__first, __last, __pred,=0A= = _DistanceType(__buf.requested_size()));=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _RandomAccessIter=0A= __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter = __last,=0A= _Tp __pivot)=0A= {=0A= while (true) {=0A= while (*__first < __pivot)=0A= ++__first;=0A= --__last;=0A= while (__pivot < *__last)=0A= --__last;=0A= if (!(__first < __last))=0A= return __first;=0A= iter_swap(__first, __last);=0A= ++__first;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _RandomAccessIter=0A= __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter = __last,=0A= _Tp __pivot, _Compare __comp)=0A= {=0A= while (true) {=0A= while (__comp(*__first, __pivot))=0A= ++__first;=0A= --__last;=0A= while (__comp(__pivot, *__last))=0A= --__last;=0A= if (!(__first < __last))=0A= return __first;=0A= iter_swap(__first, __last);=0A= ++__first;=0A= }=0A= }=0A= # 1929 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= enum { _M_threshold =3D 16 };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val)=0A= {=0A= _RandomAccessIter __next =3D __last;=0A= --__next;=0A= while (__val < *__next) {=0A= *__last =3D *__next;=0A= __last =3D __next;=0A= --__next;=0A= }=0A= *__last =3D __val;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, = _Compare __comp)=0A= {=0A= _RandomAccessIter __next =3D __last;=0A= --__next;=0A= while (__comp(__val, *__next)) {=0A= *__last =3D *__next;=0A= __last =3D __next;=0A= --__next;=0A= }=0A= *__last =3D __val;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last)=0A= {=0A= if (__first =3D=3D __last) return;=0A= =0A= for (_RandomAccessIter __i =3D __first + 1; __i !=3D __last; ++__i)=0A= {=0A= typename iterator_traits<_RandomAccessIter>::value_type __val = =3D *__i;=0A= if (__val < *__first) {=0A= copy_backward(__first, __i, __i + 1);=0A= *__first =3D __val;=0A= }=0A= else=0A= __unguarded_linear_insert(__i, __val);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last,=0A= _Compare __comp)=0A= {=0A= if (__first =3D=3D __last) return;=0A= =0A= for (_RandomAccessIter __i =3D __first + 1; __i !=3D __last; ++__i)=0A= {=0A= typename iterator_traits<_RandomAccessIter>::value_type __val = =3D *__i;=0A= if (__comp(__val, *__first)) {=0A= copy_backward(__first, __i, __i + 1);=0A= *__first =3D __val;=0A= }=0A= else=0A= __unguarded_linear_insert(__i, __val, __comp);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= inline void=0A= __unguarded_insertion_sort(_RandomAccessIter __first, = _RandomAccessIter __last)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= for (_RandomAccessIter __i =3D __first; __i !=3D __last; ++__i)=0A= __unguarded_linear_insert(__i, _ValueType(*__i));=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= inline void=0A= __unguarded_insertion_sort(_RandomAccessIter __first, = _RandomAccessIter __last,=0A= _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= for (_RandomAccessIter __i =3D __first; __i !=3D __last; ++__i)=0A= __unguarded_linear_insert(__i, _ValueType(*__i), __comp);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter = __last)=0A= {=0A= if (__last - __first > _M_threshold) {=0A= __insertion_sort(__first, __first + _M_threshold);=0A= __unguarded_insertion_sort(__first + _M_threshold, __last);=0A= }=0A= else=0A= __insertion_sort(__first, __last);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter = __last,=0A= _Compare __comp)=0A= {=0A= if (__last - __first > _M_threshold) {=0A= __insertion_sort(__first, __first + _M_threshold, __comp);=0A= __unguarded_insertion_sort(__first + _M_threshold, __last, = __comp);=0A= }=0A= else=0A= __insertion_sort(__first, __last, __comp);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= inline _Size=0A= __lg(_Size __n)=0A= {=0A= _Size __k;=0A= for (__k =3D 0; __n !=3D 1; __n >>=3D 1) ++__k;=0A= return __k;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last,=0A= _Size __depth_limit)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= while (__last - __first > _M_threshold) {=0A= if (__depth_limit =3D=3D 0) {=0A= partial_sort(__first, __last, __last);=0A= return;=0A= }=0A= --__depth_limit;=0A= _RandomAccessIter __cut =3D=0A= __unguarded_partition(__first, __last,=0A= _ValueType(__median(*__first,=0A= *(__first + (__last = - __first)/2),=0A= *(__last - 1))));=0A= __introsort_loop(__cut, __last, __depth_limit);=0A= __last =3D __cut;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last,=0A= _Size __depth_limit, _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= while (__last - __first > _M_threshold) {=0A= if (__depth_limit =3D=3D 0) {=0A= partial_sort(__first, __last, __last, __comp);=0A= return;=0A= }=0A= --__depth_limit;=0A= _RandomAccessIter __cut =3D=0A= __unguarded_partition(__first, __last,=0A= _ValueType(__median(*__first,=0A= *(__first + (__last = - __first)/2),=0A= *(__last - 1), = __comp)),=0A= __comp);=0A= __introsort_loop(__cut, __last, __depth_limit, __comp);=0A= __last =3D __cut;=0A= }=0A= }=0A= # 2166 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline void=0A= sort(_RandomAccessIter __first, _RandomAccessIter __last)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first !=3D __last) {=0A= __introsort_loop(__first, __last, __lg(__last - __first) * 2);=0A= __final_insertion_sort(__first, __last);=0A= }=0A= }=0A= # 2197 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline void=0A= sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare = __comp)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first !=3D __last) {=0A= __introsort_loop(__first, __last, __lg(__last - __first) * 2, = __comp);=0A= __final_insertion_sort(__first, __last, __comp);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter = __last)=0A= {=0A= if (__last - __first < 15) {=0A= __insertion_sort(__first, __last);=0A= return;=0A= }=0A= _RandomAccessIter __middle =3D __first + (__last - __first) / 2;=0A= __inplace_stable_sort(__first, __middle);=0A= __inplace_stable_sort(__middle, __last);=0A= __merge_without_buffer(__first, __middle, __last,=0A= __middle - __first,=0A= __last - __middle);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter = __last,=0A= _Compare __comp)=0A= {=0A= if (__last - __first < 15) {=0A= __insertion_sort(__first, __last, __comp);=0A= return;=0A= }=0A= _RandomAccessIter __middle =3D __first + (__last - __first) / 2;=0A= __inplace_stable_sort(__first, __middle, __comp);=0A= __inplace_stable_sort(__middle, __last, __comp);=0A= __merge_without_buffer(__first, __middle, __last,=0A= __middle - __first,=0A= __last - __middle,=0A= __comp);=0A= }=0A= =0A= template=0A= void=0A= __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 = __last,=0A= _RandomAccessIter2 __result, _Distance __step_size)=0A= {=0A= _Distance __two_step =3D 2 * __step_size;=0A= =0A= while (__last - __first >=3D __two_step) {=0A= __result =3D merge(__first, __first + __step_size,=0A= __first + __step_size, __first + __two_step,=0A= __result);=0A= __first +=3D __two_step;=0A= }=0A= =0A= __step_size =3D min(_Distance(__last - __first), __step_size);=0A= merge(__first, __first + __step_size, __first + __step_size, = __last,=0A= __result);=0A= }=0A= =0A= template=0A= void=0A= __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 = __last,=0A= _RandomAccessIter2 __result, _Distance __step_size,=0A= _Compare __comp)=0A= {=0A= _Distance __two_step =3D 2 * __step_size;=0A= =0A= while (__last - __first >=3D __two_step) {=0A= __result =3D merge(__first, __first + __step_size,=0A= __first + __step_size, __first + __two_step,=0A= __result,=0A= __comp);=0A= __first +=3D __two_step;=0A= }=0A= __step_size =3D min(_Distance(__last - __first), __step_size);=0A= =0A= merge(__first, __first + __step_size,=0A= __first + __step_size, __last,=0A= __result,=0A= __comp);=0A= }=0A= =0A= enum { _M_chunk_size =3D 7 };=0A= =0A= template=0A= void=0A= __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter = __last,=0A= _Distance __chunk_size)=0A= {=0A= while (__last - __first >=3D __chunk_size) {=0A= __insertion_sort(__first, __first + __chunk_size);=0A= __first +=3D __chunk_size;=0A= }=0A= __insertion_sort(__first, __last);=0A= }=0A= =0A= template=0A= void=0A= __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter = __last,=0A= _Distance __chunk_size, _Compare __comp)=0A= {=0A= while (__last - __first >=3D __chunk_size) {=0A= __insertion_sort(__first, __first + __chunk_size, __comp);=0A= __first +=3D __chunk_size;=0A= }=0A= __insertion_sort(__first, __last, __comp);=0A= }=0A= =0A= template=0A= void=0A= __merge_sort_with_buffer(_RandomAccessIter __first, = _RandomAccessIter __last,=0A= _Pointer __buffer)=0A= {=0A= typedef typename = iterator_traits<_RandomAccessIter>::difference_type _Distance;=0A= =0A= _Distance __len =3D __last - __first;=0A= _Pointer __buffer_last =3D __buffer + __len;=0A= =0A= _Distance __step_size =3D _M_chunk_size;=0A= __chunk_insertion_sort(__first, __last, __step_size);=0A= =0A= while (__step_size < __len) {=0A= __merge_sort_loop(__first, __last, __buffer, __step_size);=0A= __step_size *=3D 2;=0A= __merge_sort_loop(__buffer, __buffer_last, __first, __step_size);=0A= __step_size *=3D 2;=0A= }=0A= }=0A= =0A= template=0A= void=0A= __merge_sort_with_buffer(_RandomAccessIter __first, = _RandomAccessIter __last,=0A= _Pointer __buffer, _Compare __comp)=0A= {=0A= typedef typename = iterator_traits<_RandomAccessIter>::difference_type _Distance;=0A= =0A= _Distance __len =3D __last - __first;=0A= _Pointer __buffer_last =3D __buffer + __len;=0A= =0A= _Distance __step_size =3D _M_chunk_size;=0A= __chunk_insertion_sort(__first, __last, __step_size, __comp);=0A= =0A= while (__step_size < __len) {=0A= __merge_sort_loop(__first, __last, __buffer, __step_size, = __comp);=0A= __step_size *=3D 2;=0A= __merge_sort_loop(__buffer, __buffer_last, __first, __step_size, = __comp);=0A= __step_size *=3D 2;=0A= }=0A= }=0A= =0A= template=0A= void=0A= __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter = __last,=0A= _Pointer __buffer, _Distance __buffer_size)=0A= {=0A= _Distance __len =3D (__last - __first + 1) / 2;=0A= _RandomAccessIter __middle =3D __first + __len;=0A= if (__len > __buffer_size) {=0A= __stable_sort_adaptive(__first, __middle, __buffer, = __buffer_size);=0A= __stable_sort_adaptive(__middle, __last, __buffer, = __buffer_size);=0A= }=0A= else {=0A= __merge_sort_with_buffer(__first, __middle, __buffer);=0A= __merge_sort_with_buffer(__middle, __last, __buffer);=0A= }=0A= __merge_adaptive(__first, __middle, __last, _Distance(__middle - = __first),=0A= _Distance(__last - __middle), __buffer, = __buffer_size);=0A= }=0A= =0A= template=0A= void=0A= __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter = __last,=0A= _Pointer __buffer, _Distance __buffer_size,=0A= _Compare __comp)=0A= {=0A= _Distance __len =3D (__last - __first + 1) / 2;=0A= _RandomAccessIter __middle =3D __first + __len;=0A= if (__len > __buffer_size) {=0A= __stable_sort_adaptive(__first, __middle, __buffer, = __buffer_size,=0A= __comp);=0A= __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size,=0A= __comp);=0A= }=0A= else {=0A= __merge_sort_with_buffer(__first, __middle, __buffer, __comp);=0A= __merge_sort_with_buffer(__middle, __last, __buffer, __comp);=0A= }=0A= __merge_adaptive(__first, __middle, __last, _Distance(__middle - = __first),=0A= _Distance(__last - __middle), __buffer, = __buffer_size,=0A= __comp);=0A= }=0A= # 2430 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline void=0A= stable_sort(_RandomAccessIter __first, _RandomAccessIter __last)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= typedef typename = iterator_traits<_RandomAccessIter>::difference_type _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, = __last);=0A= if (buf.begin() =3D=3D 0)=0A= __inplace_stable_sort(__first, __last);=0A= else=0A= __stable_sort_adaptive(__first, __last, buf.begin(), = _DistanceType(buf.size()));=0A= }=0A= # 2466 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= inline void=0A= stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, = _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= typedef typename = iterator_traits<_RandomAccessIter>::difference_type _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, = __last);=0A= if (buf.begin() =3D=3D 0)=0A= __inplace_stable_sort(__first, __last, __comp);=0A= else=0A= __stable_sort_adaptive(__first, __last, buf.begin(), = _DistanceType(buf.size()),=0A= __comp);=0A= }=0A= # 2502 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= partial_sort(_RandomAccessIter __first,=0A= _RandomAccessIter __middle,=0A= _RandomAccessIter __last)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= make_heap(__first, __middle);=0A= for (_RandomAccessIter __i =3D __middle; __i < __last; ++__i)=0A= if (*__i < *__first)=0A= __pop_heap(__first, __middle, __i, _ValueType(*__i));=0A= sort_heap(__first, __middle);=0A= }=0A= # 2540 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= partial_sort(_RandomAccessIter __first,=0A= _RandomAccessIter __middle,=0A= _RandomAccessIter __last,=0A= _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= make_heap(__first, __middle, __comp);=0A= for (_RandomAccessIter __i =3D __middle; __i < __last; ++__i)=0A= if (__comp(*__i, *__first))=0A= __pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);=0A= sort_heap(__first, __middle, __comp);=0A= }=0A= # 2579 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _RandomAccessIter=0A= partial_sort_copy(_InputIter __first, _InputIter __last,=0A= _RandomAccessIter __result_first,=0A= _RandomAccessIter __result_last)=0A= {=0A= typedef typename iterator_traits<_InputIter>::value_type = _InputValueType;=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _OutputValueType;=0A= typedef typename = iterator_traits<_RandomAccessIter>::difference_type _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__result_first =3D=3D __result_last) return __result_last;=0A= _RandomAccessIter __result_real_last =3D __result_first;=0A= while(__first !=3D __last && __result_real_last !=3D = __result_last) {=0A= *__result_real_last =3D *__first;=0A= ++__result_real_last;=0A= ++__first;=0A= }=0A= make_heap(__result_first, __result_real_last);=0A= while (__first !=3D __last) {=0A= if (*__first < *__result_first)=0A= __adjust_heap(__result_first, _DistanceType(0),=0A= _DistanceType(__result_real_last - = __result_first),=0A= _InputValueType(*__first));=0A= ++__first;=0A= }=0A= sort_heap(__result_first, __result_real_last);=0A= return __result_real_last;=0A= }=0A= # 2633 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _RandomAccessIter=0A= partial_sort_copy(_InputIter __first, _InputIter __last,=0A= _RandomAccessIter __result_first,=0A= _RandomAccessIter __result_last,=0A= _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_InputIter>::value_type = _InputValueType;=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _OutputValueType;=0A= typedef typename = iterator_traits<_RandomAccessIter>::difference_type _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__result_first =3D=3D __result_last) return __result_last;=0A= _RandomAccessIter __result_real_last =3D __result_first;=0A= while(__first !=3D __last && __result_real_last !=3D = __result_last) {=0A= *__result_real_last =3D *__first;=0A= ++__result_real_last;=0A= ++__first;=0A= }=0A= make_heap(__result_first, __result_real_last, __comp);=0A= while (__first !=3D __last) {=0A= if (__comp(*__first, *__result_first))=0A= __adjust_heap(__result_first, _DistanceType(0),=0A= _DistanceType(__result_real_last - = __result_first),=0A= _InputValueType(*__first),=0A= __comp);=0A= ++__first;=0A= }=0A= sort_heap(__result_first, __result_real_last, __comp);=0A= return __result_real_last;=0A= }=0A= # 2686 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= nth_element(_RandomAccessIter __first,=0A= _RandomAccessIter __nth,=0A= _RandomAccessIter __last)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= =0A= =0A= =0A= =0A= while (__last - __first > 3) {=0A= _RandomAccessIter __cut =3D=0A= __unguarded_partition(__first, __last,=0A= _ValueType(__median(*__first,=0A= *(__first + (__last = - __first)/2),=0A= *(__last - 1))));=0A= if (__cut <=3D __nth)=0A= __first =3D __cut;=0A= else=0A= __last =3D __cut;=0A= }=0A= __insertion_sort(__first, __last);=0A= }=0A= # 2728 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= nth_element(_RandomAccessIter __first,=0A= _RandomAccessIter __nth,=0A= _RandomAccessIter __last,=0A= _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_RandomAccessIter>::value_type = _ValueType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__last - __first > 3) {=0A= _RandomAccessIter __cut =3D=0A= __unguarded_partition(__first, __last,=0A= _ValueType(__median(*__first,=0A= *(__first + (__last = - __first)/2),=0A= *(__last - 1),=0A= __comp)),=0A= __comp);=0A= if (__cut <=3D __nth)=0A= __first =3D __cut;=0A= else=0A= __last =3D __cut;=0A= }=0A= __insertion_sort(__first, __last, __comp);=0A= }=0A= # 2768 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& = __val)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename iterator_traits<_ForwardIter>::difference_type = _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= _DistanceType __len =3D distance(__first, __last);=0A= _DistanceType __half;=0A= _ForwardIter __middle;=0A= =0A= while (__len > 0) {=0A= __half =3D __len >> 1;=0A= __middle =3D __first;=0A= advance(__middle, __half);=0A= if (*__middle < __val) {=0A= __first =3D __middle;=0A= ++__first;=0A= __len =3D __len - __half - 1;=0A= }=0A= else=0A= __len =3D __half;=0A= }=0A= return __first;=0A= }=0A= # 2816 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= lower_bound(_ForwardIter __first, _ForwardIter __last,=0A= const _Tp& __val, _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename iterator_traits<_ForwardIter>::difference_type = _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= _DistanceType __len =3D distance(__first, __last);=0A= _DistanceType __half;=0A= _ForwardIter __middle;=0A= =0A= while (__len > 0) {=0A= __half =3D __len >> 1;=0A= __middle =3D __first;=0A= advance(__middle, __half);=0A= if (__comp(*__middle, __val)) {=0A= __first =3D __middle;=0A= ++__first;=0A= __len =3D __len - __half - 1;=0A= }=0A= else=0A= __len =3D __half;=0A= }=0A= return __first;=0A= }=0A= # 2856 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& = __val)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename iterator_traits<_ForwardIter>::difference_type = _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= _DistanceType __len =3D distance(__first, __last);=0A= _DistanceType __half;=0A= _ForwardIter __middle;=0A= =0A= while (__len > 0) {=0A= __half =3D __len >> 1;=0A= __middle =3D __first;=0A= advance(__middle, __half);=0A= if (__val < *__middle)=0A= __len =3D __half;=0A= else {=0A= __first =3D __middle;=0A= ++__first;=0A= __len =3D __len - __half - 1;=0A= }=0A= }=0A= return __first;=0A= }=0A= # 2901 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter=0A= upper_bound(_ForwardIter __first, _ForwardIter __last,=0A= const _Tp& __val, _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename iterator_traits<_ForwardIter>::difference_type = _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= _DistanceType __len =3D distance(__first, __last);=0A= _DistanceType __half;=0A= _ForwardIter __middle;=0A= =0A= while (__len > 0) {=0A= __half =3D __len >> 1;=0A= __middle =3D __first;=0A= advance(__middle, __half);=0A= if (__comp(__val, *__middle))=0A= __len =3D __half;=0A= else {=0A= __first =3D __middle;=0A= ++__first;=0A= __len =3D __len - __half - 1;=0A= }=0A= }=0A= return __first;=0A= }=0A= # 2948 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= pair<_ForwardIter, _ForwardIter>=0A= equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& = __val)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename iterator_traits<_ForwardIter>::difference_type = _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= _DistanceType __len =3D distance(__first, __last);=0A= _DistanceType __half;=0A= _ForwardIter __middle, __left, __right;=0A= =0A= while (__len > 0) {=0A= __half =3D __len >> 1;=0A= __middle =3D __first;=0A= advance(__middle, __half);=0A= if (*__middle < __val) {=0A= __first =3D __middle;=0A= ++__first;=0A= __len =3D __len - __half - 1;=0A= }=0A= else if (__val < *__middle)=0A= __len =3D __half;=0A= else {=0A= __left =3D lower_bound(__first, __middle, __val);=0A= advance(__first, __len);=0A= __right =3D upper_bound(++__middle, __first, __val);=0A= return pair<_ForwardIter, _ForwardIter>(__left, __right);=0A= }=0A= }=0A= return pair<_ForwardIter, _ForwardIter>(__first, __first);=0A= }=0A= # 3003 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= pair<_ForwardIter, _ForwardIter>=0A= equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& = __val,=0A= _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_ForwardIter>::value_type = _ValueType;=0A= typedef typename iterator_traits<_ForwardIter>::difference_type = _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= _DistanceType __len =3D distance(__first, __last);=0A= _DistanceType __half;=0A= _ForwardIter __middle, __left, __right;=0A= =0A= while (__len > 0) {=0A= __half =3D __len >> 1;=0A= __middle =3D __first;=0A= advance(__middle, __half);=0A= if (__comp(*__middle, __val)) {=0A= __first =3D __middle;=0A= ++__first;=0A= __len =3D __len - __half - 1;=0A= }=0A= else if (__comp(__val, *__middle))=0A= __len =3D __half;=0A= else {=0A= __left =3D lower_bound(__first, __middle, __val, __comp);=0A= advance(__first, __len);=0A= __right =3D upper_bound(++__middle, __first, __val, __comp);=0A= return pair<_ForwardIter, _ForwardIter>(__left, __right);=0A= }=0A= }=0A= return pair<_ForwardIter, _ForwardIter>(__first, __first);=0A= }=0A= # 3052 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= bool=0A= binary_search(_ForwardIter __first, _ForwardIter __last,=0A= const _Tp& __val)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= _ForwardIter __i =3D lower_bound(__first, __last, __val);=0A= return __i !=3D __last && !(__val < *__i);=0A= }=0A= # 3083 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= bool=0A= binary_search(_ForwardIter __first, _ForwardIter __last,=0A= const _Tp& __val, _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= _ForwardIter __i =3D lower_bound(__first, __last, __val, __comp);=0A= return __i !=3D __last && !__comp(__val, *__i);=0A= }=0A= # 3115 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= merge(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2) {=0A= if (*__first2 < *__first1) {=0A= *__result =3D *__first2;=0A= ++__first2;=0A= }=0A= else {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= }=0A= ++__result;=0A= }=0A= return copy(__first2, __last2, copy(__first1, __last1, __result));=0A= }=0A= # 3166 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _OutputIter=0A= merge(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result, _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2) {=0A= if (__comp(*__first2, *__first1)) {=0A= *__result =3D *__first2;=0A= ++__first2;=0A= }=0A= else {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= }=0A= ++__result;=0A= }=0A= return copy(__first2, __last2, copy(__first1, __last1, __result));=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __merge_without_buffer(_BidirectionalIter __first,=0A= _BidirectionalIter __middle,=0A= _BidirectionalIter __last,=0A= _Distance __len1, _Distance __len2)=0A= {=0A= if (__len1 =3D=3D 0 || __len2 =3D=3D 0)=0A= return;=0A= if (__len1 + __len2 =3D=3D 2) {=0A= if (*__middle < *__first)=0A= iter_swap(__first, __middle);=0A= return;=0A= }=0A= _BidirectionalIter __first_cut =3D __first;=0A= _BidirectionalIter __second_cut =3D __middle;=0A= _Distance __len11 =3D 0;=0A= _Distance __len22 =3D 0;=0A= if (__len1 > __len2) {=0A= __len11 =3D __len1 / 2;=0A= advance(__first_cut, __len11);=0A= __second_cut =3D lower_bound(__middle, __last, *__first_cut);=0A= __len22 =3D distance(__middle, __second_cut);=0A= }=0A= else {=0A= __len22 =3D __len2 / 2;=0A= advance(__second_cut, __len22);=0A= __first_cut =3D upper_bound(__first, __middle, *__second_cut);=0A= __len11 =3D distance(__first, __first_cut);=0A= }=0A= rotate(__first_cut, __middle, __second_cut);=0A= _BidirectionalIter __new_middle =3D __first_cut;=0A= advance(__new_middle, distance(__middle, __second_cut));=0A= __merge_without_buffer(__first, __first_cut, __new_middle,=0A= __len11, __len22);=0A= __merge_without_buffer(__new_middle, __second_cut, __last,=0A= __len1 - __len11, __len2 - __len22);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __merge_without_buffer(_BidirectionalIter __first,=0A= _BidirectionalIter __middle,=0A= _BidirectionalIter __last,=0A= _Distance __len1, _Distance __len2,=0A= _Compare __comp)=0A= {=0A= if (__len1 =3D=3D 0 || __len2 =3D=3D 0)=0A= return;=0A= if (__len1 + __len2 =3D=3D 2) {=0A= if (__comp(*__middle, *__first))=0A= iter_swap(__first, __middle);=0A= return;=0A= }=0A= _BidirectionalIter __first_cut =3D __first;=0A= _BidirectionalIter __second_cut =3D __middle;=0A= _Distance __len11 =3D 0;=0A= _Distance __len22 =3D 0;=0A= if (__len1 > __len2) {=0A= __len11 =3D __len1 / 2;=0A= advance(__first_cut, __len11);=0A= __second_cut =3D lower_bound(__middle, __last, *__first_cut, = __comp);=0A= __len22 =3D distance(__middle, __second_cut);=0A= }=0A= else {=0A= __len22 =3D __len2 / 2;=0A= advance(__second_cut, __len22);=0A= __first_cut =3D upper_bound(__first, __middle, *__second_cut, = __comp);=0A= __len11 =3D distance(__first, __first_cut);=0A= }=0A= rotate(__first_cut, __middle, __second_cut);=0A= _BidirectionalIter __new_middle =3D __first_cut;=0A= advance(__new_middle, distance(__middle, __second_cut));=0A= __merge_without_buffer(__first, __first_cut, __new_middle,=0A= __len11, __len22, __comp);=0A= __merge_without_buffer(__new_middle, __second_cut, __last,=0A= __len1 - __len11, __len2 - __len22, __comp);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _BidirectionalIter1=0A= __rotate_adaptive(_BidirectionalIter1 __first,=0A= _BidirectionalIter1 __middle,=0A= _BidirectionalIter1 __last,=0A= _Distance __len1, _Distance __len2,=0A= _BidirectionalIter2 __buffer,=0A= _Distance __buffer_size)=0A= {=0A= _BidirectionalIter2 __buffer_end;=0A= if (__len1 > __len2 && __len2 <=3D __buffer_size) {=0A= __buffer_end =3D copy(__middle, __last, __buffer);=0A= copy_backward(__first, __middle, __last);=0A= return copy(__buffer, __buffer_end, __first);=0A= }=0A= else if (__len1 <=3D __buffer_size) {=0A= __buffer_end =3D copy(__first, __middle, __buffer);=0A= copy(__middle, __last, __first);=0A= return copy_backward(__buffer, __buffer_end, __last);=0A= }=0A= else {=0A= rotate(__first, __middle, __last);=0A= advance(__first, distance(__middle, __last));=0A= return __first;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _BidirectionalIter3=0A= __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 = __last1,=0A= _BidirectionalIter2 __first2, _BidirectionalIter2 = __last2,=0A= _BidirectionalIter3 __result)=0A= {=0A= if (__first1 =3D=3D __last1)=0A= return copy_backward(__first2, __last2, __result);=0A= if (__first2 =3D=3D __last2)=0A= return copy_backward(__first1, __last1, __result);=0A= --__last1;=0A= --__last2;=0A= while (true) {=0A= if (*__last2 < *__last1) {=0A= *--__result =3D *__last1;=0A= if (__first1 =3D=3D __last1)=0A= return copy_backward(__first2, ++__last2, __result);=0A= --__last1;=0A= }=0A= else {=0A= *--__result =3D *__last2;=0A= if (__first2 =3D=3D __last2)=0A= return copy_backward(__first1, ++__last1, __result);=0A= --__last2;=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _BidirectionalIter3=0A= __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 = __last1,=0A= _BidirectionalIter2 __first2, _BidirectionalIter2 = __last2,=0A= _BidirectionalIter3 __result,=0A= _Compare __comp)=0A= {=0A= if (__first1 =3D=3D __last1)=0A= return copy_backward(__first2, __last2, __result);=0A= if (__first2 =3D=3D __last2)=0A= return copy_backward(__first1, __last1, __result);=0A= --__last1;=0A= --__last2;=0A= while (true) {=0A= if (__comp(*__last2, *__last1)) {=0A= *--__result =3D *__last1;=0A= if (__first1 =3D=3D __last1)=0A= return copy_backward(__first2, ++__last2, __result);=0A= --__last1;=0A= }=0A= else {=0A= *--__result =3D *__last2;=0A= if (__first2 =3D=3D __last2)=0A= return copy_backward(__first1, ++__last1, __result);=0A= --__last2;=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __merge_adaptive(_BidirectionalIter __first,=0A= _BidirectionalIter __middle,=0A= _BidirectionalIter __last,=0A= _Distance __len1, _Distance __len2,=0A= _Pointer __buffer, _Distance __buffer_size)=0A= {=0A= if (__len1 <=3D __len2 && __len1 <=3D __buffer_size) {=0A= _Pointer __buffer_end =3D copy(__first, __middle, __buffer);=0A= merge(__buffer, __buffer_end, __middle, __last, __first);=0A= }=0A= else if (__len2 <=3D __buffer_size) {=0A= _Pointer __buffer_end =3D copy(__middle, __last, __buffer);=0A= __merge_backward(__first, __middle, __buffer, __buffer_end, = __last);=0A= }=0A= else {=0A= _BidirectionalIter __first_cut =3D __first;=0A= _BidirectionalIter __second_cut =3D __middle;=0A= _Distance __len11 =3D 0;=0A= _Distance __len22 =3D 0;=0A= if (__len1 > __len2) {=0A= __len11 =3D __len1 / 2;=0A= advance(__first_cut, __len11);=0A= __second_cut =3D lower_bound(__middle, __last, = *__first_cut);=0A= __len22 =3D distance(__middle, __second_cut);=0A= }=0A= else {=0A= __len22 =3D __len2 / 2;=0A= advance(__second_cut, __len22);=0A= __first_cut =3D upper_bound(__first, __middle, = *__second_cut);=0A= __len11 =3D distance(__first, __first_cut);=0A= }=0A= _BidirectionalIter __new_middle =3D=0A= __rotate_adaptive(__first_cut, __middle, __second_cut,=0A= __len1 - __len11, __len22, __buffer,=0A= __buffer_size);=0A= __merge_adaptive(__first, __first_cut, __new_middle, __len11,=0A= __len22, __buffer, __buffer_size);=0A= __merge_adaptive(__new_middle, __second_cut, __last, __len1 = - __len11,=0A= __len2 - __len22, __buffer, __buffer_size);=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __merge_adaptive(_BidirectionalIter __first,=0A= _BidirectionalIter __middle,=0A= _BidirectionalIter __last,=0A= _Distance __len1, _Distance __len2,=0A= _Pointer __buffer, _Distance __buffer_size,=0A= _Compare __comp)=0A= {=0A= if (__len1 <=3D __len2 && __len1 <=3D __buffer_size) {=0A= _Pointer __buffer_end =3D copy(__first, __middle, __buffer);=0A= merge(__buffer, __buffer_end, __middle, __last, __first, = __comp);=0A= }=0A= else if (__len2 <=3D __buffer_size) {=0A= _Pointer __buffer_end =3D copy(__middle, __last, __buffer);=0A= __merge_backward(__first, __middle, __buffer, __buffer_end, = __last,=0A= __comp);=0A= }=0A= else {=0A= _BidirectionalIter __first_cut =3D __first;=0A= _BidirectionalIter __second_cut =3D __middle;=0A= _Distance __len11 =3D 0;=0A= _Distance __len22 =3D 0;=0A= if (__len1 > __len2) {=0A= __len11 =3D __len1 / 2;=0A= advance(__first_cut, __len11);=0A= __second_cut =3D lower_bound(__middle, __last, = *__first_cut, __comp);=0A= __len22 =3D distance(__middle, __second_cut);=0A= }=0A= else {=0A= __len22 =3D __len2 / 2;=0A= advance(__second_cut, __len22);=0A= __first_cut =3D upper_bound(__first, __middle, = *__second_cut, __comp);=0A= __len11 =3D distance(__first, __first_cut);=0A= }=0A= _BidirectionalIter __new_middle =3D=0A= __rotate_adaptive(__first_cut, __middle, __second_cut,=0A= __len1 - __len11, __len22, __buffer,=0A= __buffer_size);=0A= __merge_adaptive(__first, __first_cut, __new_middle, __len11,=0A= __len22, __buffer, __buffer_size, __comp);=0A= __merge_adaptive(__new_middle, __second_cut, __last, __len1 = - __len11,=0A= __len2 - __len22, __buffer, __buffer_size, = __comp);=0A= }=0A= }=0A= # 3508 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= inplace_merge(_BidirectionalIter __first,=0A= _BidirectionalIter __middle,=0A= _BidirectionalIter __last)=0A= {=0A= typedef typename iterator_traits<_BidirectionalIter>::value_type=0A= _ValueType;=0A= typedef typename = iterator_traits<_BidirectionalIter>::difference_type=0A= _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __middle || __middle =3D=3D __last)=0A= return;=0A= =0A= _DistanceType __len1 =3D distance(__first, __middle);=0A= _DistanceType __len2 =3D distance(__middle, __last);=0A= =0A= _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, = __last);=0A= if (__buf.begin() =3D=3D 0)=0A= __merge_without_buffer(__first, __middle, __last, __len1, = __len2);=0A= else=0A= __merge_adaptive(__first, __middle, __last, __len1, __len2,=0A= __buf.begin(), _DistanceType(__buf.size()));=0A= }=0A= # 3559 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= void=0A= inplace_merge(_BidirectionalIter __first,=0A= _BidirectionalIter __middle,=0A= _BidirectionalIter __last,=0A= _Compare __comp)=0A= {=0A= typedef typename iterator_traits<_BidirectionalIter>::value_type=0A= _ValueType;=0A= typedef typename = iterator_traits<_BidirectionalIter>::difference_type=0A= _DistanceType;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __middle || __middle =3D=3D __last)=0A= return;=0A= =0A= _DistanceType __len1 =3D distance(__first, __middle);=0A= _DistanceType __len2 =3D distance(__middle, __last);=0A= =0A= _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, = __last);=0A= if (__buf.begin() =3D=3D 0)=0A= __merge_without_buffer(__first, __middle, __last, __len1, = __len2, __comp);=0A= else=0A= __merge_adaptive(__first, __middle, __last, __len1, __len2,=0A= __buf.begin(), _DistanceType(__buf.size()),=0A= __comp);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= bool=0A= includes(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A= if (*__first2 < *__first1)=0A= return false;=0A= else if(*__first1 < *__first2)=0A= ++__first1;=0A= else=0A= ++__first1, ++__first2;=0A= =0A= return __first2 =3D=3D __last2;=0A= }=0A= =0A= template=0A= bool=0A= includes(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2, _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A= if (__comp(*__first2, *__first1))=0A= return false;=0A= else if(__comp(*__first1, *__first2))=0A= ++__first1;=0A= else=0A= ++__first1, ++__first2;=0A= =0A= return __first2 =3D=3D __last2;=0A= }=0A= =0A= template=0A= _OutputIter=0A= set_union(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2) {=0A= if (*__first1 < *__first2) {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= }=0A= else if (*__first2 < *__first1) {=0A= *__result =3D *__first2;=0A= ++__first2;=0A= }=0A= else {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= ++__first2;=0A= }=0A= ++__result;=0A= }=0A= return copy(__first2, __last2, copy(__first1, __last1, __result));=0A= }=0A= =0A= template=0A= _OutputIter=0A= set_union(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result, _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2) {=0A= if (__comp(*__first1, *__first2)) {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= }=0A= else if (__comp(*__first2, *__first1)) {=0A= *__result =3D *__first2;=0A= ++__first2;=0A= }=0A= else {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= ++__first2;=0A= }=0A= ++__result;=0A= }=0A= return copy(__first2, __last2, copy(__first1, __last1, __result));=0A= }=0A= =0A= template=0A= _OutputIter=0A= set_intersection(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A= if (*__first1 < *__first2)=0A= ++__first1;=0A= else if (*__first2 < *__first1)=0A= ++__first2;=0A= else {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= ++__first2;=0A= ++__result;=0A= }=0A= return __result;=0A= }=0A= =0A= template=0A= _OutputIter=0A= set_intersection(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result, _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A= if (__comp(*__first1, *__first2))=0A= ++__first1;=0A= else if (__comp(*__first2, *__first1))=0A= ++__first2;=0A= else {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= ++__first2;=0A= ++__result;=0A= }=0A= return __result;=0A= }=0A= =0A= template=0A= _OutputIter=0A= set_difference(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A= if (*__first1 < *__first2) {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= ++__result;=0A= }=0A= else if (*__first2 < *__first1)=0A= ++__first2;=0A= else {=0A= ++__first1;=0A= ++__first2;=0A= }=0A= return copy(__first1, __last1, __result);=0A= }=0A= =0A= template=0A= _OutputIter=0A= set_difference(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result, _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A= if (__comp(*__first1, *__first2)) {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= ++__result;=0A= }=0A= else if (__comp(*__first2, *__first1))=0A= ++__first2;=0A= else {=0A= ++__first1;=0A= ++__first2;=0A= }=0A= return copy(__first1, __last1, __result);=0A= }=0A= =0A= template=0A= _OutputIter=0A= set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A= if (*__first1 < *__first2) {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= ++__result;=0A= }=0A= else if (*__first2 < *__first1) {=0A= *__result =3D *__first2;=0A= ++__first2;=0A= ++__result;=0A= }=0A= else {=0A= ++__first1;=0A= ++__first2;=0A= }=0A= return copy(__first2, __last2, copy(__first1, __last1, __result));=0A= }=0A= =0A= template=0A= _OutputIter=0A= set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1,=0A= _InputIter2 __first2, _InputIter2 __last2,=0A= _OutputIter __result,=0A= _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= while (__first1 !=3D __last1 && __first2 !=3D __last2)=0A= if (__comp(*__first1, *__first2)) {=0A= *__result =3D *__first1;=0A= ++__first1;=0A= ++__result;=0A= }=0A= else if (__comp(*__first2, *__first1)) {=0A= *__result =3D *__first2;=0A= ++__first2;=0A= ++__result;=0A= }=0A= else {=0A= ++__first1;=0A= ++__first2;=0A= }=0A= return copy(__first2, __last2, copy(__first1, __last1, __result));=0A= }=0A= =0A= =0A= =0A= =0A= template=0A= _ForwardIter=0A= max_element(_ForwardIter __first, _ForwardIter __last)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last) return __first;=0A= _ForwardIter __result =3D __first;=0A= while (++__first !=3D __last)=0A= if (*__result < *__first)=0A= __result =3D __first;=0A= return __result;=0A= }=0A= =0A= template=0A= _ForwardIter=0A= max_element(_ForwardIter __first, _ForwardIter __last,=0A= _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last) return __first;=0A= _ForwardIter __result =3D __first;=0A= while (++__first !=3D __last)=0A= if (__comp(*__result, *__first)) __result =3D __first;=0A= return __result;=0A= }=0A= =0A= template=0A= _ForwardIter=0A= min_element(_ForwardIter __first, _ForwardIter __last)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last) return __first;=0A= _ForwardIter __result =3D __first;=0A= while (++__first !=3D __last)=0A= if (*__first < *__result)=0A= __result =3D __first;=0A= return __result;=0A= }=0A= =0A= template=0A= _ForwardIter=0A= min_element(_ForwardIter __first, _ForwardIter __last,=0A= _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last) return __first;=0A= _ForwardIter __result =3D __first;=0A= while (++__first !=3D __last)=0A= if (__comp(*__first, *__result))=0A= __result =3D __first;=0A= return __result;=0A= }=0A= =0A= =0A= =0A= =0A= template=0A= bool=0A= next_permutation(_BidirectionalIter __first, _BidirectionalIter = __last)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last)=0A= return false;=0A= _BidirectionalIter __i =3D __first;=0A= ++__i;=0A= if (__i =3D=3D __last)=0A= return false;=0A= __i =3D __last;=0A= --__i;=0A= =0A= for(;;) {=0A= _BidirectionalIter __ii =3D __i;=0A= --__i;=0A= if (*__i < *__ii) {=0A= _BidirectionalIter __j =3D __last;=0A= while (!(*__i < *--__j))=0A= {}=0A= iter_swap(__i, __j);=0A= reverse(__ii, __last);=0A= return true;=0A= }=0A= if (__i =3D=3D __first) {=0A= reverse(__first, __last);=0A= return false;=0A= }=0A= }=0A= }=0A= =0A= template=0A= bool=0A= next_permutation(_BidirectionalIter __first, _BidirectionalIter = __last,=0A= _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last)=0A= return false;=0A= _BidirectionalIter __i =3D __first;=0A= ++__i;=0A= if (__i =3D=3D __last)=0A= return false;=0A= __i =3D __last;=0A= --__i;=0A= =0A= for(;;) {=0A= _BidirectionalIter __ii =3D __i;=0A= --__i;=0A= if (__comp(*__i, *__ii)) {=0A= _BidirectionalIter __j =3D __last;=0A= while (!__comp(*__i, *--__j))=0A= {}=0A= iter_swap(__i, __j);=0A= reverse(__ii, __last);=0A= return true;=0A= }=0A= if (__i =3D=3D __first) {=0A= reverse(__first, __last);=0A= return false;=0A= }=0A= }=0A= }=0A= =0A= template=0A= bool=0A= prev_permutation(_BidirectionalIter __first, _BidirectionalIter = __last)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last)=0A= return false;=0A= _BidirectionalIter __i =3D __first;=0A= ++__i;=0A= if (__i =3D=3D __last)=0A= return false;=0A= __i =3D __last;=0A= --__i;=0A= =0A= for(;;) {=0A= _BidirectionalIter __ii =3D __i;=0A= --__i;=0A= if (*__ii < *__i) {=0A= _BidirectionalIter __j =3D __last;=0A= while (!(*--__j < *__i))=0A= {}=0A= iter_swap(__i, __j);=0A= reverse(__ii, __last);=0A= return true;=0A= }=0A= if (__i =3D=3D __first) {=0A= reverse(__first, __last);=0A= return false;=0A= }=0A= }=0A= }=0A= =0A= template=0A= bool=0A= prev_permutation(_BidirectionalIter __first, _BidirectionalIter = __last,=0A= _Compare __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= if (__first =3D=3D __last)=0A= return false;=0A= _BidirectionalIter __i =3D __first;=0A= ++__i;=0A= if (__i =3D=3D __last)=0A= return false;=0A= __i =3D __last;=0A= --__i;=0A= =0A= for(;;) {=0A= _BidirectionalIter __ii =3D __i;=0A= --__i;=0A= if (__comp(*__ii, *__i)) {=0A= _BidirectionalIter __j =3D __last;=0A= while (!__comp(*--__j, *__i))=0A= {}=0A= iter_swap(__i, __j);=0A= reverse(__ii, __last);=0A= return true;=0A= }=0A= if (__i =3D=3D __first) {=0A= reverse(__first, __last);=0A= return false;=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= template=0A= _InputIter=0A= find_first_of(_InputIter __first1, _InputIter __last1,=0A= _ForwardIter __first2, _ForwardIter __last2)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first1 !=3D __last1; ++__first1)=0A= for (_ForwardIter __iter =3D __first2; __iter !=3D __last2; = ++__iter)=0A= if (*__first1 =3D=3D *__iter)=0A= return __first1;=0A= return __last1;=0A= }=0A= =0A= template=0A= _InputIter=0A= find_first_of(_InputIter __first1, _InputIter __last1,=0A= _ForwardIter __first2, _ForwardIter __last2,=0A= _BinaryPredicate __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= for ( ; __first1 !=3D __last1; ++__first1)=0A= for (_ForwardIter __iter =3D __first2; __iter !=3D __last2; = ++__iter)=0A= if (__comp(*__first1, *__iter))=0A= return __first1;=0A= return __last1;=0A= }=0A= # 4201 "/usr/local/gcc3.1/include/g++-v3/bits/stl_algo.h" 3=0A= template=0A= _ForwardIter1=0A= __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A= _ForwardIter2 __first2, _ForwardIter2 __last2,=0A= forward_iterator_tag, forward_iterator_tag)=0A= {=0A= if (__first2 =3D=3D __last2)=0A= return __last1;=0A= else {=0A= _ForwardIter1 __result =3D __last1;=0A= while (1) {=0A= _ForwardIter1 __new_result=0A= =3D search(__first1, __last1, __first2, __last2);=0A= if (__new_result =3D=3D __last1)=0A= return __result;=0A= else {=0A= __result =3D __new_result;=0A= __first1 =3D __new_result;=0A= ++__first1;=0A= }=0A= }=0A= }=0A= }=0A= =0A= template=0A= _ForwardIter1=0A= __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A= _ForwardIter2 __first2, _ForwardIter2 __last2,=0A= forward_iterator_tag, forward_iterator_tag,=0A= _BinaryPredicate __comp)=0A= {=0A= if (__first2 =3D=3D __last2)=0A= return __last1;=0A= else {=0A= _ForwardIter1 __result =3D __last1;=0A= while (1) {=0A= _ForwardIter1 __new_result=0A= =3D search(__first1, __last1, __first2, __last2, __comp);=0A= if (__new_result =3D=3D __last1)=0A= return __result;=0A= else {=0A= __result =3D __new_result;=0A= __first1 =3D __new_result;=0A= ++__first1;=0A= }=0A= }=0A= }=0A= }=0A= =0A= =0A= template=0A= _BidirectionalIter1=0A= __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1,=0A= _BidirectionalIter2 __first2, _BidirectionalIter2 __last2,=0A= bidirectional_iterator_tag, bidirectional_iterator_tag)=0A= {=0A= =0A= =0A= =0A= =0A= typedef reverse_iterator<_BidirectionalIter1> _RevIter1;=0A= typedef reverse_iterator<_BidirectionalIter2> _RevIter2;=0A= =0A= _RevIter1 __rlast1(__first1);=0A= _RevIter2 __rlast2(__first2);=0A= _RevIter1 __rresult =3D search(_RevIter1(__last1), __rlast1,=0A= _RevIter2(__last2), __rlast2);=0A= =0A= if (__rresult =3D=3D __rlast1)=0A= return __last1;=0A= else {=0A= _BidirectionalIter1 __result =3D __rresult.base();=0A= advance(__result, -distance(__first2, __last2));=0A= return __result;=0A= }=0A= }=0A= =0A= template=0A= _BidirectionalIter1=0A= __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1,=0A= _BidirectionalIter2 __first2, _BidirectionalIter2 __last2,=0A= bidirectional_iterator_tag, bidirectional_iterator_tag,=0A= _BinaryPredicate __comp)=0A= {=0A= =0A= =0A= =0A= =0A= typedef reverse_iterator<_BidirectionalIter1> _RevIter1;=0A= typedef reverse_iterator<_BidirectionalIter2> _RevIter2;=0A= =0A= _RevIter1 __rlast1(__first1);=0A= _RevIter2 __rlast2(__first2);=0A= _RevIter1 __rresult =3D search(_RevIter1(__last1), __rlast1,=0A= _RevIter2(__last2), __rlast2,=0A= __comp);=0A= =0A= if (__rresult =3D=3D __rlast1)=0A= return __last1;=0A= else {=0A= _BidirectionalIter1 __result =3D __rresult.base();=0A= advance(__result, -distance(__first2, __last2));=0A= return __result;=0A= }=0A= }=0A= =0A= =0A= =0A= template=0A= inline _ForwardIter1=0A= find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A= _ForwardIter2 __first2, _ForwardIter2 __last2)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= return __find_end(__first1, __last1, __first2, __last2,=0A= __iterator_category(__first1),=0A= __iterator_category(__first2));=0A= }=0A= =0A= template=0A= inline _ForwardIter1=0A= find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,=0A= _ForwardIter2 __first2, _ForwardIter2 __last2,=0A= _BinaryPredicate __comp)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= return __find_end(__first1, __last1, __first2, __last2,=0A= __iterator_category(__first1),=0A= __iterator_category(__first2),=0A= __comp);=0A= }=0A= =0A= }=0A= # 70 "/usr/local/gcc3.1/include/g++-v3/algorithm" 2 3=0A= # 57 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.tcc" 1 3=0A= # 45 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.tcc" 3=0A= =0A= namespace std=0A= {=0A= template=0A= const typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= _Rep::_S_max_size =3D (((npos - sizeof(_Rep))/sizeof(_CharT)) - 1) / = 4;=0A= =0A= template=0A= const _CharT=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= _Rep::_S_terminal =3D _CharT();=0A= =0A= template=0A= const typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::npos;=0A= =0A= =0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::_S_empty_rep_storage[=0A= (sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - = 1)/sizeof(size_type)];=0A= =0A= =0A= =0A= =0A= =0A= template=0A= template=0A= _CharT*=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,=0A= input_iterator_tag)=0A= {=0A= if (__beg =3D=3D __end && __a =3D=3D _Alloc())=0A= return _S_empty_rep()._M_refcopy();=0A= =0A= _CharT __buf[100];=0A= size_type __i =3D 0;=0A= while (__beg !=3D __end && __i < sizeof(__buf) / sizeof(_CharT))=0A= {=0A= __buf[__i++] =3D *__beg;=0A= ++__beg;=0A= }=0A= _Rep* __r =3D _Rep::_S_create(__i, __a);=0A= traits_type::copy(__r->_M_refdata(), __buf, __i);=0A= __r->_M_length =3D __i;=0A= try=0A= {=0A= =0A= =0A= =0A= for (;;)=0A= {=0A= _CharT* __p =3D __r->_M_refdata() + __r->_M_length;=0A= _CharT* __last =3D __r->_M_refdata() + __r->_M_capacity;=0A= for (;;)=0A= {=0A= if (__beg =3D=3D __end)=0A= {=0A= __r->_M_length =3D __p - __r->_M_refdata();=0A= *__p =3D _Rep::_S_terminal;=0A= return __r->_M_refdata();=0A= }=0A= if (__p =3D=3D __last)=0A= break;=0A= *__p++ =3D *__beg;=0A= ++__beg;=0A= }=0A= =0A= size_type __len =3D __p - __r->_M_refdata();=0A= _Rep* __another =3D _Rep::_S_create(__len + 1, __a);=0A= traits_type::copy(__another->_M_refdata(),=0A= __r->_M_refdata(), __len);=0A= __r->_M_destroy(__a);=0A= __r =3D __another;=0A= __r->_M_length =3D __len;=0A= }=0A= }=0A= catch(...)=0A= {=0A= __r->_M_destroy(__a);=0A= throw;=0A= }=0A= return 0;=0A= }=0A= =0A= template=0A= template =0A= _CharT*=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,=0A= forward_iterator_tag)=0A= {=0A= size_type __dnew =3D static_cast(distance(__beg, = __end));=0A= =0A= =0A= if (__builtin_expect(__beg =3D=3D _InIter(0), 0))=0A= __throw_logic_error("attempt to create string with null = pointer");=0A= =0A= if (__beg =3D=3D __end && __a =3D=3D _Alloc())=0A= return _S_empty_rep()._M_refcopy();=0A= =0A= =0A= _Rep* __r =3D _Rep::_S_create(__dnew, __a);=0A= try=0A= { _S_copy_chars(__r->_M_refdata(), __beg, __end); }=0A= catch(...)=0A= {=0A= __r->_M_destroy(__a);=0A= throw;=0A= }=0A= __r->_M_length =3D __dnew;=0A= =0A= __r->_M_refdata()[__dnew] =3D _Rep::_S_terminal;=0A= return __r->_M_refdata();=0A= }=0A= =0A= template=0A= _CharT*=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= _S_construct(size_type __n, _CharT __c, const _Alloc& __a)=0A= {=0A= if (__n =3D=3D 0 && __a =3D=3D _Alloc())=0A= return _S_empty_rep()._M_refcopy();=0A= =0A= =0A= _Rep* __r =3D _Rep::_S_create(__n, __a);=0A= try=0A= {=0A= if (__n)=0A= traits_type::assign(__r->_M_refdata(), __n, __c);=0A= }=0A= catch(...)=0A= {=0A= __r->_M_destroy(__a);=0A= throw;=0A= }=0A= __r->_M_length =3D __n;=0A= __r->_M_refdata()[__n] =3D _Rep::_S_terminal;=0A= return __r->_M_refdata();=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string(const basic_string& __str)=0A= : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(), = __str.get_allocator()),=0A= __str.get_allocator())=0A= { }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string(const _Alloc& __a)=0A= : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)=0A= { }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string(const basic_string& __str, size_type __pos, size_type = __n)=0A= : _M_dataplus(_S_construct(__str._M_check(__pos),=0A= __str._M_fold(__pos, __n), _Alloc()), = _Alloc())=0A= { }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string(const basic_string& __str, size_type __pos,=0A= size_type __n, const _Alloc& __a)=0A= : _M_dataplus(_S_construct(__str._M_check(__pos),=0A= __str._M_fold(__pos, __n), __a), __a)=0A= { }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)=0A= : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)=0A= { }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string(const _CharT* __s, const _Alloc& __a)=0A= : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) = : 0,=0A= __a), __a)=0A= { }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string(size_type __n, _CharT __c, const _Alloc& __a)=0A= : _M_dataplus(_S_construct(__n, __c, __a), __a)=0A= { }=0A= =0A= template=0A= template=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= basic_string(_InputIter __beg, _InputIter __end, const _Alloc& __a)=0A= : _M_dataplus(_S_construct(__beg, __end, __a), __a)=0A= { }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::assign(const basic_string& = __str)=0A= {=0A= if (_M_rep() !=3D __str._M_rep())=0A= {=0A= =0A= allocator_type __a =3D this->get_allocator();=0A= _CharT* __tmp =3D __str._M_rep()->_M_grab(__a, = __str.get_allocator());=0A= _M_rep()->_M_dispose(__a);=0A= _M_data(__tmp);=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= void=0A= basic_string<_CharT, _Traits, _Alloc>::_Rep::=0A= _M_destroy(const _Alloc& __a) throw ()=0A= {=0A= size_type __size =3D sizeof(_Rep) + (_M_capacity + 1) * = sizeof(_CharT);=0A= _Raw_bytes_alloc(__a).deallocate(reinterpret_cast(this), = __size);=0A= }=0A= =0A= template=0A= void=0A= basic_string<_CharT, _Traits, _Alloc>::_M_leak_hard()=0A= {=0A= if (_M_rep()->_M_is_shared())=0A= _M_mutate(0, 0, 0);=0A= _M_rep()->_M_set_leaked();=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= void=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= _M_mutate(size_type __pos, size_type __len1, size_type __len2)=0A= {=0A= size_type __old_size =3D this->size();=0A= const size_type __new_size =3D __old_size + __len2 - __len1;=0A= const _CharT* __src =3D _M_data() + __pos + __len1;=0A= const size_type __how_much =3D __old_size - __pos - __len1;=0A= =0A= if (_M_rep()->_M_is_shared() || __new_size > capacity())=0A= {=0A= =0A= allocator_type __a =3D get_allocator();=0A= =0A= =0A= const size_type __pagesize =3D 4096;=0A= const size_type __malloc_header_size =3D 4 * sizeof (void*);=0A= =0A= const size_type __page_capacity =3D (__pagesize - = __malloc_header_size=0A= - sizeof(_Rep) - = sizeof(_CharT))=0A= / sizeof(_CharT);=0A= _Rep* __r;=0A= if (__new_size > capacity() && __new_size > __page_capacity)=0A= =0A= __r =3D _Rep::_S_create(__new_size > 2*capacity() ?=0A= __new_size : 2*capacity(), __a);=0A= else=0A= __r =3D _Rep::_S_create(__new_size, __a);=0A= try=0A= {=0A= if (__pos)=0A= traits_type::copy(__r->_M_refdata(), _M_data(), __pos);=0A= if (__how_much)=0A= traits_type::copy(__r->_M_refdata() + __pos + __len2,=0A= __src, __how_much);=0A= }=0A= catch(...)=0A= {=0A= __r->_M_dispose(get_allocator());=0A= throw;=0A= }=0A= _M_rep()->_M_dispose(__a);=0A= _M_data(__r->_M_refdata());=0A= }=0A= else if (__how_much && __len1 !=3D __len2)=0A= {=0A= =0A= traits_type::move(_M_data() + __pos + __len2, __src, = __how_much);=0A= }=0A= _M_rep()->_M_set_sharable();=0A= _M_rep()->_M_length =3D __new_size;=0A= _M_data()[__new_size] =3D _Rep::_S_terminal;=0A= =0A= }=0A= =0A= template=0A= void=0A= basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res)=0A= {=0A= if (__res > this->capacity() || _M_rep()->_M_is_shared())=0A= {=0A= if (__res > this->max_size())=0A= __throw_length_error("basic_string::reserve");=0A= =0A= if (__res < this->size())=0A= __res =3D this->size();=0A= allocator_type __a =3D get_allocator();=0A= _CharT* __tmp =3D _M_rep()->_M_clone(__a, __res - = this->size());=0A= _M_rep()->_M_dispose(__a);=0A= _M_data(__tmp);=0A= }=0A= }=0A= =0A= template=0A= void basic_string<_CharT, _Traits, _Alloc>::swap(basic_string& __s)=0A= {=0A= if (_M_rep()->_M_is_leaked())=0A= _M_rep()->_M_set_sharable();=0A= if (__s._M_rep()->_M_is_leaked())=0A= __s._M_rep()->_M_set_sharable();=0A= if (this->get_allocator() =3D=3D __s.get_allocator())=0A= {=0A= _CharT* __tmp =3D _M_data();=0A= _M_data(__s._M_data());=0A= __s._M_data(__tmp);=0A= }=0A= =0A= else=0A= {=0A= basic_string __tmp1(_M_ibegin(), _M_iend(), = __s.get_allocator());=0A= basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),=0A= this->get_allocator());=0A= *this =3D __tmp2;=0A= __s =3D __tmp1;=0A= }=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::_Rep*=0A= basic_string<_CharT, _Traits, _Alloc>::_Rep::=0A= _S_create(size_t __capacity, const _Alloc& __alloc)=0A= {=0A= typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A= =0A= =0A= if (__capacity > _S_max_size)=0A= =0A= =0A= =0A= __throw_length_error("basic_string::_S_create");=0A= =0A= =0A= =0A= =0A= size_t __size =3D (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);=0A= # 421 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.tcc" 3=0A= const size_t __pagesize =3D 4096;=0A= const size_t __subpagesize =3D 128;=0A= const size_t __malloc_header_size =3D 4 * sizeof (void*);=0A= if ((__size + __malloc_header_size) > __pagesize)=0A= {=0A= size_t __extra =3D=0A= (__pagesize - ((__size + __malloc_header_size) % __pagesize))=0A= % __pagesize;=0A= __capacity +=3D __extra / sizeof(_CharT);=0A= __size =3D (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);=0A= }=0A= else if (__size > __subpagesize)=0A= {=0A= size_t __extra =3D=0A= (__subpagesize - ((__size + __malloc_header_size) % = __subpagesize))=0A= % __subpagesize;=0A= __capacity +=3D __extra / sizeof(_CharT);=0A= __size =3D (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);=0A= }=0A= =0A= =0A= =0A= void* __place =3D _Raw_bytes_alloc(__alloc).allocate(__size);=0A= _Rep *__p =3D new (__place) _Rep;=0A= __p->_M_capacity =3D __capacity;=0A= __p->_M_set_sharable();=0A= __p->_M_length =3D 0;=0A= return __p;=0A= }=0A= =0A= template=0A= _CharT*=0A= basic_string<_CharT, _Traits, _Alloc>::_Rep::=0A= _M_clone(const _Alloc& __alloc, size_type __res)=0A= {=0A= =0A= const size_type __requested_cap =3D _M_length + __res;=0A= =0A= const size_type __pagesize =3D 4096;=0A= const size_type __malloc_header_size =3D 4 * sizeof (void*);=0A= =0A= const size_type __page_capacity =3D=0A= (__pagesize - __malloc_header_size - sizeof(_Rep) - = sizeof(_CharT))=0A= / sizeof(_CharT);=0A= _Rep* __r;=0A= if (__requested_cap > _M_capacity && __requested_cap > = __page_capacity)=0A= =0A= __r =3D _Rep::_S_create(__requested_cap > 2*_M_capacity ?=0A= __requested_cap : 2*_M_capacity, __alloc);=0A= else=0A= __r =3D _Rep::_S_create(__requested_cap, __alloc);=0A= =0A= if (_M_length)=0A= {=0A= try=0A= { traits_type::copy(__r->_M_refdata(), _M_refdata(), = _M_length); }=0A= catch(...)=0A= {=0A= __r->_M_destroy(__alloc);=0A= throw;=0A= }=0A= }=0A= __r->_M_length =3D _M_length;=0A= return __r->_M_refdata();=0A= }=0A= =0A= template=0A= void=0A= basic_string<_CharT, _Traits, _Alloc>::resize(size_type __n, _CharT = __c)=0A= {=0A= if (__n > max_size())=0A= __throw_length_error("basic_string::resize");=0A= size_type __size =3D this->size();=0A= if (__size < __n)=0A= this->append(__n - __size, __c);=0A= else if (__n < __size)=0A= this->erase(__n);=0A= =0A= }=0A= # 508 "/usr/local/gcc3.1/include/g++-v3/bits/basic_string.tcc" 3=0A= template=0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= _M_replace(iterator __i1, iterator __i2, _InputIter __k1,=0A= _InputIter __k2, input_iterator_tag)=0A= {=0A= =0A= basic_string __s(__k1, __k2);=0A= return _M_replace_safe(__i1, __i2, __s._M_ibegin(), = __s._M_iend());=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= _M_replace_safe(iterator __i1, iterator __i2, _ForwardIter __k1,=0A= _ForwardIter __k2)=0A= {=0A= size_type __dnew =3D static_cast(distance(__k1, = __k2));=0A= size_type __dold =3D __i2 - __i1;=0A= size_type __dmax =3D this->max_size();=0A= =0A= if (__dmax <=3D __dnew)=0A= __throw_length_error("basic_string::_M_replace");=0A= size_type __off =3D __i1 - _M_ibegin();=0A= _M_mutate(__off, __dold, __dnew);=0A= =0A= =0A= if (__dnew)=0A= _S_copy_chars(_M_data() + __off, __k1, __k2);=0A= =0A= return *this;=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= replace(size_type __pos1, size_type __n1, const basic_string& __str,=0A= size_type __pos2, size_type __n2)=0A= {=0A= const size_type __strsize =3D __str.size();=0A= if (__pos2 > __strsize)=0A= __throw_out_of_range("basic_string::replace");=0A= const bool __testn2 =3D __n2 < __strsize - __pos2;=0A= const size_type __foldn2 =3D __testn2 ? __n2 : __strsize - __pos2;=0A= return this->replace(__pos1, __n1,=0A= __str._M_data() + __pos2, __foldn2);=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= append(const basic_string& __str)=0A= {=0A= =0A= =0A= =0A= size_type __size =3D __str.size();=0A= size_type __len =3D __size + this->size();=0A= if (__len > this->capacity())=0A= this->reserve(__len);=0A= return _M_replace_safe(_M_iend(), _M_iend(), __str._M_ibegin(),=0A= __str._M_iend());=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= append(const basic_string& __str, size_type __pos, size_type __n)=0A= {=0A= =0A= =0A= =0A= size_type __len =3D min(__str.size() - __pos, __n) + this->size();=0A= if (__len > this->capacity())=0A= this->reserve(__len);=0A= return _M_replace_safe(_M_iend(), _M_iend(), __str._M_check(__pos),=0A= __str._M_fold(__pos, __n));=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= append(const _CharT* __s, size_type __n)=0A= {=0A= size_type __len =3D __n + this->size();=0A= if (__len > this->capacity())=0A= this->reserve(__len);=0A= return _M_replace_safe(_M_iend(), _M_iend(), __s, __s + __n);=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= append(size_type __n, _CharT __c)=0A= {=0A= size_type __len =3D __n + this->size();=0A= if (__len > this->capacity())=0A= this->reserve(__len);=0A= return this->replace(_M_iend(), _M_iend(), __n, __c);=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>=0A= operator+(const _CharT* __lhs,=0A= const basic_string<_CharT, _Traits, _Alloc>& __rhs)=0A= {=0A= typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A= typedef typename __string_type::size_type __size_type;=0A= __size_type __len =3D _Traits::length(__lhs);=0A= __string_type __str;=0A= __str.reserve(__len + __rhs.size());=0A= __str.append(__lhs, __lhs + __len);=0A= __str.append(__rhs);=0A= return __str;=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>=0A= operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& = __rhs)=0A= {=0A= typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A= typedef typename __string_type::size_type __size_type;=0A= __string_type __str;=0A= __size_type __len =3D __rhs.size();=0A= __str.reserve(__len + 1);=0A= __str.append(__size_type(1), __lhs);=0A= __str.append(__rhs);=0A= return __str;=0A= }=0A= =0A= template=0A= basic_string<_CharT, _Traits, _Alloc>&=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= replace(iterator __i1, iterator __i2, size_type __n2, _CharT __c)=0A= {=0A= size_type __n1 =3D __i2 - __i1;=0A= size_type __off1 =3D __i1 - _M_ibegin();=0A= if (max_size() - (this->size() - __n1) <=3D __n2)=0A= __throw_length_error("basic_string::replace");=0A= _M_mutate (__off1, __n1, __n2);=0A= =0A= if (__n2)=0A= traits_type::assign(_M_data() + __off1, __n2, __c);=0A= return *this;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= copy(_CharT* __s, size_type __n, size_type __pos) const=0A= {=0A= if (__pos > this->size())=0A= __throw_out_of_range("basic_string::copy");=0A= =0A= if (__n > this->size() - __pos)=0A= __n =3D this->size() - __pos;=0A= =0A= traits_type::copy(__s, _M_data() + __pos, __n);=0A= =0A= return __n;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= find(const _CharT* __s, size_type __pos, size_type __n) const=0A= {=0A= size_type __size =3D this->size();=0A= size_t __xpos =3D __pos;=0A= const _CharT* __data =3D _M_data();=0A= for (; __xpos + __n <=3D __size; ++__xpos)=0A= if (traits_type::compare(__data + __xpos, __s, __n) =3D=3D 0)=0A= return __xpos;=0A= return npos;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= find(_CharT __c, size_type __pos) const=0A= {=0A= size_type __size =3D this->size();=0A= size_type __ret =3D npos;=0A= if (__pos < __size)=0A= {=0A= const _CharT* __data =3D _M_data();=0A= size_type __n =3D __size - __pos;=0A= const _CharT* __p =3D traits_type::find(__data + __pos, __n, = __c);=0A= if (__p)=0A= __ret =3D __p - __data;=0A= }=0A= return __ret;=0A= }=0A= =0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= rfind(const _CharT* __s, size_type __pos, size_type __n) const=0A= {=0A= size_type __size =3D this->size();=0A= if (__n <=3D __size)=0A= {=0A= __pos =3D std::min(__size - __n, __pos);=0A= const _CharT* __data =3D _M_data();=0A= do=0A= {=0A= if (traits_type::compare(__data + __pos, __s, __n) =3D=3D = 0)=0A= return __pos;=0A= }=0A= while (__pos-- > 0);=0A= }=0A= return npos;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= rfind(_CharT __c, size_type __pos) const=0A= {=0A= size_type __size =3D this->size();=0A= if (__size)=0A= {=0A= size_t __xpos =3D __size - 1;=0A= if (__xpos > __pos)=0A= __xpos =3D __pos;=0A= =0A= for (++__xpos; __xpos-- > 0; )=0A= if (traits_type::eq(_M_data()[__xpos], __c))=0A= return __xpos;=0A= }=0A= return npos;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= find_first_of(const _CharT* __s, size_type __pos, size_type __n) = const=0A= {=0A= for (; __n && __pos < this->size(); ++__pos)=0A= {=0A= const _CharT* __p =3D traits_type::find(__s, __n, = _M_data()[__pos]);=0A= if (__p)=0A= return __pos;=0A= }=0A= return npos;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= find_last_of(const _CharT* __s, size_type __pos, size_type __n) const=0A= {=0A= size_type __size =3D this->size();=0A= if (__size && __n)=0A= {=0A= if (--__size > __pos)=0A= __size =3D __pos;=0A= do=0A= {=0A= if (traits_type::find(__s, __n, _M_data()[__size]))=0A= return __size;=0A= }=0A= while (__size-- !=3D 0);=0A= }=0A= return npos;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) = const=0A= {=0A= size_t __xpos =3D __pos;=0A= for (; __xpos < this->size(); ++__xpos)=0A= if (!traits_type::find(__s, __n, _M_data()[__xpos]))=0A= return __xpos;=0A= return npos;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= find_first_not_of(_CharT __c, size_type __pos) const=0A= {=0A= size_t __xpos =3D __pos;=0A= for (; __xpos < this->size(); ++__xpos)=0A= if (!traits_type::eq(_M_data()[__xpos], __c))=0A= return __xpos;=0A= return npos;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) = const=0A= {=0A= size_type __size =3D this->size();=0A= if (__size)=0A= {=0A= if (--__size > __pos)=0A= __size =3D __pos;=0A= do=0A= {=0A= if (!traits_type::find(__s, __n, _M_data()[__size]))=0A= return __size;=0A= }=0A= while (__size--);=0A= }=0A= return npos;=0A= }=0A= =0A= template=0A= typename basic_string<_CharT, _Traits, _Alloc>::size_type=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= find_last_not_of(_CharT __c, size_type __pos) const=0A= {=0A= size_type __size =3D this->size();=0A= if (__size)=0A= {=0A= if (--__size > __pos)=0A= __size =3D __pos;=0A= do=0A= {=0A= if (!traits_type::eq(_M_data()[__size], __c))=0A= return __size;=0A= }=0A= while (__size--);=0A= }=0A= return npos;=0A= }=0A= =0A= template=0A= int=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= compare(size_type __pos, size_type __n, const basic_string& __str) = const=0A= {=0A= size_type __size =3D this->size();=0A= size_type __osize =3D __str.size();=0A= if (__pos > __size)=0A= __throw_out_of_range("basic_string::compare");=0A= =0A= size_type __rsize=3D min(__size - __pos, __n);=0A= size_type __len =3D min(__rsize, __osize);=0A= int __r =3D traits_type::compare(_M_data() + __pos, __str.data(), = __len);=0A= if (!__r)=0A= __r =3D __rsize - __osize;=0A= return __r;=0A= }=0A= =0A= template=0A= int=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= compare(size_type __pos1, size_type __n1, const basic_string& __str,=0A= size_type __pos2, size_type __n2) const=0A= {=0A= size_type __size =3D this->size();=0A= size_type __osize =3D __str.size();=0A= if (__pos1 > __size || __pos2 > __osize)=0A= __throw_out_of_range("basic_string::compare");=0A= =0A= size_type __rsize =3D min(__size - __pos1, __n1);=0A= size_type __rosize =3D min(__osize - __pos2, __n2);=0A= size_type __len =3D min(__rsize, __rosize);=0A= int __r =3D traits_type::compare(_M_data() + __pos1,=0A= __str.data() + __pos2, __len);=0A= if (!__r)=0A= __r =3D __rsize - __rosize;=0A= return __r;=0A= }=0A= =0A= =0A= template=0A= int=0A= basic_string<_CharT, _Traits, _Alloc>::=0A= compare(const _CharT* __s) const=0A= {=0A= size_type __size =3D this->size();=0A= int __r =3D traits_type::compare(_M_data(), __s, __size);=0A= if (!__r)=0A= __r =3D __size - traits_type::length(__s);=0A= return __r;=0A= }=0A= =0A= =0A= template=0A= int=0A= basic_string <_CharT, _Traits, _Alloc>::=0A= compare(size_type __pos, size_type __n1, const _CharT* __s) const=0A= {=0A= size_type __size =3D this->size();=0A= if (__pos > __size)=0A= __throw_out_of_range("basic_string::compare");=0A= =0A= size_type __osize =3D traits_type::length(__s);=0A= size_type __rsize =3D min(__size - __pos, __n1);=0A= size_type __len =3D min(__rsize, __osize);=0A= int __r =3D traits_type::compare(_M_data() + __pos, __s, __len);=0A= if (!__r)=0A= __r =3D __rsize - __osize;=0A= return __r;=0A= }=0A= =0A= template=0A= int=0A= basic_string <_CharT, _Traits, _Alloc>::=0A= compare(size_type __pos, size_type __n1, const _CharT* __s,=0A= size_type __n2) const=0A= {=0A= size_type __size =3D this->size();=0A= if (__pos > __size)=0A= __throw_out_of_range("basic_string::compare");=0A= =0A= size_type __osize =3D min(traits_type::length(__s), __n2);=0A= size_type __rsize =3D min(__size - __pos, __n1);=0A= size_type __len =3D min(__rsize, __osize);=0A= int __r =3D traits_type::compare(_M_data() + __pos, __s, __len);=0A= if (!__r)=0A= __r =3D __rsize - __osize;=0A= return __r;=0A= }=0A= =0A= template =0A= void=0A= _S_string_copy(const basic_string<_CharT, _Traits, _Alloc>& __str,=0A= _CharT* __buf, typename _Alloc::size_type __bufsiz)=0A= {=0A= typedef typename _Alloc::size_type size_type;=0A= size_type __strsize =3D __str.size();=0A= size_type __bytes =3D min(__strsize, __bufsiz - 1);=0A= _Traits::copy(__buf, __str.data(), __bytes);=0A= __buf[__bytes] =3D _CharT();=0A= }=0A= =0A= =0A= =0A= =0A= extern template class basic_string;=0A= extern template=0A= basic_istream&=0A= operator>>(basic_istream&, string&);=0A= extern template=0A= basic_ostream&=0A= operator<<(basic_ostream&, const string&);=0A= extern template=0A= basic_istream&=0A= getline(basic_istream&, string&, char);=0A= extern template=0A= basic_istream&=0A= getline(basic_istream&, string&);=0A= =0A= extern template class basic_string;=0A= extern template=0A= basic_istream&=0A= operator>>(basic_istream&, wstring&);=0A= extern template=0A= basic_ostream&=0A= operator<<(basic_ostream&, const wstring&);=0A= extern template=0A= basic_istream&=0A= getline(basic_istream&, wstring&, wchar_t);=0A= extern template=0A= basic_istream&=0A= getline(basic_istream&, wstring&);=0A= }=0A= # 58 "/usr/local/gcc3.1/include/g++-v3/string" 2 3=0A= # 50 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A= # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A= # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= void=0A= __throw_bad_exception(void);=0A= =0A= =0A= void=0A= __throw_bad_alloc(void);=0A= =0A= =0A= void=0A= __throw_bad_cast(void);=0A= =0A= void=0A= __throw_bad_typeid(void);=0A= =0A= =0A= void=0A= __throw_logic_error(const char* __s);=0A= =0A= void=0A= __throw_domain_error(const char* __s);=0A= =0A= void=0A= __throw_invalid_argument(const char* __s);=0A= =0A= void=0A= __throw_length_error(const char* __s);=0A= =0A= void=0A= __throw_out_of_range(const char* __s);=0A= =0A= void=0A= __throw_runtime_error(const char* __s);=0A= =0A= void=0A= __throw_range_error(const char* __s);=0A= =0A= void=0A= __throw_overflow_error(const char* __s);=0A= =0A= void=0A= __throw_underflow_error(const char* __s);=0A= =0A= =0A= void=0A= __throw_ios_failure(const char* __s);=0A= }=0A= # 51 "/usr/local/gcc3.1/include/g++-v3/bits/localefwd.h" 2 3=0A= =0A= =0A= namespace std=0A= {=0A= =0A= class locale;=0A= =0A= =0A= template=0A= inline bool=0A= isspace(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= isprint(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= iscntrl(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= isupper(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= islower(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= isalpha(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= isdigit(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= ispunct(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= isxdigit(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= isalnum(_CharT, const locale&);=0A= =0A= template=0A= inline bool=0A= isgraph(_CharT, const locale&);=0A= =0A= template=0A= inline _CharT=0A= toupper(_CharT, const locale&);=0A= =0A= template=0A= inline _CharT=0A= tolower(_CharT, const locale&);=0A= =0A= =0A= =0A= class ctype_base;=0A= template=0A= class ctype;=0A= template<> class ctype;=0A= =0A= template<> class ctype;=0A= =0A= template=0A= class ctype_byname;=0A= =0A= =0A= class codecvt_base;=0A= class __enc_traits;=0A= template=0A= class codecvt;=0A= template<> class codecvt;=0A= =0A= template<> class codecvt;=0A= =0A= template=0A= class codecvt_byname;=0A= =0A= =0A= template >=0A= class num_get;=0A= template >=0A= class num_put;=0A= template class numpunct;=0A= template class numpunct_byname;=0A= =0A= =0A= template=0A= class collate;=0A= template class=0A= collate_byname;=0A= =0A= =0A= class time_base;=0A= template >=0A= class time_get;=0A= template >=0A= class time_get_byname;=0A= template >=0A= class time_put;=0A= template >=0A= class time_put_byname;=0A= =0A= =0A= class money_base;=0A= template >=0A= class money_get;=0A= template >=0A= class money_put;=0A= template=0A= class moneypunct;=0A= template=0A= class moneypunct_byname;=0A= =0A= =0A= class messages_base;=0A= template=0A= class messages;=0A= template=0A= class messages_byname;=0A= =0A= =0A= class locale=0A= {=0A= public:=0A= =0A= typedef unsigned int category;=0A= =0A= =0A= class facet;=0A= class id;=0A= class _Impl;=0A= =0A= friend class facet;=0A= friend class _Impl;=0A= =0A= template=0A= friend const _Facet&=0A= use_facet(const locale&);=0A= =0A= template=0A= friend bool=0A= has_facet(const locale&) throw();=0A= =0A= =0A= =0A= static const category none =3D 0;=0A= static const category ctype =3D 1L << 0;=0A= static const category numeric =3D 1L << 1;=0A= static const category collate =3D 1L << 2;=0A= static const category time =3D 1L << 3;=0A= static const category monetary =3D 1L << 4;=0A= static const category messages =3D 1L << 5;=0A= static const category all =3D (collate | ctype | monetary |=0A= numeric | time | messages);=0A= =0A= =0A= locale() throw();=0A= =0A= locale(const locale& __other) throw();=0A= =0A= explicit=0A= locale(const char* __s);=0A= =0A= locale(const locale& __base, const char* __s, category __cat);=0A= =0A= locale(const locale& __base, const locale& __add, category __cat);=0A= =0A= template=0A= locale(const locale& __other, _Facet* __f);=0A= =0A= ~locale() throw();=0A= =0A= const locale&=0A= operator=3D(const locale& __other) throw();=0A= =0A= template=0A= locale=0A= combine(const locale& __other) const;=0A= =0A= =0A= string=0A= name() const;=0A= =0A= bool=0A= operator=3D=3D(const locale& __other) const throw ();=0A= =0A= inline bool=0A= operator!=3D(const locale& __other) const throw ()=0A= { return !(this->operator=3D=3D(__other)); }=0A= =0A= template=0A= bool=0A= operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,=0A= const basic_string<_Char, _Traits, _Alloc>& __s2) const;=0A= =0A= =0A= static locale=0A= global(const locale&);=0A= =0A= static const locale&=0A= classic();=0A= =0A= private:=0A= =0A= _Impl* _M_impl;=0A= =0A= =0A= static _Impl* _S_classic;=0A= =0A= =0A= static _Impl* _S_global;=0A= =0A= static const size_t _S_num_categories =3D 6;=0A= =0A= explicit=0A= locale(_Impl*) throw();=0A= =0A= static inline void=0A= _S_initialize()=0A= {=0A= if (!_S_classic)=0A= classic();=0A= }=0A= =0A= static category=0A= _S_normalize_category(category);=0A= =0A= void=0A= _M_coalesce(const locale& __base, const locale& __add, category = __cat);=0A= };=0A= =0A= =0A= =0A= class locale::_Impl=0A= {=0A= public:=0A= =0A= friend class locale;=0A= friend class locale::facet;=0A= =0A= template=0A= friend const _Facet&=0A= use_facet(const locale&);=0A= =0A= template=0A= friend bool=0A= has_facet(const locale&) throw();=0A= =0A= private:=0A= =0A= _Atomic_word _M_references;=0A= facet** _M_facets;=0A= size_t _M_facets_size;=0A= const char* _M_names[_S_num_categories];=0A= static const locale::id* const _S_id_ctype[];=0A= static const locale::id* const _S_id_numeric[];=0A= static const locale::id* const _S_id_collate[];=0A= static const locale::id* const _S_id_time[];=0A= static const locale::id* const _S_id_monetary[];=0A= static const locale::id* const _S_id_messages[];=0A= static const locale::id* const* const _S_facet_categories[];=0A= =0A= inline void=0A= _M_add_reference() throw()=0A= { __atomic_add(&_M_references, 1); }=0A= =0A= inline void=0A= _M_remove_reference() throw()=0A= {=0A= if (__exchange_and_add(&_M_references, -1) =3D=3D 1)=0A= {=0A= try=0A= { delete this; }=0A= catch(...)=0A= { }=0A= }=0A= }=0A= =0A= _Impl(const _Impl&, size_t);=0A= _Impl(const char*, size_t);=0A= _Impl(facet**, size_t, bool);=0A= =0A= ~_Impl() throw();=0A= =0A= _Impl(const _Impl&);=0A= =0A= void=0A= operator=3D(const _Impl&);=0A= =0A= inline bool=0A= _M_check_same_name()=0A= {=0A= bool __ret =3D true;=0A= for (size_t i =3D 0; __ret && i < _S_num_categories - 1; ++i)=0A= __ret &=3D (strcmp(_M_names[i], _M_names[i + 1]) =3D=3D 0);=0A= return __ret;=0A= }=0A= =0A= void=0A= _M_replace_categories(const _Impl*, category);=0A= =0A= void=0A= _M_replace_category(const _Impl*, const locale::id* const*);=0A= =0A= void=0A= _M_replace_facet(const _Impl*, const locale::id*);=0A= =0A= void=0A= _M_install_facet(const locale::id*, facet*);=0A= =0A= template=0A= inline void=0A= _M_init_facet(_Facet* __facet)=0A= { _M_install_facet(&_Facet::id, __facet); }=0A= };=0A= =0A= template=0A= locale::locale(const locale& __other, _Facet* __f)=0A= {=0A= _M_impl =3D new _Impl(*__other._M_impl, 1);=0A= _M_impl->_M_install_facet(&_Facet::id, __f);=0A= for (size_t __i =3D 0; __i < _S_num_categories; ++__i)=0A= _M_impl->_M_names[__i] =3D "*";=0A= }=0A= =0A= =0A= class locale::facet=0A= {=0A= private:=0A= friend class locale;=0A= friend class locale::_Impl;=0A= =0A= _Atomic_word _M_references;=0A= =0A= protected:=0A= =0A= =0A= static __c_locale _S_c_locale;=0A= =0A= explicit=0A= facet(size_t __refs =3D 0) throw();=0A= =0A= virtual=0A= ~facet();=0A= =0A= static void=0A= _S_create_c_locale(__c_locale& __cloc, const char* __s,=0A= __c_locale __old =3D 0);=0A= =0A= static __c_locale=0A= _S_clone_c_locale(__c_locale& __cloc);=0A= =0A= static void=0A= _S_destroy_c_locale(__c_locale& __cloc);=0A= =0A= private:=0A= void=0A= _M_add_reference() throw();=0A= =0A= void=0A= _M_remove_reference() throw();=0A= =0A= facet(const facet&);=0A= =0A= void=0A= operator=3D(const facet&);=0A= };=0A= =0A= =0A= =0A= class locale::id=0A= {=0A= private:=0A= friend class locale;=0A= friend class locale::_Impl;=0A= template=0A= friend const _Facet&=0A= use_facet(const locale&);=0A= template=0A= friend bool=0A= has_facet(const locale&) throw ();=0A= =0A= =0A= =0A= =0A= mutable size_t _M_index;=0A= =0A= =0A= static _Atomic_word _S_highwater;=0A= =0A= void=0A= operator=3D(const id&);=0A= =0A= id(const id&);=0A= =0A= public:=0A= =0A= =0A= id();=0A= =0A= inline size_t=0A= _M_id() const=0A= {=0A= if (!_M_index)=0A= _M_index =3D 1 + __exchange_and_add(&_S_highwater, 1);=0A= return _M_index - 1;=0A= }=0A= };=0A= =0A= template=0A= const _Facet&=0A= use_facet(const locale& __loc);=0A= =0A= template=0A= bool=0A= has_facet(const locale& __loc) throw();=0A= }=0A= # 49 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/ios_base.h" 1 3=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/bits/ios_base.h" 3=0A= =0A= =0A= =0A= namespace std=0A= {=0A= =0A= =0A= =0A= =0A= enum _Ios_Fmtflags { _M_ios_fmtflags_end =3D 1L << 16 };=0A= =0A= inline _Ios_Fmtflags=0A= operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b)=0A= { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); = }=0A= =0A= inline _Ios_Fmtflags=0A= operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b)=0A= { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); = }=0A= =0A= inline _Ios_Fmtflags=0A= operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b)=0A= { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); = }=0A= =0A= inline _Ios_Fmtflags=0A= operator|=3D(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)=0A= { return __a =3D __a | __b; }=0A= =0A= inline _Ios_Fmtflags=0A= operator&=3D(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)=0A= { return __a =3D __a & __b; }=0A= =0A= inline _Ios_Fmtflags=0A= operator^=3D(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)=0A= { return __a =3D __a ^ __b; }=0A= =0A= inline _Ios_Fmtflags=0A= operator~(_Ios_Fmtflags __a)=0A= { return _Ios_Fmtflags(~static_cast(__a)); }=0A= =0A= =0A= enum _Ios_Openmode { _M_ios_openmode_end =3D 1L << 16 };=0A= =0A= inline _Ios_Openmode=0A= operator&(_Ios_Openmode __a, _Ios_Openmode __b)=0A= { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); = }=0A= =0A= inline _Ios_Openmode=0A= operator|(_Ios_Openmode __a, _Ios_Openmode __b)=0A= { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); = }=0A= =0A= inline _Ios_Openmode=0A= operator^(_Ios_Openmode __a, _Ios_Openmode __b)=0A= { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); = }=0A= =0A= inline _Ios_Openmode=0A= operator|=3D(_Ios_Openmode& __a, _Ios_Openmode __b)=0A= { return __a =3D __a | __b; }=0A= =0A= inline _Ios_Openmode=0A= operator&=3D(_Ios_Openmode& __a, _Ios_Openmode __b)=0A= { return __a =3D __a & __b; }=0A= =0A= inline _Ios_Openmode=0A= operator^=3D(_Ios_Openmode& __a, _Ios_Openmode __b)=0A= { return __a =3D __a ^ __b; }=0A= =0A= inline _Ios_Openmode=0A= operator~(_Ios_Openmode __a)=0A= { return _Ios_Openmode(~static_cast(__a)); }=0A= =0A= =0A= enum _Ios_Iostate { _M_ios_iostate_end =3D 1L << 16 };=0A= =0A= inline _Ios_Iostate=0A= operator&(_Ios_Iostate __a, _Ios_Iostate __b)=0A= { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); }=0A= =0A= inline _Ios_Iostate=0A= operator|(_Ios_Iostate __a, _Ios_Iostate __b)=0A= { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); }=0A= =0A= inline _Ios_Iostate=0A= operator^(_Ios_Iostate __a, _Ios_Iostate __b)=0A= { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); }=0A= =0A= inline _Ios_Iostate=0A= operator|=3D(_Ios_Iostate& __a, _Ios_Iostate __b)=0A= { return __a =3D __a | __b; }=0A= =0A= inline _Ios_Iostate=0A= operator&=3D(_Ios_Iostate& __a, _Ios_Iostate __b)=0A= { return __a =3D __a & __b; }=0A= =0A= inline _Ios_Iostate=0A= operator^=3D(_Ios_Iostate& __a, _Ios_Iostate __b)=0A= { return __a =3D __a ^ __b; }=0A= =0A= inline _Ios_Iostate=0A= operator~(_Ios_Iostate __a)=0A= { return _Ios_Iostate(~static_cast(__a)); }=0A= =0A= enum _Ios_Seekdir { _M_ios_seekdir_end =3D 1L << 16 };=0A= =0A= =0A= class ios_base=0A= {=0A= public:=0A= =0A= =0A= class failure : public exception=0A= {=0A= public:=0A= =0A= =0A= explicit=0A= failure(const string& __str) throw();=0A= =0A= =0A= =0A= virtual=0A= ~failure() throw();=0A= =0A= virtual const char*=0A= what() const throw();=0A= =0A= private:=0A= enum { _M_bufsize =3D 256 };=0A= char _M_name[_M_bufsize];=0A= =0A= };=0A= =0A= =0A= typedef _Ios_Fmtflags fmtflags;=0A= =0A= static const fmtflags boolalpha =3D = fmtflags(__ios_flags::_S_boolalpha);=0A= static const fmtflags dec =3D fmtflags(__ios_flags::_S_dec);=0A= static const fmtflags fixed =3D fmtflags(__ios_flags::_S_fixed);=0A= static const fmtflags hex =3D fmtflags(__ios_flags::_S_hex);=0A= static const fmtflags internal =3D = fmtflags(__ios_flags::_S_internal);=0A= static const fmtflags left =3D fmtflags(__ios_flags::_S_left);=0A= static const fmtflags oct =3D fmtflags(__ios_flags::_S_oct);=0A= static const fmtflags right =3D fmtflags(__ios_flags::_S_right);=0A= static const fmtflags scientific =3D = fmtflags(__ios_flags::_S_scientific);=0A= static const fmtflags showbase =3D = fmtflags(__ios_flags::_S_showbase);=0A= static const fmtflags showpoint =3D = fmtflags(__ios_flags::_S_showpoint);=0A= static const fmtflags showpos =3D fmtflags(__ios_flags::_S_showpos);=0A= static const fmtflags skipws =3D fmtflags(__ios_flags::_S_skipws);=0A= static const fmtflags unitbuf =3D fmtflags(__ios_flags::_S_unitbuf);=0A= static const fmtflags uppercase =3D = fmtflags(__ios_flags::_S_uppercase);=0A= static const fmtflags adjustfield =3D = fmtflags(__ios_flags::_S_adjustfield);=0A= static const fmtflags basefield =3D = fmtflags(__ios_flags::_S_basefield);=0A= static const fmtflags floatfield =3D = fmtflags(__ios_flags::_S_floatfield);=0A= =0A= =0A= typedef _Ios_Iostate iostate;=0A= static const iostate badbit =3D iostate(__ios_flags::_S_badbit);=0A= static const iostate eofbit =3D iostate(__ios_flags::_S_eofbit);=0A= static const iostate failbit =3D iostate(__ios_flags::_S_failbit);=0A= static const iostate goodbit =3D iostate(0);=0A= =0A= =0A= typedef _Ios_Openmode openmode;=0A= static const openmode app =3D openmode(__ios_flags::_S_app);=0A= static const openmode ate =3D openmode(__ios_flags::_S_ate);=0A= static const openmode binary =3D openmode(__ios_flags::_S_bin);=0A= static const openmode in =3D openmode(__ios_flags::_S_in);=0A= static const openmode out =3D openmode(__ios_flags::_S_out);=0A= static const openmode trunc =3D openmode(__ios_flags::_S_trunc);=0A= =0A= =0A= typedef _Ios_Seekdir seekdir;=0A= static const seekdir beg =3D seekdir(0);=0A= static const seekdir cur =3D seekdir(1);=0A= static const seekdir end =3D seekdir(2);=0A= # 226 "/usr/local/gcc3.1/include/g++-v3/bits/ios_base.h" 3=0A= enum event=0A= {=0A= erase_event,=0A= imbue_event,=0A= copyfmt_event=0A= };=0A= =0A= typedef void (*event_callback) (event, ios_base&, int);=0A= =0A= void=0A= register_callback(event_callback __fn, int __index);=0A= =0A= protected:=0A= =0A= streamsize _M_precision;=0A= streamsize _M_width;=0A= fmtflags _M_flags;=0A= iostate _M_exception;=0A= iostate _M_streambuf_state;=0A= =0A= =0A= =0A= struct _Callback_list=0A= {=0A= =0A= _Callback_list* _M_next;=0A= ios_base::event_callback _M_fn;=0A= int _M_index;=0A= _Atomic_word _M_refcount;=0A= =0A= _Callback_list(ios_base::event_callback __fn, int __index,=0A= _Callback_list* __cb)=0A= : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { }=0A= =0A= void=0A= _M_add_reference() { __atomic_add(&_M_refcount, 1); }=0A= =0A= =0A= int=0A= _M_remove_reference() { return __exchange_and_add(&_M_refcount, = -1); }=0A= };=0A= =0A= _Callback_list* _M_callbacks;=0A= =0A= void=0A= _M_call_callbacks(event __ev) throw();=0A= =0A= void=0A= _M_dispose_callbacks(void);=0A= =0A= =0A= struct _Words=0A= {=0A= void* _M_pword;=0A= long _M_iword;=0A= _Words() : _M_pword(0), _M_iword(0) { }=0A= };=0A= =0A= =0A= _Words _M_word_zero;=0A= =0A= =0A= static const int _S_local_word_size =3D 8;=0A= _Words _M_local_word[_S_local_word_size];=0A= =0A= =0A= int _M_word_size;=0A= _Words* _M_word;=0A= =0A= _Words&=0A= _M_grow_words(int __index);=0A= =0A= =0A= locale _M_ios_locale;=0A= =0A= void=0A= _M_init();=0A= =0A= public:=0A= =0A= =0A= =0A= =0A= =0A= class Init=0A= {=0A= friend class ios_base;=0A= public:=0A= Init();=0A= ~Init();=0A= =0A= static void=0A= _S_ios_create(bool __sync);=0A= =0A= static void=0A= _S_ios_destroy();=0A= =0A= private:=0A= static int _S_ios_base_init;=0A= static bool _S_synced_with_stdio;=0A= };=0A= =0A= =0A= inline fmtflags=0A= flags() const { return _M_flags; }=0A= =0A= inline fmtflags=0A= flags(fmtflags __fmtfl)=0A= {=0A= fmtflags __old =3D _M_flags;=0A= _M_flags =3D __fmtfl;=0A= return __old;=0A= }=0A= =0A= inline fmtflags=0A= setf(fmtflags __fmtfl)=0A= {=0A= fmtflags __old =3D _M_flags;=0A= _M_flags |=3D __fmtfl;=0A= return __old;=0A= }=0A= =0A= inline fmtflags=0A= setf(fmtflags __fmtfl, fmtflags __mask)=0A= {=0A= fmtflags __old =3D _M_flags;=0A= _M_flags &=3D ~__mask;=0A= _M_flags |=3D (__fmtfl & __mask);=0A= return __old;=0A= }=0A= =0A= inline void=0A= unsetf(fmtflags __mask) { _M_flags &=3D ~__mask; }=0A= =0A= inline streamsize=0A= precision() const { return _M_precision; }=0A= =0A= inline streamsize=0A= precision(streamsize __prec)=0A= {=0A= streamsize __old =3D _M_precision;=0A= _M_precision =3D __prec;=0A= return __old;=0A= }=0A= =0A= inline streamsize=0A= width() const { return _M_width; }=0A= =0A= inline streamsize=0A= width(streamsize __wide)=0A= {=0A= streamsize __old =3D _M_width;=0A= _M_width =3D __wide;=0A= return __old;=0A= }=0A= =0A= static bool=0A= sync_with_stdio(bool __sync =3D true);=0A= =0A= =0A= locale=0A= imbue(const locale& __loc);=0A= =0A= inline locale=0A= getloc() const { return _M_ios_locale; }=0A= =0A= =0A= static int=0A= xalloc() throw();=0A= =0A= inline long&=0A= iword(int __ix)=0A= {=0A= _Words& __word =3D (__ix < _M_word_size)=0A= ? _M_word[__ix] : _M_grow_words(__ix);=0A= return __word._M_iword;=0A= }=0A= =0A= inline void*&=0A= pword(int __ix)=0A= {=0A= _Words& __word =3D (__ix < _M_word_size)=0A= ? _M_word[__ix] : _M_grow_words(__ix);=0A= return __word._M_pword;=0A= }=0A= =0A= =0A= ~ios_base();=0A= =0A= protected:=0A= ios_base();=0A= =0A= =0A= =0A= private:=0A= ios_base(const ios_base&);=0A= =0A= ios_base&=0A= operator=3D(const ios_base&);=0A= =0A= };=0A= =0A= =0A= inline ios_base&=0A= boolalpha(ios_base& __base)=0A= {=0A= __base.setf(ios_base::boolalpha);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= noboolalpha(ios_base& __base)=0A= {=0A= __base.unsetf(ios_base::boolalpha);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= showbase(ios_base& __base)=0A= {=0A= __base.setf(ios_base::showbase);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= noshowbase(ios_base& __base)=0A= {=0A= __base.unsetf(ios_base::showbase);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= showpoint(ios_base& __base)=0A= {=0A= __base.setf(ios_base::showpoint);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= noshowpoint(ios_base& __base)=0A= {=0A= __base.unsetf(ios_base::showpoint);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= showpos(ios_base& __base)=0A= {=0A= __base.setf(ios_base::showpos);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= noshowpos(ios_base& __base)=0A= {=0A= __base.unsetf(ios_base::showpos);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= skipws(ios_base& __base)=0A= {=0A= __base.setf(ios_base::skipws);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= noskipws(ios_base& __base)=0A= {=0A= __base.unsetf(ios_base::skipws);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= uppercase(ios_base& __base)=0A= {=0A= __base.setf(ios_base::uppercase);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= nouppercase(ios_base& __base)=0A= {=0A= __base.unsetf(ios_base::uppercase);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= unitbuf(ios_base& __base)=0A= {=0A= __base.setf(ios_base::unitbuf);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= nounitbuf(ios_base& __base)=0A= {=0A= __base.unsetf(ios_base::unitbuf);=0A= return __base;=0A= }=0A= =0A= =0A= inline ios_base&=0A= internal(ios_base& __base)=0A= {=0A= __base.setf(ios_base::internal, ios_base::adjustfield);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= left(ios_base& __base)=0A= {=0A= __base.setf(ios_base::left, ios_base::adjustfield);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= right(ios_base& __base)=0A= {=0A= __base.setf(ios_base::right, ios_base::adjustfield);=0A= return __base;=0A= }=0A= =0A= =0A= inline ios_base&=0A= dec(ios_base& __base)=0A= {=0A= __base.setf(ios_base::dec, ios_base::basefield);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= hex(ios_base& __base)=0A= {=0A= __base.setf(ios_base::hex, ios_base::basefield);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= oct(ios_base& __base)=0A= {=0A= __base.setf(ios_base::oct, ios_base::basefield);=0A= return __base;=0A= }=0A= =0A= =0A= inline ios_base&=0A= fixed(ios_base& __base)=0A= {=0A= __base.setf(ios_base::fixed, ios_base::floatfield);=0A= return __base;=0A= }=0A= =0A= inline ios_base&=0A= scientific(ios_base& __base)=0A= {=0A= __base.setf(ios_base::scientific, ios_base::floatfield);=0A= return __base;=0A= }=0A= =0A= }=0A= # 50 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/streambuf" 1 3=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/streambuf" 3=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= namespace std=0A= {=0A= template=0A= streamsize=0A= __copy_streambufs(basic_ios<_CharT, _Traits>& _ios,=0A= basic_streambuf<_CharT, _Traits>* __sbin,=0A= basic_streambuf<_CharT, _Traits>* __sbout);=0A= =0A= =0A= template=0A= class basic_streambuf=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _Traits traits_type;=0A= typedef typename traits_type::int_type int_type;=0A= typedef typename traits_type::pos_type pos_type;=0A= typedef typename traits_type::off_type off_type;=0A= =0A= =0A= typedef ctype __ctype_type;=0A= typedef basic_streambuf __streambuf_type;=0A= =0A= friend class basic_ios;=0A= friend class basic_istream;=0A= friend class basic_ostream;=0A= friend class istreambuf_iterator;=0A= friend class ostreambuf_iterator;=0A= =0A= friend streamsize=0A= __copy_streambufs<>(basic_ios& __ios,=0A= __streambuf_type* __sbin,__streambuf_type* = __sbout);=0A= =0A= protected:=0A= =0A= =0A= =0A= =0A= =0A= char_type* _M_buf;=0A= =0A= =0A= int_type _M_buf_size;=0A= =0A= =0A= int_type _M_buf_size_opt;=0A= =0A= =0A= =0A= bool _M_buf_unified;=0A= =0A= =0A= =0A= =0A= =0A= =0A= char_type* _M_in_beg;=0A= char_type* _M_in_cur;=0A= char_type* _M_in_end;=0A= char_type* _M_out_beg;=0A= char_type* _M_out_cur;=0A= char_type* _M_out_end;=0A= =0A= =0A= ios_base::openmode _M_mode;=0A= =0A= =0A= locale _M_buf_locale;=0A= =0A= =0A= bool _M_buf_locale_init;=0A= =0A= =0A= =0A= =0A= =0A= =0A= static const int_type _S_pback_size =3D 1;=0A= char_type _M_pback[_S_pback_size];=0A= char_type* _M_pback_cur_save;=0A= char_type* _M_pback_end_save;=0A= bool _M_pback_init;=0A= =0A= =0A= =0A= =0A= void=0A= _M_pback_create()=0A= {=0A= if (!_M_pback_init)=0A= {=0A= int_type __dist =3D _M_in_end - _M_in_cur;=0A= int_type __len =3D min(_S_pback_size, __dist);=0A= traits_type::copy(_M_pback, _M_in_cur, __len);=0A= _M_pback_cur_save =3D _M_in_cur;=0A= _M_pback_end_save =3D _M_in_end;=0A= this->setg(_M_pback, _M_pback, _M_pback + __len);=0A= _M_pback_init =3D true;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= void=0A= _M_pback_destroy()=0A= {=0A= if (_M_pback_init)=0A= {=0A= =0A= int_type __off_cur =3D _M_in_cur - _M_pback;=0A= =0A= =0A= int_type __off_end =3D 0;=0A= int_type __pback_len =3D _M_in_end - _M_pback;=0A= int_type __save_len =3D _M_pback_end_save - _M_buf;=0A= if (__pback_len > __save_len)=0A= __off_end =3D __pback_len - __save_len;=0A= =0A= this->setg(_M_buf, _M_pback_cur_save + __off_cur,=0A= _M_pback_end_save + __off_end);=0A= _M_pback_cur_save =3D __null;=0A= _M_pback_end_save =3D __null;=0A= _M_pback_init =3D false;=0A= }=0A= }=0A= =0A= =0A= =0A= void=0A= _M_in_cur_move(off_type __n)=0A= {=0A= bool __testout =3D _M_out_cur;=0A= _M_in_cur +=3D __n;=0A= if (__testout && _M_buf_unified)=0A= _M_out_cur +=3D __n;=0A= }=0A= # 198 "/usr/local/gcc3.1/include/g++-v3/streambuf" 3=0A= void=0A= _M_out_cur_move(off_type __n)=0A= {=0A= bool __testin =3D _M_in_cur;=0A= =0A= _M_out_cur +=3D __n;=0A= if (__testin && _M_buf_unified)=0A= _M_in_cur +=3D __n;=0A= if (_M_out_cur > _M_out_end)=0A= {=0A= _M_out_end =3D _M_out_cur;=0A= =0A= if (__testin)=0A= _M_in_end +=3D __n;=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= off_type=0A= _M_out_buf_size()=0A= {=0A= off_type __ret =3D 0;=0A= if (_M_out_cur)=0A= {=0A= =0A= if (_M_out_beg =3D=3D _M_buf)=0A= __ret =3D _M_out_beg + _M_buf_size - _M_out_cur;=0A= =0A= else=0A= __ret =3D _M_out_end - _M_out_cur;=0A= }=0A= return __ret;=0A= }=0A= =0A= public:=0A= virtual=0A= ~basic_streambuf()=0A= {=0A= _M_buf_unified =3D false;=0A= _M_buf_size =3D 0;=0A= _M_buf_size_opt =3D 0;=0A= _M_mode =3D ios_base::openmode(0);=0A= _M_buf_locale_init =3D false;=0A= }=0A= =0A= =0A= locale=0A= pubimbue(const locale &__loc)=0A= {=0A= locale __tmp(this->getloc());=0A= this->imbue(__loc);=0A= return __tmp;=0A= }=0A= =0A= locale=0A= getloc() const=0A= {=0A= if (_M_buf_locale_init)=0A= return _M_buf_locale;=0A= else=0A= return locale();=0A= }=0A= =0A= =0A= __streambuf_type*=0A= pubsetbuf(char_type* __s, streamsize __n)=0A= { return this->setbuf(__s, __n); }=0A= =0A= pos_type=0A= pubseekoff(off_type __off, ios_base::seekdir __way,=0A= ios_base::openmode __mode =3D ios_base::in | = ios_base::out)=0A= { return this->seekoff(__off, __way, __mode); }=0A= =0A= pos_type=0A= pubseekpos(pos_type __sp,=0A= ios_base::openmode __mode =3D ios_base::in | = ios_base::out)=0A= { return this->seekpos(__sp, __mode); }=0A= =0A= int=0A= pubsync() { return this->sync(); }=0A= =0A= =0A= =0A= streamsize=0A= in_avail()=0A= {=0A= streamsize __ret;=0A= if (_M_in_cur && _M_in_cur < _M_in_end)=0A= {=0A= if (_M_pback_init)=0A= {=0A= int_type __save_len =3D _M_pback_end_save - = _M_pback_cur_save;=0A= int_type __pback_len =3D _M_in_cur - _M_pback;=0A= __ret =3D __save_len - __pback_len;=0A= }=0A= else=0A= __ret =3D this->egptr() - this->gptr();=0A= }=0A= else=0A= __ret =3D this->showmanyc();=0A= return __ret;=0A= }=0A= =0A= int_type=0A= snextc()=0A= {=0A= int_type __eof =3D traits_type::eof();=0A= return (this->sbumpc() =3D=3D __eof ? __eof : this->sgetc());=0A= }=0A= =0A= int_type=0A= sbumpc();=0A= =0A= int_type=0A= sgetc()=0A= {=0A= int_type __ret;=0A= if (_M_in_cur && _M_in_cur < _M_in_end)=0A= __ret =3D traits_type::to_int_type(*(this->gptr()));=0A= else=0A= __ret =3D this->underflow();=0A= return __ret;=0A= }=0A= =0A= streamsize=0A= sgetn(char_type* __s, streamsize __n)=0A= { return this->xsgetn(__s, __n); }=0A= =0A= =0A= int_type=0A= sputbackc(char_type __c);=0A= =0A= int_type=0A= sungetc();=0A= =0A= =0A= int_type=0A= sputc(char_type __c);=0A= =0A= streamsize=0A= sputn(const char_type* __s, streamsize __n)=0A= { return this->xsputn(__s, __n); }=0A= =0A= protected:=0A= basic_streambuf()=0A= : _M_buf(__null), _M_buf_size(0),=0A= _M_buf_size_opt(static_cast(8192)), = _M_buf_unified(false),=0A= _M_in_beg(0), _M_in_cur(0), _M_in_end(0), _M_out_beg(0), = _M_out_cur(0),=0A= _M_out_end(0), _M_mode(ios_base::openmode(0)), = _M_buf_locale(locale()),=0A= _M_buf_locale_init(false), _M_pback_cur_save(0), = _M_pback_end_save(0),=0A= _M_pback_init(false)=0A= { }=0A= =0A= =0A= char_type*=0A= eback() const { return _M_in_beg; }=0A= =0A= char_type*=0A= gptr() const { return _M_in_cur; }=0A= =0A= char_type*=0A= egptr() const { return _M_in_end; }=0A= =0A= void=0A= gbump(int __n) { _M_in_cur +=3D __n; }=0A= =0A= void=0A= setg(char_type* __gbeg, char_type* __gnext, char_type* __gend)=0A= {=0A= _M_in_beg =3D __gbeg;=0A= _M_in_cur =3D __gnext;=0A= _M_in_end =3D __gend;=0A= if (!(_M_mode & ios_base::in) && __gbeg && __gnext && __gend)=0A= _M_mode =3D _M_mode | ios_base::in;=0A= }=0A= =0A= =0A= char_type*=0A= pbase() const { return _M_out_beg; }=0A= =0A= char_type*=0A= pptr() const { return _M_out_cur; }=0A= =0A= char_type*=0A= epptr() const { return _M_out_end; }=0A= =0A= void=0A= pbump(int __n) { _M_out_cur +=3D __n; }=0A= =0A= void=0A= setp(char_type* __pbeg, char_type* __pend)=0A= {=0A= _M_out_beg =3D _M_out_cur =3D __pbeg;=0A= _M_out_end =3D __pend;=0A= if (!(_M_mode & ios_base::out) && __pbeg && __pend)=0A= _M_mode =3D _M_mode | ios_base::out;=0A= }=0A= =0A= =0A= =0A= virtual void=0A= imbue(const locale& __loc)=0A= {=0A= _M_buf_locale_init =3D true;=0A= if (_M_buf_locale !=3D __loc)=0A= _M_buf_locale =3D __loc;=0A= }=0A= =0A= =0A= virtual basic_streambuf*=0A= setbuf(char_type*, streamsize)=0A= { return this; }=0A= =0A= virtual pos_type=0A= seekoff(off_type, ios_base::seekdir,=0A= ios_base::openmode =3D ios_base::in | ios_base::out)=0A= { return pos_type(off_type(-1)); }=0A= =0A= virtual pos_type=0A= seekpos(pos_type,=0A= ios_base::openmode =3D ios_base::in | ios_base::out)=0A= { return pos_type(off_type(-1)); }=0A= =0A= virtual int=0A= sync() { return 0; }=0A= =0A= =0A= virtual streamsize=0A= showmanyc() { return 0; }=0A= =0A= virtual streamsize=0A= xsgetn(char_type* __s, streamsize __n);=0A= =0A= virtual int_type=0A= underflow()=0A= { return traits_type::eof(); }=0A= =0A= virtual int_type=0A= uflow()=0A= {=0A= int_type __ret =3D traits_type::eof();=0A= bool __testeof =3D this->underflow() =3D=3D __ret;=0A= bool __testpending =3D _M_in_cur && _M_in_cur < _M_in_end;=0A= if (!__testeof && __testpending)=0A= {=0A= __ret =3D traits_type::to_int_type(*_M_in_cur);=0A= ++_M_in_cur;=0A= if (_M_buf_unified && _M_mode & ios_base::out)=0A= ++_M_out_cur;=0A= }=0A= return __ret;=0A= }=0A= =0A= =0A= virtual int_type=0A= pbackfail(int_type =3D traits_type::eof())=0A= { return traits_type::eof(); }=0A= =0A= =0A= virtual streamsize=0A= xsputn(const char_type* __s, streamsize __n);=0A= =0A= virtual int_type=0A= overflow(int_type =3D traits_type::eof())=0A= { return traits_type::eof(); }=0A= # 480 "/usr/local/gcc3.1/include/g++-v3/streambuf" 3=0A= private:=0A= basic_streambuf(const __streambuf_type&) { };=0A= =0A= __streambuf_type&=0A= operator=3D(const __streambuf_type&) { return *this; };=0A= =0A= };=0A= }=0A= =0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/streambuf.tcc" 1 3=0A= # 39 "/usr/local/gcc3.1/include/g++-v3/bits/streambuf.tcc" 3=0A= =0A= namespace std=0A= {=0A= template=0A= const typename basic_streambuf<_CharT, _Traits>::int_type=0A= basic_streambuf<_CharT, _Traits>::_S_pback_size;=0A= =0A= template=0A= typename basic_streambuf<_CharT, _Traits>::int_type=0A= basic_streambuf<_CharT, _Traits>::=0A= sbumpc()=0A= {=0A= int_type __ret;=0A= if (_M_in_cur && _M_in_cur < _M_in_end)=0A= {=0A= char_type __c =3D *(this->gptr());=0A= _M_in_cur_move(1);=0A= __ret =3D traits_type::to_int_type(__c);=0A= }=0A= else=0A= __ret =3D this->uflow();=0A= return __ret;=0A= }=0A= =0A= template=0A= typename basic_streambuf<_CharT, _Traits>::int_type=0A= basic_streambuf<_CharT, _Traits>::=0A= sputbackc(char_type __c)=0A= {=0A= int_type __ret;=0A= bool __testpos =3D _M_in_cur && _M_in_beg < _M_in_cur;=0A= bool __testne =3D _M_in_cur && !traits_type::eq(__c, = this->gptr()[-1]);=0A= if (!__testpos || __testne)=0A= __ret =3D pbackfail(traits_type::to_int_type(__c));=0A= else=0A= {=0A= _M_in_cur_move(-1);=0A= __ret =3D traits_type::to_int_type(*this->gptr());=0A= }=0A= return __ret;=0A= }=0A= =0A= template=0A= typename basic_streambuf<_CharT, _Traits>::int_type=0A= basic_streambuf<_CharT, _Traits>::=0A= sungetc()=0A= {=0A= int_type __ret;=0A= if (_M_in_cur && _M_in_beg < _M_in_cur)=0A= {=0A= _M_in_cur_move(-1);=0A= __ret =3D traits_type::to_int_type(*_M_in_cur);=0A= }=0A= else=0A= __ret =3D this->pbackfail();=0A= return __ret;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= typename basic_streambuf<_CharT, _Traits>::int_type=0A= basic_streambuf<_CharT, _Traits>::=0A= sputc(char_type __c)=0A= {=0A= int_type __ret;=0A= if (_M_out_buf_size())=0A= {=0A= *_M_out_cur =3D __c;=0A= _M_out_cur_move(1);=0A= __ret =3D traits_type::to_int_type(__c);=0A= }=0A= else=0A= __ret =3D this->overflow(traits_type::to_int_type(__c));=0A= return __ret;=0A= }=0A= =0A= template=0A= streamsize=0A= basic_streambuf<_CharT, _Traits>::=0A= xsgetn(char_type* __s, streamsize __n)=0A= {=0A= streamsize __ret =3D 0;=0A= while (__ret < __n)=0A= {=0A= size_t __buf_len =3D _M_in_end - _M_in_cur;=0A= if (__buf_len > 0)=0A= {=0A= size_t __remaining =3D __n - __ret;=0A= size_t __len =3D min(__buf_len, __remaining);=0A= traits_type::copy(__s, _M_in_cur, __len);=0A= __ret +=3D __len;=0A= __s +=3D __len;=0A= _M_in_cur_move(__len);=0A= }=0A= =0A= if (__ret < __n)=0A= {=0A= int_type __c =3D this->uflow();=0A= if (__c !=3D traits_type::eof())=0A= {=0A= traits_type::assign(*__s++, = traits_type::to_char_type(__c));=0A= ++__ret;=0A= }=0A= else=0A= break;=0A= }=0A= }=0A= return __ret;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= streamsize=0A= basic_streambuf<_CharT, _Traits>::=0A= xsputn(const char_type* __s, streamsize __n)=0A= {=0A= streamsize __ret =3D 0;=0A= while (__ret < __n)=0A= {=0A= off_type __buf_len =3D _M_out_buf_size();=0A= if (__buf_len > 0)=0A= {=0A= off_type __remaining =3D __n - __ret;=0A= off_type __len =3D min(__buf_len, __remaining);=0A= traits_type::copy(_M_out_cur, __s, __len);=0A= __ret +=3D __len;=0A= __s +=3D __len;=0A= _M_out_cur_move(__len);=0A= }=0A= =0A= if (__ret < __n)=0A= {=0A= int_type __c =3D = this->overflow(traits_type::to_int_type(*__s));=0A= if (__c !=3D traits_type::eof())=0A= {=0A= ++__ret;=0A= ++__s;=0A= }=0A= else=0A= break;=0A= }=0A= }=0A= return __ret;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template=0A= streamsize=0A= __copy_streambufs(basic_ios<_CharT, _Traits>& __ios,=0A= basic_streambuf<_CharT, _Traits>* __sbin,=0A= basic_streambuf<_CharT, _Traits>* __sbout)=0A= {=0A= typedef typename _Traits::int_type int_type;=0A= =0A= streamsize __ret =3D 0;=0A= streamsize __bufsize =3D __sbin->in_avail();=0A= streamsize __xtrct;=0A= bool __testput =3D __sbout->_M_mode & ios_base::out;=0A= try=0A= {=0A= while (__testput && __bufsize !=3D -1)=0A= {=0A= __xtrct =3D __sbout->sputn(__sbin->gptr(), __bufsize);=0A= __ret +=3D __xtrct;=0A= __sbin->_M_in_cur_move(__xtrct);=0A= if (__xtrct =3D=3D __bufsize)=0A= {=0A= if (__sbin->sgetc() =3D=3D _Traits::eof())=0A= break;=0A= __bufsize =3D __sbin->in_avail();=0A= }=0A= else=0A= break;=0A= }=0A= }=0A= catch(exception& __fail)=0A= {=0A= __ios.setstate(ios_base::failbit);=0A= if ((__ios.exceptions() & ios_base::failbit) !=3D 0)=0A= throw;=0A= }=0A= return __ret;=0A= }=0A= =0A= =0A= =0A= =0A= extern template class basic_streambuf;=0A= extern template=0A= streamsize=0A= __copy_streambufs(basic_ios&, basic_streambuf*,=0A= basic_streambuf*);=0A= =0A= extern template class basic_streambuf;=0A= extern template=0A= streamsize=0A= __copy_streambufs(basic_ios&, basic_streambuf*,=0A= basic_streambuf*);=0A= }=0A= # 494 "/usr/local/gcc3.1/include/g++-v3/streambuf" 2 3=0A= # 51 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 1 3=0A= # 39 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/streambuf_iterator.h" 1 3=0A= # 42 "/usr/local/gcc3.1/include/g++-v3/bits/streambuf_iterator.h" 3=0A= =0A= namespace std=0A= {=0A= =0A= template=0A= class istreambuf_iterator=0A= : public iterator=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _Traits traits_type;=0A= typedef typename _Traits::int_type int_type;=0A= typedef basic_streambuf<_CharT, _Traits> streambuf_type;=0A= typedef basic_istream<_CharT, _Traits> istream_type;=0A= =0A= private:=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= mutable streambuf_type* _M_sbuf;=0A= int_type _M_c;=0A= =0A= public:=0A= istreambuf_iterator() throw()=0A= : _M_sbuf(0), _M_c(-2) { }=0A= =0A= istreambuf_iterator(istream_type& __s) throw()=0A= : _M_sbuf(__s.rdbuf()), _M_c(-2) { }=0A= =0A= istreambuf_iterator(streambuf_type* __s) throw()=0A= : _M_sbuf(__s), _M_c(-2) { }=0A= =0A= =0A= char_type=0A= operator*() const=0A= { return traits_type::to_char_type(_M_get()); }=0A= =0A= istreambuf_iterator&=0A= operator++()=0A= {=0A= if (_M_sbuf && _M_sbuf->sbumpc() =3D=3D traits_type::eof())=0A= _M_sbuf =3D 0;=0A= else=0A= _M_c =3D -2;=0A= return *this;=0A= }=0A= =0A= istreambuf_iterator=0A= operator++(int)=0A= {=0A= istreambuf_iterator __old =3D *this;=0A= if (_M_sbuf && (__old._M_c =3D _M_sbuf->sbumpc()) =3D=3D = traits_type::eof())=0A= _M_sbuf =3D 0;=0A= else=0A= _M_c =3D -2;=0A= return __old;=0A= }=0A= =0A= =0A= =0A= =0A= bool=0A= equal(const istreambuf_iterator& __b) const=0A= {=0A= const int_type __eof =3D traits_type::eof();=0A= bool __thiseof =3D _M_get() =3D=3D __eof;=0A= bool __beof =3D __b._M_get() =3D=3D __eof;=0A= return (__thiseof && __beof || (!__thiseof && !__beof));=0A= }=0A= =0A= =0A= private:=0A= int_type=0A= _M_get() const=0A= {=0A= int_type __ret =3D traits_type::eof();=0A= if (_M_sbuf)=0A= {=0A= if (_M_c !=3D static_cast(-2))=0A= __ret =3D _M_c;=0A= else=0A= if ((__ret =3D _M_sbuf->sgetc()) =3D=3D traits_type::eof())=0A= _M_sbuf =3D 0;=0A= }=0A= return __ret;=0A= }=0A= };=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const istreambuf_iterator<_CharT, _Traits>& __a,=0A= const istreambuf_iterator<_CharT, _Traits>& __b)=0A= { return __a.equal(__b); }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const istreambuf_iterator<_CharT, _Traits>& __a,=0A= const istreambuf_iterator<_CharT, _Traits>& __b)=0A= { return !__a.equal(__b); }=0A= =0A= template=0A= class ostreambuf_iterator=0A= : public iterator=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _Traits traits_type;=0A= typedef basic_streambuf<_CharT, _Traits> streambuf_type;=0A= typedef basic_ostream<_CharT, _Traits> ostream_type;=0A= =0A= private:=0A= streambuf_type* _M_sbuf;=0A= bool _M_failed;=0A= =0A= public:=0A= inline=0A= ostreambuf_iterator(ostream_type& __s) throw ()=0A= : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }=0A= =0A= ostreambuf_iterator(streambuf_type* __s) throw ()=0A= : _M_sbuf(__s), _M_failed(!_M_sbuf) { }=0A= =0A= ostreambuf_iterator&=0A= operator=3D(_CharT __c);=0A= =0A= ostreambuf_iterator&=0A= operator*() throw()=0A= { return *this; }=0A= =0A= ostreambuf_iterator&=0A= operator++(int) throw()=0A= { return *this; }=0A= =0A= ostreambuf_iterator&=0A= operator++() throw()=0A= { return *this; }=0A= =0A= bool=0A= failed() const throw()=0A= { return _M_failed; }=0A= };=0A= =0A= template=0A= inline ostreambuf_iterator<_CharT, _Traits>&=0A= ostreambuf_iterator<_CharT, _Traits>::operator=3D(_CharT __c)=0A= {=0A= if (!_M_failed &&=0A= _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))=0A= _M_failed =3D true;=0A= return *this;=0A= }=0A= }=0A= # 41 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 1 3=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 3=0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cwctype" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/cwctype" 3=0A= =0A= =0A= =0A= =0A= # 1 "/usr/include/wctype.h" 1 3=0A= # 35 "/usr/include/wctype.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 36 "/usr/include/wctype.h" 2 3=0A= # 61 "/usr/include/wctype.h" 3=0A= typedef unsigned long int wctype_t;=0A= # 79 "/usr/include/wctype.h" 3=0A= enum=0A= {=0A= __ISwupper =3D 0,=0A= __ISwlower =3D 1,=0A= __ISwalpha =3D 2,=0A= __ISwdigit =3D 3,=0A= __ISwxdigit =3D 4,=0A= __ISwspace =3D 5,=0A= __ISwprint =3D 6,=0A= __ISwgraph =3D 7,=0A= __ISwblank =3D 8,=0A= __ISwcntrl =3D 9,=0A= __ISwpunct =3D 10,=0A= __ISwalnum =3D 11,=0A= =0A= _ISwupper =3D ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) = : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : = ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << = (__ISwupper)) >> 24)))),=0A= _ISwlower =3D ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) = : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : = ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << = (__ISwlower)) >> 24)))),=0A= _ISwalpha =3D ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) = : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : = ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << = (__ISwalpha)) >> 24)))),=0A= _ISwdigit =3D ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) = : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : = ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << = (__ISwdigit)) >> 24)))),=0A= _ISwxdigit =3D ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << = 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : = ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL = << (__ISwxdigit)) >> 24)))),=0A= _ISwspace =3D ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) = : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : = ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << = (__ISwspace)) >> 24)))),=0A= _ISwprint =3D ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) = : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : = ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << = (__ISwprint)) >> 24)))),=0A= _ISwgraph =3D ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) = : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : = ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << = (__ISwgraph)) >> 24)))),=0A= _ISwblank =3D ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) = : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : = ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << = (__ISwblank)) >> 24)))),=0A= _ISwcntrl =3D ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) = : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : = ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << = (__ISwcntrl)) >> 24)))),=0A= _ISwpunct =3D ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) = : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : = ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << = (__ISwpunct)) >> 24)))),=0A= _ISwalnum =3D ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) = : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : = ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << = (__ISwalnum)) >> 24))))=0A= };=0A= =0A= =0A= =0A= extern "C" {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int iswalnum (wint_t __wc) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int iswalpha (wint_t __wc) throw ();=0A= =0A= =0A= extern int iswcntrl (wint_t __wc) throw ();=0A= =0A= =0A= =0A= extern int iswdigit (wint_t __wc) throw ();=0A= =0A= =0A= =0A= extern int iswgraph (wint_t __wc) throw ();=0A= =0A= =0A= =0A= =0A= extern int iswlower (wint_t __wc) throw ();=0A= =0A= =0A= extern int iswprint (wint_t __wc) throw ();=0A= =0A= =0A= =0A= =0A= extern int iswpunct (wint_t __wc) throw ();=0A= =0A= =0A= =0A= =0A= extern int iswspace (wint_t __wc) throw ();=0A= =0A= =0A= =0A= =0A= extern int iswupper (wint_t __wc) throw ();=0A= =0A= =0A= =0A= =0A= extern int iswxdigit (wint_t __wc) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int iswblank (wint_t __wc) throw ();=0A= # 178 "/usr/include/wctype.h" 3=0A= extern wctype_t wctype (__const char *__property) throw ();=0A= =0A= =0A= =0A= extern int iswctype (wint_t __wc, wctype_t __desc) throw ();=0A= # 249 "/usr/include/wctype.h" 3=0A= typedef __const __int32_t *wctrans_t;=0A= =0A= =0A= extern wint_t towlower (wint_t __wc) throw ();=0A= =0A= =0A= extern wint_t towupper (wint_t __wc) throw ();=0A= # 275 "/usr/include/wctype.h" 3=0A= }=0A= # 288 "/usr/include/wctype.h" 3=0A= extern "C" {=0A= =0A= =0A= =0A= extern wctrans_t wctrans (__const char *__property) throw ();=0A= =0A= =0A= extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int __iswalnum_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int __iswalpha_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= extern int __iswcntrl_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= extern int __iswdigit_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= extern int __iswgraph_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= =0A= extern int __iswlower_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= extern int __iswprint_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= =0A= extern int __iswpunct_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= =0A= extern int __iswspace_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= =0A= extern int __iswupper_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= =0A= extern int __iswxdigit_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= =0A= extern int __iswblank_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= extern wctype_t __wctype_l (__const char *__property, __locale_t = __locale)=0A= throw ();=0A= =0A= =0A= =0A= extern int __iswctype_l (wint_t __wc, wctype_t __desc, __locale_t = __locale)=0A= throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern wint_t __towlower_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= extern wint_t __towupper_l (wint_t __wc, __locale_t __locale) throw ();=0A= =0A= =0A= =0A= extern wctrans_t __wctrans_l (__const char *__property, __locale_t = __locale)=0A= throw ();=0A= =0A= =0A= extern wint_t __towctrans_l (wint_t __wc, wctrans_t __desc,=0A= __locale_t __locale) throw ();=0A= =0A= =0A= =0A= }=0A= # 53 "/usr/local/gcc3.1/include/g++-v3/cwctype" 2 3=0A= # 77 "/usr/local/gcc3.1/include/g++-v3/cwctype" 3=0A= namespace std=0A= {=0A= using ::wint_t;=0A= =0A= using ::wctype_t;=0A= using ::wctrans_t;=0A= =0A= using ::iswalnum;=0A= using ::iswalpha;=0A= using ::iswblank;=0A= using ::iswcntrl;=0A= using ::iswdigit;=0A= using ::iswgraph;=0A= using ::iswlower;=0A= using ::iswprint;=0A= using ::iswprint;=0A= using ::iswpunct;=0A= using ::iswspace;=0A= using ::iswupper;=0A= using ::iswxdigit;=0A= using ::iswctype;=0A= using ::towlower;=0A= using ::towupper;=0A= using ::towctrans;=0A= using ::wctrans;=0A= using ::wctype;=0A= }=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/ios" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A= =0A= namespace std=0A= {=0A= # 60 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 3=0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/ctype_base.h" 1 = 3=0A= # 50 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/ctype_base.h" 3=0A= struct ctype_base=0A= {=0A= =0A= typedef const int* __to_type;=0A= =0A= =0A= =0A= typedef unsigned short mask;=0A= static const mask upper =3D _ISupper;=0A= static const mask lower =3D _ISlower;=0A= static const mask alpha =3D _ISalpha;=0A= static const mask digit =3D _ISdigit;=0A= static const mask xdigit =3D _ISxdigit;=0A= static const mask space =3D _ISspace;=0A= static const mask print =3D _ISprint;=0A= static const mask graph =3D _ISgraph;=0A= static const mask cntrl =3D _IScntrl;=0A= static const mask punct =3D _ISpunct;=0A= static const mask alnum =3D _ISalnum;=0A= };=0A= # 61 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A= =0A= =0A= template=0A= class __ctype_abstract_base : public locale::facet, public ctype_base=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= =0A= bool=0A= is(mask __m, char_type __c) const=0A= { return this->do_is(__m, __c); }=0A= =0A= const char_type*=0A= is(const char_type *__lo, const char_type *__hi, mask *__vec) const=0A= { return this->do_is(__lo, __hi, __vec); }=0A= =0A= const char_type*=0A= scan_is(mask __m, const char_type* __lo, const char_type* __hi) = const=0A= { return this->do_scan_is(__m, __lo, __hi); }=0A= =0A= const char_type*=0A= scan_not(mask __m, const char_type* __lo, const char_type* __hi) = const=0A= { return this->do_scan_not(__m, __lo, __hi); }=0A= =0A= char_type=0A= toupper(char_type __c) const=0A= { return this->do_toupper(__c); }=0A= =0A= const char_type*=0A= toupper(char_type *__lo, const char_type* __hi) const=0A= { return this->do_toupper(__lo, __hi); }=0A= =0A= char_type=0A= tolower(char_type __c) const=0A= { return this->do_tolower(__c); }=0A= =0A= const char_type*=0A= tolower(char_type* __lo, const char_type* __hi) const=0A= { return this->do_tolower(__lo, __hi); }=0A= =0A= char_type=0A= widen(char __c) const=0A= { return this->do_widen(__c); }=0A= =0A= const char*=0A= widen(const char* __lo, const char* __hi, char_type* __to) const=0A= { return this->do_widen(__lo, __hi, __to); }=0A= =0A= char=0A= narrow(char_type __c, char __dfault) const=0A= { return this->do_narrow(__c, __dfault); }=0A= =0A= const char_type*=0A= narrow(const char_type* __lo, const char_type* __hi,=0A= char __dfault, char *__to) const=0A= { return this->do_narrow(__lo, __hi, __dfault, __to); }=0A= =0A= protected:=0A= explicit=0A= __ctype_abstract_base(size_t __refs =3D 0): locale::facet(__refs) = { }=0A= =0A= virtual=0A= ~__ctype_abstract_base() { }=0A= =0A= virtual bool=0A= do_is(mask __m, char_type __c) const =3D 0;=0A= =0A= virtual const char_type*=0A= do_is(const char_type* __lo, const char_type* __hi,=0A= mask* __vec) const =3D 0;=0A= =0A= virtual const char_type*=0A= do_scan_is(mask __m, const char_type* __lo,=0A= const char_type* __hi) const =3D 0;=0A= =0A= virtual const char_type*=0A= do_scan_not(mask __m, const char_type* __lo,=0A= const char_type* __hi) const =3D 0;=0A= =0A= virtual char_type=0A= do_toupper(char_type) const =3D 0;=0A= =0A= virtual const char_type*=0A= do_toupper(char_type* __lo, const char_type* __hi) const =3D 0;=0A= =0A= virtual char_type=0A= do_tolower(char_type) const =3D 0;=0A= =0A= virtual const char_type*=0A= do_tolower(char_type* __lo, const char_type* __hi) const =3D 0;=0A= =0A= virtual char_type=0A= do_widen(char) const =3D 0;=0A= =0A= virtual const char*=0A= do_widen(const char* __lo, const char* __hi,=0A= char_type* __dest) const =3D 0;=0A= =0A= virtual char=0A= do_narrow(char_type, char __dfault) const =3D 0;=0A= =0A= virtual const char_type*=0A= do_narrow(const char_type* __lo, const char_type* __hi,=0A= char __dfault, char* __dest) const =3D 0;=0A= };=0A= =0A= =0A= template=0A= class ctype : public __ctype_abstract_base<_CharT>=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef typename ctype::mask mask;=0A= =0A= static locale::id id;=0A= =0A= explicit=0A= ctype(size_t __refs =3D 0) : __ctype_abstract_base<_CharT>(__refs) = { }=0A= =0A= protected:=0A= virtual=0A= ~ctype();=0A= =0A= virtual bool=0A= do_is(mask __m, char_type __c) const;=0A= =0A= virtual const char_type*=0A= do_is(const char_type* __lo, const char_type* __hi, mask* __vec) = const;=0A= =0A= virtual const char_type*=0A= do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) = const;=0A= =0A= virtual const char_type*=0A= do_scan_not(mask __m, const char_type* __lo,=0A= const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_toupper(char_type __c) const;=0A= =0A= virtual const char_type*=0A= do_toupper(char_type* __lo, const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_tolower(char_type __c) const;=0A= =0A= virtual const char_type*=0A= do_tolower(char_type* __lo, const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_widen(char __c) const;=0A= =0A= virtual const char*=0A= do_widen(const char* __lo, const char* __hi, char_type* __dest) = const;=0A= =0A= virtual char=0A= do_narrow(char_type, char __dfault) const;=0A= =0A= virtual const char_type*=0A= do_narrow(const char_type* __lo, const char_type* __hi,=0A= char __dfault, char* __dest) const;=0A= };=0A= =0A= template=0A= locale::id ctype<_CharT>::id;=0A= =0A= =0A= template<>=0A= class ctype : public __ctype_abstract_base=0A= {=0A= public:=0A= =0A= typedef char char_type;=0A= =0A= protected:=0A= =0A= __c_locale _M_c_locale_ctype;=0A= bool _M_del;=0A= __to_type _M_toupper;=0A= __to_type _M_tolower;=0A= const mask* _M_table;=0A= =0A= public:=0A= static locale::id id;=0A= static const size_t table_size =3D 1 + static_cast(-1);=0A= =0A= explicit=0A= ctype(const mask* __table =3D 0, bool __del =3D false, size_t = __refs =3D 0);=0A= =0A= explicit=0A= ctype(__c_locale __cloc, const mask* __table =3D 0, bool __del =3D = false,=0A= size_t __refs =3D 0);=0A= =0A= inline bool=0A= is(mask __m, char __c) const;=0A= =0A= inline const char*=0A= is(const char* __lo, const char* __hi, mask* __vec) const;=0A= =0A= inline const char*=0A= scan_is(mask __m, const char* __lo, const char* __hi) const;=0A= =0A= inline const char*=0A= scan_not(mask __m, const char* __lo, const char* __hi) const;=0A= =0A= protected:=0A= const mask*=0A= table() const throw()=0A= { return _M_table; }=0A= =0A= static const mask*=0A= classic_table() throw();=0A= =0A= virtual=0A= ~ctype();=0A= =0A= virtual bool=0A= do_is(mask __m, char_type __c) const;=0A= =0A= virtual const char_type*=0A= do_is(const char_type* __lo, const char_type* __hi, mask* __vec) = const;=0A= =0A= virtual const char_type*=0A= do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) = const;=0A= =0A= virtual const char_type*=0A= do_scan_not(mask __m, const char_type* __lo,=0A= const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_toupper(char_type) const;=0A= =0A= virtual const char_type*=0A= do_toupper(char_type* __lo, const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_tolower(char_type) const;=0A= =0A= virtual const char_type*=0A= do_tolower(char_type* __lo, const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_widen(char) const;=0A= =0A= virtual const char*=0A= do_widen(const char* __lo, const char* __hi, char_type* __dest) = const;=0A= =0A= virtual char=0A= do_narrow(char_type, char __dfault) const;=0A= =0A= virtual const char_type*=0A= do_narrow(const char_type* __lo, const char_type* __hi,=0A= char __dfault, char* __dest) const;=0A= };=0A= =0A= template<>=0A= const ctype&=0A= use_facet >(const locale& __loc);=0A= =0A= =0A= =0A= template<>=0A= class ctype : public __ctype_abstract_base=0A= {=0A= public:=0A= =0A= typedef wchar_t char_type;=0A= typedef wctype_t __wmask_type;=0A= =0A= protected:=0A= __c_locale _M_c_locale_ctype;=0A= =0A= public:=0A= =0A= static locale::id id;=0A= =0A= explicit=0A= ctype(size_t __refs =3D 0);=0A= =0A= explicit=0A= ctype(__c_locale __cloc, size_t __refs =3D 0);=0A= =0A= protected:=0A= __wmask_type=0A= _M_convert_to_wmask(const mask __m) const;=0A= =0A= virtual=0A= ~ctype();=0A= =0A= virtual bool=0A= do_is(mask __m, char_type __c) const;=0A= =0A= virtual const char_type*=0A= do_is(const char_type* __lo, const char_type* __hi, mask* __vec) = const;=0A= =0A= virtual const char_type*=0A= do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) = const;=0A= =0A= virtual const char_type*=0A= do_scan_not(mask __m, const char_type* __lo,=0A= const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_toupper(char_type) const;=0A= =0A= virtual const char_type*=0A= do_toupper(char_type* __lo, const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_tolower(char_type) const;=0A= =0A= virtual const char_type*=0A= do_tolower(char_type* __lo, const char_type* __hi) const;=0A= =0A= virtual char_type=0A= do_widen(char) const;=0A= =0A= virtual const char*=0A= do_widen(const char* __lo, const char* __hi, char_type* __dest) = const;=0A= =0A= virtual char=0A= do_narrow(char_type, char __dfault) const;=0A= =0A= virtual const char_type*=0A= do_narrow(const char_type* __lo, const char_type* __hi,=0A= char __dfault, char* __dest) const;=0A= =0A= };=0A= =0A= template<>=0A= const ctype&=0A= use_facet >(const locale& __loc);=0A= =0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/ctype_inline.h" = 1 3=0A= # 37 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/ctype_inline.h" = 3=0A= bool=0A= ctype::=0A= is(mask __m, char __c) const=0A= { return _M_table[static_cast(__c)] & __m; }=0A= =0A= const char*=0A= ctype::=0A= is(const char* __low, const char* __high, mask* __vec) const=0A= {=0A= while (__low < __high)=0A= *__vec++ =3D _M_table[static_cast(*__low++)];=0A= return __high;=0A= }=0A= =0A= const char*=0A= ctype::=0A= scan_is(mask __m, const char* __low, const char* __high) const=0A= {=0A= while (__low < __high=0A= && !(_M_table[static_cast(*__low)] & __m))=0A= ++__low;=0A= return __low;=0A= }=0A= =0A= const char*=0A= ctype::=0A= scan_not(mask __m, const char* __low, const char* __high) const=0A= {=0A= while (__low < __high=0A= && (_M_table[static_cast(*__low)] & __m) !=3D = 0)=0A= ++__low;=0A= return __low;=0A= }=0A= # 398 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A= =0A= =0A= template=0A= class ctype_byname : public ctype<_CharT>=0A= {=0A= public:=0A= typedef _CharT char_type;=0A= =0A= explicit=0A= ctype_byname(const char* __s, size_t __refs =3D 0);=0A= =0A= protected:=0A= virtual=0A= ~ctype_byname() { };=0A= };=0A= =0A= =0A= template<>=0A= ctype_byname::ctype_byname(const char*, size_t refs);=0A= =0A= template<>=0A= ctype_byname::ctype_byname(const char*, size_t refs);=0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/codecvt.h" 1 3=0A= # 45 "/usr/local/gcc3.1/include/g++-v3/bits/codecvt.h" 3=0A= =0A= =0A= class codecvt_base=0A= {=0A= public:=0A= enum result=0A= {=0A= ok,=0A= partial,=0A= error,=0A= noconv=0A= };=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template=0A= class __codecvt_abstract_base=0A= : public locale::facet, public codecvt_base=0A= {=0A= public:=0A= =0A= typedef codecvt_base::result result;=0A= typedef _InternT intern_type;=0A= typedef _ExternT extern_type;=0A= typedef _StateT state_type;=0A= =0A= =0A= result=0A= out(state_type& __state, const intern_type* __from,=0A= const intern_type* __from_end, const intern_type*& __from_next,=0A= extern_type* __to, extern_type* __to_end,=0A= extern_type*& __to_next) const=0A= {=0A= return this->do_out(__state, __from, __from_end, __from_next,=0A= __to, __to_end, __to_next);=0A= }=0A= =0A= result=0A= unshift(state_type& __state, extern_type* __to, extern_type* = __to_end,=0A= extern_type*& __to_next) const=0A= { return this->do_unshift(__state, __to,__to_end,__to_next); }=0A= =0A= result=0A= in(state_type& __state, const extern_type* __from,=0A= const extern_type* __from_end, const extern_type*& __from_next,=0A= intern_type* __to, intern_type* __to_end,=0A= intern_type*& __to_next) const=0A= {=0A= return this->do_in(__state, __from, __from_end, __from_next,=0A= __to, __to_end, __to_next);=0A= }=0A= =0A= int=0A= encoding() const throw()=0A= { return this->do_encoding(); }=0A= =0A= bool=0A= always_noconv() const throw()=0A= { return this->do_always_noconv(); }=0A= =0A= int=0A= length(const state_type& __state, const extern_type* __from,=0A= const extern_type* __end, size_t __max) const=0A= { return this->do_length(__state, __from, __end, __max); }=0A= =0A= int=0A= max_length() const throw()=0A= { return this->do_max_length(); }=0A= =0A= protected:=0A= explicit=0A= __codecvt_abstract_base(size_t __refs =3D 0) : = locale::facet(__refs) { }=0A= =0A= virtual=0A= ~__codecvt_abstract_base() { }=0A= =0A= virtual result=0A= do_out(state_type& __state, const intern_type* __from,=0A= const intern_type* __from_end, const intern_type*& = __from_next,=0A= extern_type* __to, extern_type* __to_end,=0A= extern_type*& __to_next) const =3D 0;=0A= =0A= virtual result=0A= do_unshift(state_type& __state, extern_type* __to,=0A= extern_type* __to_end, extern_type*& __to_next) const = =3D 0;=0A= =0A= virtual result=0A= do_in(state_type& __state, const extern_type* __from,=0A= const extern_type* __from_end, const extern_type*& = __from_next,=0A= intern_type* __to, intern_type* __to_end,=0A= intern_type*& __to_next) const =3D 0;=0A= =0A= virtual int=0A= do_encoding() const throw() =3D 0;=0A= =0A= virtual bool=0A= do_always_noconv() const throw() =3D 0;=0A= =0A= virtual int=0A= do_length(const state_type&, const extern_type* __from,=0A= const extern_type* __end, size_t __max) const =3D 0;=0A= =0A= virtual int=0A= do_max_length() const throw() =3D 0;=0A= };=0A= =0A= =0A= =0A= template=0A= class codecvt=0A= : public __codecvt_abstract_base<_InternT, _ExternT, _StateT>=0A= {=0A= public:=0A= =0A= typedef codecvt_base::result result;=0A= typedef _InternT intern_type;=0A= typedef _ExternT extern_type;=0A= typedef _StateT state_type;=0A= =0A= =0A= static locale::id id;=0A= =0A= explicit=0A= codecvt(size_t __refs =3D 0)=0A= : __codecvt_abstract_base<_InternT,_ExternT,_StateT> (__refs) { }=0A= =0A= protected:=0A= virtual=0A= ~codecvt() { }=0A= =0A= virtual result=0A= do_out(state_type& __state, const intern_type* __from,=0A= const intern_type* __from_end, const intern_type*& = __from_next,=0A= extern_type* __to, extern_type* __to_end,=0A= extern_type*& __to_next) const;=0A= =0A= virtual result=0A= do_unshift(state_type& __state, extern_type* __to,=0A= extern_type* __to_end, extern_type*& __to_next) const;=0A= =0A= virtual result=0A= do_in(state_type& __state, const extern_type* __from,=0A= const extern_type* __from_end, const extern_type*& = __from_next,=0A= intern_type* __to, intern_type* __to_end,=0A= intern_type*& __to_next) const;=0A= =0A= virtual int=0A= do_encoding() const throw();=0A= =0A= virtual bool=0A= do_always_noconv() const throw();=0A= =0A= virtual int=0A= do_length(const state_type&, const extern_type* __from,=0A= const extern_type* __end, size_t __max) const;=0A= =0A= virtual int=0A= do_max_length() const throw();=0A= };=0A= =0A= template=0A= locale::id codecvt<_InternT, _ExternT, _StateT>::id;=0A= =0A= =0A= template<>=0A= class codecvt=0A= : public __codecvt_abstract_base=0A= {=0A= public:=0A= =0A= typedef char intern_type;=0A= typedef char extern_type;=0A= typedef mbstate_t state_type;=0A= =0A= =0A= static locale::id id;=0A= =0A= explicit=0A= codecvt(size_t __refs =3D 0);=0A= =0A= protected:=0A= virtual=0A= ~codecvt();=0A= =0A= virtual result=0A= do_out(state_type& __state, const intern_type* __from,=0A= const intern_type* __from_end, const intern_type*& = __from_next,=0A= extern_type* __to, extern_type* __to_end,=0A= extern_type*& __to_next) const;=0A= =0A= virtual result=0A= do_unshift(state_type& __state, extern_type* __to,=0A= extern_type* __to_end, extern_type*& __to_next) const;=0A= =0A= virtual result=0A= do_in(state_type& __state, const extern_type* __from,=0A= const extern_type* __from_end, const extern_type*& = __from_next,=0A= intern_type* __to, intern_type* __to_end,=0A= intern_type*& __to_next) const;=0A= =0A= virtual int=0A= do_encoding() const throw();=0A= =0A= virtual bool=0A= do_always_noconv() const throw();=0A= =0A= virtual int=0A= do_length(const state_type&, const extern_type* __from,=0A= const extern_type* __end, size_t __max) const;=0A= =0A= virtual int=0A= do_max_length() const throw();=0A= };=0A= =0A= =0A= =0A= template<>=0A= class codecvt=0A= : public __codecvt_abstract_base=0A= {=0A= public:=0A= =0A= typedef wchar_t intern_type;=0A= typedef char extern_type;=0A= typedef mbstate_t state_type;=0A= =0A= =0A= static locale::id id;=0A= =0A= explicit=0A= codecvt(size_t __refs =3D 0);=0A= =0A= protected:=0A= virtual=0A= ~codecvt();=0A= =0A= virtual result=0A= do_out(state_type& __state, const intern_type* __from,=0A= const intern_type* __from_end, const intern_type*& = __from_next,=0A= extern_type* __to, extern_type* __to_end,=0A= extern_type*& __to_next) const;=0A= =0A= virtual result=0A= do_unshift(state_type& __state,=0A= extern_type* __to, extern_type* __to_end,=0A= extern_type*& __to_next) const;=0A= =0A= virtual result=0A= do_in(state_type& __state,=0A= const extern_type* __from, const extern_type* __from_end,=0A= const extern_type*& __from_next,=0A= intern_type* __to, intern_type* __to_end,=0A= intern_type*& __to_next) const;=0A= =0A= virtual=0A= int do_encoding() const throw();=0A= =0A= virtual=0A= bool do_always_noconv() const throw();=0A= =0A= virtual=0A= int do_length(const state_type&, const extern_type* __from,=0A= const extern_type* __end, size_t __max) const;=0A= =0A= virtual int=0A= do_max_length() const throw();=0A= };=0A= =0A= =0A= =0A= template=0A= class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT>=0A= {=0A= public:=0A= explicit=0A= codecvt_byname(const char*, size_t __refs =3D 0)=0A= : codecvt<_InternT, _ExternT, _StateT>(__refs) { }=0A= protected:=0A= virtual=0A= ~codecvt_byname() { }=0A= };=0A= =0A= =0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/codecvt_speciali= zations.h" 1 3=0A= # 334 "/usr/local/gcc3.1/include/g++-v3/bits/codecvt.h" 2 3=0A= # 423 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A= =0A= =0A= =0A= class __num_base=0A= {=0A= protected:=0A= =0A= =0A= static const char _S_atoms[];=0A= =0A= enum=0A= {=0A= _M_zero,=0A= _M_e =3D _M_zero + 10,=0A= _M_E =3D _M_zero + 11,=0A= _M_size =3D 21 + 1=0A= };=0A= =0A= =0A= =0A= static bool=0A= _S_format_float(const ios_base& __io, char* __fptr, char __mod,=0A= streamsize __prec);=0A= =0A= =0A= static void=0A= _S_format_int(const ios_base& __io, char* __fptr, char __mod, char = __modl);=0A= };=0A= =0A= =0A= template=0A= class numpunct : public locale::facet=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= static locale::id id;=0A= =0A= private:=0A= char_type _M_decimal_point;=0A= char_type _M_thousands_sep;=0A= const char* _M_grouping;=0A= const char_type* _M_truename;=0A= const char_type* _M_falsename;=0A= =0A= public:=0A= explicit=0A= numpunct(size_t __refs =3D 0) : locale::facet(__refs)=0A= { _M_initialize_numpunct(); }=0A= =0A= explicit=0A= numpunct(__c_locale __cloc, size_t __refs =3D 0) : = locale::facet(__refs)=0A= { _M_initialize_numpunct(__cloc); }=0A= =0A= char_type=0A= decimal_point() const=0A= { return this->do_decimal_point(); }=0A= =0A= char_type=0A= thousands_sep() const=0A= { return this->do_thousands_sep(); }=0A= =0A= string=0A= grouping() const=0A= { return this->do_grouping(); }=0A= =0A= string_type=0A= truename() const=0A= { return this->do_truename(); }=0A= =0A= string_type=0A= falsename() const=0A= { return this->do_falsename(); }=0A= =0A= protected:=0A= virtual=0A= ~numpunct();=0A= =0A= virtual char_type=0A= do_decimal_point() const=0A= { return _M_decimal_point; }=0A= =0A= virtual char_type=0A= do_thousands_sep() const=0A= { return _M_thousands_sep; }=0A= =0A= virtual string=0A= do_grouping() const=0A= { return _M_grouping; }=0A= =0A= virtual string_type=0A= do_truename() const=0A= { return _M_truename; }=0A= =0A= virtual string_type=0A= do_falsename() const=0A= { return _M_falsename; }=0A= =0A= =0A= void=0A= _M_initialize_numpunct(__c_locale __cloc =3D _S_c_locale);=0A= };=0A= =0A= template=0A= locale::id numpunct<_CharT>::id;=0A= =0A= template<>=0A= numpunct::~numpunct();=0A= =0A= template<>=0A= void=0A= numpunct::_M_initialize_numpunct(__c_locale __cloc);=0A= =0A= =0A= template<>=0A= numpunct::~numpunct();=0A= =0A= template<>=0A= void=0A= numpunct::_M_initialize_numpunct(__c_locale __cloc);=0A= =0A= =0A= template=0A= class numpunct_byname : public numpunct<_CharT>=0A= {=0A= =0A= __c_locale _M_c_locale_numpunct;=0A= =0A= public:=0A= typedef _CharT char_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= explicit=0A= numpunct_byname(const char* __s, size_t __refs =3D 0)=0A= : numpunct<_CharT>(__refs)=0A= {=0A= _S_create_c_locale(_M_c_locale_numpunct, __s);=0A= _M_initialize_numpunct(_M_c_locale_numpunct);=0A= }=0A= =0A= protected:=0A= virtual=0A= ~numpunct_byname()=0A= { _S_destroy_c_locale(_M_c_locale_numpunct); }=0A= };=0A= =0A= template=0A= class num_get : public locale::facet, public __num_base=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _InIter iter_type;=0A= =0A= static locale::id id;=0A= =0A= explicit=0A= num_get(size_t __refs =3D 0) : locale::facet(__refs) { }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, bool& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, long& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, unsigned short& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, unsigned int& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, unsigned long& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, long long& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, unsigned long long& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, float& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, double& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, long double& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= iter_type=0A= get(iter_type __in, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, void*& __v) const=0A= { return this->do_get(__in, __end, __io, __err, __v); }=0A= =0A= protected:=0A= virtual ~num_get() { }=0A= =0A= iter_type=0A= _M_extract_float(iter_type, iter_type, ios_base&, = ios_base::iostate&,=0A= string& __xtrc) const;=0A= =0A= iter_type=0A= _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&,=0A= string& __xtrc, int& __base) const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) = const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, long&) = const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= unsigned short&) const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= unsigned int&) const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= unsigned long&) const;=0A= =0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= long long&) const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= unsigned long long&) const;=0A= =0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= float&) const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= double&) const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= long double&) const;=0A= =0A= virtual iter_type=0A= do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,=0A= void*&) const;=0A= };=0A= =0A= template=0A= locale::id num_get<_CharT, _InIter>::id;=0A= =0A= template=0A= class num_put : public locale::facet, public __num_base=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _OutIter iter_type;=0A= =0A= static locale::id id;=0A= =0A= explicit=0A= num_put(size_t __refs =3D 0) : locale::facet(__refs) { }=0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __f, char_type __fill, bool __v) const=0A= { return this->do_put(__s, __f, __fill, __v); }=0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __f, char_type __fill, long __v) const=0A= { return this->do_put(__s, __f, __fill, __v); }=0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __f, char_type __fill,=0A= unsigned long __v) const=0A= { return this->do_put(__s, __f, __fill, __v); }=0A= =0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __f, char_type __fill, long long __v) = const=0A= { return this->do_put(__s, __f, __fill, __v); }=0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __f, char_type __fill,=0A= unsigned long long __v) const=0A= { return this->do_put(__s, __f, __fill, __v); }=0A= =0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __f, char_type __fill, double __v) = const=0A= { return this->do_put(__s, __f, __fill, __v); }=0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __f, char_type __fill,=0A= long double __v) const=0A= { return this->do_put(__s, __f, __fill, __v); }=0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __f, char_type __fill,=0A= const void* __v) const=0A= { return this->do_put(__s, __f, __fill, __v); }=0A= =0A= protected:=0A= template=0A= iter_type=0A= _M_convert_float(iter_type, ios_base& __io, char_type __fill,=0A= char __mod, _ValueT __v) const;=0A= =0A= template=0A= iter_type=0A= _M_convert_int(iter_type, ios_base& __io, char_type __fill,=0A= char __mod, char __modl, _ValueT __v) const;=0A= =0A= iter_type=0A= _M_widen_float(iter_type, ios_base& __io, char_type __fill, char* = __cs,=0A= int __len) const;=0A= =0A= iter_type=0A= _M_widen_int(iter_type, ios_base& __io, char_type __fill, char* = __cs,=0A= int __len) const;=0A= =0A= iter_type=0A= _M_insert(iter_type, ios_base& __io, char_type __fill,=0A= const char_type* __ws, int __len) const;=0A= =0A= virtual=0A= ~num_put() { };=0A= =0A= virtual iter_type=0A= do_put(iter_type, ios_base&, char_type __fill, bool __v) const;=0A= =0A= virtual iter_type=0A= do_put(iter_type, ios_base&, char_type __fill, long __v) const;=0A= =0A= virtual iter_type=0A= do_put(iter_type, ios_base&, char_type __fill, unsigned long) = const;=0A= =0A= =0A= virtual iter_type=0A= do_put(iter_type, ios_base&, char_type __fill, long long __v) = const;=0A= =0A= virtual iter_type=0A= do_put(iter_type, ios_base&, char_type __fill, unsigned long long) = const;=0A= =0A= =0A= virtual iter_type=0A= do_put(iter_type, ios_base&, char_type __fill, double __v) const;=0A= =0A= virtual iter_type=0A= do_put(iter_type, ios_base&, char_type __fill, long double __v) = const;=0A= =0A= virtual iter_type=0A= do_put(iter_type, ios_base&, char_type __fill, const void* __v) = const;=0A= };=0A= =0A= template =0A= locale::id num_put<_CharT, _OutIter>::id;=0A= =0A= =0A= template=0A= class collate : public locale::facet=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= protected:=0A= =0A= =0A= __c_locale _M_c_locale_collate;=0A= =0A= public:=0A= static locale::id id;=0A= =0A= explicit=0A= collate(size_t __refs =3D 0)=0A= : locale::facet(__refs)=0A= { _M_c_locale_collate =3D _S_c_locale; }=0A= =0A= =0A= explicit=0A= collate(__c_locale __cloc, size_t __refs =3D 0)=0A= : locale::facet(__refs)=0A= { _M_c_locale_collate =3D _S_clone_c_locale(__cloc); }=0A= =0A= int=0A= compare(const _CharT* __lo1, const _CharT* __hi1,=0A= const _CharT* __lo2, const _CharT* __hi2) const=0A= { return this->do_compare(__lo1, __hi1, __lo2, __hi2); }=0A= =0A= string_type=0A= transform(const _CharT* __lo, const _CharT* __hi) const=0A= { return this->do_transform(__lo, __hi); }=0A= =0A= long=0A= hash(const _CharT* __lo, const _CharT* __hi) const=0A= { return this->do_hash(__lo, __hi); }=0A= =0A= =0A= int=0A= _M_compare(const _CharT*, const _CharT*) const;=0A= =0A= size_t=0A= _M_transform(_CharT*, const _CharT*, size_t) const;=0A= =0A= protected:=0A= virtual=0A= ~collate()=0A= {=0A= if (_M_c_locale_collate !=3D _S_c_locale)=0A= _S_destroy_c_locale(_M_c_locale_collate);=0A= }=0A= =0A= virtual int=0A= do_compare(const _CharT* __lo1, const _CharT* __hi1,=0A= const _CharT* __lo2, const _CharT* __hi2) const;=0A= =0A= virtual string_type=0A= do_transform(const _CharT* __lo, const _CharT* __hi) const;=0A= =0A= virtual long=0A= do_hash(const _CharT* __lo, const _CharT* __hi) const;=0A= };=0A= =0A= template=0A= locale::id collate<_CharT>::id;=0A= =0A= =0A= template<>=0A= int=0A= collate::_M_compare(const char*, const char*) const;=0A= =0A= template<>=0A= size_t=0A= collate::_M_transform(char*, const char*, size_t) const;=0A= =0A= =0A= template<>=0A= int=0A= collate::_M_compare(const wchar_t*, const wchar_t*) const;=0A= =0A= template<>=0A= size_t=0A= collate::_M_transform(wchar_t*, const wchar_t*, size_t) = const;=0A= =0A= =0A= template=0A= class collate_byname : public collate<_CharT>=0A= {=0A= public:=0A= typedef _CharT char_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= explicit=0A= collate_byname(const char* __s, size_t __refs =3D 0)=0A= : collate<_CharT>(__refs)=0A= {=0A= if (_M_c_locale_collate !=3D _S_c_locale)=0A= _S_destroy_c_locale(_M_c_locale_collate);=0A= _S_create_c_locale(_M_c_locale_collate, __s);=0A= }=0A= =0A= protected:=0A= virtual=0A= ~collate_byname() { }=0A= };=0A= =0A= =0A= class time_base=0A= {=0A= public:=0A= enum dateorder { no_order, dmy, mdy, ymd, ydm };=0A= };=0A= =0A= template=0A= class __timepunct : public locale::facet=0A= {=0A= public:=0A= =0A= typedef _CharT __char_type;=0A= typedef basic_string<_CharT> __string_type;=0A= =0A= static locale::id id;=0A= =0A= =0A= static const _CharT* _S_timezones[14];=0A= =0A= protected:=0A= __c_locale _M_c_locale_timepunct;=0A= const char* _M_name_timepunct;=0A= const _CharT* _M_date_format;=0A= const _CharT* _M_date_era_format;=0A= const _CharT* _M_time_format;=0A= const _CharT* _M_time_era_format;=0A= const _CharT* _M_date_time_format;=0A= const _CharT* _M_date_time_era_format;=0A= const _CharT* _M_am;=0A= const _CharT* _M_pm;=0A= const _CharT* _M_am_pm_format;=0A= =0A= =0A= const _CharT* _M_day1;=0A= const _CharT* _M_day2;=0A= const _CharT* _M_day3;=0A= const _CharT* _M_day4;=0A= const _CharT* _M_day5;=0A= const _CharT* _M_day6;=0A= const _CharT* _M_day7;=0A= =0A= =0A= const _CharT* _M_day_a1;=0A= const _CharT* _M_day_a2;=0A= const _CharT* _M_day_a3;=0A= const _CharT* _M_day_a4;=0A= const _CharT* _M_day_a5;=0A= const _CharT* _M_day_a6;=0A= const _CharT* _M_day_a7;=0A= =0A= =0A= const _CharT* _M_month01;=0A= const _CharT* _M_month02;=0A= const _CharT* _M_month03;=0A= const _CharT* _M_month04;=0A= const _CharT* _M_month05;=0A= const _CharT* _M_month06;=0A= const _CharT* _M_month07;=0A= const _CharT* _M_month08;=0A= const _CharT* _M_month09;=0A= const _CharT* _M_month10;=0A= const _CharT* _M_month11;=0A= const _CharT* _M_month12;=0A= =0A= =0A= const _CharT* _M_month_a01;=0A= const _CharT* _M_month_a02;=0A= const _CharT* _M_month_a03;=0A= const _CharT* _M_month_a04;=0A= const _CharT* _M_month_a05;=0A= const _CharT* _M_month_a06;=0A= const _CharT* _M_month_a07;=0A= const _CharT* _M_month_a08;=0A= const _CharT* _M_month_a09;=0A= const _CharT* _M_month_a10;=0A= const _CharT* _M_month_a11;=0A= const _CharT* _M_month_a12;=0A= =0A= public:=0A= explicit=0A= __timepunct(size_t __refs =3D 0)=0A= : locale::facet(__refs), _M_name_timepunct("C")=0A= { _M_initialize_timepunct(); }=0A= =0A= explicit=0A= __timepunct(__c_locale __cloc, const char* __s, size_t __refs =3D = 0)=0A= : locale::facet(__refs), _M_name_timepunct(__s)=0A= { _M_initialize_timepunct(__cloc); }=0A= =0A= void=0A= _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format,=0A= const tm* __tm) const;=0A= =0A= void=0A= _M_date_formats(const _CharT** __date) const=0A= {=0A= =0A= __date[0] =3D _M_date_format;=0A= __date[1] =3D _M_date_era_format;=0A= }=0A= =0A= void=0A= _M_time_formats(const _CharT** __time) const=0A= {=0A= =0A= __time[0] =3D _M_time_format;=0A= __time[1] =3D _M_time_era_format;=0A= }=0A= =0A= void=0A= _M_ampm(const _CharT** __ampm) const=0A= {=0A= __ampm[0] =3D _M_am;=0A= __ampm[1] =3D _M_pm;=0A= }=0A= =0A= void=0A= _M_date_time_formats(const _CharT** __dt) const=0A= {=0A= =0A= __dt[0] =3D _M_date_time_format;=0A= __dt[1] =3D _M_date_time_era_format;=0A= }=0A= =0A= void=0A= _M_days(const _CharT** __days) const=0A= {=0A= __days[0] =3D _M_day1;=0A= __days[1] =3D _M_day2;=0A= __days[2] =3D _M_day3;=0A= __days[3] =3D _M_day4;=0A= __days[4] =3D _M_day5;=0A= __days[5] =3D _M_day6;=0A= __days[6] =3D _M_day7;=0A= }=0A= =0A= void=0A= _M_days_abbreviated(const _CharT** __days) const=0A= {=0A= __days[0] =3D _M_day_a1;=0A= __days[1] =3D _M_day_a2;=0A= __days[2] =3D _M_day_a3;=0A= __days[3] =3D _M_day_a4;=0A= __days[4] =3D _M_day_a5;=0A= __days[5] =3D _M_day_a6;=0A= __days[6] =3D _M_day_a7;=0A= }=0A= =0A= void=0A= _M_months(const _CharT** __months) const=0A= {=0A= __months[0] =3D _M_month01;=0A= __months[1] =3D _M_month02;=0A= __months[2] =3D _M_month03;=0A= __months[3] =3D _M_month04;=0A= __months[4] =3D _M_month05;=0A= __months[5] =3D _M_month06;=0A= __months[6] =3D _M_month07;=0A= __months[7] =3D _M_month08;=0A= __months[8] =3D _M_month09;=0A= __months[9] =3D _M_month10;=0A= __months[10] =3D _M_month11;=0A= __months[11] =3D _M_month12;=0A= }=0A= =0A= void=0A= _M_months_abbreviated(const _CharT** __months) const=0A= {=0A= __months[0] =3D _M_month_a01;=0A= __months[1] =3D _M_month_a02;=0A= __months[2] =3D _M_month_a03;=0A= __months[3] =3D _M_month_a04;=0A= __months[4] =3D _M_month_a05;=0A= __months[5] =3D _M_month_a06;=0A= __months[6] =3D _M_month_a07;=0A= __months[7] =3D _M_month_a08;=0A= __months[8] =3D _M_month_a09;=0A= __months[9] =3D _M_month_a10;=0A= __months[10] =3D _M_month_a11;=0A= __months[11] =3D _M_month_a12;=0A= }=0A= =0A= protected:=0A= virtual=0A= ~__timepunct();=0A= =0A= =0A= void=0A= _M_initialize_timepunct(__c_locale __cloc =3D _S_c_locale);=0A= };=0A= =0A= template=0A= locale::id __timepunct<_CharT>::id;=0A= =0A= =0A= template<>=0A= __timepunct::~__timepunct();=0A= =0A= template<>=0A= const char*=0A= __timepunct::_S_timezones[14];=0A= =0A= template<>=0A= void=0A= __timepunct::_M_initialize_timepunct(__c_locale __cloc);=0A= =0A= template<>=0A= void=0A= __timepunct::_M_put(char*, size_t, const char*, const tm*) = const;=0A= =0A= =0A= template<>=0A= __timepunct::~__timepunct();=0A= =0A= template<>=0A= const wchar_t*=0A= __timepunct::_S_timezones[14];=0A= =0A= template<>=0A= void=0A= __timepunct::_M_initialize_timepunct(__c_locale __cloc);=0A= =0A= template<>=0A= void=0A= __timepunct::_M_put(wchar_t*, size_t, const wchar_t*,=0A= const tm*) const;=0A= =0A= =0A= =0A= template=0A= const _CharT* __timepunct<_CharT>::_S_timezones[14];=0A= =0A= =0A= template=0A= class time_get : public locale::facet, public time_base=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _InIter iter_type;=0A= typedef basic_string<_CharT> __string_type;=0A= =0A= static locale::id id;=0A= =0A= explicit=0A= time_get(size_t __refs =3D 0)=0A= : locale::facet (__refs) { }=0A= =0A= dateorder=0A= date_order() const=0A= { return this->do_date_order(); }=0A= =0A= iter_type=0A= get_time(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= { return this->do_get_time(__beg, __end, __io, __err, __tm); }=0A= =0A= iter_type=0A= get_date(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= { return this->do_get_date(__beg, __end, __io, __err, __tm); }=0A= =0A= iter_type=0A= get_weekday(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= { return this->do_get_weekday(__beg, __end, __io, __err, __tm); }=0A= =0A= iter_type=0A= get_monthname(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= { return this->do_get_monthname(__beg, __end, __io, __err, __tm); }=0A= =0A= iter_type=0A= get_year(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= { return this->do_get_year(__beg, __end, __io, __err, __tm); }=0A= =0A= protected:=0A= virtual=0A= ~time_get() { }=0A= =0A= virtual dateorder=0A= do_date_order() const;=0A= =0A= virtual iter_type=0A= do_get_time(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const;=0A= =0A= virtual iter_type=0A= do_get_date(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const;=0A= =0A= virtual iter_type=0A= do_get_weekday(iter_type __beg, iter_type __end, ios_base&,=0A= ios_base::iostate& __err, tm* __tm) const;=0A= =0A= virtual iter_type=0A= do_get_monthname(iter_type __beg, iter_type __end, ios_base&,=0A= ios_base::iostate& __err, tm* __tm) const;=0A= =0A= virtual iter_type=0A= do_get_year(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const;=0A= =0A= =0A= void=0A= _M_extract_num(iter_type& __beg, iter_type& __end, int& __member,=0A= int __min, int __max, size_t __len,=0A= const ctype<_CharT>& __ctype,=0A= ios_base::iostate& __err) const;=0A= =0A= =0A= =0A= void=0A= _M_extract_name(iter_type& __beg, iter_type& __end, int& __member,=0A= const _CharT** __names, size_t __indexlen,=0A= ios_base::iostate& __err) const;=0A= =0A= =0A= void=0A= _M_extract_via_format(iter_type& __beg, iter_type& __end, = ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm,=0A= const _CharT* __format) const;=0A= };=0A= =0A= template=0A= locale::id time_get<_CharT, _InIter>::id;=0A= =0A= template=0A= class time_get_byname : public time_get<_CharT, _InIter>=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _InIter iter_type;=0A= =0A= explicit=0A= time_get_byname(const char*, size_t __refs =3D 0)=0A= : time_get<_CharT, _InIter>(__refs) { }=0A= =0A= protected:=0A= virtual=0A= ~time_get_byname() { }=0A= };=0A= =0A= template=0A= class time_put : public locale::facet, public time_base=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _OutIter iter_type;=0A= =0A= static locale::id id;=0A= =0A= explicit=0A= time_put(size_t __refs =3D 0)=0A= : locale::facet(__refs) { }=0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __io, char_type __fill, const tm* = __tm,=0A= const _CharT* __beg, const _CharT* __end) const;=0A= =0A= iter_type=0A= put(iter_type __s, ios_base& __io, char_type __fill,=0A= const tm* __tm, char __format, char __mod =3D 0) const=0A= { return this->do_put(__s, __io, __fill, __tm, __format, __mod); }=0A= =0A= protected:=0A= virtual=0A= ~time_put()=0A= { }=0A= =0A= virtual iter_type=0A= do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* = __tm,=0A= char __format, char __mod) const;=0A= };=0A= =0A= template=0A= locale::id time_put<_CharT, _OutIter>::id;=0A= =0A= template=0A= class time_put_byname : public time_put<_CharT, _OutIter>=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _OutIter iter_type;=0A= =0A= explicit=0A= time_put_byname(const char* , size_t __refs =3D 0)=0A= : time_put<_CharT, _OutIter>(__refs)=0A= { };=0A= =0A= protected:=0A= virtual=0A= ~time_put_byname() { }=0A= };=0A= =0A= =0A= class money_base=0A= {=0A= public:=0A= enum part { none, space, symbol, sign, value };=0A= struct pattern { char field[4]; };=0A= =0A= static const pattern _S_default_pattern;=0A= =0A= =0A= =0A= static pattern=0A= _S_construct_pattern(char __precedes, char __space, char __posn);=0A= };=0A= =0A= template=0A= class moneypunct : public locale::facet, public money_base=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= static const bool intl =3D _Intl;=0A= static locale::id id;=0A= =0A= private:=0A= const char* _M_grouping;=0A= char_type _M_decimal_point;=0A= char_type _M_thousands_sep;=0A= const char_type* _M_curr_symbol;=0A= const char_type* _M_positive_sign;=0A= const char_type* _M_negative_sign;=0A= int _M_frac_digits;=0A= pattern _M_pos_format;=0A= pattern _M_neg_format;=0A= =0A= public:=0A= explicit=0A= moneypunct(size_t __refs =3D 0) : locale::facet(__refs)=0A= { _M_initialize_moneypunct(); }=0A= =0A= explicit=0A= moneypunct(__c_locale __cloc, size_t __refs =3D 0) : = locale::facet(__refs)=0A= { _M_initialize_moneypunct(__cloc); }=0A= =0A= char_type=0A= decimal_point() const=0A= { return this->do_decimal_point(); }=0A= =0A= char_type=0A= thousands_sep() const=0A= { return this->do_thousands_sep(); }=0A= =0A= string=0A= grouping() const=0A= { return this->do_grouping(); }=0A= =0A= string_type=0A= curr_symbol() const=0A= { return this->do_curr_symbol(); }=0A= =0A= string_type=0A= positive_sign() const=0A= { return this->do_positive_sign(); }=0A= =0A= string_type=0A= negative_sign() const=0A= { return this->do_negative_sign(); }=0A= =0A= int=0A= frac_digits() const=0A= { return this->do_frac_digits(); }=0A= =0A= pattern=0A= pos_format() const=0A= { return this->do_pos_format(); }=0A= =0A= pattern=0A= neg_format() const=0A= { return this->do_neg_format(); }=0A= =0A= protected:=0A= virtual=0A= ~moneypunct();=0A= =0A= virtual char_type=0A= do_decimal_point() const=0A= { return _M_decimal_point; }=0A= =0A= virtual char_type=0A= do_thousands_sep() const=0A= { return _M_thousands_sep; }=0A= =0A= virtual string=0A= do_grouping() const=0A= { return _M_grouping; }=0A= =0A= virtual string_type=0A= do_curr_symbol() const=0A= { return _M_curr_symbol; }=0A= =0A= virtual string_type=0A= do_positive_sign() const=0A= { return _M_positive_sign; }=0A= =0A= virtual string_type=0A= do_negative_sign() const=0A= { return _M_negative_sign; }=0A= =0A= virtual int=0A= do_frac_digits() const=0A= { return _M_frac_digits; }=0A= =0A= virtual pattern=0A= do_pos_format() const=0A= { return _M_pos_format; }=0A= =0A= virtual pattern=0A= do_neg_format() const=0A= { return _M_neg_format; }=0A= =0A= =0A= void=0A= _M_initialize_moneypunct(__c_locale __cloc =3D _S_c_locale);=0A= };=0A= =0A= template=0A= locale::id moneypunct<_CharT, _Intl>::id;=0A= =0A= template=0A= const bool moneypunct<_CharT, _Intl>::intl;=0A= =0A= template<>=0A= moneypunct::~moneypunct();=0A= =0A= template<>=0A= moneypunct::~moneypunct();=0A= =0A= template<>=0A= void=0A= moneypunct::_M_initialize_moneypunct(__c_locale __cloc);=0A= =0A= template<>=0A= void=0A= moneypunct::_M_initialize_moneypunct(__c_locale __cloc);=0A= =0A= =0A= template<>=0A= moneypunct::~moneypunct();=0A= =0A= template<>=0A= moneypunct::~moneypunct();=0A= =0A= template<>=0A= void=0A= moneypunct::_M_initialize_moneypunct(__c_locale = __cloc);=0A= =0A= template<>=0A= void=0A= moneypunct::_M_initialize_moneypunct(__c_locale = __cloc);=0A= =0A= =0A= template=0A= class moneypunct_byname : public moneypunct<_CharT, _Intl>=0A= {=0A= __c_locale _M_c_locale_moneypunct;=0A= =0A= public:=0A= typedef _CharT char_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= static const bool intl =3D _Intl;=0A= =0A= explicit=0A= moneypunct_byname(const char* __s, size_t __refs =3D 0)=0A= : moneypunct<_CharT, _Intl>(__refs)=0A= {=0A= _S_create_c_locale(_M_c_locale_moneypunct, __s);=0A= _M_initialize_moneypunct(_M_c_locale_moneypunct);=0A= }=0A= =0A= protected:=0A= virtual=0A= ~moneypunct_byname()=0A= { _S_destroy_c_locale(_M_c_locale_moneypunct); }=0A= };=0A= =0A= template=0A= const bool moneypunct_byname<_CharT, _Intl>::intl;=0A= =0A= template=0A= class money_get : public locale::facet=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef _InIter iter_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= static locale::id id;=0A= =0A= explicit=0A= money_get(size_t __refs =3D 0) : locale::facet(__refs) { }=0A= =0A= iter_type=0A= get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,=0A= ios_base::iostate& __err, long double& __units) const=0A= { return this->do_get(__s, __end, __intl, __io, __err, __units); }=0A= =0A= iter_type=0A= get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,=0A= ios_base::iostate& __err, string_type& __digits) const=0A= { return this->do_get(__s, __end, __intl, __io, __err, __digits); }=0A= =0A= protected:=0A= virtual=0A= ~money_get() { }=0A= =0A= virtual iter_type=0A= do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,=0A= ios_base::iostate& __err, long double& __units) const;=0A= =0A= virtual iter_type=0A= do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,=0A= ios_base::iostate& __err, string_type& __digits) const;=0A= };=0A= =0A= template=0A= locale::id money_get<_CharT, _InIter>::id;=0A= =0A= template=0A= class money_put : public locale::facet=0A= {=0A= public:=0A= typedef _CharT char_type;=0A= typedef _OutIter iter_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= static locale::id id;=0A= =0A= explicit=0A= money_put(size_t __refs =3D 0) : locale::facet(__refs) { }=0A= =0A= iter_type=0A= put(iter_type __s, bool __intl, ios_base& __io,=0A= char_type __fill, long double __units) const=0A= { return this->do_put(__s, __intl, __io, __fill, __units); }=0A= =0A= iter_type=0A= put(iter_type __s, bool __intl, ios_base& __io,=0A= char_type __fill, const string_type& __digits) const=0A= { return this->do_put(__s, __intl, __io, __fill, __digits); }=0A= =0A= protected:=0A= virtual=0A= ~money_put() { }=0A= =0A= virtual iter_type=0A= do_put(iter_type __s, bool __intl, ios_base& __io, char_type = __fill,=0A= long double __units) const;=0A= =0A= virtual iter_type=0A= do_put(iter_type __s, bool __intl, ios_base& __io, char_type = __fill,=0A= const string_type& __digits) const;=0A= };=0A= =0A= template=0A= locale::id money_put<_CharT, _OutIter>::id;=0A= =0A= =0A= struct messages_base=0A= {=0A= typedef int catalog;=0A= };=0A= =0A= template=0A= class messages : public locale::facet, public messages_base=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= protected:=0A= =0A= =0A= __c_locale _M_c_locale_messages;=0A= =0A= =0A= const char* _M_name_messages;=0A= =0A= =0A= public:=0A= static locale::id id;=0A= =0A= explicit=0A= messages(size_t __refs =3D 0)=0A= : locale::facet(__refs), _M_name_messages("C")=0A= { _M_c_locale_messages =3D _S_c_locale; }=0A= =0A= =0A= explicit=0A= messages(__c_locale __cloc, const char* __name, size_t __refs =3D = 0)=0A= : locale::facet(__refs)=0A= {=0A= _M_name_messages =3D __name;=0A= _M_c_locale_messages =3D _S_clone_c_locale(__cloc);=0A= }=0A= =0A= catalog=0A= open(const basic_string& __s, const locale& __loc) const=0A= { return this->do_open(__s, __loc); }=0A= =0A= =0A= catalog=0A= open(const basic_string&, const locale&, const char*) const;=0A= =0A= string_type=0A= get(catalog __c, int __set, int __msgid, const string_type& __s) = const=0A= { return this->do_get(__c, __set, __msgid, __s); }=0A= =0A= void=0A= close(catalog __c) const=0A= { return this->do_close(__c); }=0A= =0A= protected:=0A= virtual=0A= ~messages()=0A= {=0A= if (_M_c_locale_messages !=3D _S_c_locale)=0A= _S_destroy_c_locale(_M_c_locale_messages);=0A= }=0A= =0A= virtual catalog=0A= do_open(const basic_string&, const locale&) const;=0A= =0A= virtual string_type=0A= do_get(catalog, int, int, const string_type& __dfault) const;=0A= =0A= virtual void=0A= do_close(catalog) const;=0A= =0A= =0A= char*=0A= _M_convert_to_char(const string_type& __msg) const=0A= {=0A= =0A= return = reinterpret_cast(const_cast<_CharT*>(__msg.c_str()));=0A= }=0A= =0A= =0A= string_type=0A= _M_convert_from_char(char* __msg) const=0A= {=0A= =0A= size_t __len =3D char_traits::length(__msg) - 1;=0A= # 1705 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 3=0A= return string_type();=0A= }=0A= };=0A= =0A= template=0A= locale::id messages<_CharT>::id;=0A= =0A= =0A= template<>=0A= string=0A= messages::do_get(catalog, int, int, const string&) const;=0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/messages_members= .h" 1 3=0A= # 37 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/messages_members= .h" 3=0A= template=0A= typename messages<_CharT>::catalog=0A= messages<_CharT>::open(const basic_string& __s, const locale& = __loc,=0A= const char*) const=0A= { return this->do_open(__s, __loc); }=0A= =0A= =0A= template=0A= typename messages<_CharT>::catalog=0A= messages<_CharT>::do_open(const basic_string&, const locale&) = const=0A= { return 0; }=0A= =0A= template=0A= typename messages<_CharT>::string_type=0A= messages<_CharT>::do_get(catalog, int, int,=0A= const string_type& __dfault) const=0A= { return __dfault; }=0A= =0A= template=0A= void=0A= messages<_CharT>::do_close(catalog) const=0A= { }=0A= # 1719 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.h" 2 3=0A= =0A= template=0A= class messages_byname : public messages<_CharT>=0A= {=0A= public:=0A= typedef _CharT char_type;=0A= typedef basic_string<_CharT> string_type;=0A= =0A= explicit=0A= messages_byname(const char* __s, size_t __refs =3D 0)=0A= : messages<_CharT>(__refs)=0A= {=0A= _M_name_messages =3D __s;=0A= if (_M_c_locale_messages !=3D _S_c_locale)=0A= _S_destroy_c_locale(_M_c_locale_messages);=0A= _S_create_c_locale(_M_c_locale_messages, __s);=0A= }=0A= =0A= protected:=0A= virtual=0A= ~messages_byname()=0A= { }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= inline bool=0A= isspace(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::space, = __c); }=0A= =0A= template=0A= inline bool=0A= isprint(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::print, = __c); }=0A= =0A= template=0A= inline bool=0A= iscntrl(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::cntrl, = __c); }=0A= =0A= template=0A= inline bool=0A= isupper(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::upper, = __c); }=0A= =0A= template=0A= inline bool islower(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::lower, = __c); }=0A= =0A= template=0A= inline bool=0A= isalpha(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::alpha, = __c); }=0A= =0A= template=0A= inline bool=0A= isdigit(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::digit, = __c); }=0A= =0A= template=0A= inline bool=0A= ispunct(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::punct, = __c); }=0A= =0A= template=0A= inline bool=0A= isxdigit(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::xdigit, = __c); }=0A= =0A= template=0A= inline bool=0A= isalnum(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::alnum, = __c); }=0A= =0A= template=0A= inline bool=0A= isgraph(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).is(ctype_base::graph, = __c); }=0A= =0A= template=0A= inline _CharT=0A= toupper(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).toupper(__c); }=0A= =0A= template=0A= inline _CharT=0A= tolower(_CharT __c, const locale& __loc)=0A= { return use_facet >(__loc).tolower(__c); }=0A= }=0A= # 42 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= template=0A= class basic_ios : public ios_base=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef typename _Traits::int_type int_type;=0A= typedef typename _Traits::pos_type pos_type;=0A= typedef typename _Traits::off_type off_type;=0A= typedef _Traits traits_type;=0A= =0A= =0A= typedef ctype<_CharT> __ctype_type;=0A= typedef ostreambuf_iterator<_CharT, _Traits> __ostreambuf_iter;=0A= typedef num_put<_CharT, __ostreambuf_iter> __numput_type;=0A= typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter;=0A= typedef num_get<_CharT, __istreambuf_iter> __numget_type;=0A= =0A= =0A= protected:=0A= basic_ostream<_CharT, _Traits>* _M_tie;=0A= mutable char_type _M_fill;=0A= mutable bool _M_fill_init;=0A= basic_streambuf<_CharT, _Traits>* _M_streambuf;=0A= =0A= =0A= const __ctype_type* _M_fctype;=0A= =0A= const __numput_type* _M_fnumput;=0A= =0A= const __numget_type* _M_fnumget;=0A= =0A= public:=0A= operator void*() const=0A= { return this->fail() ? 0 : const_cast(this); }=0A= =0A= bool=0A= operator!() const=0A= { return this->fail(); }=0A= =0A= iostate=0A= rdstate() const=0A= { return _M_streambuf_state; }=0A= =0A= void=0A= clear(iostate __state =3D goodbit);=0A= =0A= void=0A= setstate(iostate __state)=0A= { this->clear(this->rdstate() | __state); }=0A= =0A= bool=0A= good() const=0A= { return this->rdstate() =3D=3D 0; }=0A= =0A= bool=0A= eof() const=0A= { return (this->rdstate() & eofbit) !=3D 0; }=0A= =0A= bool=0A= fail() const=0A= { return (this->rdstate() & (badbit | failbit)) !=3D 0; }=0A= =0A= bool=0A= bad() const=0A= { return (this->rdstate() & badbit) !=3D 0; }=0A= =0A= iostate=0A= exceptions() const=0A= { return _M_exception; }=0A= =0A= void=0A= exceptions(iostate __except)=0A= {=0A= _M_exception =3D __except;=0A= this->clear(_M_streambuf_state);=0A= }=0A= =0A= =0A= explicit=0A= basic_ios(basic_streambuf<_CharT, _Traits>* __sb) : ios_base()=0A= { this->init(__sb); }=0A= =0A= virtual=0A= ~basic_ios() { }=0A= =0A= =0A= basic_ostream<_CharT, _Traits>*=0A= tie() const=0A= { return _M_tie; }=0A= =0A= basic_ostream<_CharT, _Traits>*=0A= tie(basic_ostream<_CharT, _Traits>* __tiestr)=0A= {=0A= basic_ostream<_CharT, _Traits>* __old =3D _M_tie;=0A= _M_tie =3D __tiestr;=0A= return __old;=0A= }=0A= =0A= basic_streambuf<_CharT, _Traits>*=0A= rdbuf() const=0A= { return _M_streambuf; }=0A= =0A= basic_streambuf<_CharT, _Traits>*=0A= rdbuf(basic_streambuf<_CharT, _Traits>* __sb);=0A= =0A= basic_ios&=0A= copyfmt(const basic_ios& __rhs);=0A= =0A= char_type=0A= fill() const=0A= {=0A= if (!_M_fill_init)=0A= {=0A= _M_fill =3D this->widen(' ');=0A= _M_fill_init =3D true;=0A= }=0A= return _M_fill;=0A= }=0A= =0A= char_type=0A= fill(char_type __ch)=0A= {=0A= char_type __old =3D this->fill();=0A= _M_fill =3D __ch;=0A= return __old;=0A= }=0A= =0A= =0A= locale=0A= imbue(const locale& __loc);=0A= =0A= char=0A= narrow(char_type __c, char __dfault) const;=0A= =0A= char_type=0A= widen(char __c) const;=0A= =0A= protected:=0A= =0A= basic_ios() : ios_base()=0A= { }=0A= =0A= void=0A= init(basic_streambuf<_CharT, _Traits>* __sb);=0A= =0A= bool=0A= _M_check_facet(const locale::facet* __f) const=0A= {=0A= if (!__f)=0A= __throw_bad_cast();=0A= return true;=0A= }=0A= =0A= void=0A= _M_cache_facets(const locale& __loc);=0A= };=0A= }=0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.tcc" 1 3=0A= # 34 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.tcc" 3=0A= =0A= namespace std=0A= {=0A= template=0A= void=0A= basic_ios<_CharT, _Traits>::clear(iostate __state)=0A= {=0A= if (this->rdbuf())=0A= _M_streambuf_state =3D __state;=0A= else=0A= _M_streambuf_state =3D __state | badbit;=0A= if ((this->rdstate() & this->exceptions()))=0A= __throw_ios_failure("basic_ios::clear(iostate) caused = exception");=0A= }=0A= =0A= template=0A= basic_streambuf<_CharT, _Traits>*=0A= basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* = __sb)=0A= {=0A= basic_streambuf<_CharT, _Traits>* __old =3D _M_streambuf;=0A= _M_streambuf =3D __sb;=0A= this->clear();=0A= return __old;=0A= }=0A= =0A= template=0A= basic_ios<_CharT, _Traits>&=0A= basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)=0A= {=0A= =0A= =0A= =0A= =0A= _Words* __words =3D (__rhs._M_word_size <=3D _S_local_word_size) ?=0A= _M_local_word : new _Words[__rhs._M_word_size];=0A= =0A= =0A= _Callback_list* __cb =3D __rhs._M_callbacks;=0A= if (__cb)=0A= __cb->_M_add_reference();=0A= _M_call_callbacks(erase_event);=0A= if (_M_word !=3D _M_local_word)=0A= {=0A= delete [] _M_word;=0A= _M_word =3D 0;=0A= }=0A= _M_dispose_callbacks();=0A= =0A= _M_callbacks =3D __cb;=0A= for (int __i =3D 0; __i < __rhs._M_word_size; ++__i)=0A= __words[__i] =3D __rhs._M_word[__i];=0A= if (_M_word !=3D _M_local_word)=0A= {=0A= delete [] _M_word;=0A= _M_word =3D 0;=0A= }=0A= _M_word =3D __words;=0A= _M_word_size =3D __rhs._M_word_size;=0A= =0A= this->flags(__rhs.flags());=0A= this->width(__rhs.width());=0A= this->precision(__rhs.precision());=0A= this->tie(__rhs.tie());=0A= this->fill(__rhs.fill());=0A= =0A= this->exceptions(__rhs.exceptions());=0A= =0A= _M_call_callbacks(copyfmt_event);=0A= return *this;=0A= }=0A= =0A= template=0A= char=0A= basic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) = const=0A= {=0A= char __ret =3D __dfault;=0A= if (_M_check_facet(_M_fctype))=0A= __ret =3D _M_fctype->narrow(__c, __dfault);=0A= return __ret;=0A= }=0A= =0A= template=0A= _CharT=0A= basic_ios<_CharT, _Traits>::widen(char __c) const=0A= {=0A= char_type __ret =3D char_type();=0A= if (_M_check_facet(_M_fctype))=0A= __ret =3D _M_fctype->widen(__c);=0A= return __ret;=0A= }=0A= =0A= =0A= template=0A= locale=0A= basic_ios<_CharT, _Traits>::imbue(const locale& __loc)=0A= {=0A= locale __old(this->getloc());=0A= ios_base::imbue(__loc);=0A= _M_cache_facets(__loc);=0A= if (this->rdbuf() !=3D 0)=0A= this->rdbuf()->pubimbue(__loc);=0A= return __old;=0A= }=0A= =0A= template=0A= void=0A= basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* = __sb)=0A= {=0A= =0A= ios_base::_M_init();=0A= _M_cache_facets(_M_ios_locale);=0A= _M_tie =3D 0;=0A= # 159 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.tcc" 3=0A= _M_fill =3D 0;=0A= _M_fill_init =3D false;=0A= =0A= _M_exception =3D goodbit;=0A= _M_streambuf =3D __sb;=0A= _M_streambuf_state =3D __sb ? goodbit : badbit;=0A= }=0A= =0A= template=0A= void=0A= basic_ios<_CharT, _Traits>::_M_cache_facets(const locale& __loc)=0A= {=0A= if (has_facet<__ctype_type>(__loc))=0A= _M_fctype =3D &use_facet<__ctype_type>(__loc);=0A= else=0A= _M_fctype =3D 0;=0A= =0A= if (has_facet<__numput_type>(__loc))=0A= _M_fnumput =3D &use_facet<__numput_type>(__loc);=0A= else=0A= _M_fnumput =3D 0;=0A= if (has_facet<__numget_type>(__loc))=0A= _M_fnumget =3D &use_facet<__numget_type>(__loc);=0A= else=0A= _M_fnumget =3D 0;=0A= }=0A= =0A= =0A= =0A= =0A= extern template class basic_ios;=0A= extern template class basic_ios;=0A= }=0A= # 208 "/usr/local/gcc3.1/include/g++-v3/bits/basic_ios.h" 2 3=0A= # 52 "/usr/local/gcc3.1/include/g++-v3/ios" 2 3=0A= # 46 "/usr/local/gcc3.1/include/g++-v3/ostream" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= template=0A= class basic_ostream : virtual public basic_ios<_CharT, _Traits>=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef typename _Traits::int_type int_type;=0A= typedef typename _Traits::pos_type pos_type;=0A= typedef typename _Traits::off_type off_type;=0A= typedef _Traits traits_type;=0A= =0A= =0A= typedef basic_streambuf<_CharT, _Traits> __streambuf_type;=0A= typedef basic_ios<_CharT, _Traits> __ios_type;=0A= typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A= typedef ostreambuf_iterator<_CharT, _Traits> __ostreambuf_iter;=0A= typedef num_put<_CharT, __ostreambuf_iter> __numput_type;=0A= typedef ctype<_CharT> __ctype_type;=0A= =0A= =0A= explicit=0A= basic_ostream(__streambuf_type* __sb)=0A= { this->init(__sb); }=0A= =0A= virtual=0A= ~basic_ostream() { }=0A= =0A= =0A= class sentry;=0A= friend class sentry;=0A= =0A= =0A= =0A= __ostream_type&=0A= operator<<(__ostream_type& (*__pf)(__ostream_type&));=0A= =0A= __ostream_type&=0A= operator<<(__ios_type& (*__pf)(__ios_type&));=0A= =0A= __ostream_type&=0A= operator<<(ios_base& (*__pf) (ios_base&));=0A= =0A= =0A= __ostream_type&=0A= operator<<(long __n);=0A= =0A= __ostream_type&=0A= operator<<(unsigned long __n);=0A= =0A= __ostream_type&=0A= operator<<(bool __n);=0A= =0A= __ostream_type&=0A= operator<<(short __n)=0A= {=0A= ios_base::fmtflags __fmt =3D this->flags() & ios_base::basefield;=0A= if (__fmt & ios_base::oct || __fmt & ios_base::hex)=0A= return this->operator<<(static_cast=0A= (static_cast(__n)));=0A= else=0A= return this->operator<<(static_cast(__n));=0A= }=0A= =0A= __ostream_type&=0A= operator<<(unsigned short __n)=0A= { return this->operator<<(static_cast(__n)); }=0A= =0A= __ostream_type&=0A= operator<<(int __n)=0A= {=0A= ios_base::fmtflags __fmt =3D this->flags() & ios_base::basefield;=0A= if (__fmt & ios_base::oct || __fmt & ios_base::hex)=0A= return this->operator<<(static_cast=0A= (static_cast(__n)));=0A= else=0A= return this->operator<<(static_cast(__n));=0A= }=0A= =0A= __ostream_type&=0A= operator<<(unsigned int __n)=0A= { return this->operator<<(static_cast(__n)); }=0A= =0A= =0A= __ostream_type&=0A= operator<<(long long __n);=0A= =0A= __ostream_type&=0A= operator<<(unsigned long long __n);=0A= =0A= =0A= __ostream_type&=0A= operator<<(double __f);=0A= =0A= __ostream_type&=0A= operator<<(float __f)=0A= { return this->operator<<(static_cast(__f)); }=0A= =0A= __ostream_type&=0A= operator<<(long double __f);=0A= =0A= __ostream_type&=0A= operator<<(const void* __p);=0A= =0A= __ostream_type&=0A= operator<<(__streambuf_type* __sb);=0A= =0A= =0A= __ostream_type&=0A= put(char_type __c);=0A= =0A= __ostream_type&=0A= write(const char_type* __s, streamsize __n);=0A= =0A= __ostream_type&=0A= flush();=0A= =0A= =0A= pos_type=0A= tellp();=0A= =0A= __ostream_type&=0A= seekp(pos_type);=0A= =0A= __ostream_type&=0A= seekp(off_type, ios_base::seekdir);=0A= };=0A= =0A= =0A= template =0A= class basic_ostream<_CharT, _Traits>::sentry=0A= {=0A= =0A= bool _M_ok;=0A= basic_ostream<_CharT,_Traits>& _M_os;=0A= =0A= public:=0A= explicit=0A= sentry(basic_ostream<_CharT,_Traits>& __os);=0A= =0A= ~sentry()=0A= {=0A= =0A= if (_M_os.flags() & ios_base::unitbuf && !uncaught_exception())=0A= {=0A= =0A= if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() =3D=3D -1)=0A= _M_os.setstate(ios_base::badbit);=0A= }=0A= }=0A= =0A= operator bool()=0A= { return _M_ok; }=0A= };=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c);=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)=0A= { return (__out << __out.widen(__c)); }=0A= =0A= =0A= template =0A= basic_ostream&=0A= operator<<(basic_ostream& __out, char __c);=0A= =0A= =0A= template=0A= basic_ostream&=0A= operator<<(basic_ostream& __out, signed char __c)=0A= { return (__out << static_cast(__c)); }=0A= =0A= template=0A= basic_ostream&=0A= operator<<(basic_ostream& __out, unsigned char __c)=0A= { return (__out << static_cast(__c)); }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s);=0A= =0A= template=0A= basic_ostream<_CharT, _Traits> &=0A= operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s);=0A= =0A= =0A= template=0A= basic_ostream&=0A= operator<<(basic_ostream& __out, const char* __s);=0A= =0A= =0A= template=0A= basic_ostream&=0A= operator<<(basic_ostream& __out, const signed char* = __s)=0A= { return (__out << reinterpret_cast(__s)); }=0A= =0A= template=0A= basic_ostream &=0A= operator<<(basic_ostream& __out, const unsigned char* = __s)=0A= { return (__out << reinterpret_cast(__s)); }=0A= =0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= endl(basic_ostream<_CharT, _Traits>& __os)=0A= { return flush(__os.put(__os.widen('\n'))); }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= ends(basic_ostream<_CharT, _Traits>& __os)=0A= { return __os.put(_CharT()); }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= flush(basic_ostream<_CharT, _Traits>& __os)=0A= { return __os.flush(); }=0A= =0A= }=0A= =0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/ostream.tcc" 1 3=0A= # 36 "/usr/local/gcc3.1/include/g++-v3/bits/ostream.tcc" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/locale" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/locale" 3=0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 1 3=0A= # 37 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cerrno" 1 3=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/cerrno" 3=0A= =0A= # 1 "/usr/include/errno.h" 1 3=0A= # 32 "/usr/include/errno.h" 3=0A= extern "C" {=0A= =0A= =0A= =0A= # 1 "/usr/include/bits/errno.h" 1 3=0A= # 25 "/usr/include/bits/errno.h" 3=0A= # 1 "/usr/include/linux/errno.h" 1 3=0A= =0A= =0A= =0A= # 1 "/usr/include/asm/errno.h" 1 3=0A= # 5 "/usr/include/linux/errno.h" 2 3=0A= # 26 "/usr/include/bits/errno.h" 2 3=0A= # 36 "/usr/include/bits/errno.h" 3=0A= extern int errno;=0A= =0A= =0A= extern int *__errno_location (void) throw () __attribute__ ((__const__));=0A= # 37 "/usr/include/errno.h" 2 3=0A= # 55 "/usr/include/errno.h" 3=0A= extern char *program_invocation_name, *program_invocation_short_name;=0A= =0A= =0A= =0A= }=0A= # 69 "/usr/include/errno.h" 3=0A= typedef int error_t;=0A= # 49 "/usr/local/gcc3.1/include/g++-v3/cerrno" 2 3=0A= # 39 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 2 3=0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/cmath" 1 3=0A= # 48 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A= =0A= =0A= =0A= # 1 "/usr/include/math.h" 1 3=0A= # 29 "/usr/include/math.h" 3=0A= extern "C" {=0A= =0A= =0A= =0A= # 1 "/usr/include/bits/huge_val.h" 1 3=0A= # 34 "/usr/include/math.h" 2 3=0A= =0A= =0A= =0A= # 1 "/usr/include/bits/nan.h" 1 3=0A= # 38 "/usr/include/math.h" 2 3=0A= =0A= =0A= # 1 "/usr/include/bits/mathdef.h" 1 3=0A= # 29 "/usr/include/bits/mathdef.h" 3=0A= typedef long double float_t;=0A= =0A= typedef long double double_t;=0A= # 41 "/usr/include/math.h" 2 3=0A= # 63 "/usr/include/math.h" 3=0A= # 1 "/usr/include/bits/mathcalls.h" 1 3=0A= # 54 "/usr/include/bits/mathcalls.h" 3=0A= extern double acos (double __x) throw (); extern double __acos (double = __x) throw ();=0A= =0A= extern double asin (double __x) throw (); extern double __asin (double = __x) throw ();=0A= =0A= extern double atan (double __x) throw (); extern double __atan (double = __x) throw ();=0A= =0A= extern double atan2 (double __y, double __x) throw (); extern double = __atan2 (double __y, double __x) throw ();=0A= =0A= =0A= extern double cos (double __x) throw (); extern double __cos (double = __x) throw ();=0A= =0A= extern double sin (double __x) throw (); extern double __sin (double = __x) throw ();=0A= =0A= extern double tan (double __x) throw (); extern double __tan (double = __x) throw ();=0A= =0A= =0A= =0A= extern void sincos (double __x, double *__sinx, double *__cosx) throw = (); extern void __sincos (double __x, double *__sinx, double *__cosx) = throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern double cosh (double __x) throw (); extern double __cosh (double = __x) throw ();=0A= =0A= extern double sinh (double __x) throw (); extern double __sinh (double = __x) throw ();=0A= =0A= extern double tanh (double __x) throw (); extern double __tanh (double = __x) throw ();=0A= =0A= =0A= =0A= extern double acosh (double __x) throw (); extern double __acosh (double = __x) throw ();=0A= =0A= extern double asinh (double __x) throw (); extern double __asinh (double = __x) throw ();=0A= =0A= extern double atanh (double __x) throw (); extern double __atanh (double = __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern double exp (double __x) throw (); extern double __exp (double = __x) throw ();=0A= =0A= =0A= =0A= extern double exp10 (double __x) throw (); extern double __exp10 (double = __x) throw ();=0A= =0A= extern double pow10 (double __x) throw (); extern double __pow10 (double = __x) throw ();=0A= =0A= =0A= =0A= extern double frexp (double __x, int *__exponent) throw (); extern = double __frexp (double __x, int *__exponent) throw ();=0A= =0A= =0A= extern double ldexp (double __x, int __exponent) throw (); extern double = __ldexp (double __x, int __exponent) throw ();=0A= =0A= =0A= extern double log (double __x) throw (); extern double __log (double = __x) throw ();=0A= =0A= =0A= extern double log10 (double __x) throw (); extern double __log10 (double = __x) throw ();=0A= =0A= =0A= extern double modf (double __x, double *__iptr) throw (); extern double = __modf (double __x, double *__iptr) throw ();=0A= =0A= =0A= =0A= extern double expm1 (double __x) throw (); extern double __expm1 (double = __x) throw ();=0A= =0A= =0A= extern double log1p (double __x) throw (); extern double __log1p (double = __x) throw ();=0A= =0A= =0A= extern double logb (double __x) throw (); extern double __logb (double = __x) throw ();=0A= =0A= =0A= =0A= =0A= extern double exp2 (double __x) throw (); extern double __exp2 (double = __x) throw ();=0A= =0A= =0A= extern double log2 (double __x) throw (); extern double __log2 (double = __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern double pow (double __x, double __y) throw (); extern double __pow = (double __x, double __y) throw ();=0A= =0A= =0A= extern double sqrt (double __x) throw (); extern double __sqrt (double = __x) throw ();=0A= =0A= =0A= =0A= extern double hypot (double __x, double __y) throw (); extern double = __hypot (double __x, double __y) throw ();=0A= =0A= =0A= =0A= =0A= extern double cbrt (double __x) throw (); extern double __cbrt (double = __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern double ceil (double __x) throw () __attribute__ ((__const__)); = extern double __ceil (double __x) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern double fabs (double __x) throw () __attribute__ ((__const__)); = extern double __fabs (double __x) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern double floor (double __x) throw () __attribute__ ((__const__)); = extern double __floor (double __x) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern double fmod (double __x, double __y) throw (); extern double = __fmod (double __x, double __y) throw ();=0A= =0A= =0A= =0A= =0A= extern int __isinf (double __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern int __finite (double __value) throw () __attribute__ = ((__const__));=0A= =0A= =0A= =0A= =0A= extern int isinf (double __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern int finite (double __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern double drem (double __x, double __y) throw (); extern double = __drem (double __x, double __y) throw ();=0A= =0A= =0A= =0A= extern double significand (double __x) throw (); extern double = __significand (double __x) throw ();=0A= =0A= =0A= =0A= =0A= extern double copysign (double __x, double __y) throw () __attribute__ = ((__const__)); extern double __copysign (double __x, double __y) throw = () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern double nan (__const char *__tagb) throw () __attribute__ = ((__const__)); extern double __nan (__const char *__tagb) throw () = __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern int __isnan (double __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= extern int isnan (double __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern double j0 (double) throw (); extern double __j0 (double) throw ();=0A= extern double j1 (double) throw (); extern double __j1 (double) throw ();=0A= extern double jn (int, double) throw (); extern double __jn (int, = double) throw ();=0A= extern double y0 (double) throw (); extern double __y0 (double) throw ();=0A= extern double y1 (double) throw (); extern double __y1 (double) throw ();=0A= extern double yn (int, double) throw (); extern double __yn (int, = double) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern double erf (double) throw (); extern double __erf (double) throw = ();=0A= extern double erfc (double) throw (); extern double __erfc (double) = throw ();=0A= extern double lgamma (double) throw (); extern double __lgamma (double) = throw ();=0A= =0A= =0A= =0A= extern double tgamma (double) throw (); extern double __tgamma (double) = throw ();=0A= =0A= =0A= =0A= =0A= extern double gamma (double) throw (); extern double __gamma (double) = throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern double lgamma_r (double, int *__signgamp) throw (); extern double = __lgamma_r (double, int *__signgamp) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern double rint (double __x) throw (); extern double __rint (double = __x) throw ();=0A= =0A= =0A= extern double nextafter (double __x, double __y) throw () __attribute__ = ((__const__)); extern double __nextafter (double __x, double __y) throw = () __attribute__ ((__const__));=0A= =0A= extern double nexttoward (double __x, long double __y) throw () = __attribute__ ((__const__)); extern double __nexttoward (double __x, = long double __y) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= extern double remainder (double __x, double __y) throw (); extern double = __remainder (double __x, double __y) throw ();=0A= =0A= =0A= =0A= extern double scalb (double __x, double __n) throw (); extern double = __scalb (double __x, double __n) throw ();=0A= =0A= =0A= =0A= =0A= extern double scalbn (double __x, int __n) throw (); extern double = __scalbn (double __x, int __n) throw ();=0A= =0A= =0A= =0A= extern int ilogb (double __x) throw (); extern int __ilogb (double __x) = throw ();=0A= =0A= =0A= =0A= =0A= extern double scalbln (double __x, long int __n) throw (); extern double = __scalbln (double __x, long int __n) throw ();=0A= =0A= =0A= =0A= extern double nearbyint (double __x) throw (); extern double __nearbyint = (double __x) throw ();=0A= =0A= =0A= =0A= extern double round (double __x) throw (); extern double __round (double = __x) throw ();=0A= =0A= =0A= =0A= extern double trunc (double __x) throw () __attribute__ ((__const__)); = extern double __trunc (double __x) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern double remquo (double __x, double __y, int *__quo) throw (); = extern double __remquo (double __x, double __y, int *__quo) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long int lrint (double __x) throw (); extern long int __lrint = (double __x) throw ();=0A= extern long long int llrint (double __x) throw (); extern long long int = __llrint (double __x) throw ();=0A= =0A= =0A= =0A= extern long int lround (double __x) throw (); extern long int __lround = (double __x) throw ();=0A= extern long long int llround (double __x) throw (); extern long long int = __llround (double __x) throw ();=0A= =0A= =0A= =0A= extern double fdim (double __x, double __y) throw (); extern double = __fdim (double __x, double __y) throw ();=0A= =0A= =0A= extern double fmax (double __x, double __y) throw (); extern double = __fmax (double __x, double __y) throw ();=0A= =0A= =0A= extern double fmin (double __x, double __y) throw (); extern double = __fmin (double __x, double __y) throw ();=0A= =0A= =0A= =0A= extern int __fpclassify (double __value) throw ()=0A= __attribute__ ((__const__));=0A= =0A= =0A= extern int __signbit (double __value) throw ()=0A= __attribute__ ((__const__));=0A= =0A= =0A= =0A= extern double fma (double __x, double __y, double __z) throw (); extern = double __fma (double __x, double __y, double __z) throw ();=0A= # 64 "/usr/include/math.h" 2 3=0A= # 82 "/usr/include/math.h" 3=0A= # 1 "/usr/include/bits/mathcalls.h" 1 3=0A= # 54 "/usr/include/bits/mathcalls.h" 3=0A= extern float acosf (float __x) throw (); extern float __acosf (float = __x) throw ();=0A= =0A= extern float asinf (float __x) throw (); extern float __asinf (float = __x) throw ();=0A= =0A= extern float atanf (float __x) throw (); extern float __atanf (float = __x) throw ();=0A= =0A= extern float atan2f (float __y, float __x) throw (); extern float = __atan2f (float __y, float __x) throw ();=0A= =0A= =0A= extern float cosf (float __x) throw (); extern float __cosf (float __x) = throw ();=0A= =0A= extern float sinf (float __x) throw (); extern float __sinf (float __x) = throw ();=0A= =0A= extern float tanf (float __x) throw (); extern float __tanf (float __x) = throw ();=0A= =0A= =0A= =0A= extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); = extern void __sincosf (float __x, float *__sinx, float *__cosx) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern float coshf (float __x) throw (); extern float __coshf (float = __x) throw ();=0A= =0A= extern float sinhf (float __x) throw (); extern float __sinhf (float = __x) throw ();=0A= =0A= extern float tanhf (float __x) throw (); extern float __tanhf (float = __x) throw ();=0A= =0A= =0A= =0A= extern float acoshf (float __x) throw (); extern float __acoshf (float = __x) throw ();=0A= =0A= extern float asinhf (float __x) throw (); extern float __asinhf (float = __x) throw ();=0A= =0A= extern float atanhf (float __x) throw (); extern float __atanhf (float = __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern float expf (float __x) throw (); extern float __expf (float __x) = throw ();=0A= =0A= =0A= =0A= extern float exp10f (float __x) throw (); extern float __exp10f (float = __x) throw ();=0A= =0A= extern float pow10f (float __x) throw (); extern float __pow10f (float = __x) throw ();=0A= =0A= =0A= =0A= extern float frexpf (float __x, int *__exponent) throw (); extern float = __frexpf (float __x, int *__exponent) throw ();=0A= =0A= =0A= extern float ldexpf (float __x, int __exponent) throw (); extern float = __ldexpf (float __x, int __exponent) throw ();=0A= =0A= =0A= extern float logf (float __x) throw (); extern float __logf (float __x) = throw ();=0A= =0A= =0A= extern float log10f (float __x) throw (); extern float __log10f (float = __x) throw ();=0A= =0A= =0A= extern float modff (float __x, float *__iptr) throw (); extern float = __modff (float __x, float *__iptr) throw ();=0A= =0A= =0A= =0A= extern float expm1f (float __x) throw (); extern float __expm1f (float = __x) throw ();=0A= =0A= =0A= extern float log1pf (float __x) throw (); extern float __log1pf (float = __x) throw ();=0A= =0A= =0A= extern float logbf (float __x) throw (); extern float __logbf (float = __x) throw ();=0A= =0A= =0A= =0A= =0A= extern float exp2f (float __x) throw (); extern float __exp2f (float = __x) throw ();=0A= =0A= =0A= extern float log2f (float __x) throw (); extern float __log2f (float = __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern float powf (float __x, float __y) throw (); extern float __powf = (float __x, float __y) throw ();=0A= =0A= =0A= extern float sqrtf (float __x) throw (); extern float __sqrtf (float = __x) throw ();=0A= =0A= =0A= =0A= extern float hypotf (float __x, float __y) throw (); extern float = __hypotf (float __x, float __y) throw ();=0A= =0A= =0A= =0A= =0A= extern float cbrtf (float __x) throw (); extern float __cbrtf (float = __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern float ceilf (float __x) throw () __attribute__ ((__const__)); = extern float __ceilf (float __x) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern float fabsf (float __x) throw () __attribute__ ((__const__)); = extern float __fabsf (float __x) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern float floorf (float __x) throw () __attribute__ ((__const__)); = extern float __floorf (float __x) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern float fmodf (float __x, float __y) throw (); extern float __fmodf = (float __x, float __y) throw ();=0A= =0A= =0A= =0A= =0A= extern int __isinff (float __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern int __finitef (float __value) throw () __attribute__ = ((__const__));=0A= =0A= =0A= =0A= =0A= extern int isinff (float __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern int finitef (float __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern float dremf (float __x, float __y) throw (); extern float __dremf = (float __x, float __y) throw ();=0A= =0A= =0A= =0A= extern float significandf (float __x) throw (); extern float = __significandf (float __x) throw ();=0A= =0A= =0A= =0A= =0A= extern float copysignf (float __x, float __y) throw () __attribute__ = ((__const__)); extern float __copysignf (float __x, float __y) throw () = __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern float nanf (__const char *__tagb) throw () __attribute__ = ((__const__)); extern float __nanf (__const char *__tagb) throw () = __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern int __isnanf (float __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= extern int isnanf (float __value) throw () __attribute__ ((__const__));=0A= =0A= =0A= extern float j0f (float) throw (); extern float __j0f (float) throw ();=0A= extern float j1f (float) throw (); extern float __j1f (float) throw ();=0A= extern float jnf (int, float) throw (); extern float __jnf (int, float) = throw ();=0A= extern float y0f (float) throw (); extern float __y0f (float) throw ();=0A= extern float y1f (float) throw (); extern float __y1f (float) throw ();=0A= extern float ynf (int, float) throw (); extern float __ynf (int, float) = throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern float erff (float) throw (); extern float __erff (float) throw ();=0A= extern float erfcf (float) throw (); extern float __erfcf (float) throw = ();=0A= extern float lgammaf (float) throw (); extern float __lgammaf (float) = throw ();=0A= =0A= =0A= =0A= extern float tgammaf (float) throw (); extern float __tgammaf (float) = throw ();=0A= =0A= =0A= =0A= =0A= extern float gammaf (float) throw (); extern float __gammaf (float) = throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern float lgammaf_r (float, int *__signgamp) throw (); extern float = __lgammaf_r (float, int *__signgamp) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern float rintf (float __x) throw (); extern float __rintf (float = __x) throw ();=0A= =0A= =0A= extern float nextafterf (float __x, float __y) throw () __attribute__ = ((__const__)); extern float __nextafterf (float __x, float __y) throw () = __attribute__ ((__const__));=0A= =0A= extern float nexttowardf (float __x, long double __y) throw () = __attribute__ ((__const__)); extern float __nexttowardf (float __x, long = double __y) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= extern float remainderf (float __x, float __y) throw (); extern float = __remainderf (float __x, float __y) throw ();=0A= =0A= =0A= =0A= extern float scalbf (float __x, float __n) throw (); extern float = __scalbf (float __x, float __n) throw ();=0A= =0A= =0A= =0A= =0A= extern float scalbnf (float __x, int __n) throw (); extern float = __scalbnf (float __x, int __n) throw ();=0A= =0A= =0A= =0A= extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) = throw ();=0A= =0A= =0A= =0A= =0A= extern float scalblnf (float __x, long int __n) throw (); extern float = __scalblnf (float __x, long int __n) throw ();=0A= =0A= =0A= =0A= extern float nearbyintf (float __x) throw (); extern float __nearbyintf = (float __x) throw ();=0A= =0A= =0A= =0A= extern float roundf (float __x) throw (); extern float __roundf (float = __x) throw ();=0A= =0A= =0A= =0A= extern float truncf (float __x) throw () __attribute__ ((__const__)); = extern float __truncf (float __x) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern float remquof (float __x, float __y, int *__quo) throw (); extern = float __remquof (float __x, float __y, int *__quo) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long int lrintf (float __x) throw (); extern long int __lrintf = (float __x) throw ();=0A= extern long long int llrintf (float __x) throw (); extern long long int = __llrintf (float __x) throw ();=0A= =0A= =0A= =0A= extern long int lroundf (float __x) throw (); extern long int __lroundf = (float __x) throw ();=0A= extern long long int llroundf (float __x) throw (); extern long long int = __llroundf (float __x) throw ();=0A= =0A= =0A= =0A= extern float fdimf (float __x, float __y) throw (); extern float __fdimf = (float __x, float __y) throw ();=0A= =0A= =0A= extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf = (float __x, float __y) throw ();=0A= =0A= =0A= extern float fminf (float __x, float __y) throw (); extern float __fminf = (float __x, float __y) throw ();=0A= =0A= =0A= =0A= extern int __fpclassifyf (float __value) throw ()=0A= __attribute__ ((__const__));=0A= =0A= =0A= extern int __signbitf (float __value) throw ()=0A= __attribute__ ((__const__));=0A= =0A= =0A= =0A= extern float fmaf (float __x, float __y, float __z) throw (); extern = float __fmaf (float __x, float __y, float __z) throw ();=0A= # 83 "/usr/include/math.h" 2 3=0A= # 99 "/usr/include/math.h" 3=0A= # 1 "/usr/include/bits/mathcalls.h" 1 3=0A= # 54 "/usr/include/bits/mathcalls.h" 3=0A= extern long double acosl (long double __x) throw (); extern long double = __acosl (long double __x) throw ();=0A= =0A= extern long double asinl (long double __x) throw (); extern long double = __asinl (long double __x) throw ();=0A= =0A= extern long double atanl (long double __x) throw (); extern long double = __atanl (long double __x) throw ();=0A= =0A= extern long double atan2l (long double __y, long double __x) throw (); = extern long double __atan2l (long double __y, long double __x) throw ();=0A= =0A= =0A= extern long double cosl (long double __x) throw (); extern long double = __cosl (long double __x) throw ();=0A= =0A= extern long double sinl (long double __x) throw (); extern long double = __sinl (long double __x) throw ();=0A= =0A= extern long double tanl (long double __x) throw (); extern long double = __tanl (long double __x) throw ();=0A= =0A= =0A= =0A= extern void sincosl (long double __x, long double *__sinx, long double = *__cosx) throw (); extern void __sincosl (long double __x, long double = *__sinx, long double *__cosx) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long double coshl (long double __x) throw (); extern long double = __coshl (long double __x) throw ();=0A= =0A= extern long double sinhl (long double __x) throw (); extern long double = __sinhl (long double __x) throw ();=0A= =0A= extern long double tanhl (long double __x) throw (); extern long double = __tanhl (long double __x) throw ();=0A= =0A= =0A= =0A= extern long double acoshl (long double __x) throw (); extern long double = __acoshl (long double __x) throw ();=0A= =0A= extern long double asinhl (long double __x) throw (); extern long double = __asinhl (long double __x) throw ();=0A= =0A= extern long double atanhl (long double __x) throw (); extern long double = __atanhl (long double __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern long double expl (long double __x) throw (); extern long double = __expl (long double __x) throw ();=0A= =0A= =0A= =0A= extern long double exp10l (long double __x) throw (); extern long double = __exp10l (long double __x) throw ();=0A= =0A= extern long double pow10l (long double __x) throw (); extern long double = __pow10l (long double __x) throw ();=0A= =0A= =0A= =0A= extern long double frexpl (long double __x, int *__exponent) throw (); = extern long double __frexpl (long double __x, int *__exponent) throw ();=0A= =0A= =0A= extern long double ldexpl (long double __x, int __exponent) throw (); = extern long double __ldexpl (long double __x, int __exponent) throw ();=0A= =0A= =0A= extern long double logl (long double __x) throw (); extern long double = __logl (long double __x) throw ();=0A= =0A= =0A= extern long double log10l (long double __x) throw (); extern long double = __log10l (long double __x) throw ();=0A= =0A= =0A= extern long double modfl (long double __x, long double *__iptr) throw = (); extern long double __modfl (long double __x, long double *__iptr) = throw ();=0A= =0A= =0A= =0A= extern long double expm1l (long double __x) throw (); extern long double = __expm1l (long double __x) throw ();=0A= =0A= =0A= extern long double log1pl (long double __x) throw (); extern long double = __log1pl (long double __x) throw ();=0A= =0A= =0A= extern long double logbl (long double __x) throw (); extern long double = __logbl (long double __x) throw ();=0A= =0A= =0A= =0A= =0A= extern long double exp2l (long double __x) throw (); extern long double = __exp2l (long double __x) throw ();=0A= =0A= =0A= extern long double log2l (long double __x) throw (); extern long double = __log2l (long double __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long double powl (long double __x, long double __y) throw (); = extern long double __powl (long double __x, long double __y) throw ();=0A= =0A= =0A= extern long double sqrtl (long double __x) throw (); extern long double = __sqrtl (long double __x) throw ();=0A= =0A= =0A= =0A= extern long double hypotl (long double __x, long double __y) throw (); = extern long double __hypotl (long double __x, long double __y) throw ();=0A= =0A= =0A= =0A= =0A= extern long double cbrtl (long double __x) throw (); extern long double = __cbrtl (long double __x) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long double ceill (long double __x) throw () __attribute__ = ((__const__)); extern long double __ceill (long double __x) throw () = __attribute__ ((__const__));=0A= =0A= =0A= extern long double fabsl (long double __x) throw () __attribute__ = ((__const__)); extern long double __fabsl (long double __x) throw () = __attribute__ ((__const__));=0A= =0A= =0A= extern long double floorl (long double __x) throw () __attribute__ = ((__const__)); extern long double __floorl (long double __x) throw () = __attribute__ ((__const__));=0A= =0A= =0A= extern long double fmodl (long double __x, long double __y) throw (); = extern long double __fmodl (long double __x, long double __y) throw ();=0A= =0A= =0A= =0A= =0A= extern int __isinfl (long double __value) throw () __attribute__ = ((__const__));=0A= =0A= =0A= extern int __finitel (long double __value) throw () __attribute__ = ((__const__));=0A= =0A= =0A= =0A= =0A= extern int isinfl (long double __value) throw () __attribute__ = ((__const__));=0A= =0A= =0A= extern int finitel (long double __value) throw () __attribute__ = ((__const__));=0A= =0A= =0A= extern long double dreml (long double __x, long double __y) throw (); = extern long double __dreml (long double __x, long double __y) throw ();=0A= =0A= =0A= =0A= extern long double significandl (long double __x) throw (); extern long = double __significandl (long double __x) throw ();=0A= =0A= =0A= =0A= =0A= extern long double copysignl (long double __x, long double __y) throw () = __attribute__ ((__const__)); extern long double __copysignl (long double = __x, long double __y) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern long double nanl (__const char *__tagb) throw () __attribute__ = ((__const__)); extern long double __nanl (__const char *__tagb) throw () = __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern int __isnanl (long double __value) throw () __attribute__ = ((__const__));=0A= =0A= =0A= =0A= extern int isnanl (long double __value) throw () __attribute__ = ((__const__));=0A= =0A= =0A= extern long double j0l (long double) throw (); extern long double __j0l = (long double) throw ();=0A= extern long double j1l (long double) throw (); extern long double __j1l = (long double) throw ();=0A= extern long double jnl (int, long double) throw (); extern long double = __jnl (int, long double) throw ();=0A= extern long double y0l (long double) throw (); extern long double __y0l = (long double) throw ();=0A= extern long double y1l (long double) throw (); extern long double __y1l = (long double) throw ();=0A= extern long double ynl (int, long double) throw (); extern long double = __ynl (int, long double) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern long double erfl (long double) throw (); extern long double = __erfl (long double) throw ();=0A= extern long double erfcl (long double) throw (); extern long double = __erfcl (long double) throw ();=0A= extern long double lgammal (long double) throw (); extern long double = __lgammal (long double) throw ();=0A= =0A= =0A= =0A= extern long double tgammal (long double) throw (); extern long double = __tgammal (long double) throw ();=0A= =0A= =0A= =0A= =0A= extern long double gammal (long double) throw (); extern long double = __gammal (long double) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long double lgammal_r (long double, int *__signgamp) throw (); = extern long double __lgammal_r (long double, int *__signgamp) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long double rintl (long double __x) throw (); extern long double = __rintl (long double __x) throw ();=0A= =0A= =0A= extern long double nextafterl (long double __x, long double __y) throw = () __attribute__ ((__const__)); extern long double __nextafterl (long = double __x, long double __y) throw () __attribute__ ((__const__));=0A= =0A= extern long double nexttowardl (long double __x, long double __y) throw = () __attribute__ ((__const__)); extern long double __nexttowardl (long = double __x, long double __y) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= extern long double remainderl (long double __x, long double __y) throw = (); extern long double __remainderl (long double __x, long double __y) = throw ();=0A= =0A= =0A= =0A= extern long double scalbl (long double __x, long double __n) throw (); = extern long double __scalbl (long double __x, long double __n) throw ();=0A= =0A= =0A= =0A= =0A= extern long double scalbnl (long double __x, int __n) throw (); extern = long double __scalbnl (long double __x, int __n) throw ();=0A= =0A= =0A= =0A= extern int ilogbl (long double __x) throw (); extern int __ilogbl (long = double __x) throw ();=0A= =0A= =0A= =0A= =0A= extern long double scalblnl (long double __x, long int __n) throw (); = extern long double __scalblnl (long double __x, long int __n) throw ();=0A= =0A= =0A= =0A= extern long double nearbyintl (long double __x) throw (); extern long = double __nearbyintl (long double __x) throw ();=0A= =0A= =0A= =0A= extern long double roundl (long double __x) throw (); extern long double = __roundl (long double __x) throw ();=0A= =0A= =0A= =0A= extern long double truncl (long double __x) throw () __attribute__ = ((__const__)); extern long double __truncl (long double __x) throw () = __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern long double remquol (long double __x, long double __y, int = *__quo) throw (); extern long double __remquol (long double __x, long = double __y, int *__quo) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long int lrintl (long double __x) throw (); extern long int = __lrintl (long double __x) throw ();=0A= extern long long int llrintl (long double __x) throw (); extern long = long int __llrintl (long double __x) throw ();=0A= =0A= =0A= =0A= extern long int lroundl (long double __x) throw (); extern long int = __lroundl (long double __x) throw ();=0A= extern long long int llroundl (long double __x) throw (); extern long = long int __llroundl (long double __x) throw ();=0A= =0A= =0A= =0A= extern long double fdiml (long double __x, long double __y) throw (); = extern long double __fdiml (long double __x, long double __y) throw ();=0A= =0A= =0A= extern long double fmaxl (long double __x, long double __y) throw (); = extern long double __fmaxl (long double __x, long double __y) throw ();=0A= =0A= =0A= extern long double fminl (long double __x, long double __y) throw (); = extern long double __fminl (long double __x, long double __y) throw ();=0A= =0A= =0A= =0A= extern int __fpclassifyl (long double __value) throw ()=0A= __attribute__ ((__const__));=0A= =0A= =0A= extern int __signbitl (long double __value) throw ()=0A= __attribute__ ((__const__));=0A= =0A= =0A= =0A= extern long double fmal (long double __x, long double __y, long double = __z) throw (); extern long double __fmal (long double __x, long double = __y, long double __z) throw ();=0A= # 100 "/usr/include/math.h" 2 3=0A= # 113 "/usr/include/math.h" 3=0A= extern int signgam;=0A= # 154 "/usr/include/math.h" 3=0A= enum=0A= {=0A= FP_NAN,=0A= =0A= FP_INFINITE,=0A= =0A= FP_ZERO,=0A= =0A= FP_SUBNORMAL,=0A= =0A= FP_NORMAL=0A= =0A= };=0A= # 240 "/usr/include/math.h" 3=0A= typedef enum=0A= {=0A= _IEEE_ =3D -1,=0A= _SVID_,=0A= _XOPEN_,=0A= _POSIX_,=0A= _ISOC_=0A= } _LIB_VERSION_TYPE;=0A= =0A= =0A= =0A= =0A= extern _LIB_VERSION_TYPE _LIB_VERSION;=0A= # 263 "/usr/include/math.h" 3=0A= struct __exception=0A= =0A= =0A= =0A= {=0A= int type;=0A= char *name;=0A= double arg1;=0A= double arg2;=0A= double retval;=0A= };=0A= =0A= =0A= extern int matherr (struct __exception *__exc) throw ();=0A= # 411 "/usr/include/math.h" 3=0A= }=0A= # 52 "/usr/local/gcc3.1/include/g++-v3/cmath" 2 3=0A= # 79 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A= namespace std=0A= {=0A= =0A= =0A= template _Tp __cmath_power(_Tp, unsigned int);=0A= =0A= template=0A= inline _Tp=0A= __cmath_abs(_Tp __x)=0A= {=0A= return __x < _Tp() ? -__x : __x;=0A= }=0A= =0A= inline double=0A= abs(double __x)=0A= { return __builtin_fabs(__x); }=0A= =0A= inline float=0A= abs(float __x)=0A= { return __builtin_fabsf(__x); }=0A= =0A= inline long double=0A= abs(long double __x)=0A= { return __builtin_fabsl(__x); }=0A= =0A= =0A= inline float=0A= acos(float __x) { return ::acosf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::acos;=0A= =0A= =0A= inline long double=0A= acos(long double __x) { return ::acosl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::asin;=0A= =0A= =0A= inline float=0A= asin(float __x) { return ::asinf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= asin(long double __x) { return ::asinl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::atan;=0A= =0A= =0A= inline float=0A= atan(float __x) { return ::atanf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= atan(long double __x) { return ::atanl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::atan2;=0A= =0A= =0A= inline float=0A= atan2(float __y, float __x) { return ::atan2f(__y, __x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= atan2(long double __y, long double __x) { return ::atan2l(__y, __x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= using ::ceil;=0A= =0A= =0A= inline float=0A= ceil(float __x) { return ::ceilf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= ceil(long double __x) { return ::ceill(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::cos;=0A= =0A= inline float=0A= cos(float __x)=0A= { return __builtin_cosf(__x); }=0A= =0A= inline long double=0A= cos(long double __x)=0A= { return __builtin_cosl(__x); }=0A= =0A= using ::cosh;=0A= =0A= =0A= inline float=0A= cosh(float __x) { return ::coshf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= cosh(long double __x) { return ::coshl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::exp;=0A= =0A= =0A= inline float=0A= exp(float __x) { return ::expf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= exp(long double __x) { return ::expl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::fabs;=0A= =0A= inline float=0A= fabs(float __x)=0A= { return __builtin_fabsf(__x); }=0A= =0A= inline long double=0A= fabs(long double __x)=0A= { return __builtin_fabsl(__x); }=0A= =0A= using ::floor;=0A= =0A= =0A= inline float=0A= floor(float __x) { return ::floorf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= floor(long double __x) { return ::floorl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::fmod;=0A= =0A= =0A= inline float=0A= fmod(float __x, float __y) { return ::fmodf(__x, __y); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= fmod(long double __x, long double __y) { return ::fmodl(__x, __y); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= using ::frexp;=0A= =0A= =0A= inline float=0A= frexp(float __x, int* __exp) { return ::frexpf(__x, __exp); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= frexp(long double __x, int* __exp) { return ::frexpl(__x, __exp); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= using ::ldexp;=0A= =0A= =0A= inline float=0A= ldexp(float __x, int __exp) { return ::ldexpf(__x, __exp); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= ldexp(long double __x, int __exp) { return ::ldexpl(__x, __exp); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= using ::log;=0A= =0A= =0A= inline float=0A= log(float __x) { return ::logf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= log(long double __x) { return ::logl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::log10;=0A= =0A= =0A= inline float=0A= log10(float __x) { return ::log10f(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= log10(long double __x) { return ::log10l(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::modf;=0A= =0A= =0A= inline float=0A= modf(float __x, float* __iptr) { return ::modff(__x, __iptr); }=0A= # 382 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A= inline long double=0A= modf(long double __x, long double* __iptr) { return ::modfl(__x, = __iptr); }=0A= # 395 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A= template=0A= inline _Tp=0A= __pow_helper(_Tp __x, int __n)=0A= {=0A= return __n < 0=0A= ? _Tp(1)/__cmath_power(__x, -__n)=0A= : __cmath_power(__x, __n);=0A= }=0A= =0A= using ::pow;=0A= =0A= =0A= inline float=0A= pow(float __x, float __y) { return ::powf(__x, __y); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= pow(long double __x, long double __y) { return ::powl(__x, __y); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline double=0A= pow(double __x, int __i)=0A= { return __pow_helper(__x, __i); }=0A= =0A= inline float=0A= pow(float __x, int __n)=0A= { return __pow_helper(__x, __n); }=0A= =0A= inline long double=0A= pow(long double __x, int __n)=0A= { return __pow_helper(__x, __n); }=0A= =0A= using ::sin;=0A= =0A= inline float=0A= sin(float __x)=0A= { return __builtin_sinf(__x); }=0A= =0A= inline long double=0A= sin(long double __x)=0A= { return __builtin_sinl(__x); }=0A= =0A= using ::sinh;=0A= =0A= =0A= inline float=0A= sinh(float __x) { return ::sinhf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= sinh(long double __x) { return ::sinhl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::sqrt;=0A= =0A= inline float=0A= sqrt(float __x)=0A= { return __builtin_sqrtf(__x); }=0A= =0A= inline long double=0A= sqrt(long double __x)=0A= { return __builtin_sqrtl(__x); }=0A= =0A= using ::tan;=0A= =0A= =0A= inline float=0A= tan(float __x) { return ::tanf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= tan(long double __x) { return ::tanl(__x); }=0A= =0A= =0A= =0A= =0A= =0A= using ::tanh;=0A= =0A= =0A= inline float=0A= tanh(float __x) { return ::tanhf(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline long double=0A= tanh(long double __x) { return ::tanhl(__x); }=0A= =0A= =0A= =0A= =0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= namespace __gnu_cxx=0A= {=0A= template=0A= int=0A= __capture_fpclassify(_Tp __f) { return (sizeof (__f) =3D=3D sizeof = (float) ? __fpclassifyf (__f) : sizeof (__f) =3D=3D sizeof (double) ? = __fpclassify (__f) : __fpclassifyl (__f)); }=0A= =0A= template=0A= int=0A= __capture_isfinite(_Tp __f) { return (sizeof (__f) =3D=3D sizeof = (float) ? __finitef (__f) : sizeof (__f) =3D=3D sizeof (double) ? = __finite (__f) : __finitel (__f)); }=0A= =0A= template=0A= int=0A= __capture_isinf(_Tp __f) { return (sizeof (__f) =3D=3D sizeof = (float) ? __isinff (__f) : sizeof (__f) =3D=3D sizeof (double) ? __isinf = (__f) : __isinfl (__f)); }=0A= =0A= template=0A= int=0A= __capture_isnan(_Tp __f) { return (sizeof (__f) =3D=3D sizeof = (float) ? __isnanf (__f) : sizeof (__f) =3D=3D sizeof (double) ? __isnan = (__f) : __isnanl (__f)); }=0A= =0A= template=0A= int=0A= __capture_isnormal(_Tp __f) { return ((sizeof (__f) =3D=3D sizeof = (float) ? __fpclassifyf (__f) : sizeof (__f) =3D=3D sizeof (double) ? = __fpclassify (__f) : __fpclassifyl (__f)) =3D=3D FP_NORMAL); }=0A= =0A= template=0A= int=0A= __capture_signbit(_Tp __f) { return (sizeof (__f) =3D=3D sizeof = (float) ? __signbitf (__f) : sizeof (__f) =3D=3D sizeof (double) ? = __signbit (__f) : __signbitl (__f)); }=0A= =0A= template=0A= int=0A= __capture_isgreater(_Tp __f1, _Tp __f2)=0A= { return (__extension__ ({ __typeof__(__f1) __x =3D (__f1); = __typeof__(__f2) __y =3D (__f2); !(__extension__ ({ __typeof__(__x) __u = =3D (__x); __typeof__(__y) __v =3D (__y); (sizeof (__u) =3D=3D sizeof = (float) ? __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? = __fpclassify (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) = =3D=3D sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof = (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) = && __x > __y; })); }=0A= =0A= template=0A= int=0A= __capture_isgreaterequal(_Tp __f1, _Tp __f2)=0A= { return (__extension__ ({ __typeof__(__f1) __x =3D (__f1); = __typeof__(__f2) __y =3D (__f2); !(__extension__ ({ __typeof__(__x) __u = =3D (__x); __typeof__(__y) __v =3D (__y); (sizeof (__u) =3D=3D sizeof = (float) ? __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? = __fpclassify (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) = =3D=3D sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof = (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) = && __x >=3D __y; })); }=0A= =0A= template=0A= int=0A= __capture_isless(_Tp __f1, _Tp __f2) { return (__extension__ ({ = __typeof__(__f1) __x =3D (__f1); __typeof__(__f2) __y =3D (__f2); = !(__extension__ ({ __typeof__(__x) __u =3D (__x); __typeof__(__y) __v = =3D (__y); (sizeof (__u) =3D=3D sizeof (float) ? __fpclassifyf (__u) : = sizeof (__u) =3D=3D sizeof (double) ? __fpclassify (__u) : __fpclassifyl = (__u)) =3D=3D FP_NAN || (sizeof (__v) =3D=3D sizeof (float) ? = __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof (double) ? __fpclassify = (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) && __x < __y; })); }=0A= =0A= template=0A= int=0A= __capture_islessequal(_Tp __f1, _Tp __f2)=0A= { return (__extension__ ({ __typeof__(__f1) __x =3D (__f1); = __typeof__(__f2) __y =3D (__f2); !(__extension__ ({ __typeof__(__x) __u = =3D (__x); __typeof__(__y) __v =3D (__y); (sizeof (__u) =3D=3D sizeof = (float) ? __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? = __fpclassify (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) = =3D=3D sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof = (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) = && __x <=3D __y; })); }=0A= =0A= template=0A= int=0A= __capture_islessgreater(_Tp __f1, _Tp __f2)=0A= { return (__extension__ ({ __typeof__(__f1) __x =3D (__f1); = __typeof__(__f2) __y =3D (__f2); !(__extension__ ({ __typeof__(__x) __u = =3D (__x); __typeof__(__y) __v =3D (__y); (sizeof (__u) =3D=3D sizeof = (float) ? __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? = __fpclassify (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) = =3D=3D sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof = (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })) = && (__x < __y || __y < __x); })); }=0A= =0A= template=0A= int=0A= __capture_isunordered(_Tp __f1, _Tp __f2)=0A= { return (__extension__ ({ __typeof__(__f1) __u =3D (__f1); = __typeof__(__f2) __v =3D (__f2); (sizeof (__u) =3D=3D sizeof (float) ? = __fpclassifyf (__u) : sizeof (__u) =3D=3D sizeof (double) ? __fpclassify = (__u) : __fpclassifyl (__u)) =3D=3D FP_NAN || (sizeof (__v) =3D=3D = sizeof (float) ? __fpclassifyf (__v) : sizeof (__v) =3D=3D sizeof = (double) ? __fpclassify (__v) : __fpclassifyl (__v)) =3D=3D FP_NAN; })); = }=0A= }=0A= # 587 "/usr/local/gcc3.1/include/g++-v3/cmath" 3=0A= namespace __gnu_cxx=0A= {=0A= template=0A= int=0A= fpclassify(_Tp __f) { return __capture_fpclassify(__f); }=0A= =0A= template=0A= int=0A= isfinite(_Tp __f) { return __capture_isfinite(__f); }=0A= =0A= template=0A= int=0A= isinf(_Tp __f) { return __capture_isinf(__f); }=0A= =0A= template=0A= int=0A= isnan(_Tp __f) { return __capture_isnan(__f); }=0A= =0A= template=0A= int=0A= isnormal(_Tp __f) { return __capture_isnormal(__f); }=0A= =0A= template=0A= int=0A= signbit(_Tp __f) { return __capture_signbit(__f); }=0A= =0A= template=0A= int=0A= isgreater(_Tp __f1, _Tp __f2) { return __capture_isgreater(__f1, = __f2); }=0A= =0A= template=0A= int=0A= isgreaterequal(_Tp __f1, _Tp __f2)=0A= { return __capture_isgreaterequal(__f1, __f2); }=0A= =0A= template=0A= int=0A= isless(_Tp __f1, _Tp __f2) { return __capture_isless(__f1, __f2); }=0A= =0A= template=0A= int=0A= islessequal(_Tp __f1, _Tp __f2)=0A= { return __capture_islessequal(__f1, __f2); }=0A= =0A= template=0A= int=0A= islessgreater(_Tp __f1, _Tp __f2)=0A= { return __capture_islessgreater(__f1, __f2); }=0A= =0A= template=0A= int=0A= isunordered(_Tp __f1, _Tp __f2)=0A= { return __capture_isunordered(__f1, __f2); }=0A= }=0A= =0A= namespace std=0A= {=0A= using __gnu_cxx::fpclassify;=0A= using __gnu_cxx::isfinite;=0A= using __gnu_cxx::isinf;=0A= using __gnu_cxx::isnan;=0A= using __gnu_cxx::isnormal;=0A= using __gnu_cxx::signbit;=0A= using __gnu_cxx::isgreater;=0A= using __gnu_cxx::isgreaterequal;=0A= using __gnu_cxx::isless;=0A= using __gnu_cxx::islessequal;=0A= using __gnu_cxx::islessgreater;=0A= using __gnu_cxx::isunordered;=0A= }=0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/cmath.tcc" 1 3=0A= # 35 "/usr/local/gcc3.1/include/g++-v3/bits/cmath.tcc" 3=0A= namespace std=0A= {=0A= template=0A= _Tp=0A= __cmath_power(_Tp __x, unsigned int __n)=0A= {=0A= _Tp __y =3D __n % 2 ? __x : 1;=0A= =0A= while (__n >>=3D 1)=0A= {=0A= __x =3D __x * __x;=0A= if (__n % 2)=0A= __y =3D __y * __x;=0A= }=0A= =0A= return __y;=0A= }=0A= }=0A= # 662 "/usr/local/gcc3.1/include/g++-v3/cmath" 2 3=0A= # 42 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 2 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/limits" 1 3=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= =0A= # 1 = "/usr/local/gcc3.1/include/g++-v3/i686-pc-linux-gnu/bits/cpu_limits.h" 1 = 3=0A= # 49 "/usr/local/gcc3.1/include/g++-v3/limits" 2 3=0A= # 887 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= namespace std=0A= {=0A= enum float_round_style=0A= {=0A= round_indeterminate =3D -1,=0A= round_toward_zero =3D 0,=0A= round_to_nearest =3D 1,=0A= round_toward_infinity =3D 2,=0A= round_toward_neg_infinity =3D 3=0A= };=0A= =0A= enum float_denorm_style=0A= {=0A= denorm_indeterminate =3D -1,=0A= denorm_absent =3D 0,=0A= denorm_present =3D 1=0A= };=0A= =0A= =0A= =0A= =0A= struct __numeric_limits_base=0A= {=0A= static const bool is_specialized =3D false;=0A= =0A= static const int digits =3D 0;=0A= static const int digits10 =3D 0;=0A= static const bool is_signed =3D false;=0A= static const bool is_integer =3D false;=0A= static const bool is_exact =3D false;=0A= static const int radix =3D 0;=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D false;=0A= static const bool is_modulo =3D false;=0A= =0A= static const bool traps =3D false;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= =0A= template=0A= struct numeric_limits : public __numeric_limits_base=0A= {=0A= static _Tp min() throw() { return static_cast<_Tp>(0); }=0A= static _Tp max() throw() { return static_cast<_Tp>(0); }=0A= static _Tp epsilon() throw() { return static_cast<_Tp>(0); }=0A= static _Tp round_error() throw() { return static_cast<_Tp>(0); }=0A= static _Tp infinity() throw() { return static_cast<_Tp>(0); }=0A= static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }=0A= static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }=0A= static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }=0A= };=0A= =0A= =0A= =0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static bool min() throw()=0A= { return false; }=0A= =0A= static bool max() throw()=0A= { return true; }=0A= =0A= static const int digits =3D 1;=0A= static const int digits10 =3D 0;=0A= static const bool is_signed =3D false;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static bool epsilon() throw()=0A= { return false; }=0A= static bool round_error() throw()=0A= { return false; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static bool infinity() throw()=0A= { return false; }=0A= static bool quiet_NaN() throw()=0A= { return false; }=0A= static bool signaling_NaN() throw()=0A= { return false; }=0A= static bool denorm_min() throw()=0A= { return false; }=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D false;=0A= =0A= =0A= =0A= =0A= static const bool traps =3D true=0A= || true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= =0A= =0A= =0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static char min() throw()=0A= { return (char)(-127 - 1); }=0A= static char max() throw()=0A= { return (char)127; }=0A= =0A= static const int digits =3D 7;=0A= static const int digits10 =3D 7;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static char epsilon() throw()=0A= { return char(); }=0A= static char round_error() throw()=0A= { return char(); }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static char infinity() throw()=0A= { return char(); }=0A= static char quiet_NaN() throw()=0A= { return char(); }=0A= static char signaling_NaN() throw()=0A= { return char(); }=0A= static char denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= # 1071 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static signed char min() throw()=0A= { return (-127 - 1); }=0A= static signed char max() throw()=0A= { return 127; }=0A= =0A= static const int digits =3D 7;=0A= static const int digits10 =3D 2;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static signed char epsilon() throw()=0A= { return 0; }=0A= static signed char round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static signed char infinity() throw()=0A= { return static_cast(0); }=0A= static signed char quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static signed char signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static signed char denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= # 1128 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static unsigned char min() throw()=0A= { return 0; }=0A= static unsigned char max() throw()=0A= { return (127 * 2 + 1); }=0A= =0A= static const int digits =3D 8;=0A= static const int digits10 =3D 2;=0A= static const bool is_signed =3D false;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static unsigned char epsilon() throw()=0A= { return 0; }=0A= static unsigned char round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static unsigned char infinity() throw()=0A= { return static_cast(0); }=0A= static unsigned char quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned char signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned char denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static wchar_t min() throw()=0A= { return (wchar_t)(-2147483647L - 1); }=0A= static wchar_t max() throw()=0A= { return (wchar_t)2147483647L; }=0A= =0A= static const int digits =3D 31;=0A= static const int digits10 =3D 9;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static wchar_t epsilon() throw()=0A= { return 0; }=0A= static wchar_t round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static wchar_t infinity() throw()=0A= { return wchar_t(); }=0A= static wchar_t quiet_NaN() throw()=0A= { return wchar_t(); }=0A= static wchar_t signaling_NaN() throw()=0A= { return wchar_t(); }=0A= static wchar_t denorm_min() throw()=0A= { return wchar_t(); }=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= # 1241 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static short min() throw()=0A= { return (-32767 - 1); }=0A= static short max() throw()=0A= { return 32767; }=0A= =0A= static const int digits =3D 15;=0A= static const int digits10 =3D 4;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static short epsilon() throw()=0A= { return 0; }=0A= static short round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static short infinity() throw()=0A= { return short(); }=0A= static short quiet_NaN() throw()=0A= { return short(); }=0A= static short signaling_NaN() throw()=0A= { return short(); }=0A= static short denorm_min() throw()=0A= { return short(); }=0A= =0A= static const bool is_iec559 =3D true;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= # 1298 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static unsigned short min() throw()=0A= { return 0; }=0A= static unsigned short max() throw()=0A= { return (32767 * 2 + 1); }=0A= =0A= static const int digits =3D 16;=0A= static const int digits10 =3D 4;=0A= static const bool is_signed =3D false;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static unsigned short epsilon() throw()=0A= { return 0; }=0A= static unsigned short round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static unsigned short infinity() throw()=0A= { return static_cast(0); }=0A= static unsigned short quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned short signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned short denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D true;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static int min() throw()=0A= { return (int)(-2147483647L - 1); }=0A= static int max() throw()=0A= { return (int)2147483647L; }=0A= =0A= static const int digits =3D 31;=0A= static const int digits10 =3D 9;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static int epsilon() throw()=0A= { return 0; }=0A= static int round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static int infinity() throw()=0A= { return static_cast(0); }=0A= static int quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static int signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static int denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D true;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= # 1410 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static unsigned int min() throw()=0A= { return 0; }=0A= static unsigned int max() throw()=0A= { return (unsigned)(2147483647L * 2U + 1); }=0A= =0A= static const int digits =3D 32;=0A= static const int digits10 =3D 9;=0A= static const bool is_signed =3D false;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static unsigned int epsilon() throw()=0A= { return 0; }=0A= static unsigned int round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static unsigned int infinity() throw()=0A= { return static_cast(0); }=0A= static unsigned int quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned int signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned int denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D true;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static long min() throw()=0A= { return (-2147483647L - 1); }=0A= static long max() throw()=0A= { return 2147483647L; }=0A= =0A= static const int digits =3D 31;=0A= static const int digits10 =3D 9;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static long epsilon() throw()=0A= { return 0; }=0A= static long round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static long infinity() throw()=0A= { return static_cast(0); }=0A= static long quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static long signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static long denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D true;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= # 1522 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static unsigned long min() throw()=0A= { return 0; }=0A= static unsigned long max() throw()=0A= { return (2147483647L * 2U + 1); }=0A= =0A= static const int digits =3D 32;=0A= static const int digits10 =3D 9;=0A= static const bool is_signed =3D false;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static unsigned long epsilon() throw()=0A= { return 0; }=0A= static unsigned long round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static unsigned long infinity() throw()=0A= { return static_cast(0); }=0A= static unsigned long quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned long signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned long denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D true;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static long long min() throw()=0A= { return (-9223372036854775807LL - 1); }=0A= static long long max() throw()=0A= { return 9223372036854775807LL; }=0A= =0A= static const int digits =3D 63;=0A= static const int digits10 =3D 18;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static long long epsilon() throw()=0A= { return 0; }=0A= static long long round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static long long infinity() throw()=0A= { return static_cast(0); }=0A= static long long quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static long long signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static long long denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D true;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= # 1634 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static unsigned long long min() throw()=0A= { return 0; }=0A= static unsigned long long max() throw()=0A= { return (9223372036854775807LL * 2ULL + 1); }=0A= =0A= static const int digits =3D 64;=0A= static const int digits10 =3D 19;=0A= static const bool is_signed =3D false;=0A= static const bool is_integer =3D true;=0A= static const bool is_exact =3D true;=0A= static const int radix =3D 2;=0A= static unsigned long long epsilon() throw()=0A= { return 0; }=0A= static unsigned long long round_error() throw()=0A= { return 0; }=0A= =0A= static const int min_exponent =3D 0;=0A= static const int min_exponent10 =3D 0;=0A= static const int max_exponent =3D 0;=0A= static const int max_exponent10 =3D 0;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static unsigned long long infinity() throw()=0A= { return static_cast(0); }=0A= static unsigned long long quiet_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned long long signaling_NaN() throw()=0A= { return static_cast(0); }=0A= static unsigned long long denorm_min() throw()=0A= { return static_cast(0); }=0A= =0A= static const bool is_iec559 =3D true;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D true;=0A= =0A= static const bool traps =3D true;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static float min() throw()=0A= { return 1.17549435e-38F; }=0A= static float max() throw()=0A= { return 3.40282347e+38F; }=0A= =0A= static const int digits =3D 24;=0A= static const int digits10 =3D 6;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D false;=0A= static const bool is_exact =3D false;=0A= static const int radix =3D 2;=0A= static float epsilon() throw()=0A= { return 1.19209290e-07F; }=0A= static float round_error() throw()=0A= { return 1.0F; }=0A= =0A= static const int min_exponent =3D -125;=0A= static const int min_exponent10 =3D -37;=0A= static const int max_exponent =3D 128;=0A= static const int max_exponent10 =3D 38;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static float infinity() throw()=0A= { return 0.0F; }=0A= static float quiet_NaN() throw()=0A= { return 0.0F; }=0A= static float signaling_NaN() throw()=0A= { return 0.0F; }=0A= static float denorm_min() throw()=0A= { return 0.0F; }=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D false;=0A= =0A= static const bool traps =3D false;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D round_toward_zero;=0A= };=0A= # 1765 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static double min() throw()=0A= { return 2.2250738585072014e-308; }=0A= static double max() throw()=0A= { return 1.7976931348623157e+308; }=0A= =0A= static const int digits =3D 53;=0A= static const int digits10 =3D 15;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D false;=0A= static const bool is_exact =3D false;=0A= static const int radix =3D 2;=0A= static double epsilon() throw()=0A= { return 2.2204460492503131e-16; }=0A= static double round_error() throw()=0A= { return 1.0; }=0A= =0A= static const int min_exponent =3D -1021;=0A= static const int min_exponent10 =3D -307;=0A= static const int max_exponent =3D 1024;=0A= static const int max_exponent10 =3D 308;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D false;=0A= static const float_denorm_style has_denorm =3D=0A= denorm_absent;=0A= static const bool has_denorm_loss =3D false;=0A= =0A= static double infinity() throw()=0A= { return 0.0; }=0A= static double quiet_NaN() throw()=0A= { return 0.0; }=0A= static double signaling_NaN() throw()=0A= { return 0.0; }=0A= static double denorm_min() throw()=0A= { return 0.0; }=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D false;=0A= =0A= static const bool traps =3D false;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D=0A= round_toward_zero;=0A= };=0A= # 1844 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= template<>=0A= struct numeric_limits=0A= {=0A= static const bool is_specialized =3D true;=0A= =0A= static long double min() throw()=0A= { return 3.36210314311209350626e-4932L; }=0A= static long double max() throw()=0A= { return 1.18973149535723176502e+4932L; }=0A= =0A= static const int digits =3D 64;=0A= static const int digits10 =3D 18;=0A= static const bool is_signed =3D true;=0A= static const bool is_integer =3D false;=0A= static const bool is_exact =3D false;=0A= static const int radix =3D 2;=0A= static long double epsilon() throw()=0A= { return 1.08420217248550443401e-19L; }=0A= static long double round_error() throw()=0A= { return 1.0L; }=0A= =0A= static const int min_exponent =3D -16381;=0A= static const int min_exponent10 =3D -4931;=0A= static const int max_exponent =3D 16384;=0A= static const int max_exponent10 =3D 4932;=0A= =0A= static const bool has_infinity =3D false;=0A= static const bool has_quiet_NaN =3D false;=0A= static const bool has_signaling_NaN =3D=0A= false;=0A= static const float_denorm_style has_denorm =3D=0A= denorm_absent;=0A= static const bool has_denorm_loss =3D=0A= false;=0A= =0A= static long double infinity() throw()=0A= { return 0.0L; }=0A= static long double quiet_NaN() throw()=0A= { return 0.0L; }=0A= static long double signaling_NaN() throw()=0A= { return 0.0L; }=0A= static long double denorm_min() throw()=0A= { return 0.0L; }=0A= =0A= static const bool is_iec559 =3D false;=0A= static const bool is_bounded =3D true;=0A= static const bool is_modulo =3D false;=0A= =0A= static const bool traps =3D false;=0A= static const bool tinyness_before =3D false;=0A= static const float_round_style round_style =3D=0A= round_toward_zero;=0A= };=0A= # 1924 "/usr/local/gcc3.1/include/g++-v3/limits" 3=0A= }=0A= # 44 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 2 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/typeinfo" 1 3=0A= # 40 "/usr/local/gcc3.1/include/g++-v3/typeinfo" 3=0A= extern "C++" {=0A= =0A= namespace __cxxabiv1=0A= {=0A= class __class_type_info;=0A= }=0A= # 55 "/usr/local/gcc3.1/include/g++-v3/typeinfo" 3=0A= namespace std=0A= {=0A= =0A= =0A= =0A= class type_info=0A= {=0A= public:=0A= =0A= =0A= =0A= =0A= virtual ~type_info();=0A= =0A= private:=0A= =0A= type_info& operator=3D(const type_info&);=0A= type_info(const type_info&);=0A= =0A= protected:=0A= const char *__name;=0A= =0A= protected:=0A= explicit type_info(const char *__n): __name(__n) { }=0A= =0A= public:=0A= =0A= =0A= =0A= const char* name() const=0A= { return __name; }=0A= # 98 "/usr/local/gcc3.1/include/g++-v3/typeinfo" 3=0A= bool before(const type_info& __arg) const=0A= { return __name < __arg.__name; }=0A= bool operator=3D=3D(const type_info& __arg) const=0A= { return __name =3D=3D __arg.__name; }=0A= =0A= bool operator!=3D(const type_info& __arg) const=0A= { return !operator=3D=3D(__arg); }=0A= =0A= =0A= public:=0A= =0A= virtual bool __is_pointer_p() const;=0A= =0A= virtual bool __is_function_p() const;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= virtual bool __do_catch(const type_info *__thr_type, void = **__thr_obj,=0A= unsigned __outer) const;=0A= =0A= =0A= virtual bool __do_upcast(const __cxxabiv1::__class_type_info = *__target,=0A= void **__obj_ptr) const;=0A= };=0A= =0A= =0A= =0A= class bad_cast : public exception=0A= {=0A= public:=0A= bad_cast() throw() { }=0A= =0A= =0A= virtual ~bad_cast() throw();=0A= };=0A= =0A= =0A= class bad_typeid : public exception=0A= {=0A= public:=0A= bad_typeid () throw() { }=0A= =0A= =0A= virtual ~bad_typeid() throw();=0A= };=0A= }=0A= =0A= }=0A= # 46 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 2 3=0A= =0A= namespace std=0A= {=0A= template=0A= locale=0A= locale::combine(const locale& __other) const=0A= {=0A= _Impl* __tmp =3D new _Impl(*_M_impl, 1);=0A= __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);=0A= return locale(__tmp);=0A= }=0A= =0A= template=0A= bool=0A= locale::operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1,=0A= const basic_string<_CharT, _Traits, _Alloc>& = __s2) const=0A= {=0A= typedef std::collate<_CharT> __collate_type;=0A= const __collate_type& __collate =3D = use_facet<__collate_type>(*this);=0A= return (__collate.compare(__s1.data(), __s1.data() + __s1.length(),=0A= __s2.data(), __s2.data() + = __s2.length()) < 0);=0A= }=0A= =0A= template=0A= const _Facet&=0A= use_facet(const locale& __loc)=0A= {=0A= size_t __i =3D _Facet::id._M_id();=0A= locale::facet** __facets =3D __loc._M_impl->_M_facets;=0A= if (!(__i < __loc._M_impl->_M_facets_size && __facets[__i]))=0A= __throw_bad_cast();=0A= return static_cast(*__facets[__i]);=0A= }=0A= =0A= template=0A= bool=0A= has_facet(const locale& __loc) throw()=0A= {=0A= size_t __i =3D _Facet::id._M_id();=0A= locale::facet** __facets =3D __loc._M_impl->_M_facets;=0A= return (__i < __loc._M_impl->_M_facets_size && __facets[__i]);=0A= }=0A= =0A= =0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io,=0A= ios_base::iostate& __err, string& __xtrc) const=0A= {=0A= const locale __loc =3D __io.getloc();=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= const numpunct<_CharT>& __np =3D use_facet = >(__loc);=0A= =0A= =0A= const char_type __plus =3D __ctype.widen('+');=0A= const char_type __minus =3D __ctype.widen('-');=0A= int __pos =3D 0;=0A= char_type __c =3D *__beg;=0A= if ((__c =3D=3D __plus || __c =3D=3D __minus) && __beg !=3D __end)=0A= {=0A= __xtrc +=3D __ctype.narrow(__c, char());=0A= ++__pos;=0A= __c =3D *(++__beg);=0A= }=0A= =0A= =0A= const char_type __zero =3D __ctype.widen(_S_atoms[_M_zero]);=0A= bool __found_zero =3D false;=0A= while (__c =3D=3D __zero && __beg !=3D __end)=0A= {=0A= __c =3D *(++__beg);=0A= __found_zero =3D true;=0A= }=0A= if (__found_zero)=0A= {=0A= __xtrc +=3D _S_atoms[_M_zero];=0A= ++__pos;=0A= }=0A= =0A= =0A= const size_t __len =3D _M_E - _M_zero + 1;=0A= char_type __watoms[__len];=0A= __ctype.widen(_S_atoms, _S_atoms + __len, __watoms);=0A= bool __found_dec =3D false;=0A= bool __found_sci =3D false;=0A= const char_type __dec =3D __np.decimal_point();=0A= =0A= string __found_grouping;=0A= const string __grouping =3D __np.grouping();=0A= bool __check_grouping =3D __grouping.size();=0A= int __sep_pos =3D 0;=0A= const char_type __sep =3D __np.thousands_sep();=0A= =0A= while (__beg !=3D __end)=0A= {=0A= =0A= typedef char_traits<_CharT> __traits_type;=0A= const char_type* __p =3D __traits_type::find(__watoms, 10, = __c);=0A= =0A= =0A= if (__p && __c)=0A= {=0A= =0A= ++__pos;=0A= __xtrc +=3D _S_atoms[__p - __watoms];=0A= ++__sep_pos;=0A= __c =3D *(++__beg);=0A= }=0A= else if (__c =3D=3D __sep && __check_grouping && !__found_dec)=0A= {=0A= =0A= =0A= if (__sep_pos)=0A= {=0A= __found_grouping +=3D static_cast(__sep_pos);=0A= __sep_pos =3D 0;=0A= __c =3D *(++__beg);=0A= }=0A= else=0A= {=0A= __err |=3D ios_base::failbit;=0A= break;=0A= }=0A= }=0A= else if (__c =3D=3D __dec && !__found_dec)=0A= {=0A= =0A= =0A= =0A= if (__found_grouping.size())=0A= __found_grouping +=3D static_cast(__sep_pos);=0A= ++__pos;=0A= __xtrc +=3D '.';=0A= __c =3D *(++__beg);=0A= __found_dec =3D true;=0A= }=0A= else if ((__c =3D=3D __watoms[_M_e] || __c =3D=3D = __watoms[_M_E])=0A= && !__found_sci && __pos)=0A= {=0A= =0A= ++__pos;=0A= __xtrc +=3D __ctype.narrow(__c, char());=0A= __c =3D *(++__beg);=0A= =0A= =0A= if (__c =3D=3D __plus || __c =3D=3D __minus)=0A= {=0A= ++__pos;=0A= __xtrc +=3D __ctype.narrow(__c, char());=0A= __c =3D *(++__beg);=0A= }=0A= __found_sci =3D true;=0A= }=0A= else=0A= =0A= break;=0A= }=0A= =0A= =0A= =0A= if (__check_grouping && __found_grouping.size())=0A= {=0A= =0A= if (!__found_dec)=0A= __found_grouping +=3D static_cast(__sep_pos);=0A= if (!__verify_grouping(__grouping, __found_grouping))=0A= __err |=3D ios_base::failbit;=0A= }=0A= =0A= =0A= __xtrc +=3D char();=0A= if (__beg =3D=3D __end)=0A= __err |=3D ios_base::eofbit;=0A= return __beg;=0A= }=0A= =0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io,=0A= ios_base::iostate& __err, string& __xtrc, int& = __base) const=0A= {=0A= const locale __loc =3D __io.getloc();=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= const numpunct<_CharT>& __np =3D use_facet = >(__loc);=0A= =0A= =0A= ios_base::fmtflags __basefield =3D __io.flags() & = ios_base::basefield;=0A= if (__basefield =3D=3D ios_base::oct)=0A= __base =3D 8;=0A= else if (__basefield =3D=3D ios_base::hex)=0A= __base =3D 16;=0A= else=0A= __base =3D 10;=0A= =0A= =0A= int __pos =3D 0;=0A= char_type __c =3D *__beg;=0A= if ((__c =3D=3D __ctype.widen('+') || __c =3D=3D = __ctype.widen('-'))=0A= && __beg !=3D __end)=0A= {=0A= __xtrc +=3D __ctype.narrow(__c, char());=0A= ++__pos;=0A= __c =3D *(++__beg);=0A= }=0A= =0A= =0A= const char_type __zero =3D __ctype.widen(_S_atoms[_M_zero]);=0A= const char_type __x =3D __ctype.widen('x');=0A= const char_type __X =3D __ctype.widen('X');=0A= if (__base =3D=3D 10)=0A= {=0A= bool __found_zero =3D false;=0A= while (__c =3D=3D __zero && __beg !=3D __end)=0A= {=0A= __c =3D *(++__beg);=0A= __found_zero =3D true;=0A= }=0A= if (__found_zero)=0A= {=0A= __xtrc +=3D _S_atoms[_M_zero];=0A= ++__pos;=0A= if (__basefield =3D=3D 0)=0A= {=0A= if ((__c =3D=3D __x || __c =3D=3D __X) && __beg !=3D = __end)=0A= {=0A= __xtrc +=3D __ctype.narrow(__c, char());=0A= ++__pos;=0A= __c =3D *(++__beg);=0A= __base =3D 16;=0A= }=0A= else=0A= __base =3D 8;=0A= }=0A= }=0A= }=0A= else if (__base =3D=3D 16)=0A= {=0A= if (__c =3D=3D __zero && __beg !=3D __end)=0A= {=0A= __xtrc +=3D _S_atoms[_M_zero];=0A= ++__pos;=0A= __c =3D *(++__beg);=0A= if ((__c =3D=3D __x || __c =3D=3D __X) && __beg !=3D __end)=0A= {=0A= __xtrc +=3D __ctype.narrow(__c, char());=0A= ++__pos;=0A= __c =3D *(++__beg);=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= size_t __len;=0A= if (__base =3D=3D 16)=0A= __len =3D _M_size;=0A= else=0A= __len =3D __base;=0A= =0A= =0A= char_type __watoms[_M_size];=0A= __ctype.widen(_S_atoms, _S_atoms + __len, __watoms);=0A= string __found_grouping;=0A= const string __grouping =3D __np.grouping();=0A= bool __check_grouping =3D __grouping.size();=0A= int __sep_pos =3D 0;=0A= const char_type __sep =3D __np.thousands_sep();=0A= while (__beg !=3D __end)=0A= {=0A= typedef char_traits<_CharT> __traits_type;=0A= const char_type* __p =3D __traits_type::find(__watoms, __len, = __c);=0A= =0A= =0A= if (__p && __c)=0A= {=0A= =0A= __xtrc +=3D _S_atoms[__p - __watoms];=0A= ++__pos;=0A= ++__sep_pos;=0A= __c =3D *(++__beg);=0A= }=0A= else if (__c =3D=3D __sep && __check_grouping)=0A= {=0A= =0A= =0A= if (__sep_pos)=0A= {=0A= __found_grouping +=3D static_cast(__sep_pos);=0A= __sep_pos =3D 0;=0A= __c =3D *(++__beg);=0A= }=0A= else=0A= {=0A= __err |=3D ios_base::failbit;=0A= break;=0A= }=0A= }=0A= else=0A= =0A= break;=0A= }=0A= =0A= =0A= =0A= if (__check_grouping && __found_grouping.size())=0A= {=0A= =0A= __found_grouping +=3D static_cast(__sep_pos);=0A= if (!__verify_grouping(__grouping, __found_grouping))=0A= __err |=3D ios_base::failbit;=0A= }=0A= =0A= =0A= __xtrc +=3D char();=0A= if (__beg =3D=3D __end)=0A= __err |=3D ios_base::eofbit;=0A= return __beg;=0A= }=0A= =0A= =0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, bool& __v) const=0A= {=0A= =0A= if (!(__io.flags() & ios_base::boolalpha))=0A= {=0A= =0A= =0A= string __xtrc;=0A= int __base;=0A= __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, = __base);=0A= =0A= unsigned long __ul;=0A= __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, = __base);=0A= if (!(__err & ios_base::failbit) && __ul <=3D 1)=0A= __v =3D __ul;=0A= else=0A= __err |=3D ios_base::failbit;=0A= }=0A= =0A= =0A= else=0A= {=0A= typedef basic_string<_CharT> __string_type;=0A= locale __loc =3D __io.getloc();=0A= const numpunct<_CharT>& __np =3D use_facet = >(__loc);=0A= const __string_type __true =3D __np.truename();=0A= const __string_type __false =3D __np.falsename();=0A= const char_type* __trues =3D __true.c_str();=0A= const char_type* __falses =3D __false.c_str();=0A= const size_t __truen =3D __true.size() - 1;=0A= const size_t __falsen =3D __false.size() - 1;=0A= =0A= for (size_t __n =3D 0; __beg !=3D __end; ++__n)=0A= {=0A= char_type __c =3D *__beg++;=0A= bool __testf =3D __n <=3D __falsen ? __c =3D=3D = __falses[__n] : false;=0A= bool __testt =3D __n <=3D __truen ? __c =3D=3D = __trues[__n] : false;=0A= if (!(__testf || __testt))=0A= {=0A= __err |=3D ios_base::failbit;=0A= break;=0A= }=0A= else if (__testf && __n =3D=3D __falsen)=0A= {=0A= __v =3D 0;=0A= break;=0A= }=0A= else if (__testt && __n =3D=3D __truen)=0A= {=0A= __v =3D 1;=0A= break;=0A= }=0A= }=0A= if (__beg =3D=3D __end)=0A= __err |=3D ios_base::eofbit;=0A= }=0A= return __beg;=0A= }=0A= =0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, long& __v) const=0A= {=0A= string __xtrc;=0A= int __base;=0A= __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, = __base);=0A= __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base);=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, unsigned short& __v) const=0A= {=0A= string __xtrc;=0A= int __base;=0A= __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, = __base);=0A= unsigned long __ul;=0A= __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base);=0A= if (!(__err & ios_base::failbit)=0A= && __ul <=3D numeric_limits::max())=0A= __v =3D static_cast(__ul);=0A= else=0A= __err |=3D ios_base::failbit;=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, unsigned int& __v) const=0A= {=0A= string __xtrc;=0A= int __base;=0A= __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, = __base);=0A= unsigned long __ul;=0A= __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base);=0A= if (!(__err & ios_base::failbit)=0A= && __ul <=3D numeric_limits::max())=0A= __v =3D static_cast(__ul);=0A= else=0A= __err |=3D ios_base::failbit;=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, unsigned long& __v) const=0A= {=0A= string __xtrc;=0A= int __base;=0A= __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, = __base);=0A= __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base);=0A= return __beg;=0A= }=0A= =0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, long long& __v) const=0A= {=0A= string __xtrc;=0A= int __base;=0A= __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, = __base);=0A= __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base);=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, unsigned long long& __v) const=0A= {=0A= string __xtrc;=0A= int __base;=0A= __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, = __base);=0A= __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base);=0A= return __beg;=0A= }=0A= =0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, float& __v) const=0A= {=0A= string __xtrc;=0A= __xtrc.reserve(32);=0A= __beg =3D _M_extract_float(__beg, __end, __io, __err, __xtrc);=0A= __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale);=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, double& __v) const=0A= {=0A= string __xtrc;=0A= __xtrc.reserve(32);=0A= __beg =3D _M_extract_float(__beg, __end, __io, __err, __xtrc);=0A= __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale);=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, long double& __v) const=0A= {=0A= string __xtrc;=0A= __xtrc.reserve(32);=0A= __beg =3D _M_extract_float(__beg, __end, __io, __err, __xtrc);=0A= __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale);=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= num_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, void*& __v) const=0A= {=0A= =0A= typedef ios_base::fmtflags fmtflags;=0A= fmtflags __fmt =3D __io.flags();=0A= fmtflags __fmtmask =3D ~(ios_base::showpos | ios_base::basefield=0A= | ios_base::uppercase | ios_base::internal);=0A= __io.flags(__fmt & __fmtmask | (ios_base::hex | = ios_base::showbase));=0A= =0A= string __xtrc;=0A= int __base;=0A= __beg =3D _M_extract_int(__beg, __end, __io, __err, __xtrc, = __base);=0A= =0A= =0A= __io.flags(__fmt);=0A= =0A= unsigned long __ul;=0A= __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base);=0A= if (!(__err & ios_base::failbit))=0A= __v =3D reinterpret_cast(__ul);=0A= else=0A= __err |=3D ios_base::failbit;=0A= return __beg;=0A= }=0A= # 604 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A= template=0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= _M_convert_float(_OutIter __s, ios_base& __io, _CharT __fill, char = __mod,=0A= _ValueT __v) const=0A= {=0A= =0A= =0A= const int __max_digits =3D numeric_limits<_ValueT>::digits10 + 1;=0A= streamsize __prec =3D __io.precision();=0A= =0A= if (__prec > static_cast(__max_digits))=0A= __prec =3D static_cast(__max_digits);=0A= =0A= =0A= char __fbuf[16];=0A= =0A= =0A= int __len;=0A= =0A= =0A= =0A= int __cs_size =3D __max_digits * 3;=0A= char* __cs =3D static_cast(__builtin_alloca(__cs_size));=0A= =0A= const bool __fp =3D _S_format_float(__io, __fbuf, __mod, __prec);=0A= if (__fp)=0A= __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A= _S_c_locale, __prec);=0A= else=0A= __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v, = _S_c_locale);=0A= =0A= =0A= if (__len >=3D __cs_size)=0A= {=0A= __cs_size =3D __len + 1;=0A= __cs =3D static_cast(__builtin_alloca(__cs_size));=0A= if (__fp)=0A= __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A= _S_c_locale, __prec);=0A= else=0A= __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A= _S_c_locale);=0A= }=0A= # 667 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A= return _M_widen_float(__s, __io, __fill, __cs, __len);=0A= }=0A= =0A= template=0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill, char = __mod,=0A= char __modl, _ValueT __v) const=0A= {=0A= =0A= =0A= =0A= char __fbuf[16];=0A= _S_format_int(__io, __fbuf, __mod, __modl);=0A= =0A= =0A= int __cs_size =3D 64;=0A= char* __cs =3D static_cast(__builtin_alloca(__cs_size));=0A= int __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A= _S_c_locale);=0A= =0A= if (__len >=3D __cs_size)=0A= {=0A= __cs_size =3D __len + 1;=0A= __cs =3D static_cast(__builtin_alloca(__cs_size));=0A= __len =3D __convert_from_v(__cs, __cs_size, __fbuf, __v,=0A= _S_c_locale);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= return _M_widen_int(__s, __io, __fill, __cs, __len);=0A= }=0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= _M_widen_float(_OutIter __s, ios_base& __io, _CharT __fill, char* = __cs,=0A= int __len) const=0A= {=0A= =0A= =0A= const locale __loc =3D __io.getloc();=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= _CharT* __ws =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A= * __len));=0A= =0A= =0A= _CharT* __ws2 =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A= * __len * = 2));=0A= __ctype.widen(__cs, __cs + __len, __ws);=0A= =0A= =0A= const _CharT* __p;=0A= const numpunct<_CharT>& __np =3D use_facet = >(__loc);=0A= if (__p =3D char_traits<_CharT>::find(__ws, __len, = __ctype.widen('.')))=0A= __ws[__p - __ws] =3D __np.decimal_point();=0A= =0A= =0A= =0A= =0A= const string __grouping =3D __np.grouping();=0A= ios_base::fmtflags __basefield =3D __io.flags() & = ios_base::basefield;=0A= if (__grouping.size())=0A= {=0A= _CharT* __p2;=0A= int __declen =3D __p ? __p - __ws : __len;=0A= __p2 =3D __add_grouping(__ws2, __np.thousands_sep(),=0A= __grouping.c_str(),=0A= __grouping.c_str() + __grouping.size(),=0A= __ws, __ws + __declen);=0A= int __newlen =3D __p2 - __ws2;=0A= =0A= =0A= if (__p)=0A= {=0A= char_traits<_CharT>::copy(__p2, __p, __len - __declen);=0A= __newlen +=3D __len - __declen;=0A= }=0A= =0A= =0A= __ws =3D __ws2;=0A= __len =3D __newlen;=0A= }=0A= =0A= return _M_insert(__s, __io, __fill, __ws, __len);=0A= }=0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= _M_widen_int(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,=0A= int __len) const=0A= {=0A= =0A= =0A= const locale __loc =3D __io.getloc();=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= _CharT* __ws =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A= * __len));=0A= =0A= =0A= _CharT* __ws2 =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A= * __len * = 2));=0A= __ctype.widen(__cs, __cs + __len, __ws);=0A= =0A= =0A= const numpunct<_CharT>& __np =3D use_facet = >(__loc);=0A= const string __grouping =3D __np.grouping();=0A= const ios_base::fmtflags __basefield =3D __io.flags() & = ios_base::basefield;=0A= if (__grouping.size())=0A= {=0A= =0A= =0A= =0A= streamsize __off =3D 0;=0A= if (__io.flags() & ios_base::showbase)=0A= if (__basefield =3D=3D ios_base::oct)=0A= {=0A= __off =3D 1;=0A= *__ws2 =3D *__ws;=0A= }=0A= else if (__basefield =3D=3D ios_base::hex)=0A= {=0A= __off =3D 2;=0A= *__ws2 =3D *__ws;=0A= *(__ws2 + 1) =3D *(__ws + 1);=0A= }=0A= _CharT* __p;=0A= __p =3D __add_grouping(__ws2 + __off, __np.thousands_sep(),=0A= __grouping.c_str(),=0A= __grouping.c_str() + __grouping.size(),=0A= __ws + __off, __ws + __len);=0A= __len =3D __p - __ws2;=0A= =0A= __ws =3D __ws2;=0A= }=0A= return _M_insert(__s, __io, __fill, __ws, __len);=0A= }=0A= =0A= =0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= _M_insert(_OutIter __s, ios_base& __io, _CharT __fill, const _CharT* = __ws,=0A= int __len) const=0A= {=0A= =0A= streamsize __w =3D __io.width();=0A= _CharT* __ws2 =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)=0A= * __w));=0A= if (__w > static_cast(__len))=0A= {=0A= __pad(__io, __fill, __ws2, __ws, __w, __len, true);=0A= __len =3D static_cast(__w);=0A= =0A= __ws =3D __ws2;=0A= }=0A= __io.width(0);=0A= =0A= =0A= =0A= for (int __j =3D 0; __j < __len; ++__j, ++__s)=0A= *__s =3D __ws[__j];=0A= return __s;=0A= }=0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) = const=0A= {=0A= ios_base::fmtflags __flags =3D __io.flags();=0A= if ((__flags & ios_base::boolalpha) =3D=3D 0)=0A= {=0A= unsigned long __uv =3D __v;=0A= __s =3D _M_convert_int(__s, __io, __fill, 'u', char_type(), = __uv);=0A= }=0A= else=0A= {=0A= typedef basic_string<_CharT> __string_type;=0A= locale __loc =3D __io.getloc();=0A= const numpunct<_CharT>& __np =3D use_facet = >(__loc);=0A= __string_type __name;=0A= if (__v)=0A= __name =3D __np.truename();=0A= else=0A= __name =3D __np.falsename();=0A= __s =3D _M_insert(__s, __io, __fill, __name.c_str(), = __name.size());=0A= }=0A= return __s;=0A= }=0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) = const=0A= { return _M_convert_int(__s, __io, __fill, 'd', char_type(), __v); }=0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __io, char_type __fill,=0A= unsigned long __v) const=0A= { return _M_convert_int(__s, __io, __fill, 'u', char_type(), __v); }=0A= =0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __b, char_type __fill, long long = __v) const=0A= { return _M_convert_int(__s, __b, __fill, 'd', 'l', __v); }=0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __io, char_type __fill,=0A= unsigned long long __v) const=0A= { return _M_convert_int(__s, __io, __fill, 'u', 'l', __v); }=0A= =0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) = const=0A= { return _M_convert_float(__s, __io, __fill, char_type(), __v); }=0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __io, char_type __fill,=0A= long double __v) const=0A= { return _M_convert_float(__s, __io, __fill, 'L', __v); }=0A= =0A= template=0A= _OutIter=0A= num_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __io, char_type __fill,=0A= const void* __v) const=0A= {=0A= ios_base::fmtflags __flags =3D __io.flags();=0A= ios_base::fmtflags __fmt =3D ~(ios_base::showpos | = ios_base::basefield=0A= | ios_base::uppercase | = ios_base::internal);=0A= __io.flags(__flags & __fmt | (ios_base::hex | ios_base::showbase));=0A= try=0A= {=0A= __s =3D _M_convert_int(__s, __io, __fill, 'u', char_type(),=0A= reinterpret_cast(__v));=0A= __io.flags(__flags);=0A= }=0A= catch (...)=0A= {=0A= __io.flags(__flags);=0A= throw;=0A= }=0A= return __s;=0A= }=0A= =0A= =0A= template=0A= _InIter=0A= money_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,=0A= ios_base::iostate& __err, long double& __units) const=0A= {=0A= string_type __str;=0A= __beg =3D this->do_get(__beg, __end, __intl, __io, __err, __str);=0A= =0A= const int __n =3D numeric_limits::digits10;=0A= char* __cs =3D static_cast(__builtin_alloca(__n));=0A= const locale __loc =3D __io.getloc();=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= const _CharT* __wcs =3D __str.c_str();=0A= __ctype.narrow(__wcs, __wcs + __str.size() + 1, char(), __cs);=0A= __convert_to_v(__cs, __units, __err, _S_c_locale);=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= money_get<_CharT, _InIter>::=0A= do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,=0A= ios_base::iostate& __err, string_type& __units) const=0A= {=0A= =0A= typedef moneypunct<_CharT, true> __money_true;=0A= typedef moneypunct<_CharT, false> __money_false;=0A= typedef money_base::part part;=0A= typedef typename string_type::size_type size_type;=0A= =0A= const locale __loc =3D __io.getloc();=0A= const __money_true& __mpt =3D use_facet<__money_true>(__loc);=0A= const __money_false& __mpf =3D use_facet<__money_false>(__loc);=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= =0A= const money_base::pattern __p =3D __intl ? __mpt.neg_format()=0A= : __mpf.neg_format();=0A= =0A= const string_type __pos_sign =3D__intl ? __mpt.positive_sign()=0A= : __mpf.positive_sign();=0A= const string_type __neg_sign =3D__intl ? __mpt.negative_sign()=0A= : __mpf.negative_sign();=0A= const char_type __d =3D __intl ? __mpt.decimal_point()=0A= : __mpf.decimal_point();=0A= const char_type __sep =3D __intl ? __mpt.thousands_sep()=0A= : __mpf.thousands_sep();=0A= =0A= const string __grouping =3D __intl ? __mpt.grouping() : = __mpf.grouping();=0A= =0A= =0A= string_type __sign;=0A= =0A= string __grouping_tmp;=0A= =0A= int __sep_pos =3D 0;=0A= =0A= bool __testvalid =3D true;=0A= =0A= bool __testdecfound =3D false;=0A= =0A= =0A= string_type __temp_units;=0A= =0A= char_type __c =3D *__beg;=0A= char_type __eof =3D = static_cast(char_traits::eof());=0A= for (int __i =3D 0; __beg !=3D __end && __i < 4 && __testvalid; = ++__i)=0A= {=0A= part __which =3D static_cast(__p.field[__i]);=0A= switch (__which)=0A= {=0A= case money_base::symbol:=0A= if (__io.flags() & ios_base::showbase=0A= || __i < 2 || __sign.size() > 1=0A= || ((static_cast(__p.field[3]) !=3D = money_base::none)=0A= && __i =3D=3D 2))=0A= {=0A= =0A= =0A= =0A= =0A= =0A= const string_type __symbol =3D __intl ? = __mpt.curr_symbol()=0A= : = __mpf.curr_symbol();=0A= size_type __len =3D __symbol.size();=0A= size_type __j =3D 0;=0A= while (__beg !=3D __end=0A= && __j < __len && __symbol[__j] =3D=3D __c)=0A= {=0A= __c =3D *(++__beg);=0A= ++__j;=0A= }=0A= =0A= =0A= if (__j !=3D __len && (__io.flags() & = ios_base::showbase))=0A= __testvalid =3D false;=0A= }=0A= break;=0A= case money_base::sign:=0A= =0A= if (__pos_sign.size() && __neg_sign.size())=0A= {=0A= =0A= if (__c =3D=3D __pos_sign[0])=0A= {=0A= __sign =3D __pos_sign;=0A= __c =3D *(++__beg);=0A= }=0A= else if (__c =3D=3D __neg_sign[0])=0A= {=0A= __sign =3D __neg_sign;=0A= __c =3D *(++__beg);=0A= }=0A= else=0A= __testvalid =3D false;=0A= }=0A= else if (__pos_sign.size() && __c =3D=3D __pos_sign[0])=0A= {=0A= __sign =3D __pos_sign;=0A= __c =3D *(++__beg);=0A= }=0A= else if (__neg_sign.size() && __c =3D=3D __neg_sign[0])=0A= {=0A= __sign =3D __neg_sign;=0A= __c =3D *(++__beg);=0A= }=0A= break;=0A= case money_base::value:=0A= =0A= =0A= while (__beg !=3D __end=0A= && (__ctype.is(ctype_base::digit, __c)=0A= || (__c =3D=3D __d && !__testdecfound)=0A= || __c =3D=3D __sep))=0A= {=0A= if (__c =3D=3D __d)=0A= {=0A= __grouping_tmp +=3D = static_cast(__sep_pos);=0A= __sep_pos =3D 0;=0A= __testdecfound =3D true;=0A= }=0A= else if (__c =3D=3D __sep)=0A= {=0A= if (__grouping.size())=0A= {=0A= =0A= __grouping_tmp +=3D = static_cast(__sep_pos);=0A= __sep_pos =3D 0;=0A= }=0A= else=0A= {=0A= __testvalid =3D false;=0A= break;=0A= }=0A= }=0A= else=0A= {=0A= __temp_units +=3D __c;=0A= ++__sep_pos;=0A= }=0A= __c =3D *(++__beg);=0A= }=0A= break;=0A= case money_base::space:=0A= case money_base::none:=0A= =0A= if (__i !=3D 3)=0A= while (__beg !=3D __end=0A= && __ctype.is(ctype_base::space, __c))=0A= __c =3D *(++__beg);=0A= break;=0A= }=0A= }=0A= =0A= =0A= if (__sign.size() > 1)=0A= {=0A= size_type __len =3D __sign.size();=0A= size_type __i =3D 1;=0A= for (; __c !=3D __eof && __i < __len; ++__i)=0A= while (__beg !=3D __end && __c !=3D __sign[__i])=0A= __c =3D *(++__beg);=0A= =0A= if (__i !=3D __len)=0A= __testvalid =3D false;=0A= }=0A= =0A= =0A= while (__temp_units[0] =3D=3D __ctype.widen('0'))=0A= __temp_units.erase(__temp_units.begin());=0A= =0A= if (__sign.size() && __sign =3D=3D __neg_sign)=0A= __temp_units.insert(__temp_units.begin(), __ctype.widen('-'));=0A= =0A= =0A= if (__grouping.size() && __grouping_tmp.size())=0A= {=0A= if (!__verify_grouping(__grouping, __grouping_tmp))=0A= __testvalid =3D false;=0A= }=0A= =0A= =0A= if (__c =3D=3D __eof)=0A= __err |=3D ios_base::eofbit;=0A= =0A= =0A= if (!__testvalid || !__temp_units.size())=0A= __err |=3D ios_base::failbit;=0A= else=0A= =0A= __temp_units.swap(__units);=0A= =0A= return __beg;=0A= }=0A= =0A= template=0A= _OutIter=0A= money_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,=0A= long double __units) const=0A= {=0A= const locale __loc =3D __io.getloc();=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= =0A= =0A= int __cs_size =3D 64;=0A= char* __cs =3D static_cast(__builtin_alloca(__cs_size));=0A= int __len =3D __convert_from_v(__cs, __cs_size, "%.01Lf", __units,=0A= _S_c_locale);=0A= =0A= if (__len >=3D __cs_size)=0A= {=0A= __cs_size =3D __len + 1;=0A= __cs =3D static_cast(__builtin_alloca(__cs_size));=0A= __len =3D __convert_from_v(__cs, __cs_size, "%.01Lf", __units,=0A= _S_c_locale);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= _CharT* __ws =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __cs_size));=0A= __ctype.widen(__cs, __cs + __len, __ws);=0A= string_type __digits(__ws);=0A= return this->do_put(__s, __intl, __io, __fill, __digits);=0A= }=0A= =0A= template=0A= _OutIter=0A= money_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,=0A= const string_type& __digits) const=0A= {=0A= typedef typename string_type::size_type size_type;=0A= typedef money_base::part part;=0A= =0A= const locale __loc =3D __io.getloc();=0A= const size_type __width =3D static_cast(__io.width());=0A= =0A= =0A= typedef moneypunct<_CharT, true> __money_true;=0A= typedef moneypunct<_CharT, false> __money_false;=0A= const __money_true& __mpt =3D use_facet<__money_true>(__loc);=0A= const __money_false& __mpf =3D use_facet<__money_false>(__loc);=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= =0A= =0A= =0A= const char_type* __beg =3D __digits.data();=0A= const char_type* __end =3D __beg + __digits.size();=0A= money_base::pattern __p;=0A= string_type __sign;=0A= if (*__beg !=3D __ctype.widen('-'))=0A= {=0A= __p =3D __intl ? __mpt.pos_format() : __mpf.pos_format();=0A= __sign =3D__intl ? __mpt.positive_sign() : = __mpf.positive_sign();=0A= }=0A= else=0A= {=0A= __p =3D __intl ? __mpt.neg_format() : __mpf.neg_format();=0A= __sign =3D__intl ? __mpt.negative_sign() : = __mpf.negative_sign();=0A= ++__beg;=0A= }=0A= =0A= =0A= __end =3D __ctype.scan_not(ctype_base::digit, __beg, __end);=0A= if (__beg !=3D __end)=0A= {=0A= =0A= =0A= =0A= string_type __res;=0A= string_type __value;=0A= const string_type __symbol =3D __intl ? __mpt.curr_symbol()=0A= : __mpf.curr_symbol();=0A= =0A= =0A= const int __frac =3D __intl ? __mpt.frac_digits()=0A= : __mpf.frac_digits();=0A= if (__frac > 0)=0A= {=0A= const char_type __d =3D __intl ? __mpt.decimal_point()=0A= : __mpf.decimal_point();=0A= if (__end - __beg >=3D __frac)=0A= {=0A= __value =3D string_type(__end - __frac, __end);=0A= __value.insert(__value.begin(), __d);=0A= __end -=3D __frac;=0A= }=0A= else=0A= {=0A= =0A= __value =3D string_type(__beg, __end);=0A= int __paddec =3D __frac - (__end - __beg);=0A= char_type __zero =3D __ctype.widen('0');=0A= __value.insert(__value.begin(), __paddec, __zero);=0A= __value.insert(__value.begin(), __d);=0A= __beg =3D __end;=0A= }=0A= }=0A= =0A= =0A= =0A= if (__beg !=3D __end)=0A= {=0A= const string __grouping =3D __intl ? __mpt.grouping()=0A= : __mpf.grouping();=0A= if (__grouping.size())=0A= {=0A= const char_type __sep =3D __intl ? = __mpt.thousands_sep()=0A= : __mpf.thousands_sep();=0A= const char* __gbeg =3D __grouping.c_str();=0A= const char* __gend =3D __gbeg + __grouping.size();=0A= const int __n =3D (__end - __beg) * 2;=0A= _CharT* __ws2 =3D=0A= static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) = * __n));=0A= _CharT* __ws_end =3D __add_grouping(__ws2, __sep, = __gbeg,=0A= __gend, __beg, = __end);=0A= __value.insert(0, __ws2, __ws_end - __ws2);=0A= }=0A= else=0A= __value.insert(0, string_type(__beg, __end));=0A= }=0A= =0A= =0A= ios_base::fmtflags __f =3D __io.flags() & = ios_base::adjustfield;=0A= size_type __len =3D __value.size() + __sign.size();=0A= __len +=3D (__io.flags() & ios_base::showbase) ? = __symbol.size() : 0;=0A= bool __testipad =3D __f =3D=3D ios_base::internal && __len < = __width;=0A= =0A= =0A= for (int __i =3D 0; __i < 4; ++__i)=0A= {=0A= part __which =3D static_cast(__p.field[__i]);=0A= switch (__which)=0A= {=0A= case money_base::symbol:=0A= if (__io.flags() & ios_base::showbase)=0A= __res +=3D __symbol;=0A= break;=0A= case money_base::sign:=0A= =0A= =0A= =0A= if (__sign.size())=0A= __res +=3D __sign[0];=0A= break;=0A= case money_base::value:=0A= __res +=3D __value;=0A= break;=0A= case money_base::space:=0A= =0A= =0A= =0A= if (__testipad)=0A= __res +=3D string_type(__width - __len, __fill);=0A= else=0A= __res +=3D __ctype.widen(__fill);=0A= break;=0A= case money_base::none:=0A= if (__testipad)=0A= __res +=3D string_type(__width - __len, __fill);=0A= break;=0A= }=0A= }=0A= =0A= =0A= if (__sign.size() > 1)=0A= __res +=3D string_type(__sign.begin() + 1, __sign.end());=0A= =0A= =0A= __len =3D __res.size();=0A= if (__width > __len)=0A= {=0A= if (__f =3D=3D ios_base::left)=0A= =0A= __res.append(__width - __len, __fill);=0A= else=0A= =0A= __res.insert(0, string_type(__width - __len, __fill));=0A= __len =3D __width;=0A= }=0A= =0A= =0A= for (size_type __j =3D 0; __j < __len; ++__j, ++__s)=0A= *__s =3D __res[__j];=0A= }=0A= __io.width(0);=0A= return __s;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template=0A= time_base::dateorder=0A= time_get<_CharT, _InIter>::do_date_order() const=0A= { return time_base::no_order; }=0A= =0A= template=0A= void=0A= time_get<_CharT, _InIter>::=0A= _M_extract_via_format(iter_type& __beg, iter_type& __end, ios_base& = __io,=0A= ios_base::iostate& __err, tm* __tm,=0A= const _CharT* __format) const=0A= {=0A= locale __loc =3D __io.getloc();=0A= __timepunct<_CharT> const& __tp =3D use_facet<__timepunct<_CharT> = >(__loc);=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= size_t __len =3D char_traits<_CharT>::length(__format);=0A= =0A= for (size_t __i =3D 0; __beg !=3D __end && __i < __len && !__err; = ++__i)=0A= {=0A= char __c =3D __format[__i];=0A= if (__c =3D=3D '%')=0A= {=0A= =0A= __c =3D __format[++__i];=0A= char __mod =3D 0;=0A= int __mem =3D 0;=0A= if (__c =3D=3D 'E' || __c =3D=3D 'O')=0A= {=0A= __mod =3D __c;=0A= __c =3D __format[++__i];=0A= }=0A= switch (__c)=0A= {=0A= const char* __cs;=0A= _CharT __wcs[10];=0A= case 'a':=0A= =0A= const char_type* __days1[7];=0A= __tp._M_days_abbreviated(__days1);=0A= _M_extract_name(__beg, __end, __tm->tm_wday, __days1, = 7,=0A= __err);=0A= break;=0A= case 'A':=0A= =0A= const char_type* __days2[7];=0A= __tp._M_days(__days2);=0A= _M_extract_name(__beg, __end, __tm->tm_wday, __days2, = 7,=0A= __err);=0A= break;=0A= case 'h':=0A= case 'b':=0A= =0A= const char_type* __months1[12];=0A= __tp._M_months_abbreviated(__months1);=0A= _M_extract_name(__beg, __end, __tm->tm_mon, __months1, = 12,=0A= __err);=0A= break;=0A= case 'B':=0A= =0A= const char_type* __months2[12];=0A= __tp._M_months(__months2);=0A= _M_extract_name(__beg, __end, __tm->tm_mon, __months2, = 12,=0A= __err);=0A= break;=0A= case 'c':=0A= =0A= const char_type* __dt[2];=0A= __tp._M_date_time_formats(__dt);=0A= _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A= __dt[0]);=0A= break;=0A= case 'd':=0A= =0A= _M_extract_num(__beg, __end, __tm->tm_mday, 1, 31, 2,=0A= __ctype, __err);=0A= break;=0A= case 'D':=0A= =0A= __cs =3D "%m/%d/%y";=0A= __ctype.widen(__cs, __cs + 9, __wcs);=0A= _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A= __wcs);=0A= break;=0A= case 'H':=0A= =0A= _M_extract_num(__beg, __end, __tm->tm_hour, 0, 23, 2,=0A= __ctype, __err);=0A= break;=0A= case 'I':=0A= =0A= _M_extract_num(__beg, __end, __tm->tm_hour, 1, 12, 2,=0A= __ctype, __err);=0A= break;=0A= case 'm':=0A= =0A= _M_extract_num(__beg, __end, __mem, 1, 12, 2, __ctype,=0A= __err);=0A= if (!__err)=0A= __tm->tm_mon =3D __mem - 1;=0A= break;=0A= case 'M':=0A= =0A= _M_extract_num(__beg, __end, __tm->tm_min, 0, 59, 2,=0A= __ctype, __err);=0A= break;=0A= case 'n':=0A= if (__ctype.narrow(*__beg, 0) =3D=3D '\n')=0A= ++__beg;=0A= else=0A= __err |=3D ios_base::failbit;=0A= break;=0A= case 'R':=0A= =0A= __cs =3D "%H:%M";=0A= __ctype.widen(__cs, __cs + 6, __wcs);=0A= _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A= __wcs);=0A= break;=0A= case 'S':=0A= =0A= _M_extract_num(__beg, __end, __tm->tm_sec, 0, 59, 2,=0A= __ctype, __err);=0A= break;=0A= case 't':=0A= if (__ctype.narrow(*__beg, 0) =3D=3D '\t')=0A= ++__beg;=0A= else=0A= __err |=3D ios_base::failbit;=0A= break;=0A= case 'T':=0A= =0A= __cs =3D "%H:%M:%S";=0A= __ctype.widen(__cs, __cs + 9, __wcs);=0A= _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A= __wcs);=0A= break;=0A= case 'x':=0A= =0A= const char_type* __dates[2];=0A= __tp._M_date_formats(__dates);=0A= _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A= __dates[0]);=0A= break;=0A= case 'X':=0A= =0A= const char_type* __times[2];=0A= __tp._M_time_formats(__times);=0A= _M_extract_via_format(__beg, __end, __io, __err, __tm,=0A= __times[0]);=0A= break;=0A= case 'y':=0A= =0A= _M_extract_num(__beg, __end, __tm->tm_year, 0, 99, 2,=0A= __ctype, __err);=0A= break;=0A= case 'Y':=0A= =0A= _M_extract_num(__beg, __end, __mem, 0,=0A= numeric_limits::max(), 4,=0A= __ctype, __err);=0A= if (!__err)=0A= __tm->tm_year =3D __mem - 1900;=0A= break;=0A= case 'Z':=0A= =0A= if (__ctype.is(ctype_base::upper, *__beg))=0A= {=0A= int __tmp;=0A= _M_extract_name(__beg, __end, __tmp,=0A= __timepunct<_CharT>::_S_timezones,=0A= 14, __err);=0A= =0A= =0A= char_type __c =3D *__beg;=0A= if (!__err && __tmp =3D=3D 0=0A= && (__c =3D=3D __ctype.widen('-')=0A= || __c =3D=3D __ctype.widen('+')))=0A= {=0A= _M_extract_num(__beg, __end, __tmp, 0, 23, 2,=0A= __ctype, __err);=0A= _M_extract_num(__beg, __end, __tmp, 0, 59, 2,=0A= __ctype, __err);=0A= }=0A= }=0A= else=0A= __err |=3D ios_base::failbit;=0A= break;=0A= default:=0A= =0A= __err |=3D ios_base::failbit;=0A= }=0A= }=0A= else=0A= {=0A= =0A= if (__c =3D=3D __ctype.narrow(*__beg, 0))=0A= ++__beg;=0A= else=0A= __err |=3D ios_base::failbit;=0A= }=0A= }=0A= }=0A= =0A= template=0A= void=0A= time_get<_CharT, _InIter>::=0A= _M_extract_num(iter_type& __beg, iter_type& __end, int& __member,=0A= int __min, int __max, size_t __len,=0A= const ctype<_CharT>& __ctype,=0A= ios_base::iostate& __err) const=0A= {=0A= size_t __i =3D 0;=0A= string __digits;=0A= bool __testvalid =3D true;=0A= char_type __c =3D *__beg;=0A= while (__beg !=3D __end && __i < __len=0A= && __ctype.is(ctype_base::digit, __c))=0A= {=0A= __digits +=3D __ctype.narrow(__c, 0);=0A= __c =3D *(++__beg);=0A= ++__i;=0A= }=0A= if (__i =3D=3D __len)=0A= {=0A= int __value =3D atoi(__digits.c_str());=0A= if (__min <=3D __value && __value <=3D __max)=0A= __member =3D __value;=0A= else=0A= __testvalid =3D false;=0A= }=0A= else=0A= __testvalid =3D false;=0A= if (!__testvalid)=0A= __err |=3D ios_base::failbit;=0A= }=0A= =0A= =0A= =0A= template=0A= void=0A= time_get<_CharT, _InIter>::=0A= _M_extract_name(iter_type& __beg, iter_type& __end, int& __member,=0A= const _CharT** __names, size_t __indexlen,=0A= ios_base::iostate& __err) const=0A= {=0A= typedef char_traits __traits_type;=0A= int* __matches =3D static_cast(__builtin_alloca(sizeof(int) = * __indexlen));=0A= size_t __nmatches =3D 0;=0A= size_t __pos =3D 0;=0A= bool __testvalid =3D true;=0A= const char_type* __name;=0A= =0A= char_type __c =3D *__beg;=0A= =0A= for (size_t __i1 =3D 0; __i1 < __indexlen; ++__i1)=0A= if (__c =3D=3D __names[__i1][0])=0A= __matches[__nmatches++] =3D __i1;=0A= =0A= while(__nmatches > 1)=0A= {=0A= =0A= size_t __minlen =3D 10;=0A= for (size_t __i2 =3D 0; __i2 < __nmatches; ++__i2)=0A= __minlen =3D min(__minlen,=0A= = __traits_type::length(__names[__matches[__i2]]));=0A= =0A= if (__pos < __minlen && __beg !=3D __end)=0A= {=0A= ++__pos;=0A= __c =3D *(++__beg);=0A= for (size_t __i3 =3D 0; __i3 < __nmatches; ++__i3)=0A= {=0A= __name =3D __names[__matches[__i3]];=0A= if (__name[__pos] !=3D __c)=0A= __matches[__i3] =3D __matches[--__nmatches];=0A= }=0A= }=0A= else=0A= break;=0A= }=0A= =0A= if (__nmatches =3D=3D 1)=0A= {=0A= =0A= __name =3D __names[__matches[0]];=0A= const size_t __len =3D __traits_type::length(__name);=0A= while (__pos < __len && __beg !=3D __end && __name[__pos] = =3D=3D *__beg)=0A= ++__beg, ++__pos;=0A= =0A= if (__len =3D=3D __pos)=0A= __member =3D __matches[0];=0A= else=0A= __testvalid =3D false;=0A= }=0A= else=0A= __testvalid =3D false;=0A= if (!__testvalid)=0A= __err |=3D ios_base::failbit;=0A= }=0A= =0A= template=0A= _InIter=0A= time_get<_CharT, _InIter>::=0A= do_get_time(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= {=0A= _CharT __wcs[3];=0A= const char* __cs =3D "%X";=0A= locale __loc =3D __io.getloc();=0A= ctype<_CharT> const& __ctype =3D use_facet >(__loc);=0A= __ctype.widen(__cs, __cs + 3, __wcs);=0A= _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs);=0A= if (__beg =3D=3D __end)=0A= __err |=3D ios_base::eofbit;=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= time_get<_CharT, _InIter>::=0A= do_get_date(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= {=0A= _CharT __wcs[3];=0A= const char* __cs =3D "%x";=0A= locale __loc =3D __io.getloc();=0A= ctype<_CharT> const& __ctype =3D use_facet >(__loc);=0A= __ctype.widen(__cs, __cs + 3, __wcs);=0A= _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs);=0A= if (__beg =3D=3D __end)=0A= __err |=3D ios_base::eofbit;=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= time_get<_CharT, _InIter>::=0A= do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= {=0A= typedef char_traits __traits_type;=0A= locale __loc =3D __io.getloc();=0A= __timepunct<_CharT> const& __tp =3D use_facet<__timepunct<_CharT> = >(__loc);=0A= const char_type* __days[7];=0A= __tp._M_days_abbreviated(__days);=0A= int __tmpwday;=0A= _M_extract_name(__beg, __end, __tmpwday, __days, 7, __err);=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= if (!__err)=0A= {=0A= size_t __pos =3D __traits_type::length(__days[__tmpwday]);=0A= __tp._M_days(__days);=0A= const char_type* __name =3D __days[__tmpwday];=0A= if (__name[__pos] =3D=3D *__beg)=0A= {=0A= =0A= const size_t __len =3D __traits_type::length(__name);=0A= while (__pos < __len && __beg !=3D __end=0A= && __name[__pos] =3D=3D *__beg)=0A= ++__beg, ++__pos;=0A= if (__len !=3D __pos)=0A= __err |=3D ios_base::failbit;=0A= }=0A= if (!__err)=0A= __tm->tm_wday =3D __tmpwday;=0A= }=0A= if (__beg =3D=3D __end)=0A= __err |=3D ios_base::eofbit;=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= time_get<_CharT, _InIter>::=0A= do_get_monthname(iter_type __beg, iter_type __end,=0A= ios_base& __io, ios_base::iostate& __err, tm* __tm) = const=0A= {=0A= typedef char_traits __traits_type;=0A= locale __loc =3D __io.getloc();=0A= __timepunct<_CharT> const& __tp =3D use_facet<__timepunct<_CharT> = >(__loc);=0A= const char_type* __months[12];=0A= __tp._M_months_abbreviated(__months);=0A= int __tmpmon;=0A= _M_extract_name(__beg, __end, __tmpmon, __months, 12, __err);=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= if (!__err)=0A= {=0A= size_t __pos =3D __traits_type::length(__months[__tmpmon]);=0A= __tp._M_months(__months);=0A= const char_type* __name =3D __months[__tmpmon];=0A= if (__name[__pos] =3D=3D *__beg)=0A= {=0A= =0A= const size_t __len =3D __traits_type::length(__name);=0A= while (__pos < __len && __beg !=3D __end=0A= && __name[__pos] =3D=3D *__beg)=0A= ++__beg, ++__pos;=0A= if (__len !=3D __pos)=0A= __err |=3D ios_base::failbit;=0A= }=0A= if (!__err)=0A= __tm->tm_mon =3D __tmpmon;=0A= }=0A= =0A= if (__beg =3D=3D __end)=0A= __err |=3D ios_base::eofbit;=0A= return __beg;=0A= }=0A= =0A= template=0A= _InIter=0A= time_get<_CharT, _InIter>::=0A= do_get_year(iter_type __beg, iter_type __end, ios_base& __io,=0A= ios_base::iostate& __err, tm* __tm) const=0A= {=0A= locale __loc =3D __io.getloc();=0A= const ctype<_CharT>& __ctype =3D use_facet >(__loc);=0A= =0A= char_type __c =3D *__beg;=0A= size_t __i =3D 0;=0A= string __digits;=0A= while (__i < 4 && __beg !=3D __end && = __ctype.is(ctype_base::digit, __c))=0A= {=0A= __digits +=3D __ctype.narrow(__c, 0);=0A= __c =3D *(++__beg);=0A= ++__i;=0A= }=0A= if (__i =3D=3D 2 || __i =3D=3D 4)=0A= {=0A= long __l;=0A= __convert_to_v(__digits.c_str(), __l, __err, _S_c_locale);=0A= if (!(__err & ios_base::failbit) && __l <=3D 2147483647)=0A= {=0A= __l =3D __i =3D=3D 2 ? __l : __l - 1900;=0A= __tm->tm_year =3D static_cast(__l);=0A= }=0A= }=0A= else=0A= __err |=3D ios_base::failbit;=0A= if (__beg =3D=3D __end)=0A= __err |=3D ios_base::eofbit;=0A= return __beg;=0A= }=0A= =0A= template=0A= _OutIter=0A= time_put<_CharT, _OutIter>::=0A= put(iter_type __s, ios_base& __io, char_type, const tm* __tm,=0A= const _CharT* __beg, const _CharT* __end) const=0A= {=0A= locale __loc =3D __io.getloc();=0A= ctype<_CharT> const& __ctype =3D use_facet >(__loc);=0A= while (__beg !=3D __end)=0A= {=0A= char __c =3D __ctype.narrow(*__beg, 0);=0A= ++__beg;=0A= if (__c =3D=3D '%')=0A= {=0A= char __format;=0A= char __mod =3D 0;=0A= size_t __len =3D 1;=0A= __c =3D __ctype.narrow(*__beg, 0);=0A= ++__beg;=0A= if (__c =3D=3D 'E' || __c =3D=3D 'O')=0A= {=0A= __mod =3D __c;=0A= __format =3D __ctype.narrow(*__beg, 0);=0A= ++__beg;=0A= }=0A= else=0A= __format =3D __c;=0A= __s =3D this->do_put(__s, __io, char_type(), __tm, = __format,=0A= __mod);=0A= }=0A= else=0A= {=0A= *__s =3D __c;=0A= ++__s;=0A= }=0A= }=0A= return __s;=0A= }=0A= =0A= template=0A= _OutIter=0A= time_put<_CharT, _OutIter>::=0A= do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm,=0A= char __format, char __mod) const=0A= {=0A= locale __loc =3D __io.getloc();=0A= ctype<_CharT> const& __ctype =3D use_facet >(__loc);=0A= __timepunct<_CharT> const& __tp =3D use_facet<__timepunct<_CharT> = >(__loc);=0A= =0A= =0A= =0A= const size_t __maxlen =3D 64;=0A= char_type* __res =3D=0A= static_cast(__builtin_alloca(sizeof(char_type) * = __maxlen));=0A= =0A= =0A= =0A= =0A= =0A= =0A= char_type __fmt[4];=0A= __fmt[0] =3D __ctype.widen('%');=0A= if (!__mod)=0A= {=0A= __fmt[1] =3D __format;=0A= __fmt[2] =3D char_type();=0A= }=0A= else=0A= {=0A= __fmt[1] =3D __mod;=0A= __fmt[2] =3D __format;=0A= __fmt[3] =3D char_type();=0A= }=0A= =0A= __tp._M_put(__res, __maxlen, __fmt, __tm);=0A= =0A= =0A= size_t __len =3D char_traits::length(__res);=0A= for (size_t __i =3D 0; __i < __len; ++__i, ++__s)=0A= *__s =3D __res[__i];=0A= return __s;=0A= }=0A= =0A= =0A= =0A= template=0A= int=0A= collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const=0A= { return 0; }=0A= =0A= =0A= template=0A= size_t=0A= collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const=0A= { return 0; }=0A= =0A= template=0A= int=0A= collate<_CharT>::=0A= do_compare(const _CharT* __lo1, const _CharT* __hi1,=0A= const _CharT* __lo2, const _CharT* __hi2) const=0A= {=0A= const string_type __one(__lo1, __hi1);=0A= const string_type __two(__lo2, __hi2);=0A= return _M_compare(__one.c_str(), __two.c_str());=0A= }=0A= =0A= template=0A= typename collate<_CharT>::string_type=0A= collate<_CharT>::=0A= do_transform(const _CharT* __lo, const _CharT* __hi) const=0A= {=0A= size_t __len =3D (__hi - __lo) * 2;=0A= =0A= _CharT* __c =3D=0A= static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len));=0A= size_t __res =3D _M_transform(__c, __lo, __len);=0A= =0A= if (__res >=3D __len)=0A= {=0A= __c =3D=0A= static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * = (__res + 1)));=0A= _M_transform(__c, __lo, __res + 1);=0A= }=0A= return string_type(__c);=0A= }=0A= =0A= template=0A= long=0A= collate<_CharT>::=0A= do_hash(const _CharT* __lo, const _CharT* __hi) const=0A= {=0A= unsigned long __val =3D 0;=0A= for (; __lo < __hi; ++__lo)=0A= __val =3D *__lo + ((__val << 7) |=0A= (__val >> (numeric_limits::digits = - 7)));=0A= return static_cast(__val);=0A= }=0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& = __err,=0A= const __c_locale& __cloc, int __base =3D 10);=0A= =0A= =0A= =0A= =0A= =0A= template=0A= int=0A= __convert_from_v(char* __out, const int __size, const char* __fmt,=0A= _Tv __v, const __c_locale&, int __prec =3D -1)=0A= {=0A= int __ret;=0A= const char* __old =3D setlocale(__LC_ALL, "C");=0A= if (__prec >=3D 0)=0A= __ret =3D snprintf(__out, __size, __fmt, __prec, __v);=0A= else=0A= __ret =3D snprintf(__out, __size, __fmt, __v);=0A= setlocale(__LC_ALL, __old);=0A= return __ret;=0A= }=0A= # 1995 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A= template=0A= void=0A= __pad(ios_base& __io, _CharT __fill, _CharT* __news, const _CharT* = __olds,=0A= const streamsize __newlen, const streamsize __oldlen,=0A= const bool __num)=0A= {=0A= typedef _CharT char_type;=0A= typedef _Traits traits_type;=0A= typedef typename traits_type::int_type int_type;=0A= =0A= int_type __plen =3D static_cast(__newlen - __oldlen);=0A= char_type* __pads =3D = static_cast(__builtin_alloca(sizeof(char_type) * __plen));=0A= traits_type::assign(__pads, __plen, __fill);=0A= =0A= char_type* __beg;=0A= char_type* __end;=0A= size_t __mod =3D 0;=0A= size_t __beglen;=0A= ios_base::fmtflags __adjust =3D __io.flags() & = ios_base::adjustfield;=0A= =0A= if (__adjust =3D=3D ios_base::left)=0A= {=0A= =0A= __beg =3D const_cast(__olds);=0A= __beglen =3D __oldlen;=0A= __end =3D __pads;=0A= }=0A= else if (__adjust =3D=3D ios_base::internal && __num)=0A= {=0A= =0A= =0A= =0A= locale __loc =3D __io.getloc();=0A= const ctype<_CharT>& __ctype =3D use_facet = >(__loc);=0A= const char_type __minus =3D __ctype.widen('-');=0A= const char_type __plus =3D __ctype.widen('+');=0A= bool __testsign =3D __olds[0] =3D=3D __minus || __olds[0] = =3D=3D __plus;=0A= bool __testhex =3D __ctype.widen('0') =3D=3D __olds[0]=0A= && (__ctype.widen('x') =3D=3D __olds[1]=0A= || __ctype.widen('X') =3D=3D __olds[1]);=0A= if (__testhex)=0A= {=0A= __news[0] =3D __olds[0];=0A= __news[1] =3D __olds[1];=0A= __mod +=3D 2;=0A= __news +=3D 2;=0A= __beg =3D __pads;=0A= __beglen =3D __plen;=0A= __end =3D const_cast(__olds + __mod);=0A= }=0A= else if (__testsign)=0A= {=0A= __news[0] =3D __olds[0] =3D=3D __plus ? __plus : __minus;=0A= ++__mod;=0A= ++__news;=0A= __beg =3D __pads;=0A= __beglen =3D __plen;=0A= __end =3D const_cast(__olds + __mod);=0A= }=0A= else=0A= {=0A= =0A= __beg =3D __pads;=0A= __beglen =3D __plen;=0A= __end =3D const_cast(__olds);=0A= }=0A= }=0A= else=0A= {=0A= =0A= __beg =3D __pads;=0A= __beglen =3D __plen;=0A= __end =3D const_cast(__olds);=0A= }=0A= traits_type::copy(__news, __beg, __beglen);=0A= traits_type::copy(__news + __beglen, __end, __newlen - __beglen - = __mod);=0A= }=0A= =0A= =0A= =0A= =0A= template=0A= void=0A= __pad(ios_base& __io, _CharT __fill, _CharT* __news, const _CharT* = __olds,=0A= const streamsize __newlen, const streamsize __oldlen,=0A= const bool __num)=0A= {=0A= return __pad<_CharT, char_traits<_CharT> >(__io, __fill, __news, = __olds,=0A= __newlen, __oldlen, = __num);=0A= }=0A= # 2094 "/usr/local/gcc3.1/include/g++-v3/bits/locale_facets.tcc" 3=0A= template=0A= bool=0A= __verify_grouping(const basic_string<_CharT>& __grouping,=0A= basic_string<_CharT>& __grouping_tmp)=0A= {=0A= int __i =3D 0;=0A= int __j =3D 0;=0A= const int __len =3D __grouping.size();=0A= const int __n =3D __grouping_tmp.size();=0A= bool __test =3D true;=0A= =0A= =0A= =0A= =0A= while (__test && __i < __n - 1)=0A= for (__j =3D 0; __test && __j < __len && __i < __n - 1; = ++__j,++__i)=0A= __test &=3D __grouping[__j] =3D=3D __grouping_tmp[__n - __i - = 1];=0A= =0A= =0A= __j =3D=3D __len ? __j =3D 0 : __j;=0A= __test &=3D __grouping[__j] >=3D __grouping_tmp[__n - __i - 1];=0A= return __test;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= _CharT*=0A= __add_grouping(_CharT* __s, _CharT __sep,=0A= const char* __gbeg, const char* __gend,=0A= const _CharT* __first, const _CharT* __last)=0A= {=0A= if (__last - __first > *__gbeg)=0A= {=0A= __s =3D __add_grouping(__s, __sep,=0A= (__gbeg + 1 =3D=3D __gend ? __gbeg : = __gbeg + 1),=0A= __gend, __first, __last - *__gbeg);=0A= __first =3D __last - *__gbeg;=0A= *__s++ =3D __sep;=0A= }=0A= do=0A= *__s++ =3D *__first++;=0A= while (__first !=3D __last);=0A= return __s;=0A= }=0A= =0A= =0A= =0A= =0A= extern template class moneypunct;=0A= extern template class moneypunct;=0A= extern template class moneypunct_byname;=0A= extern template class moneypunct_byname;=0A= extern template class money_get;=0A= extern template class money_put;=0A= extern template class moneypunct;=0A= extern template class moneypunct;=0A= extern template class moneypunct_byname;=0A= extern template class moneypunct_byname;=0A= extern template class money_get;=0A= extern template class money_put;=0A= extern template class numpunct;=0A= extern template class numpunct_byname;=0A= extern template class num_get;=0A= extern template class num_put;=0A= extern template class numpunct;=0A= extern template class numpunct_byname;=0A= extern template class num_get;=0A= extern template class num_put;=0A= extern template class __timepunct;=0A= extern template class time_put;=0A= extern template class time_put_byname;=0A= extern template class time_get;=0A= extern template class time_get_byname;=0A= extern template class __timepunct;=0A= extern template class time_put;=0A= extern template class time_put_byname;=0A= extern template class time_get;=0A= extern template class time_get_byname;=0A= extern template class messages;=0A= extern template class messages_byname;=0A= extern template class messages;=0A= extern template class messages_byname;=0A= extern template class ctype_byname;=0A= extern template class ctype_byname;=0A= extern template class codecvt_byname;=0A= extern template class codecvt_byname;=0A= extern template class collate;=0A= extern template class collate_byname;=0A= extern template class collate;=0A= extern template class collate_byname;=0A= =0A= extern template=0A= const codecvt&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const collate&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const numpunct&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const num_put&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const num_get&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const moneypunct&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const moneypunct&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const money_put&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const money_get&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const __timepunct&=0A= use_facet<__timepunct >(const locale&);=0A= =0A= extern template=0A= const time_put&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const time_get&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const messages&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const codecvt&=0A= use_facet >(locale const&);=0A= =0A= extern template=0A= const collate&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const numpunct&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const num_put&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const num_get&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const moneypunct&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const moneypunct&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const money_put&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const money_get&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const __timepunct&=0A= use_facet<__timepunct >(const locale&);=0A= =0A= extern template=0A= const time_put&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const time_get&=0A= use_facet >(const locale&);=0A= =0A= extern template=0A= const messages&=0A= use_facet >(const locale&);=0A= =0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet<__timepunct >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet<__timepunct >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= =0A= extern template=0A= bool=0A= has_facet >(const locale&);=0A= }=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/locale" 2 3=0A= # 38 "/usr/local/gcc3.1/include/g++-v3/bits/ostream.tcc" 2 3=0A= =0A= namespace std=0A= {=0A= template=0A= basic_ostream<_CharT, _Traits>::sentry::=0A= sentry(basic_ostream<_CharT,_Traits>& __os)=0A= : _M_ok(__os.good()), _M_os(__os)=0A= {=0A= =0A= if (_M_ok && __os.tie())=0A= __os.tie()->flush();=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::=0A= operator<<(__ostream_type& (*__pf)(__ostream_type&))=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= { __pf(*this); }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::=0A= operator<<(__ios_type& (*__pf)(__ios_type&))=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= { __pf(*this); }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::=0A= operator<<(ios_base& (*__pf)(ios_base&))=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= { __pf(*this); }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sbin)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= streamsize __xtrct =3D 0;=0A= if (__sbin)=0A= {=0A= __streambuf_type* __sbout =3D this->rdbuf();=0A= __xtrct =3D __copy_streambufs(*this, __sbin, __sbout);=0A= }=0A= else=0A= this->setstate(ios_base::badbit);=0A= if (!__xtrct)=0A= this->setstate(ios_base::failbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(bool __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= if (_M_check_facet(_M_fnumput))=0A= if (_M_fnumput->put(*this, *this, this->fill(), = __n).failed())=0A= this->setstate(ios_base::badbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(long __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= char_type __c =3D this->fill();=0A= ios_base::fmtflags __fmt =3D this->flags() & = ios_base::basefield;=0A= if (_M_check_facet(_M_fnumput))=0A= {=0A= bool __b =3D false;=0A= if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex))=0A= {=0A= unsigned long __l =3D static_cast(__n);=0A= __b =3D _M_fnumput->put(*this, *this, __c, = __l).failed();=0A= }=0A= else=0A= __b =3D _M_fnumput->put(*this, *this, __c, = __n).failed();=0A= if (__b)=0A= this->setstate(ios_base::badbit);=0A= }=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(unsigned long __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= if (_M_check_facet(_M_fnumput))=0A= if (_M_fnumput->put(*this, *this, this->fill(), = __n).failed())=0A= this->setstate(ios_base::badbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(long long __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= char_type __c =3D this->fill();=0A= ios_base::fmtflags __fmt =3D this->flags() & = ios_base::basefield;=0A= if (_M_check_facet(_M_fnumput))=0A= {=0A= bool __b =3D false;=0A= if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex))=0A= {=0A= unsigned long long __l;=0A= __l =3D static_cast(__n);=0A= __b =3D _M_fnumput->put(*this, *this, __c, = __l).failed();=0A= }=0A= else=0A= __b =3D _M_fnumput->put(*this, *this, __c, = __n).failed();=0A= if (__b)=0A= this->setstate(ios_base::badbit);=0A= }=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(unsigned long long __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= if (_M_check_facet(_M_fnumput))=0A= if (_M_fnumput->put(*this, *this, this->fill(), = __n).failed())=0A= this->setstate(ios_base::badbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(double __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= if (_M_check_facet(_M_fnumput))=0A= if (_M_fnumput->put(*this, *this, this->fill(), = __n).failed())=0A= this->setstate(ios_base::badbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(long double __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= if (_M_check_facet(_M_fnumput))=0A= if (_M_fnumput->put(*this, *this, this->fill(), = __n).failed())=0A= this->setstate(ios_base::badbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::operator<<(const void* __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= if (_M_check_facet(_M_fnumput))=0A= if (_M_fnumput->put(*this, *this, this->fill(), = __n).failed())=0A= this->setstate(ios_base::badbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::put(char_type __c)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= int_type __put =3D rdbuf()->sputc(__c);=0A= if (traits_type::eq_int_type(__put, traits_type::eof()))=0A= this->setstate(ios_base::badbit);=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::write(const _CharT* __s, streamsize = __n)=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= streamsize __put =3D this->rdbuf()->sputn(__s, __n);=0A= if ( __put !=3D __n)=0A= this->setstate(ios_base::badbit);=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::flush()=0A= {=0A= sentry __cerb(*this);=0A= if (__cerb)=0A= {=0A= if (this->rdbuf() && this->rdbuf()->pubsync() =3D=3D -1)=0A= this->setstate(ios_base::badbit);=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= typename basic_ostream<_CharT, _Traits>::pos_type=0A= basic_ostream<_CharT, _Traits>::tellp()=0A= {=0A= pos_type __ret =3D pos_type(-1);=0A= if (!this->fail())=0A= __ret =3D this->rdbuf()->pubseekoff(0, ios_base::cur, = ios_base::out);=0A= return __ret;=0A= }=0A= =0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::seekp(pos_type __pos)=0A= {=0A= if (!this->fail())=0A= {=0A= =0A= =0A= pos_type __err =3D this->rdbuf()->pubseekpos(__pos, = ios_base::out);=0A= =0A= =0A= if (__err =3D=3D pos_type(off_type(-1)))=0A= this->setstate(ios_base::failbit);=0A= =0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= basic_ostream<_CharT, _Traits>::=0A= seekp(off_type __off, ios_base::seekdir __d)=0A= {=0A= if (!this->fail())=0A= {=0A= =0A= =0A= pos_type __err =3D this->rdbuf()->pubseekoff(__off, __d,=0A= ios_base::out);=0A= =0A= =0A= if (__err =3D=3D pos_type(off_type(-1)))=0A= this->setstate(ios_base::failbit);=0A= =0A= }=0A= return *this;=0A= }=0A= =0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)=0A= {=0A= typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A= typename __ostream_type::sentry __cerb(__out);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= streamsize __w =3D __out.width();=0A= _CharT* __pads =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__w + 1)));=0A= __pads[0] =3D __c;=0A= streamsize __len =3D 1;=0A= if (__w > __len)=0A= {=0A= __pad(__out, __out.fill(), __pads, &__c, __w, __len, = false);=0A= __len =3D __w;=0A= }=0A= __out.write(__pads, __len);=0A= __out.width(0);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= __out.setstate(ios_base::badbit);=0A= if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __out;=0A= }=0A= =0A= =0A= template =0A= basic_ostream&=0A= operator<<(basic_ostream& __out, char __c)=0A= {=0A= typedef basic_ostream __ostream_type;=0A= typename __ostream_type::sentry __cerb(__out);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= streamsize __w =3D __out.width();=0A= char* __pads =3D static_cast(__builtin_alloca(__w + = 1));=0A= __pads[0] =3D __c;=0A= streamsize __len =3D 1;=0A= if (__w > __len)=0A= {=0A= __pad(__out, __out.fill(), __pads, &__c, __w, __len, = false);=0A= __len =3D __w;=0A= }=0A= __out.write(__pads, __len);=0A= __out.width(0);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= __out.setstate(ios_base::badbit);=0A= if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __out;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)=0A= {=0A= typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A= typename __ostream_type::sentry __cerb(__out);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= streamsize __w =3D __out.width();=0A= _CharT* __pads =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));=0A= streamsize __len =3D = static_cast(_Traits::length(__s));=0A= if (__w > __len)=0A= {=0A= __pad(__out, __out.fill(), __pads, __s, __w, __len, = false);=0A= __s =3D __pads;=0A= __len =3D __w;=0A= }=0A= __out.write(__s, __len);=0A= __out.width(0);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= __out.setstate(ios_base::badbit);=0A= if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __out;=0A= }=0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)=0A= {=0A= typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A= =0A= =0A= =0A= typedef char_traits __ctraits_type;=0A= =0A= typename __ostream_type::sentry __cerb(__out);=0A= if (__cerb)=0A= {=0A= size_t __clen =3D __ctraits_type::length(__s);=0A= _CharT* __ws =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__clen + 1)));=0A= for (size_t __i =3D 0; __i <=3D __clen; ++__i)=0A= __ws[__i] =3D __out.widen(__s[__i]);=0A= _CharT* __str =3D __ws;=0A= =0A= try=0A= {=0A= streamsize __len =3D static_cast(__clen);=0A= streamsize __w =3D __out.width();=0A= _CharT* __pads =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));=0A= =0A= if (__w > __len)=0A= {=0A= __pad(__out, __out.fill(), __pads, __ws, __w, __len, = false);=0A= __str =3D __pads;=0A= __len =3D __w;=0A= }=0A= __out.write(__str, __len);=0A= __out.width(0);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= __out.setstate(ios_base::badbit);=0A= if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __out;=0A= }=0A= =0A= =0A= template=0A= basic_ostream&=0A= operator<<(basic_ostream& __out, const char* __s)=0A= {=0A= typedef basic_ostream __ostream_type;=0A= typename __ostream_type::sentry __cerb(__out);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= streamsize __w =3D __out.width();=0A= char* __pads =3D static_cast(__builtin_alloca(__w));=0A= streamsize __len =3D = static_cast(_Traits::length(__s));=0A= if (__w > __len)=0A= {=0A= __pad(__out, __out.fill(), __pads, __s, __w, __len, = false);=0A= __s =3D __pads;=0A= __len =3D __w;=0A= }=0A= __out.write(__s, __len);=0A= __out.width(0);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= __out.setstate(ios_base::badbit);=0A= if ((__out.exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __out;=0A= }=0A= =0A= =0A= template=0A= basic_ostream<_CharT, _Traits>&=0A= operator<<(basic_ostream<_CharT, _Traits>& __out,=0A= const basic_string<_CharT, _Traits, _Alloc>& __str)=0A= {=0A= typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A= typename __ostream_type::sentry __cerb(__out);=0A= if (__cerb)=0A= {=0A= const _CharT* __s =3D __str.data();=0A= streamsize __w =3D __out.width();=0A= _CharT* __pads =3D = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));=0A= streamsize __len =3D static_cast(__str.size());=0A= =0A= =0A= =0A= if (__w > __len)=0A= {=0A= __pad(__out, __out.fill(), __pads, __s, __w, __len, false);=0A= __s =3D __pads;=0A= __len =3D __w;=0A= }=0A= streamsize __res =3D __out.rdbuf()->sputn(__s, __len);=0A= __out.width(0);=0A= if (__res !=3D __len)=0A= __out.setstate(ios_base::failbit);=0A= }=0A= return __out;=0A= }=0A= =0A= =0A= =0A= =0A= extern template class basic_ostream;=0A= extern template ostream& endl(ostream&);=0A= extern template ostream& ends(ostream&);=0A= extern template ostream& flush(ostream&);=0A= extern template ostream& operator<<(ostream&, char);=0A= extern template ostream& operator<<(ostream&, unsigned char);=0A= extern template ostream& operator<<(ostream&, signed char);=0A= extern template ostream& operator<<(ostream&, const char*);=0A= extern template ostream& operator<<(ostream&, const unsigned char*);=0A= extern template ostream& operator<<(ostream&, const signed char*);=0A= =0A= extern template class basic_ostream;=0A= extern template wostream& endl(wostream&);=0A= extern template wostream& ends(wostream&);=0A= extern template wostream& flush(wostream&);=0A= extern template wostream& operator<<(wostream&, wchar_t);=0A= extern template wostream& operator<<(wostream&, char);=0A= extern template wostream& operator<<(wostream&, const wchar_t*);=0A= extern template wostream& operator<<(wostream&, const char*);=0A= }=0A= # 276 "/usr/local/gcc3.1/include/g++-v3/ostream" 2 3=0A= # 46 "/usr/local/gcc3.1/include/g++-v3/iostream" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/istream" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/istream" 3=0A= =0A= =0A= =0A= =0A= namespace std=0A= {=0A= =0A= template=0A= class basic_istream : virtual public basic_ios<_CharT, _Traits>=0A= {=0A= public:=0A= =0A= typedef _CharT char_type;=0A= typedef typename _Traits::int_type int_type;=0A= typedef typename _Traits::pos_type pos_type;=0A= typedef typename _Traits::off_type off_type;=0A= typedef _Traits traits_type;=0A= =0A= =0A= typedef basic_streambuf<_CharT, _Traits> __streambuf_type;=0A= typedef basic_ios<_CharT, _Traits> __ios_type;=0A= typedef basic_istream<_CharT, _Traits> __istream_type;=0A= typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter;=0A= typedef num_get<_CharT, __istreambuf_iter> __numget_type;=0A= typedef ctype<_CharT> __ctype_type;=0A= =0A= protected:=0A= =0A= streamsize _M_gcount;=0A= =0A= public:=0A= =0A= explicit=0A= basic_istream(__streambuf_type* __sb)=0A= {=0A= this->init(__sb);=0A= _M_gcount =3D streamsize(0);=0A= }=0A= =0A= virtual=0A= ~basic_istream()=0A= { _M_gcount =3D streamsize(0); }=0A= =0A= =0A= class sentry;=0A= friend class sentry;=0A= =0A= =0A= =0A= __istream_type&=0A= operator>>(__istream_type& (*__pf)(__istream_type&));=0A= =0A= __istream_type&=0A= operator>>(__ios_type& (*__pf)(__ios_type&));=0A= =0A= __istream_type&=0A= operator>>(ios_base& (*__pf)(ios_base&));=0A= =0A= =0A= __istream_type&=0A= operator>>(bool& __n);=0A= =0A= __istream_type&=0A= operator>>(short& __n);=0A= =0A= __istream_type&=0A= operator>>(unsigned short& __n);=0A= =0A= __istream_type&=0A= operator>>(int& __n);=0A= =0A= __istream_type&=0A= operator>>(unsigned int& __n);=0A= =0A= __istream_type&=0A= operator>>(long& __n);=0A= =0A= __istream_type&=0A= operator>>(unsigned long& __n);=0A= =0A= =0A= __istream_type&=0A= operator>>(long long& __n);=0A= =0A= __istream_type&=0A= operator>>(unsigned long long& __n);=0A= =0A= =0A= __istream_type&=0A= operator>>(float& __f);=0A= =0A= __istream_type&=0A= operator>>(double& __f);=0A= =0A= __istream_type&=0A= operator>>(long double& __f);=0A= =0A= __istream_type&=0A= operator>>(void*& __p);=0A= =0A= __istream_type&=0A= operator>>(__streambuf_type* __sb);=0A= =0A= =0A= inline streamsize=0A= gcount(void) const=0A= { return _M_gcount; }=0A= =0A= int_type=0A= get(void);=0A= =0A= __istream_type&=0A= get(char_type& __c);=0A= =0A= __istream_type&=0A= get(char_type* __s, streamsize __n, char_type __delim);=0A= =0A= inline __istream_type&=0A= get(char_type* __s, streamsize __n)=0A= { return this->get(__s, __n, this->widen('\n')); }=0A= =0A= __istream_type&=0A= get(__streambuf_type& __sb, char_type __delim);=0A= =0A= inline __istream_type&=0A= get(__streambuf_type& __sb)=0A= { return this->get(__sb, this->widen('\n')); }=0A= =0A= __istream_type&=0A= getline(char_type* __s, streamsize __n, char_type __delim);=0A= =0A= inline __istream_type&=0A= getline(char_type* __s, streamsize __n)=0A= { return this->getline(__s, __n, this->widen('\n')); }=0A= =0A= __istream_type&=0A= ignore(streamsize __n =3D 1, int_type __delim =3D = traits_type::eof());=0A= =0A= int_type=0A= peek(void);=0A= =0A= __istream_type&=0A= read(char_type* __s, streamsize __n);=0A= =0A= streamsize=0A= readsome(char_type* __s, streamsize __n);=0A= =0A= __istream_type&=0A= putback(char_type __c);=0A= =0A= __istream_type&=0A= unget(void);=0A= =0A= int=0A= sync(void);=0A= =0A= pos_type=0A= tellg(void);=0A= =0A= __istream_type&=0A= seekg(pos_type);=0A= =0A= __istream_type&=0A= seekg(off_type, ios_base::seekdir);=0A= };=0A= =0A= template=0A= class basic_istream<_CharT, _Traits>::sentry=0A= {=0A= public:=0A= typedef _Traits traits_type;=0A= typedef basic_streambuf<_CharT, _Traits> __streambuf_type;=0A= typedef basic_istream<_CharT, _Traits> __istream_type;=0A= typedef typename __istream_type::__ctype_type __ctype_type;=0A= typedef typename _Traits::int_type __int_type;=0A= =0A= explicit=0A= sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws =3D = false);=0A= =0A= operator bool() { return _M_ok; }=0A= =0A= private:=0A= bool _M_ok;=0A= };=0A= =0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);=0A= =0A= template=0A= basic_istream&=0A= operator>>(basic_istream& __in, unsigned char& __c)=0A= { return (__in >> reinterpret_cast(__c)); }=0A= =0A= template=0A= basic_istream&=0A= operator>>(basic_istream& __in, signed char& __c)=0A= { return (__in >> reinterpret_cast(__c)); }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);=0A= =0A= template=0A= basic_istream&=0A= operator>>(basic_istream& __in, unsigned char* __s)=0A= { return (__in >> reinterpret_cast(__s)); }=0A= =0A= template=0A= basic_istream&=0A= operator>>(basic_istream& __in, signed char* __s)=0A= { return (__in >> reinterpret_cast(__s)); }=0A= =0A= =0A= template=0A= class basic_iostream=0A= : public basic_istream<_CharT, _Traits>,=0A= public basic_ostream<_CharT, _Traits>=0A= {=0A= public:=0A= =0A= typedef basic_istream<_CharT, _Traits> __istream_type;=0A= typedef basic_ostream<_CharT, _Traits> __ostream_type;=0A= =0A= explicit=0A= basic_iostream(basic_streambuf<_CharT, _Traits>* __sb)=0A= : __istream_type(__sb), __ostream_type(__sb)=0A= { }=0A= =0A= virtual=0A= ~basic_iostream() { }=0A= };=0A= =0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= ws(basic_istream<_CharT, _Traits>& __is);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/istream.tcc" 1 3=0A= # 36 "/usr/local/gcc3.1/include/g++-v3/bits/istream.tcc" 3=0A= =0A= =0A= =0A= =0A= namespace std=0A= {=0A= template=0A= basic_istream<_CharT, _Traits>::sentry::=0A= sentry(basic_istream<_CharT, _Traits>& __in, bool __noskipws)=0A= {=0A= if (__in.good())=0A= {=0A= if (__in.tie())=0A= __in.tie()->flush();=0A= if (!__noskipws && (__in.flags() & ios_base::skipws))=0A= {=0A= const __int_type __eof =3D traits_type::eof();=0A= __streambuf_type* __sb =3D __in.rdbuf();=0A= __int_type __c =3D __sb->sgetc();=0A= =0A= if (__in._M_check_facet(__in._M_fctype))=0A= while (__c !=3D __eof=0A= && __in._M_fctype->is(ctype_base::space, __c))=0A= __c =3D __sb->snextc();=0A= =0A= =0A= =0A= if (__c =3D=3D __eof)=0A= __in.setstate(ios_base::eofbit);=0A= =0A= }=0A= }=0A= =0A= if (__in.good())=0A= _M_ok =3D true;=0A= else=0A= {=0A= _M_ok =3D false;=0A= __in.setstate(ios_base::failbit);=0A= }=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(__istream_type& (*__pf)(__istream_type&))=0A= {=0A= __pf(*this);=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(__ios_type& (*__pf)(__ios_type&))=0A= {=0A= __pf(*this);=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(ios_base& (*__pf)(ios_base&))=0A= {=0A= __pf(*this);=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(bool& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(short& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= long __l;=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __l);=0A= =0A= =0A= if (!(__err & ios_base::failbit)=0A= && (numeric_limits::min() <=3D __l=0A= && __l <=3D numeric_limits::max()))=0A= __n =3D __l;=0A= else=0A= __err |=3D ios_base::failbit;=0A= =0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(unsigned short& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(int& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= long __l;=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __l);=0A= =0A= =0A= if (!(__err & ios_base::failbit)=0A= && (numeric_limits::min() <=3D __l=0A= && __l <=3D numeric_limits::max()))=0A= __n =3D __l;=0A= else=0A= __err |=3D ios_base::failbit;=0A= =0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(unsigned int& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(long& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(unsigned long& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(long long& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(unsigned long long& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(float& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(double& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(long double& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(void*& __n)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= ios_base::iostate __err =3D = ios_base::iostate(ios_base::goodbit);=0A= if (_M_check_facet(_M_fnumget))=0A= _M_fnumget->get(*this, 0, *this, __err, __n);=0A= this->setstate(__err);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= operator>>(__streambuf_type* __sbout)=0A= {=0A= sentry __cerb(*this, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= streamsize __xtrct =3D 0;=0A= if (__sbout)=0A= {=0A= __streambuf_type* __sbin =3D this->rdbuf();=0A= __xtrct =3D __copy_streambufs(*this, __sbin, __sbout);=0A= }=0A= if (!__sbout || !__xtrct)=0A= this->setstate(ios_base::failbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= typename basic_istream<_CharT, _Traits>::int_type=0A= basic_istream<_CharT, _Traits>::=0A= get(void)=0A= {=0A= const int_type __eof =3D traits_type::eof();=0A= int_type __c =3D __eof;=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= __c =3D this->rdbuf()->sbumpc();=0A= =0A= if (__c !=3D __eof)=0A= _M_gcount =3D 1;=0A= else=0A= this->setstate(ios_base::eofbit | ios_base::failbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __c;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= get(char_type& __c)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= const int_type __eof =3D traits_type::eof();=0A= int_type __bufval =3D this->rdbuf()->sbumpc();=0A= =0A= if (__bufval !=3D __eof)=0A= {=0A= _M_gcount =3D 1;=0A= __c =3D traits_type::to_char_type(__bufval);=0A= }=0A= else=0A= this->setstate(ios_base::eofbit | ios_base::failbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= get(char_type* __s, streamsize __n, char_type __delim)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= const int_type __idelim =3D = traits_type::to_int_type(__delim);=0A= const int_type __eof =3D traits_type::eof();=0A= __streambuf_type* __sb =3D this->rdbuf();=0A= int_type __c =3D __sb->sgetc();=0A= =0A= while (_M_gcount + 1 < __n && __c !=3D __eof && __c !=3D = __idelim)=0A= {=0A= *__s++ =3D traits_type::to_char_type(__c);=0A= __c =3D __sb->snextc();=0A= ++_M_gcount;=0A= }=0A= if (__c =3D=3D __eof)=0A= this->setstate(ios_base::eofbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= *__s =3D char_type();=0A= if (!_M_gcount)=0A= this->setstate(ios_base::failbit);=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= get(__streambuf_type& __sb, char_type __delim)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= const int_type __idelim =3D = traits_type::to_int_type(__delim);=0A= const int_type __eof =3D traits_type::eof();=0A= __streambuf_type* __this_sb =3D this->rdbuf();=0A= int_type __c =3D __this_sb->sgetc();=0A= =0A= while (__c !=3D __eof && __c !=3D __idelim=0A= && (__sb.sputc(traits_type::to_char_type(__c)) !=3D = __eof))=0A= {=0A= ++_M_gcount;=0A= __c =3D __this_sb->snextc();=0A= }=0A= if (__c =3D=3D __eof)=0A= this->setstate(ios_base::eofbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= if (!_M_gcount)=0A= this->setstate(ios_base::failbit);=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= getline(char_type* __s, streamsize __n, char_type __delim)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= const int_type __idelim =3D = traits_type::to_int_type(__delim);=0A= const int_type __eof =3D traits_type::eof();=0A= __streambuf_type* __sb =3D this->rdbuf();=0A= int_type __c =3D __sb->sgetc();=0A= =0A= while (_M_gcount + 1 < __n && __c !=3D __eof && __c !=3D = __idelim)=0A= {=0A= *__s++ =3D traits_type::to_char_type(__c);=0A= __c =3D __sb->snextc();=0A= ++_M_gcount;=0A= }=0A= if (__c =3D=3D __eof)=0A= this->setstate(ios_base::eofbit);=0A= else=0A= {=0A= if (__c =3D=3D __idelim)=0A= {=0A= __sb->snextc();=0A= ++_M_gcount;=0A= }=0A= else=0A= this->setstate(ios_base::failbit);=0A= }=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= *__s =3D char_type();=0A= if (!_M_gcount)=0A= this->setstate(ios_base::failbit);=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= ignore(streamsize __n, int_type __delim)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= const int_type __eof =3D traits_type::eof();=0A= __streambuf_type* __sb =3D this->rdbuf();=0A= int_type __c =3D __sb->sgetc();=0A= =0A= __n =3D min(__n, numeric_limits::max());=0A= while (_M_gcount < __n && __c !=3D__eof && __c !=3D = __delim)=0A= {=0A= __c =3D __sb->snextc();=0A= ++_M_gcount;=0A= }=0A= if (__c =3D=3D __eof)=0A= this->setstate(ios_base::eofbit);=0A= else if (__c =3D=3D __delim)=0A= {=0A= __sb->snextc();=0A= ++_M_gcount;=0A= }=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= typename basic_istream<_CharT, _Traits>::int_type=0A= basic_istream<_CharT, _Traits>::=0A= peek(void)=0A= {=0A= int_type __c =3D traits_type::eof();=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= { __c =3D this->rdbuf()->sgetc(); }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __c;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= read(char_type* __s, streamsize __n)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= _M_gcount =3D this->rdbuf()->sgetn(__s, __n);=0A= if (_M_gcount !=3D __n)=0A= this->setstate(ios_base::eofbit | ios_base::failbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= else=0A= this->setstate(ios_base::failbit);=0A= return *this;=0A= }=0A= =0A= template=0A= streamsize=0A= basic_istream<_CharT, _Traits>::=0A= readsome(char_type* __s, streamsize __n)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= const int_type __eof =3D traits_type::eof();=0A= streamsize __num =3D this->rdbuf()->in_avail();=0A= if (__num !=3D static_cast(__eof))=0A= {=0A= __num =3D min(__num, __n);=0A= if (__num)=0A= _M_gcount =3D this->rdbuf()->sgetn(__s, __num);=0A= }=0A= else=0A= this->setstate(ios_base::eofbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= else=0A= this->setstate(ios_base::failbit);=0A= return _M_gcount;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= putback(char_type __c)=0A= {=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= const int_type __eof =3D traits_type::eof();=0A= __streambuf_type* __sb =3D this->rdbuf();=0A= if (!__sb || __sb->sputbackc(__c) =3D=3D __eof)=0A= this->setstate(ios_base::badbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= else=0A= this->setstate(ios_base::failbit);=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= unget(void)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= const int_type __eof =3D traits_type::eof();=0A= __streambuf_type* __sb =3D this->rdbuf();=0A= if (!__sb || __eof =3D=3D __sb->sungetc())=0A= this->setstate(ios_base::badbit);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= else=0A= this->setstate(ios_base::failbit);=0A= return *this;=0A= }=0A= =0A= template=0A= int=0A= basic_istream<_CharT, _Traits>::=0A= sync(void)=0A= {=0A= int __ret =3D traits_type::eof();=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= __streambuf_type* __sb =3D this->rdbuf();=0A= if (!__sb || __ret =3D=3D __sb->pubsync())=0A= this->setstate(ios_base::badbit);=0A= else=0A= __ret =3D 0;=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __ret;=0A= }=0A= =0A= template=0A= typename basic_istream<_CharT, _Traits>::pos_type=0A= basic_istream<_CharT, _Traits>::=0A= tellg(void)=0A= {=0A= pos_type __ret =3D pos_type(-1);=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= __ret =3D this->rdbuf()->pubseekoff(0, ios_base::cur, = ios_base::in);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return __ret;=0A= }=0A= =0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= seekg(pos_type __pos)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= =0A= =0A= pos_type __err =3D this->rdbuf()->pubseekpos(__pos, = ios_base::in);=0A= =0A= =0A= if (__err =3D=3D pos_type(off_type(-1)))=0A= this->setstate(ios_base::failbit);=0A= =0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= basic_istream<_CharT, _Traits>::=0A= seekg(off_type __off, ios_base::seekdir __dir)=0A= {=0A= _M_gcount =3D 0;=0A= sentry __cerb(*this, true);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= =0A= =0A= pos_type __err =3D this->rdbuf()->pubseekoff(__off, __dir,=0A= ios_base::in);=0A= =0A= =0A= if (__err =3D=3D pos_type(off_type(-1)))=0A= this->setstate(ios_base::failbit);=0A= =0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= this->setstate(ios_base::badbit);=0A= if ((this->exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)=0A= {=0A= typedef basic_istream<_CharT, _Traits> __istream_type;=0A= typename __istream_type::sentry __cerb(__in, false);=0A= if (__cerb)=0A= {=0A= try=0A= { __in.get(__c); }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= __in.setstate(ios_base::badbit);=0A= if ((__in.exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= else=0A= __in.setstate(ios_base::failbit);=0A= return __in;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)=0A= {=0A= typedef basic_istream<_CharT, _Traits> __istream_type;=0A= typedef typename __istream_type::__streambuf_type __streambuf_type;=0A= typedef typename _Traits::int_type int_type;=0A= typedef _CharT char_type;=0A= typedef ctype<_CharT> __ctype_type;=0A= streamsize __extracted =3D 0;=0A= =0A= typename __istream_type::sentry __cerb(__in, false);=0A= if (__cerb)=0A= {=0A= try=0A= {=0A= =0A= streamsize __num =3D __in.width();=0A= if (__num =3D=3D 0)=0A= __num =3D numeric_limits::max();=0A= =0A= const __ctype_type& __ctype =3D = use_facet<__ctype_type>(__in.getloc());=0A= const int_type __eof =3D _Traits::eof();=0A= __streambuf_type* __sb =3D __in.rdbuf();=0A= int_type __c =3D __sb->sgetc();=0A= =0A= while (__extracted < __num - 1=0A= && __c !=3D __eof && !__ctype.is(ctype_base::space, = __c))=0A= {=0A= *__s++ =3D __c;=0A= ++__extracted;=0A= __c =3D __sb->snextc();=0A= }=0A= if (__c =3D=3D __eof)=0A= __in.setstate(ios_base::eofbit);=0A= =0A= =0A= =0A= *__s =3D char_type();=0A= =0A= __in.width(0);=0A= }=0A= catch(exception& __fail)=0A= {=0A= =0A= =0A= __in.setstate(ios_base::badbit);=0A= if ((__in.exceptions() & ios_base::badbit) !=3D 0)=0A= throw;=0A= }=0A= }=0A= if (!__extracted)=0A= __in.setstate(ios_base::failbit);=0A= return __in;=0A= }=0A= =0A= =0A= template=0A= basic_istream<_CharT,_Traits>&=0A= ws(basic_istream<_CharT,_Traits>& __in)=0A= {=0A= typedef basic_istream<_CharT, _Traits> __istream_type;=0A= typedef typename __istream_type::__streambuf_type __streambuf_type;=0A= typedef typename __istream_type::__ctype_type __ctype_type;=0A= typedef typename __istream_type::int_type __int_type;=0A= =0A= const __ctype_type& __ctype =3D = use_facet<__ctype_type>(__in.getloc());=0A= const __int_type __eof =3D _Traits::eof();=0A= __streambuf_type* __sb =3D __in.rdbuf();=0A= __int_type __c =3D __sb->sgetc();=0A= =0A= while (__c !=3D __eof && __ctype.is(ctype_base::space, __c))=0A= __c =3D __sb->snextc();=0A= if (__c =3D=3D __eof)=0A= __in.setstate(ios_base::eofbit);=0A= =0A= return __in;=0A= }=0A= =0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= operator>>(basic_istream<_CharT, _Traits>& __in,=0A= basic_string<_CharT, _Traits, _Alloc>& __str)=0A= {=0A= typedef basic_istream<_CharT, _Traits> __istream_type;=0A= typedef typename __istream_type::int_type __int_type;=0A= typedef typename __istream_type::__streambuf_type __streambuf_type;=0A= typedef typename __istream_type::__ctype_type __ctype_type;=0A= typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A= typedef typename __string_type::size_type __size_type;=0A= __size_type __extracted =3D 0;=0A= =0A= typename __istream_type::sentry __cerb(__in, false);=0A= if (__cerb)=0A= {=0A= __str.erase();=0A= streamsize __w =3D __in.width();=0A= __size_type __n;=0A= __n =3D __w > 0 ? static_cast<__size_type>(__w) : = __str.max_size();=0A= =0A= const __ctype_type& __ctype =3D = use_facet<__ctype_type>(__in.getloc());=0A= const __int_type __eof =3D _Traits::eof();=0A= __streambuf_type* __sb =3D __in.rdbuf();=0A= __int_type __c =3D __sb->sgetc();=0A= =0A= while (__extracted < __n=0A= && __c !=3D __eof && !__ctype.is(ctype_base::space, = __c))=0A= {=0A= __str +=3D _Traits::to_char_type(__c);=0A= ++__extracted;=0A= __c =3D __sb->snextc();=0A= }=0A= if (__c =3D=3D __eof)=0A= __in.setstate(ios_base::eofbit);=0A= __in.width(0);=0A= }=0A= =0A= =0A= if (!__extracted)=0A= __in.setstate (ios_base::failbit);=0A= =0A= return __in;=0A= }=0A= =0A= template=0A= basic_istream<_CharT, _Traits>&=0A= getline(basic_istream<_CharT, _Traits>& __in,=0A= basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)=0A= {=0A= typedef basic_istream<_CharT, _Traits> __istream_type;=0A= typedef typename __istream_type::int_type __int_type;=0A= typedef typename __istream_type::__streambuf_type __streambuf_type;=0A= typedef typename __istream_type::__ctype_type __ctype_type;=0A= typedef basic_string<_CharT, _Traits, _Alloc> __string_type;=0A= typedef typename __string_type::size_type __size_type;=0A= =0A= __size_type __extracted =3D 0;=0A= bool __testdelim =3D false;=0A= typename __istream_type::sentry __cerb(__in, true);=0A= if (__cerb)=0A= {=0A= __str.erase();=0A= __size_type __n =3D __str.max_size();=0A= =0A= __int_type __idelim =3D _Traits::to_int_type(__delim);=0A= __streambuf_type* __sb =3D __in.rdbuf();=0A= __int_type __c =3D __sb->sbumpc();=0A= const __int_type __eof =3D _Traits::eof();=0A= __testdelim =3D __c =3D=3D __idelim;=0A= =0A= while (__extracted <=3D __n && __c !=3D __eof && !__testdelim)=0A= {=0A= __str +=3D _Traits::to_char_type(__c);=0A= ++__extracted;=0A= __c =3D __sb->sbumpc();=0A= __testdelim =3D __c =3D=3D __idelim;=0A= }=0A= if (__c =3D=3D __eof)=0A= __in.setstate(ios_base::eofbit);=0A= }=0A= if (!__extracted && !__testdelim)=0A= __in.setstate(ios_base::failbit);=0A= return __in;=0A= }=0A= =0A= template=0A= inline basic_istream<_CharT,_Traits>&=0A= getline(basic_istream<_CharT, _Traits>& __in,=0A= basic_string<_CharT,_Traits,_Alloc>& __str)=0A= { return getline(__in, __str, __in.widen('\n')); }=0A= =0A= =0A= =0A= =0A= extern template class basic_istream;=0A= extern template istream& ws(istream&);=0A= extern template istream& operator>>(istream&, char&);=0A= extern template istream& operator>>(istream&, char*);=0A= extern template istream& operator>>(istream&, unsigned char&);=0A= extern template istream& operator>>(istream&, signed char&);=0A= extern template istream& operator>>(istream&, unsigned char*);=0A= extern template istream& operator>>(istream&, signed char*);=0A= =0A= extern template class basic_istream;=0A= extern template wistream& ws(wistream&);=0A= extern template wistream& operator>>(wistream&, wchar_t&);=0A= extern template wistream& operator>>(wistream&, wchar_t*);=0A= }=0A= # 288 "/usr/local/gcc3.1/include/g++-v3/istream" 2 3=0A= # 47 "/usr/local/gcc3.1/include/g++-v3/iostream" 2 3=0A= =0A= namespace std=0A= {=0A= extern istream cin;=0A= extern ostream cout;=0A= extern ostream cerr;=0A= extern ostream clog;=0A= =0A= extern wistream wcin;=0A= extern wostream wcout;=0A= extern wostream wcerr;=0A= extern wostream wclog;=0A= =0A= =0A= =0A= static ios_base::Init __ioinit;=0A= }=0A= # 54 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 69 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/as= sertions.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/as= sertions.h"=0A= namespace CGAL {=0A= =0A= =0A= =0A= =0A= enum Failure_behaviour { ABORT, EXIT, EXIT_WITH_SUCCESS, CONTINUE };=0A= =0A= =0A= =0A= =0A= =0A= void assertion_fail ( const char*, const char*, int, const char*);=0A= void precondition_fail ( const char*, const char*, int, const char*);=0A= void postcondition_fail ( const char*, const char*, int, const char*);=0A= =0A= =0A= =0A= void warning_fail( const char*, const char*, int, const char*);=0A= # 319 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/as= sertions.h"=0A= typedef=0A= void=0A= (*Failure_function)(=0A= const char*, const char*, const char*, int, const char*);=0A= =0A= Failure_function=0A= set_error_handler( Failure_function handler);=0A= =0A= Failure_function=0A= set_warning_handler( Failure_function handler);=0A= =0A= =0A= =0A= Failure_behaviour=0A= set_error_behaviour(Failure_behaviour eb);=0A= =0A= Failure_behaviour=0A= set_warning_behaviour(Failure_behaviour eb);=0A= =0A= }=0A= # 70 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke= rnel_assertions.h" 1=0A= # 71 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ob= ject.h" 1=0A= # 54 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ob= ject.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle_for_virtual.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle_for_virtual.h"=0A= namespace CGAL {=0A= =0A= class Ref_counted_virtual=0A= {=0A= public:=0A= Ref_counted_virtual() : count(1) {}=0A= Ref_counted_virtual(const Ref_counted_virtual&) : count(1) {}=0A= =0A= void add_reference() { ++count; }=0A= void remove_reference() { --count; }=0A= bool is_referenced() { return (count !=3D 0); }=0A= bool is_shared() { return (count > 1); }=0A= =0A= virtual ~Ref_counted_virtual() {}=0A= =0A= protected:=0A= unsigned int count;=0A= };=0A= =0A= =0A= template =0A= =0A= =0A= =0A= =0A= =0A= =0A= class Handle_for_virtual=0A= {=0A= public:=0A= =0A= Handle_for_virtual(const RefCounted& rc)=0A= {=0A= ptr =3D new RefCounted(rc);=0A= }=0A= =0A= Handle_for_virtual()=0A= {=0A= ptr =3D __null;=0A= }=0A= =0A= Handle_for_virtual( const Handle_for_virtual& h)=0A= {=0A= ptr =3D h.ptr;=0A= ptr->add_reference();=0A= }=0A= =0A= ~Handle_for_virtual()=0A= {=0A= ptr->remove_reference();=0A= if ( !ptr->is_referenced() )=0A= delete ptr;=0A= }=0A= =0A= Handle_for_virtual&=0A= operator=3D( const Handle_for_virtual& h)=0A= {=0A= h.ptr->add_reference();=0A= ptr->remove_reference();=0A= if ( !ptr->is_referenced() )=0A= delete ptr;=0A= ptr =3D h.ptr;=0A= return *this;=0A= }=0A= =0A= =0A= typedef RefCounted element_type;=0A= =0A= template =0A= void=0A= initialize_with( const T& rc)=0A= {=0A= ptr =3D new T(rc);=0A= }=0A= =0A= bool=0A= identical( const Handle_for_virtual& h) const=0A= { return ptr =3D=3D h.ptr; }=0A= =0A= long int=0A= id() const=0A= { return reinterpret_cast(&*ptr); }=0A= =0A= const RefCounted *=0A= Ptr() const=0A= { return ptr; }=0A= # 161 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle_for_virtual.h"=0A= protected:=0A= # 170 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle_for_virtual.h"=0A= private:=0A= =0A= RefCounted * ptr;=0A= };=0A= =0A= }=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ob= ject.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template =0A= class Wrapper : public Ref_counted_virtual=0A= {=0A= public:=0A= Wrapper(const T& object) : _object(object) {}=0A= =0A= Wrapper() {}=0A= =0A= operator T() const { return _object; }=0A= =0A= ~Wrapper() {}=0A= =0A= private:=0A= T _object;=0A= };=0A= =0A= class Object=0A= : public Handle_for_virtual=0A= {=0A= struct empty{};=0A= typedef Handle_for_virtual base;=0A= =0A= public:=0A= =0A= struct private_tag{};=0A= =0A= Object()=0A= {=0A= initialize_with(Wrapper());=0A= }=0A= =0A= template =0A= Object(const T&t, private_tag)=0A= {=0A= initialize_with(Wrapper(t));=0A= }=0A= =0A= template =0A= bool assign(T &t) const=0A= {=0A= =0A= =0A= =0A= const Wrapper *wp =3D dynamic_cast *>(Ptr());=0A= if (wp =3D=3D __null)=0A= return false;=0A= t =3D *wp;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= return true;=0A= }=0A= =0A= bool=0A= is_empty() const=0A= {=0A= empty E;=0A= return assign(E);=0A= }=0A= };=0A= =0A= =0A= template =0A= inline=0A= Object=0A= make_object(const T& t)=0A= {=0A= return Object(t, Object::private_tag());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= assign(T& t, const Object& o)=0A= {=0A= return o.assign(t);=0A= }=0A= =0A= }=0A= # 72 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/en= um.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/en= um.h"=0A= namespace CGAL {=0A= =0A= enum Sign=0A= {=0A= NEGATIVE =3D -1,=0A= ZERO,=0A= POSITIVE=0A= };=0A= =0A= typedef Sign Orientation;=0A= =0A= const Orientation LEFT_TURN =3D POSITIVE;=0A= const Orientation RIGHT_TURN =3D NEGATIVE;=0A= =0A= =0A= const Orientation LEFTTURN =3D POSITIVE;=0A= const Orientation RIGHTTURN =3D NEGATIVE;=0A= =0A= =0A= const Orientation CLOCKWISE =3D NEGATIVE;=0A= const Orientation COUNTERCLOCKWISE =3D POSITIVE;=0A= =0A= const Orientation COLLINEAR =3D ZERO;=0A= const Orientation COPLANAR =3D ZERO;=0A= const Orientation DEGENERATE =3D ZERO;=0A= =0A= enum Oriented_side=0A= {=0A= ON_NEGATIVE_SIDE =3D -1,=0A= ON_ORIENTED_BOUNDARY,=0A= ON_POSITIVE_SIDE=0A= };=0A= =0A= enum Bounded_side=0A= {=0A= ON_UNBOUNDED_SIDE =3D -1,=0A= ON_BOUNDARY,=0A= ON_BOUNDED_SIDE=0A= };=0A= =0A= enum Comparison_result=0A= {=0A= SMALLER =3D -1,=0A= EQUAL,=0A= LARGER=0A= };=0A= =0A= enum Angle=0A= {=0A= OBTUSE =3D -1,=0A= RIGHT,=0A= ACUTE=0A= };=0A= =0A= }=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu= nctions_on_enums.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu= nctions_on_enums.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/en= um.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu= nctions_on_enums.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template =0A= inline=0A= T=0A= opposite(const T& t)=0A= { return -t; }=0A= =0A= inline=0A= Sign=0A= opposite(Sign o)=0A= { return static_cast( - static_cast(o)); }=0A= =0A= inline=0A= Comparison_result=0A= opposite(Comparison_result o)=0A= { return static_cast( - static_cast(o)); }=0A= =0A= inline=0A= Oriented_side=0A= opposite(Oriented_side os)=0A= { return static_cast( - static_cast(os)); }=0A= =0A= inline=0A= Bounded_side=0A= opposite(Bounded_side bs)=0A= { return static_cast( - static_cast(bs)); }=0A= =0A= inline=0A= Angle=0A= opposite(Angle a)=0A= { return static_cast( - static_cast(a)); }=0A= =0A= }=0A= # 106 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/en= um.h" 2=0A= # 73 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta= gs.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta= gs.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/af= f_transformation_tags.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/af= f_transformation_tags.h"=0A= namespace CGAL {=0A= =0A= class Translation {};=0A= class Rotation {};=0A= class Scaling {};=0A= class Reflection {};=0A= class Identity_transformation {};=0A= =0A= extern Translation TRANSLATION;=0A= extern Rotation ROTATION;=0A= extern Scaling SCALING;=0A= extern Reflection REFLECTION;=0A= extern Identity_transformation IDENTITY;=0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta= gs.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /io_tags.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /io_tags.h"=0A= namespace CGAL {=0A= =0A= struct io_Read_write{};=0A= struct io_Extract_insert{};=0A= struct io_Operator{};=0A= =0A= }=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta= gs.h" 2=0A= =0A= namespace CGAL {=0A= =0A= =0A= =0A= struct Tag_true {};=0A= struct Tag_false {};=0A= =0A= inline bool check_tag( Tag_true) {return true;}=0A= inline bool check_tag( Tag_false) {return false;}=0A= # 71 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ta= gs.h"=0A= template =0A= struct Assert_tag_class=0A= {=0A= void match_compile_time_tag( const Base&) const {}=0A= };=0A= =0A= template =0A= inline=0A= void=0A= Assert_compile_time_tag( const Tag&, const Derived& b)=0A= {=0A= Assert_tag_class x;=0A= x.match_compile_time_tag(b);=0A= }=0A= =0A= =0A= template < class T>=0A= inline=0A= void=0A= assert_equal_types( const T&, const T&) {}=0A= =0A= }=0A= # 74 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h" 1=0A= # 65 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h"=0A= namespace CGAL {=0A= =0A= =0A= =0A= using std::min;=0A= using std::max;=0A= # 104 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h"=0A= }=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Nu= mber_type_traits.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Nu= mber_type_traits.h"=0A= namespace CGAL {=0A= =0A= template < class NT >=0A= struct Number_type_traits {=0A= typedef typename NT::Has_gcd Has_gcd;=0A= typedef typename NT::Has_division Has_division;=0A= typedef typename NT::Has_sqrt Has_sqrt;=0A= };=0A= =0A= }=0A= # 107 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_utils.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_utils.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke= rnel_basic.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke= rnel_basic.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel_traits.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel_traits.h"=0A= namespace CGAL {=0A= =0A= template =0A= struct Kernel_traits=0A= {=0A= typedef typename T::R Kernel;=0A= };=0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke= rnel_basic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu= nctional_base.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu= nctional_base.h"=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/functional" 1 3=0A= # 53 "/usr/local/gcc3.1/include/g++-v3/functional" 3=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu= nctional_base.h" 2=0A= =0A= namespace CGAL {=0A= =0A= =0A= =0A= =0A= =0A= template < int i > struct Arity_tag { enum { arity =3D i }; };=0A= =0A= =0A= =0A= =0A= template < class T >=0A= struct Arity_traits {=0A= typedef typename T::Arity Arity;=0A= };=0A= # 143 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fu= nctional_base.h"=0A= template < class T >=0A= struct Arity_traits< std::plus< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::minus< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::multiplies< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::divides< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::modulus< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::negate< T > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::equal_to< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::not_equal_to< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::greater< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::less< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::greater_equal< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::less_equal< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::logical_and< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::logical_or< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::logical_not< T > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::unary_negate< T > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::binary_negate< T > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::binder1st< T > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T >=0A= struct Arity_traits< std::binder2nd< T > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T1, class T2 >=0A= struct Arity_traits< std::pointer_to_unary_function< T1, T2 > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T1, class T2, class T3 >=0A= struct Arity_traits< std::pointer_to_binary_function< T1, T2, T3 > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T1, class T2 >=0A= struct Arity_traits< std::mem_fun_t< T1, T2 > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T1, class T2, class T3 >=0A= struct Arity_traits< std::mem_fun1_t< T1, T2, T3 > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T1, class T2 >=0A= struct Arity_traits< std::mem_fun_ref_t< T1, T2 > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T1, class T2, class T3 >=0A= struct Arity_traits< std::mem_fun1_ref_t< T1, T2, T3 > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T1, class T2 >=0A= struct Arity_traits< std::const_mem_fun_t< T1, T2 > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T1, class T2, class T3 >=0A= struct Arity_traits< std::const_mem_fun1_t< T1, T2, T3 > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= template < class T1, class T2 >=0A= struct Arity_traits< std::const_mem_fun_ref_t< T1, T2 > > {=0A= typedef Arity_tag< 1 > Arity;=0A= };=0A= template < class T1, class T2, class T3 >=0A= struct Arity_traits< std::const_mem_fun1_ref_t< T1, T2, T3 > > {=0A= typedef Arity_tag< 2 > Arity;=0A= };=0A= =0A= =0A= =0A= =0A= }=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ke= rnel_basic.h" 2=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_utils.h" 2=0A= =0A= =0A= namespace CGAL {=0A= =0A= template =0A= inline=0A= bool=0A= is_zero(const NT& x)=0A= {=0A= bool is_zero_is_obsolete__qualify_call_by_CGAL_NTS;=0A= return x =3D=3D NT(0);=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= is_one(const NT& x)=0A= {=0A= bool is_one_is_obsolete__qualify_call_by_CGAL_NTS;=0A= return x =3D=3D NT(1);=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= is_negative(const NT& x)=0A= {=0A= bool is_negative_is_obsolete__qualify_call_by_CGAL_NTS;=0A= return x < NT(0);=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= is_positive(const NT& x)=0A= {=0A= bool is_positive_is_obsolete__qualify_call_by_CGAL_NTS;=0A= return NT(0) < x;=0A= }=0A= =0A= template =0A= inline=0A= Sign=0A= sign(const NT& x)=0A= {=0A= bool sign_is_obsolete__qualify_call_by_CGAL_NTS;=0A= return (x < NT(0)) ? NEGATIVE : (NT(0) < x) ? POSITIVE : ZERO;=0A= }=0A= =0A= template =0A= inline=0A= NT=0A= abs(const NT& x)=0A= {=0A= bool abs_is_obsolete__qualify_call_by_CGAL_NTS;=0A= return (x < NT(0)) ? -x: x;=0A= }=0A= =0A= =0A= =0A= template =0A= inline=0A= Comparison_result=0A= compare(const NT& n1, const NT& n2)=0A= {=0A= bool compare_is_obsolete__qualify_call_by_CGAL_NTS;=0A= if (n1 < n2)=0A= {=0A= return SMALLER ;=0A= }=0A= return (n2 < n1) ? LARGER : EQUAL;=0A= }=0A= =0A= template =0A= inline=0A= NT=0A= square( const NT& n)=0A= {=0A= bool square_is_obsolete__qualify_call_by_CGAL_NTS;=0A= return n*n;=0A= }=0A= =0A= namespace NTS {=0A= =0A= template =0A= inline=0A= bool=0A= is_zero(const NT& x)=0A= { return x =3D=3D NT(0); }=0A= =0A= template =0A= inline=0A= bool=0A= is_one(const NT& x)=0A= { return x =3D=3D NT(1); }=0A= =0A= template =0A= inline=0A= bool=0A= is_negative(const NT& x)=0A= { return x < NT(0); }=0A= =0A= template =0A= inline=0A= bool=0A= is_positive(const NT& x)=0A= { return NT(0) < x; }=0A= =0A= template =0A= inline=0A= Sign=0A= sign(const NT& x)=0A= { return (x < NT(0)) ? NEGATIVE : (NT(0) < x) ? POSITIVE : ZERO; }=0A= =0A= template =0A= inline=0A= NT=0A= abs(const NT& x)=0A= { return (x < NT(0)) ? -x: x; }=0A= =0A= template =0A= inline=0A= const NT&=0A= min(const NT& x, const NT& y)=0A= { return (y < x) ? y : x; }=0A= =0A= template =0A= inline=0A= const NT&=0A= max(const NT& x, const NT& y)=0A= { return (x < y) ? y : x; }=0A= =0A= template =0A= inline=0A= Comparison_result=0A= compare(const NT& n1, const NT& n2)=0A= {=0A= if (n1 < n2)=0A= {=0A= return SMALLER ;=0A= }=0A= return (n2 < n1) ? LARGER : EQUAL;=0A= }=0A= =0A= template =0A= inline=0A= NT=0A= square( const NT& n)=0A= { return n*n; }=0A= =0A= template =0A= inline=0A= double=0A= to_double( const NT& n)=0A= { return CGAL::to_double(n); }=0A= =0A= template =0A= inline=0A= NT=0A= div( const NT& n1, const NT& n2)=0A= { return CGAL::div(n1, n2); }=0A= =0A= template =0A= inline=0A= NT=0A= sqrt( const NT& n)=0A= { return CGAL::sqrt(n); }=0A= =0A= template =0A= inline=0A= bool=0A= is_valid( const NT& n)=0A= { return CGAL::is_valid(n); }=0A= =0A= template =0A= inline=0A= bool=0A= is_finite( const NT& n)=0A= { return CGAL::is_finite(n); }=0A= =0A= template =0A= inline=0A= bool=0A= is_integral( const NT& n)=0A= { return CGAL::is_integral(n); }=0A= =0A= template =0A= inline=0A= NT=0A= gcd( const NT& n1, const NT& n2)=0A= {=0A= ((!CGAL::NTS:: is_zero(n2))?(static_cast(0)): = ::CGAL::precondition_fail( "!CGAL_NTS is_zero(n2)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_utils.h", 244, 0));=0A= NT x =3D CGAL::NTS:: abs(n1);=0A= NT y =3D CGAL::NTS:: abs(n2);=0A= do {=0A= x %=3D y;=0A= if (CGAL::NTS:: is_zero(x)) return y;=0A= y %=3D x;=0A= } while (CGAL::NTS:: is_positive(y));=0A= return x;=0A= }=0A= =0A= }=0A= =0A= }=0A= # 108 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_utils_classes.h" 1=0A= # 60 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_utils_classes.h"=0A= namespace CGAL {=0A= =0A= template < class NT >=0A= struct Is_zero :public std::unary_function< NT, bool > {=0A= typedef Arity_tag< 1 > Arity;=0A= bool operator()( const NT& x) const=0A= { return CGAL::NTS:: is_zero( x); }=0A= };=0A= =0A= template < class NT >=0A= struct Is_one :public std::unary_function< NT, bool > {=0A= typedef Arity_tag< 1 > Arity;=0A= bool operator()( const NT& x) const=0A= { return CGAL::NTS:: is_one( x); }=0A= };=0A= =0A= template < class NT >=0A= struct Is_negative :public std::unary_function< NT, bool > {=0A= typedef Arity_tag< 1 > Arity;=0A= bool operator()( const NT& x) const=0A= { return CGAL::NTS:: is_negative( x); }=0A= };=0A= =0A= template < class NT >=0A= struct Is_positive :public std::unary_function< NT, bool > {=0A= typedef Arity_tag< 1 > Arity;=0A= bool operator()( const NT& x) const=0A= { return CGAL::NTS:: is_positive( x); }=0A= };=0A= =0A= =0A= template < class NT >=0A= struct Sgn :public std::unary_function< NT, int > {=0A= typedef Arity_tag< 1 > Arity;=0A= Sign operator()( const NT& x) const=0A= { return CGAL::NTS:: sign( x); }=0A= };=0A= =0A= template < class NT >=0A= struct Abs :public std::unary_function< NT, NT > {=0A= typedef Arity_tag< 1 > Arity;=0A= NT operator()( const NT& x) const=0A= { return CGAL::NTS:: abs( x); }=0A= };=0A= =0A= template < class NT, class Compare =3D std::less< NT > >=0A= struct Min :public std::binary_function< NT, NT, NT > {=0A= typedef Arity_tag< 2 > Arity;=0A= Min() {}=0A= Min(const Compare& c_) : c(c_) {}=0A= NT operator()( const NT& x, const NT& y) const=0A= { return min( x, y, c); }=0A= protected:=0A= Compare c;=0A= };=0A= =0A= template < class NT, class Compare =3D std::less< NT > >=0A= struct Max :public std::binary_function< NT, NT, NT > {=0A= typedef Arity_tag< 2 > Arity;=0A= Max() {}=0A= Max(const Compare& c_) : c(c_) {}=0A= NT operator()( const NT& x, const NT& y) const=0A= { return max( x, y, c); }=0A= protected:=0A= Compare c;=0A= };=0A= =0A= template < class NT >=0A= struct Compare=0A= :public std::binary_function< NT, NT, Comparison_result > {=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= Comparison_result=0A= operator()( const NT& x, const NT& y) const=0A= { return CGAL::NTS:: compare( x, y); }=0A= };=0A= =0A= template < class NT >=0A= struct Square : public std::unary_function< NT, NT > {=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= NT=0A= operator()( const NT& x) const=0A= { return CGAL::NTS:: square( x ); }=0A= };=0A= =0A= template < class NT >=0A= struct Sqrt : public std::unary_function< NT, NT > {=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= NT=0A= operator()( const NT& x) const=0A= { return CGAL::NTS:: sqrt( x ); }=0A= };=0A= =0A= template < class NT >=0A= struct Div : public std::binary_function< NT, NT, NT > {=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= NT=0A= operator()( const NT& x, const NT& y) const=0A= { return CGAL::NTS:: div( x, y ); }=0A= };=0A= =0A= template < class NT >=0A= struct Gcd : public std::binary_function< NT, NT, NT > {=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= NT=0A= operator()( const NT& x, const NT& y) const=0A= { return CGAL::NTS:: gcd( x, y ); }=0A= };=0A= =0A= }=0A= # 109 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do= uble.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do= uble.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do= uble.h" 2=0A= # 59 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do= uble.h"=0A= namespace CGAL {=0A= =0A= template<> struct Number_type_traits {=0A= typedef Tag_false Has_gcd;=0A= typedef Tag_true Has_division;=0A= typedef Tag_true Has_sqrt;=0A= };=0A= =0A= inline=0A= double=0A= to_double(double d)=0A= { return d; }=0A= =0A= inline=0A= double=0A= sqrt(double d)=0A= { return std::sqrt(d); }=0A= =0A= inline=0A= bool=0A= is_integral (const double d)=0A= { return std::ceil(d) =3D=3D d; }=0A= # 167 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/do= uble.h"=0A= inline=0A= bool=0A= is_valid(double d)=0A= { return (d =3D=3D d); }=0A= =0A= inline=0A= bool=0A= is_finite(double d)=0A= { return (d =3D=3D d) && (is_valid(d-d)); }=0A= =0A= =0A= =0A= inline=0A= io_Operator=0A= io_tag(double)=0A= { return io_Operator(); }=0A= =0A= namespace NTS {=0A= =0A= =0A= =0A= =0A= template <>=0A= inline=0A= double=0A= abs(const double& d)=0A= { return std::fabs(d); }=0A= =0A= }=0A= =0A= }=0A= # 110 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fl= oat.h" 1=0A= # 61 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fl= oat.h"=0A= namespace CGAL {=0A= =0A= template <> struct Number_type_traits {=0A= typedef Tag_false Has_gcd;=0A= typedef Tag_true Has_division;=0A= typedef Tag_false Has_sqrt;=0A= };=0A= =0A= inline=0A= double=0A= to_double(float f)=0A= { return static_cast(f); }=0A= # 159 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/fl= oat.h"=0A= inline=0A= bool=0A= is_valid(float d)=0A= { return (d =3D=3D d); }=0A= =0A= inline=0A= bool=0A= is_finite(float d)=0A= { return (d =3D=3D d) && (is_valid(d-d)); }=0A= =0A= =0A= =0A= inline=0A= io_Operator=0A= io_tag(float)=0A= { return io_Operator(); }=0A= =0A= }=0A= # 111 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/in= t.h" 1=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/in= t.h"=0A= namespace CGAL {=0A= =0A= =0A= =0A= template <> struct Number_type_traits {=0A= typedef Tag_true Has_gcd;=0A= typedef Tag_false Has_division;=0A= typedef Tag_false Has_sqrt;=0A= };=0A= =0A= inline=0A= int=0A= div(int i1, int i2)=0A= { return i1 / i2; }=0A= =0A= inline=0A= double=0A= to_double(int i)=0A= { return static_cast(i); }=0A= =0A= inline=0A= bool=0A= is_finite(int)=0A= { return true; }=0A= =0A= inline=0A= bool=0A= is_valid(int)=0A= { return true; }=0A= =0A= inline=0A= io_Operator=0A= io_tag(int)=0A= { return io_Operator(); }=0A= =0A= =0A= =0A= template <> struct Number_type_traits {=0A= typedef Tag_true Has_gcd;=0A= typedef Tag_false Has_division;=0A= typedef Tag_false Has_sqrt;=0A= };=0A= =0A= inline=0A= unsigned int=0A= div(unsigned int i1, unsigned int i2)=0A= { return i1 / i2; }=0A= =0A= inline=0A= double=0A= to_double(unsigned int i)=0A= { return static_cast(i); }=0A= =0A= inline=0A= bool=0A= is_finite(unsigned int)=0A= { return true; }=0A= =0A= inline=0A= bool=0A= is_valid(unsigned int)=0A= { return true; }=0A= =0A= inline=0A= io_Operator=0A= io_tag(unsigned int)=0A= { return io_Operator(); }=0A= =0A= namespace NTS {=0A= inline unsigned int is_negative(unsigned int) { return false; }=0A= =0A= inline Sign sign(unsigned int i)=0A= { return is_positive(i) ? POSITIVE : ZERO; }=0A= =0A= inline unsigned int is_positive(unsigned int i)=0A= { return i !=3D 0; }=0A= =0A= inline unsigned int abs(unsigned int i) { return i; }=0A= }=0A= =0A= =0A= =0A= template <> struct Number_type_traits {=0A= typedef Tag_true Has_gcd;=0A= typedef Tag_false Has_division;=0A= typedef Tag_false Has_sqrt;=0A= };=0A= =0A= inline=0A= long int=0A= div(long int i1, long int i2)=0A= { return i1 / i2; }=0A= =0A= inline=0A= double=0A= to_double(long int i)=0A= { return static_cast(i); }=0A= =0A= inline=0A= bool=0A= is_finite(long int)=0A= { return true; }=0A= =0A= inline=0A= bool=0A= is_valid(long int)=0A= { return true; }=0A= =0A= inline=0A= io_Operator=0A= io_tag(long int)=0A= { return io_Operator(); }=0A= =0A= =0A= =0A= template <> struct Number_type_traits {=0A= typedef Tag_true Has_gcd;=0A= typedef Tag_false Has_division;=0A= typedef Tag_false Has_sqrt;=0A= };=0A= =0A= inline=0A= unsigned long int=0A= div(unsigned long int i1, unsigned long int i2)=0A= { return i1 / i2; }=0A= =0A= inline=0A= double=0A= to_double(unsigned long int i)=0A= { return static_cast(i); }=0A= =0A= inline=0A= bool=0A= is_finite(unsigned long int)=0A= { return true; }=0A= =0A= inline=0A= bool=0A= is_valid(unsigned long int)=0A= { return true; }=0A= =0A= inline=0A= io_Operator=0A= io_tag(unsigned long int)=0A= { return io_Operator(); }=0A= =0A= namespace NTS {=0A= inline unsigned long int is_negative(unsigned long int)=0A= { return false; }=0A= =0A= inline Sign sign(unsigned long int i)=0A= { return is_positive(i) ? POSITIVE : ZERO; }=0A= =0A= inline unsigned long int is_positive(unsigned long int i)=0A= { return i !=3D 0; }=0A= =0A= inline unsigned long int abs(unsigned long int i) { return i; }=0A= }=0A= =0A= =0A= =0A= template <> struct Number_type_traits {=0A= typedef Tag_true Has_gcd;=0A= typedef Tag_false Has_division;=0A= typedef Tag_false Has_sqrt;=0A= };=0A= =0A= inline=0A= short int=0A= div(short int i1, short int i2)=0A= { return i1 / i2; }=0A= =0A= inline=0A= double=0A= to_double(short int i)=0A= { return static_cast(i); }=0A= =0A= inline=0A= bool=0A= is_finite(short int)=0A= { return true; }=0A= =0A= inline=0A= bool=0A= is_valid(short int)=0A= { return true; }=0A= =0A= inline=0A= io_Operator=0A= io_tag(short int)=0A= { return io_Operator(); }=0A= =0A= =0A= =0A= template <> struct Number_type_traits {=0A= typedef Tag_true Has_gcd;=0A= typedef Tag_false Has_division;=0A= typedef Tag_false Has_sqrt;=0A= };=0A= =0A= inline=0A= unsigned short int=0A= div(unsigned short int i1, unsigned short int i2)=0A= { return i1 / i2; }=0A= =0A= inline=0A= double=0A= to_double(unsigned short int i)=0A= { return static_cast(i); }=0A= =0A= inline=0A= bool=0A= is_finite(unsigned short int)=0A= { return true; }=0A= =0A= inline=0A= bool=0A= is_valid(unsigned short int)=0A= { return true; }=0A= =0A= inline=0A= io_Operator=0A= io_tag(unsigned short int)=0A= { return io_Operator(); }=0A= =0A= namespace NTS {=0A= inline unsigned short int is_negative(unsigned short int)=0A= { return false; }=0A= =0A= inline Sign sign(unsigned short int i)=0A= { return is_positive(i) ? POSITIVE : ZERO; }=0A= =0A= inline unsigned short int is_positive(unsigned short int i)=0A= { return i !=3D 0; }=0A= =0A= inline unsigned short int abs(unsigned short int i) { return i; }=0A= }=0A= # 364 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/in= t.h"=0A= }=0A= # 112 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_arithmetic.h" 1=0A= # 61 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_arithmetic.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP= U.h" 1=0A= # 62 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP= U.h"=0A= # 1 "/usr/include/fpu_control.h" 1 3=0A= # 89 "/usr/include/fpu_control.h" 3=0A= typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__HI__)));=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern fpu_control_t __fpu_control;=0A= # 63 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP= U.h" 2=0A= # 84 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP= U.h"=0A= namespace CGAL {=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline double IA_force_to_double(double x)=0A= {=0A= =0A= =0A= =0A= =0A= asm("" : "=3Dm"(x) : "m"(x));=0A= =0A= return x;=0A= =0A= =0A= =0A= =0A= }=0A= # 201 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP= U.h"=0A= typedef unsigned short FPU_CW_t;=0A= # 295 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/FP= U.h"=0A= inline=0A= FPU_CW_t=0A= FPU_get_cw (void)=0A= {=0A= =0A= =0A= =0A= =0A= FPU_CW_t cw;=0A= asm volatile ("fnstcw %0" : "=3Dm" (cw));=0A= return cw;=0A= }=0A= =0A= inline=0A= void=0A= FPU_set_cw (FPU_CW_t cw)=0A= {=0A= asm volatile ("fldcw %0" : :"m" (cw));=0A= }=0A= =0A= inline=0A= FPU_CW_t=0A= FPU_get_and_set_cw (FPU_CW_t cw)=0A= {=0A= FPU_CW_t old =3D FPU_get_cw();=0A= FPU_set_cw(cw);=0A= return old;=0A= }=0A= =0A= FPU_CW_t FPU_empiric_test();=0A= =0A= void force_ieee_double_precision();=0A= =0A= =0A= =0A= =0A= template struct Protect_FPU_rounding;=0A= =0A= template <>=0A= struct Protect_FPU_rounding=0A= {=0A= Protect_FPU_rounding(FPU_CW_t r =3D (0x800 | 0x127f))=0A= : backup( FPU_get_and_set_cw(r) ) {}=0A= =0A= ~Protect_FPU_rounding()=0A= {=0A= FPU_set_cw(backup);=0A= }=0A= =0A= private:=0A= FPU_CW_t backup;=0A= };=0A= =0A= template <>=0A= struct Protect_FPU_rounding=0A= {=0A= Protect_FPU_rounding(FPU_CW_t=0A= =3D (0x800 | 0x127f))=0A= {=0A= (static_cast(0));=0A= }=0A= =0A= ~Protect_FPU_rounding() {}=0A= =0A= =0A= };=0A= =0A= }=0A= # 62 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_arithmetic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_base.h" 1=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_base.h"=0A= namespace CGAL {=0A= =0A= struct Interval_base=0A= {=0A= typedef Interval_base IA;=0A= struct unsafe_comparison {};=0A= static unsigned number_of_failures;=0A= static const IA Smallest, Largest;=0A= =0A= Interval_base () {}=0A= =0A= =0A= =0A= =0A= Interval_base (const Interval_base &i)=0A= : inf_(i.inf_), sup_(i.sup_) {}=0A= =0A= Interval_base (const double d)=0A= : inf_(d), sup_(d) {}=0A= =0A= Interval_base (const double i, const double s)=0A= : inf_(i), sup_(s)=0A= {=0A= =0A= =0A= ((!(i>s))?(static_cast(0)): ::CGAL::assertion_fail( "!(i>s)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_base.h", 81, " Variable used before being initialized (or CGAL = bug)"));=0A= =0A= }=0A= =0A= static void overlap_action()=0A= {=0A= number_of_failures++;=0A= throw unsafe_comparison();=0A= }=0A= =0A= bool operator< (const IA &d) const=0A= {=0A= if (sup_ < d.inf_) return true;=0A= if (inf_ >=3D d.sup_) return false;=0A= overlap_action();=0A= return false;=0A= }=0A= =0A= bool operator> (const IA &d) const=0A= {=0A= return d < *this;=0A= }=0A= =0A= bool operator<=3D (const IA &d) const=0A= {=0A= if (sup_ <=3D d.inf_) return true;=0A= if (inf_ > d.sup_) return false;=0A= overlap_action();=0A= return false;=0A= }=0A= =0A= bool operator>=3D (const IA &d) const=0A= {=0A= return d <=3D *this;=0A= }=0A= =0A= bool operator=3D=3D (const IA &d) const=0A= {=0A= if (d.inf_ > sup_ || d.sup_ < inf_) return false;=0A= if (d.inf_ =3D=3D sup_ && d.sup_ =3D=3D inf_) return true;=0A= overlap_action();=0A= return false;=0A= }=0A= =0A= bool operator!=3D (const IA &d) const=0A= {=0A= return !(*this =3D=3D d);=0A= }=0A= =0A= bool is_point() const=0A= {=0A= return sup_ =3D=3D inf_;=0A= }=0A= =0A= bool is_same (const IA & d) const=0A= {=0A= return inf_ =3D=3D d.inf_ && sup_ =3D=3D d.sup_;=0A= }=0A= =0A= bool do_overlap (const IA & d) const=0A= {=0A= return !(d.inf_ > sup_ || d.sup_ < inf_);=0A= }=0A= =0A= double inf() const { return inf_; }=0A= double sup() const { return sup_; }=0A= =0A= =0A= double inf_, sup_;=0A= };=0A= =0A= inline=0A= Interval_base=0A= to_interval (const Interval_base & d)=0A= {=0A= return d;=0A= }=0A= =0A= =0A= =0A= inline=0A= Interval_base=0A= to_interval (const double & d)=0A= {=0A= return Interval_base(d);=0A= }=0A= =0A= inline=0A= Interval_base=0A= to_interval (const float & f)=0A= {=0A= return Interval_base(double(f));=0A= }=0A= =0A= inline=0A= Interval_base=0A= to_interval (const int & i)=0A= {=0A= return Interval_base(double(i));=0A= }=0A= =0A= inline=0A= Interval_base=0A= to_interval (const short & s)=0A= {=0A= return Interval_base(double(s));=0A= }=0A= =0A= inline=0A= Interval_base=0A= to_interval (const long & l)=0A= {=0A= =0A= =0A= ((sizeof(double) > sizeof(long))?(static_cast(0)): = ::CGAL::assertion_fail( "sizeof(double) > sizeof(long)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_base.h", 194, 0));=0A= =0A= return Interval_base(double(l));=0A= }=0A= =0A= =0A= =0A= inline=0A= double=0A= to_double (const Interval_base & d)=0A= {=0A= return (d.sup_ + d.inf_) * 0.5;=0A= =0A= }=0A= =0A= inline=0A= bool=0A= is_valid (const Interval_base & d)=0A= {=0A= =0A= =0A= =0A= =0A= return d.inf_ <=3D d.sup_;=0A= =0A= }=0A= =0A= inline=0A= bool=0A= is_finite (const Interval_base & d)=0A= {=0A= return CGAL::is_finite(d.inf_) && CGAL::is_finite(d.sup_);=0A= }=0A= =0A= inline=0A= io_Operator=0A= io_tag (const Interval_base &)=0A= {=0A= return io_Operator();=0A= }=0A= =0A= std::ostream & operator<< (std::ostream &, const Interval_base &);=0A= std::istream & operator>> (std::istream &, Interval_base &);=0A= =0A= }=0A= # 63 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_arithmetic.h" 2=0A= =0A= namespace CGAL {=0A= =0A= =0A= =0A= =0A= template =0A= struct Interval_nt : public Interval_base=0A= {=0A= typedef Tag_false Has_gcd;=0A= typedef Tag_true Has_division;=0A= typedef Tag_true Has_sqrt;=0A= =0A= typedef Interval_nt IA;=0A= =0A= Interval_nt() {}=0A= =0A= Interval_nt(const double d)=0A= : Interval_base(d) {}=0A= =0A= Interval_nt(const double i, const double s)=0A= : Interval_base(i,s) {}=0A= =0A= Interval_nt(const Interval_base & d)=0A= : Interval_base(d) {}=0A= =0A= =0A= =0A= IA operator+ (const IA &d) const=0A= {=0A= Protect_FPU_rounding P;=0A= return = IA(-CGAL::IA_force_to_double((-inf_)-CGAL::IA_force_to_double(d.inf_)), = CGAL::IA_force_to_double((sup_)+CGAL::IA_force_to_double(d.sup_)));=0A= }=0A= =0A= IA operator- (const IA &d) const=0A= {=0A= Protect_FPU_rounding P;=0A= return = IA(-CGAL::IA_force_to_double((d.sup_)-CGAL::IA_force_to_double(inf_)), = CGAL::IA_force_to_double((sup_)-CGAL::IA_force_to_double(d.inf_)));=0A= }=0A= =0A= IA operator* (const IA &) const;=0A= IA operator/ (const IA &) const;=0A= =0A= IA operator-() const { return IA (-sup_, -inf_); }=0A= =0A= IA & operator+=3D (const IA &d) { return *this =3D *this + d; }=0A= IA & operator-=3D (const IA &d) { return *this =3D *this - d; }=0A= IA & operator*=3D (const IA &d) { return *this =3D *this * d; }=0A= IA & operator/=3D (const IA &d) { return *this =3D *this / d; }=0A= =0A= =0A= IA operator|| (const IA & d) const=0A= {=0A= return IA(std::min(inf_, d.inf_), std::max(sup_, d.sup_));=0A= }=0A= =0A= =0A= IA operator&& (const IA & d) const=0A= {=0A= return IA(std::max(inf_, d.inf_), std::min(sup_, d.sup_));=0A= }=0A= };=0A= # 138 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_arithmetic.h"=0A= template =0A= =0A= inline=0A= =0A= Interval_nt=0A= Interval_nt::operator* (const Interval_nt & d) = const=0A= {=0A= Protect_FPU_rounding P;=0A= if (inf_>=3D0.0)=0A= {=0A= =0A= =0A= =0A= double a =3D inf_, b =3D sup_;=0A= if (d.inf_ < 0.0)=0A= {=0A= a=3Db;=0A= if (d.sup_ < 0.0)=0A= b=3Dinf_;=0A= }=0A= return = IA(-CGAL::IA_force_to_double((a)*CGAL::IA_force_to_double(-d.inf_)), = CGAL::IA_force_to_double((b)*CGAL::IA_force_to_double(d.sup_)));=0A= }=0A= else if (sup_<=3D0.0)=0A= {=0A= =0A= =0A= =0A= double a =3D sup_, b =3D inf_;=0A= if (d.inf_ < 0.0)=0A= {=0A= a=3Db;=0A= if (d.sup_ < 0.0)=0A= b=3Dsup_;=0A= }=0A= return = IA(-CGAL::IA_force_to_double((b)*CGAL::IA_force_to_double(-d.sup_)), = CGAL::IA_force_to_double((a)*CGAL::IA_force_to_double(d.inf_)));=0A= }=0A= else=0A= {=0A= if (d.inf_>=3D0.0)=0A= return = IA(-CGAL::IA_force_to_double((-inf_)*CGAL::IA_force_to_double(d.sup_)), = CGAL::IA_force_to_double((sup_)*CGAL::IA_force_to_double(d.sup_)));=0A= if (d.sup_<=3D0.0)=0A= return = IA(-CGAL::IA_force_to_double((sup_)*CGAL::IA_force_to_double(-d.inf_)), = CGAL::IA_force_to_double((inf_)*CGAL::IA_force_to_double(d.inf_)));=0A= =0A= double tmp1 =3D = CGAL::IA_force_to_double((-inf_)*CGAL::IA_force_to_double(d.sup_));=0A= double tmp2 =3D = CGAL::IA_force_to_double((sup_)*CGAL::IA_force_to_double(-d.inf_));=0A= double tmp3 =3D = CGAL::IA_force_to_double((inf_)*CGAL::IA_force_to_double(d.inf_));=0A= double tmp4 =3D = CGAL::IA_force_to_double((sup_)*CGAL::IA_force_to_double(d.sup_));=0A= return IA(-std::max(tmp1,tmp2), std::max(tmp3,tmp4));=0A= };=0A= }=0A= =0A= template =0A= =0A= inline=0A= =0A= Interval_nt=0A= Interval_nt::operator/ (const Interval_nt & d) = const=0A= {=0A= Protect_FPU_rounding P;=0A= if (d.inf_>0.0)=0A= {=0A= =0A= =0A= =0A= double a =3D d.sup_, b =3D d.inf_;=0A= if (inf_<0.0)=0A= {=0A= a=3Db;=0A= if (sup_<0.0)=0A= b=3Dd.sup_;=0A= };=0A= return = IA(-CGAL::IA_force_to_double((-inf_)/CGAL::IA_force_to_double(a)), = CGAL::IA_force_to_double((sup_)/CGAL::IA_force_to_double(b)));=0A= }=0A= else if (d.sup_<0.0)=0A= {=0A= =0A= =0A= =0A= double a =3D d.sup_, b =3D d.inf_;=0A= if (inf_<0.0)=0A= {=0A= b=3Da;=0A= if (sup_<0.0)=0A= a=3Dd.inf_;=0A= };=0A= return = IA(-CGAL::IA_force_to_double((-sup_)/CGAL::IA_force_to_double(a)), = CGAL::IA_force_to_double((inf_)/CGAL::IA_force_to_double(b)));=0A= }=0A= else=0A= return IA::Largest;=0A= =0A= =0A= }=0A= # 240 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_arithmetic.h"=0A= template =0A= inline=0A= Interval_nt=0A= sqrt (const Interval_nt & d)=0A= {=0A= Protect_FPU_rounding P;=0A= =0A= =0A= =0A= FPU_set_cw((0x400 | 0x127f));=0A= double i =3D (d.inf_ > 0.0) ? = CGAL::IA_force_to_double(std::sqrt(CGAL::IA_force_to_double(d.inf_))) : = 0.0;=0A= FPU_set_cw((0x800 | 0x127f));=0A= return Interval_nt(i, = CGAL::IA_force_to_double(std::sqrt(CGAL::IA_force_to_double(d.sup_))));=0A= }=0A= =0A= =0A= template =0A= inline=0A= Interval_nt=0A= min (const Interval_nt & d, const Interval_nt & e)=0A= {=0A= return Interval_nt(std::min(d.inf_, e.inf_),=0A= std::min(d.sup_, e.sup_));=0A= }=0A= =0A= template =0A= inline=0A= Interval_nt=0A= max (const Interval_nt & d, const Interval_nt & e)=0A= {=0A= return Interval_nt(std::max(d.inf_, e.inf_),=0A= std::max(d.sup_, e.sup_));=0A= }=0A= # 306 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_arithmetic.h"=0A= namespace NTS {=0A= =0A= =0A= template =0A= inline=0A= Interval_nt=0A= square (const Interval_nt & d)=0A= {=0A= Protect_FPU_rounding P;=0A= if (d.inf_>=3D0.0)=0A= return = Interval_nt(-CGAL::IA_force_to_double((d.inf_)*CGAL::IA_force_= to_double(-d.inf_)),=0A= = CGAL::IA_force_to_double((d.sup_)*CGAL::IA_force_to_double(d.sup_)));=0A= if (d.sup_<=3D0.0)=0A= return = Interval_nt(-CGAL::IA_force_to_double((d.sup_)*CGAL::IA_force_= to_double(-d.sup_)),=0A= = CGAL::IA_force_to_double((d.inf_)*CGAL::IA_force_to_double(d.inf_)));=0A= return Interval_nt(0.0, = CGAL::IA_force_to_double((std::max(-d.inf_,d.sup_))*CGAL::IA_force_to_dou= ble(std::max(-d.inf_,d.sup_))));=0A= }=0A= =0A= template =0A= inline=0A= Interval_nt=0A= abs (const Interval_nt & d)=0A= {=0A= if (d.inf_ >=3D 0.0) return d;=0A= if (d.sup_ <=3D 0.0) return -d;=0A= return Interval_nt(0.0, std::max(-d.inf_, d.sup_));=0A= }=0A= =0A= template =0A= inline=0A= Sign=0A= sign (const Interval_nt & d)=0A= {=0A= if (d.inf_ > 0.0) return POSITIVE;=0A= if (d.sup_ < 0.0) return NEGATIVE;=0A= if (d.inf_ =3D=3D d.sup_) return ZERO;=0A= Interval_nt::overlap_action();=0A= return ZERO;=0A= }=0A= =0A= template =0A= inline=0A= Comparison_result=0A= compare (const Interval_nt & d, const Interval_nt = & e)=0A= {=0A= if (d.inf_ > e.sup_) return LARGER;=0A= if (e.inf_ > d.sup_) return SMALLER;=0A= if (e.inf_ =3D=3D d.sup_ && d.inf_ =3D=3D e.sup_) return EQUAL;=0A= Interval_nt::overlap_action();=0A= return EQUAL;=0A= }=0A= # 452 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/In= terval_arithmetic.h"=0A= }=0A= =0A= typedef Interval_nt Interval_nt_advanced;=0A= =0A= }=0A= # 113 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/nu= mber_type_basic.h" 2=0A= # 75 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /io.h" 1=0A= # 54 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /io.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /Color.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /Color.h"=0A= namespace CGAL {=0A= =0A= class Color {=0A= public:=0A= Color() {}=0A= Color(unsigned char red,=0A= unsigned char green,=0A= unsigned char blue,=0A= unsigned char alpha =3D 120)=0A= : _red(red), _green(green), _blue(blue), _alpha(alpha)=0A= {}=0A= =0A= unsigned char r() const {return _red;}=0A= unsigned char g() const {return _green;}=0A= unsigned char b() const {return _blue;}=0A= =0A= unsigned char red() const {return _red;}=0A= unsigned char green() const {return _green;}=0A= unsigned char blue() const {return _blue;}=0A= unsigned char alpha() const {return _alpha;}=0A= void set_alpha(unsigned char a) {_alpha=3Da;}=0A= bool operator=3D=3D(const Color &c) const=0A= {=0A= return ( (red() =3D=3D c.red()) &&=0A= (green() =3D=3D c.green()) &&=0A= (blue() =3D=3D c.blue()) );=0A= }=0A= =0A= bool operator!=3D(const Color &c) const=0A= {=0A= return !( (*this) =3D=3D c);=0A= }=0A= =0A= Color& operator=3D(const Color &c)=0A= {=0A= _red =3D c.red();=0A= _green =3D c.green();=0A= _blue =3D c.blue();=0A= _alpha =3D c.alpha();=0A= return *this;=0A= }=0A= =0A= private:=0A= unsigned char _red;=0A= unsigned char _green;=0A= unsigned char _blue;=0A= unsigned char _alpha;=0A= };=0A= =0A= =0A= extern const Color BLACK ;=0A= extern const Color WHITE ;=0A= extern const Color GRAY ;=0A= =0A= extern const Color RED ;=0A= extern const Color GREEN ;=0A= =0A= extern const Color DEEPBLUE ;=0A= extern const Color BLUE ;=0A= extern const Color PURPLE ;=0A= extern const Color VIOLET ;=0A= =0A= extern const Color ORANGE ;=0A= extern const Color YELLOW ;=0A= =0A= =0A= }=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /io.h" 2=0A= =0A= =0A= namespace CGAL {=0A= =0A= class IO {=0A= public:=0A= static int mode;=0A= enum Mode {ASCII =3D 0, PRETTY, BINARY};=0A= };=0A= =0A= IO::Mode=0A= get_mode(std::ios& i);=0A= =0A= IO::Mode=0A= set_ascii_mode(std::ios& i);=0A= =0A= IO::Mode=0A= set_binary_mode(std::ios& i);=0A= =0A= IO::Mode=0A= set_pretty_mode(std::ios& i);=0A= =0A= IO::Mode=0A= set_mode(std::ios& i, IO::Mode m);=0A= bool=0A= is_pretty(std::ios& i);=0A= =0A= bool=0A= is_ascii(std::ios& i);=0A= =0A= bool=0A= is_binary(std::ios& i);=0A= =0A= inline io_Read_write io_tag(char){ return io_Read_write(); }=0A= =0A= =0A= template < class T >=0A= inline=0A= void=0A= write(std::ostream& os, const T& t, const io_Read_write&)=0A= {=0A= os.write(static_cast(&t), sizeof(t));=0A= }=0A= =0A= =0A= template < class T >=0A= inline=0A= void=0A= write(std::ostream& os, const T& t, const io_Operator&)=0A= {=0A= os << t;=0A= }=0A= =0A= =0A= template < class T >=0A= inline=0A= void=0A= write(std::ostream& os, const T& t, const io_Extract_insert&)=0A= {=0A= insert(os, t);=0A= }=0A= =0A= =0A= template < class T >=0A= inline=0A= void=0A= write(std::ostream& os, const T& t)=0A= {=0A= write(os, t, io_tag(t));=0A= }=0A= =0A= =0A= template < class T >=0A= inline=0A= void=0A= read(std::istream& is, T& t, const io_Read_write&)=0A= {=0A= is.read(static_cast(&t), sizeof(t));=0A= }=0A= =0A= =0A= template < class T >=0A= inline=0A= void=0A= read(std::istream& is, T& t, const io_Operator&)=0A= {=0A= is >> t;=0A= }=0A= =0A= =0A= template < class T >=0A= inline=0A= void=0A= read(std::istream& is, T& t, const io_Extract_insert&)=0A= {=0A= extract(is, t);=0A= }=0A= =0A= =0A= template < class T >=0A= inline=0A= void=0A= read(std::istream& is, T& t)=0A= {=0A= read(is, t, io_tag(t));=0A= }=0A= =0A= =0A= inline=0A= std::ostream& operator<<( std::ostream& out, const Color& col)=0A= {=0A= switch(out.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return out << static_cast(col.red()) << ' '=0A= << static_cast(col.green()) << ' '=0A= << static_cast(col.blue());=0A= case IO::BINARY :=0A= write(out, static_cast(col.red()));=0A= write(out, static_cast(col.green()));=0A= write(out, static_cast(col.blue()));=0A= return out;=0A= default:=0A= return out << "Color(" << static_cast(col.red()) << ", "=0A= << static_cast(col.green()) << ", "=0A= << static_cast(col.blue()) << ')';=0A= }=0A= }=0A= =0A= inline=0A= std::istream &operator>>(std::istream &is, Color& col)=0A= {=0A= int r, g, b;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> r >> g >> b;=0A= break;=0A= case IO::BINARY :=0A= read(is, r);=0A= read(is, g);=0A= read(is, b);=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << = std::endl;=0A= break;=0A= }=0A= col =3D Color(r,g,b);=0A= return is;=0A= }=0A= =0A= }=0A= # 76 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle_for.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle_for.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/me= mory.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle_for.h" 2=0A= =0A= namespace CGAL {=0A= =0A= struct Ref_counted {};=0A= =0A= template =0A= struct Ref_counted2=0A= {=0A= Ref_counted2(const U& u) : count(1), u_(u) {}=0A= Ref_counted2(const Ref_counted2& r) : count(1), u_(r.u()) {}=0A= =0A= U* base_ptr() { return &u_; }=0A= =0A= =0A= =0A= =0A= =0A= =0A= void add_reference() { ++count; }=0A= void remove_reference() { --count; }=0A= bool is_shared() const { return count > 1; }=0A= =0A= private:=0A= =0A= const U& u() const { return u_; }=0A= =0A= unsigned int count;=0A= U u_;=0A= };=0A= =0A= =0A= template >=0A= class Handle_for=0A= {=0A= typedef Ref_counted2 RefCounted;=0A= =0A= =0A= typedef typename Alloc::template rebind::other Allocator;=0A= public:=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef T element_type;=0A= =0A= Handle_for()=0A= {=0A= ptr_ =3D allocator.allocate(1);=0A= initialize_with(T());=0A= }=0A= =0A= Handle_for(const T& t)=0A= {=0A= ptr_ =3D allocator.allocate(1);=0A= initialize_with(t);=0A= }=0A= =0A= Handle_for(const Handle_for& h)=0A= {=0A= ptr_ =3D h.ptr_;=0A= ptr_->add_reference();=0A= }=0A= =0A= ~Handle_for()=0A= {=0A= remove_reference();=0A= }=0A= =0A= Handle_for&=0A= operator=3D(const Handle_for& h)=0A= {=0A= h.ptr_->add_reference();=0A= remove_reference();=0A= ptr_ =3D h.ptr_;=0A= return *this;=0A= }=0A= =0A= =0A= =0A= void=0A= initialize_with(const T& t)=0A= {=0A= allocator.construct(ptr_, RefCounted(t));=0A= }=0A= =0A= bool=0A= identical(const Handle_for& h) const=0A= { return ptr_ =3D=3D h.ptr_; }=0A= =0A= long int=0A= id() const=0A= { return reinterpret_cast(&*ptr_); }=0A= =0A= =0A= =0A= const T *=0A= Ptr() const=0A= { return ptr_->base_ptr(); }=0A= # 161 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle_for.h"=0A= bool=0A= is_shared() const=0A= {=0A= return ptr_->is_shared();=0A= }=0A= =0A= protected:=0A= =0A= void=0A= copy_on_write()=0A= {=0A= if ( is_shared() )=0A= {=0A= RefCounted* tmp_ptr =3D allocator.allocate(1);=0A= allocator.construct( tmp_ptr, *ptr_);=0A= ptr_->remove_reference();=0A= ptr_ =3D tmp_ptr;=0A= }=0A= }=0A= =0A= =0A= T *=0A= ptr()=0A= { return ptr_->base_ptr(); }=0A= =0A= const T *=0A= ptr() const=0A= { return ptr_->base_ptr(); }=0A= =0A= private:=0A= =0A= void=0A= remove_reference()=0A= {=0A= if (! is_shared() ) {=0A= allocator.destroy( ptr_);=0A= allocator.deallocate( ptr_, 1);=0A= }=0A= else=0A= ptr_->remove_reference();=0A= }=0A= =0A= static Allocator allocator;=0A= typename Allocator::pointer ptr_;=0A= };=0A= =0A= =0A= template =0A= typename Handle_for::Allocator=0A= Handle_for::allocator;=0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle.h" 2=0A= =0A= namespace CGAL {=0A= =0A= class Leda_like_rep=0A= {=0A= friend class Leda_like_handle;=0A= protected:=0A= Leda_like_rep() { count =3D 1; }=0A= virtual ~Leda_like_rep() {}=0A= =0A= int count;=0A= };=0A= =0A= class Leda_like_handle=0A= {=0A= public:=0A= Leda_like_handle()=0A= : PTR(static_cast(0)) {}=0A= =0A= Leda_like_handle(const Leda_like_handle& x)=0A= {=0A= ((x.PTR !=3D = static_cast(0))?(static_cast(0)): = ::CGAL::precondition_fail( "x.PTR !=3D static_cast(0)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle.h", 71, 0));=0A= PTR =3D x.PTR;=0A= PTR->count++;=0A= }=0A= =0A= ~Leda_like_handle()=0A= {=0A= if ( PTR && (--PTR->count =3D=3D 0))=0A= delete PTR;=0A= }=0A= =0A= Leda_like_handle&=0A= operator=3D(const Leda_like_handle& x)=0A= {=0A= ((x.PTR !=3D = static_cast(0))?(static_cast(0)): = ::CGAL::precondition_fail( "x.PTR !=3D static_cast(0)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle.h", 85, 0));=0A= x.PTR->count++;=0A= if ( PTR && (--PTR->count =3D=3D 0))=0A= delete PTR;=0A= PTR =3D x.PTR;=0A= return *this;=0A= }=0A= =0A= int=0A= refs() const { return PTR->count; }=0A= =0A= friend unsigned long id(const Leda_like_handle& x);=0A= =0A= protected:=0A= Leda_like_rep* PTR;=0A= };=0A= =0A= inline=0A= unsigned long=0A= id(const Leda_like_handle& x)=0A= { return reinterpret_cast(x.PTR); }=0A= =0A= template < class T >=0A= inline=0A= bool=0A= identical(const T &t1, const T &t2)=0A= { return id(t1) =3D=3D id(t2); }=0A= =0A= }=0A= # 137 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ha= ndle.h"=0A= namespace CGAL {=0A= =0A= typedef Leda_like_handle Handle;=0A= typedef Leda_like_rep Rep;=0A= =0A= }=0A= # 77 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/kn= own_bit_size_integers.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/kn= own_bit_size_integers.h"=0A= namespace CGAL {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef signed char Integer8;=0A= typedef short Integer16;=0A= typedef int Integer32;=0A= typedef unsigned char UInteger8;=0A= typedef unsigned short UInteger16;=0A= typedef unsigned int UInteger32;=0A= # 92 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/kn= own_bit_size_integers.h"=0A= }=0A= # 79 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic.h" 2=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tw= otuple.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tw= otuple.h"=0A= namespace CGAL {=0A= =0A= template < class T >=0A= class Twotuple=0A= {=0A= public:=0A= T e0;=0A= T e1;=0A= =0A= Twotuple()=0A= {}=0A= =0A= Twotuple(const T & a0, const T &a1) : e0(a0), e1(a1)=0A= {}=0A= };=0A= =0A= }=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Th= reetuple.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Th= reetuple.h"=0A= namespace CGAL {=0A= =0A= template < class T >=0A= struct Threetuple=0A= {=0A= T e0;=0A= T e1;=0A= T e2;=0A= =0A= Threetuple()=0A= {}=0A= =0A= Threetuple(const T & a0, const T & a1, const T & a2)=0A= : e0(a0), e1(a1), e2(a2)=0A= {}=0A= };=0A= =0A= }=0A= # 56 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_Handle_for.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_Handle_for.h"=0A= namespace CGAL {=0A= =0A= template < class Stored >=0A= class Simple_Handle_for=0A= {=0A= public:=0A= =0A= Simple_Handle_for()=0A= {}=0A= =0A= Simple_Handle_for(const Stored& rc)=0A= : _s(rc) {}=0A= =0A= typedef Stored element_type;=0A= =0A= void=0A= initialize_with(const Stored& rc)=0A= {=0A= _s =3D rc;=0A= }=0A= =0A= long int=0A= id() const=0A= { return reinterpret_cast(&_s); }=0A= =0A= bool=0A= identical(const Simple_Handle_for& h) const=0A= { return id() =3D=3D h.id(); }=0A= =0A= const Stored * Ptr() const=0A= { return &_s; }=0A= =0A= Stored * Ptr()=0A= { return &_s; }=0A= =0A= const Stored * ptr() const=0A= { return &_s; }=0A= =0A= Stored * ptr()=0A= { return &_s; }=0A= =0A= bool=0A= is_shared() const=0A= {=0A= return false;=0A= }=0A= =0A= private:=0A= void=0A= copy_on_write()=0A= {}=0A= =0A= Stored _s;=0A= };=0A= =0A= }=0A= # 57 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ut= ility.h" 1=0A= # 56 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ut= ility.h"=0A= namespace CGAL {=0A= =0A= =0A= =0A= =0A= =0A= template =0A= struct Triple=0A= {=0A= typedef T1 first_type;=0A= typedef T2 second_type;=0A= typedef T3 third_type;=0A= =0A= T1 first;=0A= T2 second;=0A= T3 third;=0A= =0A= Triple() {}=0A= =0A= Triple(const T1& a, const T2& b, const T3& c)=0A= : first(a), second(b), third(c)=0A= {}=0A= };=0A= =0A= template =0A= inline=0A= Triple make_triple(const T1& x, const T2& y, const T3& z)=0A= {=0A= return Triple(x, y, z);=0A= }=0A= =0A= template =0A= inline bool operator=3D=3D(const Triple& x,=0A= const Triple& y)=0A= {=0A= return ( (x.first =3D=3D y.first) &&=0A= (x.second =3D=3D y.second) &&=0A= (x.third =3D=3D y.third) );=0A= }=0A= =0A= template =0A= inline=0A= bool operator<(const Triple& x,=0A= const Triple& y)=0A= {=0A= return ( x.first < y.first ||=0A= ( (x.first =3D=3D y.first) && (x.second < y.second) ) ||=0A= ( (x.first =3D=3D y.first) && (x.second =3D=3D y.second) &&=0A= (x.third < y.third) ) );=0A= }=0A= =0A= =0A= =0A= =0A= template =0A= struct Quadruple=0A= {=0A= typedef T1 first_type;=0A= typedef T2 second_type;=0A= typedef T3 third_type;=0A= typedef T4 fourth_type;=0A= =0A= T1 first;=0A= T2 second;=0A= T3 third;=0A= T4 fourth;=0A= =0A= Quadruple() {}=0A= =0A= Quadruple(const T1& a, const T2& b, const T3& c, const T4& d)=0A= : first(a), second(b), third(c), fourth(d)=0A= {}=0A= };=0A= =0A= template =0A= inline=0A= Quadruple=0A= make_quadruple(const T1& x, const T2& y, const T3& z, const T4& zz)=0A= {=0A= return Quadruple(x, y, z, zz);=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= operator=3D=3D(const Quadruple& x,=0A= const Quadruple& y)=0A= {=0A= return ( (x.first =3D=3D y.first) &&=0A= (x.second =3D=3D y.second) &&=0A= (x.third =3D=3D y.third) &&=0A= (x.fourth =3D=3D y.fourth) );=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= operator<(const Quadruple& x,=0A= const Quadruple& y)=0A= {=0A= return ( x.first < y.first ||=0A= ( (x.first =3D=3D y.first) && (x.second < y.second) ) ||=0A= ( (x.first =3D=3D y.first) && (x.second =3D=3D y.second) &&=0A= (x.third < y.third) ) ||=0A= ( (x.first =3D=3D y.first) && (x.second =3D=3D y.second) &&=0A= (x.third =3D=3D y.third) ) &&=0A= (x.fourth < y.fourth) );=0A= }=0A= =0A= =0A= }=0A= # 59 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic_classes.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic_classes.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Or= igin.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Or= igin.h"=0A= namespace CGAL {=0A= =0A= class Origin=0A= {};=0A= =0A= extern const Origin ORIGIN;=0A= =0A= class Null_vector=0A= {};=0A= =0A= extern const Null_vector NULL_VECTOR;=0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb= ox_2.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb= ox_2.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Fo= urtuple.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Fo= urtuple.h"=0A= namespace CGAL {=0A= =0A= template < class T >=0A= class Fourtuple=0A= {=0A= public:=0A= T e0;=0A= T e1;=0A= T e2;=0A= T e3;=0A= =0A= Fourtuple()=0A= {}=0A= =0A= Fourtuple(const T & a0, const T & a1, const T & a2, const T & a3)=0A= : e0(a0), e1(a1), e2(a2), e3(a3)=0A= {}=0A= };=0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb= ox_2.h" 2=0A= =0A= =0A= namespace CGAL {=0A= =0A= class Bbox_2 : public Simple_Handle_for< Fourtuple >=0A= {=0A= typedef Simple_Handle_for< Fourtuple > BBox_handle_2;=0A= typedef BBox_handle_2::element_type BBox_ref_2;=0A= =0A= public:=0A= Bbox_2()=0A= : BBox_handle_2(BBox_ref_2()) {}=0A= =0A= Bbox_2(double x_min, double y_min,=0A= double x_max, double y_max)=0A= : BBox_handle_2(BBox_ref_2(x_min, y_min,=0A= x_max, y_max)) {}=0A= =0A= inline bool operator=3D=3D(const Bbox_2 &b) const;=0A= inline bool operator!=3D(const Bbox_2 &b) const;=0A= =0A= inline int dimension() const;=0A= inline double xmin() const;=0A= inline double ymin() const;=0A= inline double xmax() const;=0A= inline double ymax() const;=0A= =0A= inline double max(int i) const;=0A= inline double min(int i) const;=0A= =0A= inline Bbox_2 operator+(const Bbox_2 &b) const;=0A= =0A= };=0A= =0A= inline=0A= double=0A= Bbox_2::xmin() const=0A= { return Ptr()->e0; }=0A= =0A= inline=0A= double=0A= Bbox_2::ymin() const=0A= { return Ptr()->e1; }=0A= =0A= inline=0A= double=0A= Bbox_2::xmax() const=0A= { return Ptr()->e2; }=0A= =0A= inline=0A= double=0A= Bbox_2::ymax() const=0A= { return Ptr()->e3; }=0A= =0A= inline=0A= bool=0A= Bbox_2::operator=3D=3D(const Bbox_2 &b) const=0A= {=0A= return xmin() =3D=3D b.xmin() && xmax() =3D=3D b.xmax()=0A= && ymin() =3D=3D b.ymin() && ymax() =3D=3D b.ymax();=0A= }=0A= =0A= inline=0A= bool=0A= Bbox_2::operator!=3D(const Bbox_2 &b) const=0A= {=0A= return ! (b =3D=3D *this);=0A= }=0A= =0A= inline=0A= int=0A= Bbox_2::dimension() const=0A= { return 2; }=0A= =0A= inline=0A= double=0A= Bbox_2::min(int i) const=0A= {=0A= (((i =3D=3D 0 ) || ( i =3D=3D 1 ))?(static_cast(0)): = ::CGAL::precondition_fail( "(i =3D=3D 0 ) || ( i =3D=3D 1 )" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb= ox_2.h", 130, 0));=0A= if(i =3D=3D 0) { return xmin(); }=0A= return ymin();=0A= }=0A= =0A= inline=0A= double=0A= Bbox_2::max(int i) const=0A= {=0A= (((i =3D=3D 0 ) || ( i =3D=3D 1 ))?(static_cast(0)): = ::CGAL::precondition_fail( "(i =3D=3D 0 ) || ( i =3D=3D 1 )" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb= ox_2.h", 139, 0));=0A= if(i =3D=3D 0) { return xmax(); }=0A= return ymax();=0A= }=0A= =0A= inline=0A= Bbox_2=0A= Bbox_2::operator+(const Bbox_2 &b) const=0A= {=0A= return Bbox_2(std::min(xmin(), b.xmin()),=0A= std::min(ymin(), b.ymin()),=0A= std::max(xmax(), b.xmax()),=0A= std::max(ymax(), b.ymax()));=0A= }=0A= =0A= inline=0A= bool=0A= do_overlap(const Bbox_2 &bb1, const Bbox_2 &bb2)=0A= {=0A= =0A= if (bb1.xmax() < bb2.xmin() || bb2.xmax() < bb1.xmin())=0A= return false;=0A= if (bb1.ymax() < bb2.ymin() || bb2.ymax() < bb1.ymin())=0A= return false;=0A= return true;=0A= }=0A= =0A= =0A= inline=0A= std::ostream&=0A= operator<<(std::ostream &os, const Bbox_2 &b)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= os << b.xmin() << ' ' << b.ymin() << ' '=0A= << b.xmax() << ' ' << b.ymax();=0A= break;=0A= case IO::BINARY :=0A= write(os, b.xmin());=0A= write(os, b.ymin());=0A= write(os, b.xmax());=0A= write(os, b.ymax());=0A= break;=0A= default:=0A= os << "Bbox_2(" << b.xmin() << ", " << b.ymin() << ", "=0A= << b.xmax() << ", " << b.ymax() << ")";=0A= break;=0A= }=0A= return os;=0A= }=0A= =0A= =0A= =0A= inline=0A= std::istream&=0A= operator>>(std::istream &is, Bbox_2 &b)=0A= {=0A= double xmin, ymin, xmax, ymax;=0A= =0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> xmin >> ymin >> xmax >> ymax;=0A= break;=0A= case IO::BINARY :=0A= read(is, xmin);=0A= read(is, ymin);=0A= read(is, xmax);=0A= read(is, ymax);=0A= break;=0A= }=0A= b =3D Bbox_2(xmin, ymin, xmax, ymax);=0A= return is;=0A= }=0A= =0A= =0A= }=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb= ox_3.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb= ox_3.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= xtuple.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= xtuple.h"=0A= namespace CGAL {=0A= =0A= template < class T >=0A= class Sixtuple=0A= {=0A= public:=0A= =0A= T e0;=0A= T e1;=0A= T e2;=0A= T e3;=0A= T e4;=0A= T e5;=0A= =0A= Sixtuple()=0A= {}=0A= =0A= Sixtuple(const T & a0, const T & a1, const T & a2,=0A= const T & a3, const T & a4, const T & a5)=0A= : e0(a0), e1(a1), e2(a2), e3(a3), e4(a4), e5(a5)=0A= {}=0A= };=0A= =0A= }=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Bb= ox_3.h" 2=0A= =0A= =0A= namespace CGAL {=0A= =0A= class Bbox_3 : public Simple_Handle_for< Sixtuple >=0A= {=0A= typedef Simple_Handle_for< Sixtuple > BBox_handle_3;=0A= typedef BBox_handle_3::element_type BBox_ref_3;=0A= =0A= public:=0A= Bbox_3()=0A= : BBox_handle_3(BBox_ref_3()) {}=0A= =0A= Bbox_3(double x_min, double y_min, double z_min,=0A= double x_max, double y_max, double z_max)=0A= : BBox_handle_3(BBox_ref_3(x_min, y_min, z_min,=0A= x_max, y_max, z_max)) {}=0A= =0A= double xmin() const;=0A= double ymin() const;=0A= double zmin() const;=0A= double xmax() const;=0A= double ymax() const;=0A= double zmax() const;=0A= =0A= Bbox_3 operator+(const Bbox_3& b) const;=0A= };=0A= =0A= inline=0A= double=0A= Bbox_3::xmin() const=0A= { return Ptr()->e0; }=0A= =0A= inline=0A= double=0A= Bbox_3::ymin() const=0A= { return Ptr()->e1; }=0A= =0A= inline=0A= double=0A= Bbox_3::zmin() const=0A= { return Ptr()->e2; }=0A= =0A= inline=0A= double=0A= Bbox_3::xmax() const=0A= { return Ptr()->e3; }=0A= =0A= inline=0A= double=0A= Bbox_3::ymax() const=0A= { return Ptr()->e4; }=0A= =0A= inline=0A= double=0A= Bbox_3::zmax() const=0A= { return Ptr()->e5; }=0A= =0A= inline=0A= Bbox_3=0A= Bbox_3::operator+(const Bbox_3& b) const=0A= {=0A= return Bbox_3(std::min(xmin(), b.xmin()),=0A= std::min(ymin(), b.ymin()),=0A= std::min(zmin(), b.zmin()),=0A= std::max(xmax(), b.xmax()),=0A= std::max(ymax(), b.ymax()),=0A= std::max(zmax(), b.zmax()));=0A= }=0A= =0A= inline=0A= bool=0A= do_overlap(const Bbox_3& bb1, const Bbox_3& bb2)=0A= {=0A= =0A= if (bb1.xmax() < bb2.xmin() || bb2.xmax() < bb1.xmin())=0A= return false;=0A= if (bb1.ymax() < bb2.ymin() || bb2.ymax() < bb1.ymin())=0A= return false;=0A= if (bb1.zmax() < bb2.zmin() || bb2.zmax() < bb1.zmin())=0A= return false;=0A= return true;=0A= }=0A= =0A= =0A= inline=0A= std::ostream&=0A= operator<<(std::ostream &os, const Bbox_3& b)=0A= {=0A= switch(os.iword(IO::mode))=0A= {=0A= case IO::ASCII :=0A= return os << b.xmin() << ' ' << b.ymin() << ' ' << b.zmin();=0A= case IO::BINARY :=0A= write(os, b.xmin());=0A= write(os, b.ymin());=0A= write(os, b.zmin());=0A= write(os, b.xmax());=0A= write(os, b.ymax());=0A= write(os, b.zmax());=0A= return os;=0A= default:=0A= os << "Bbox_3((" << b.xmin()=0A= << ", " << b.ymin()=0A= << ", " << b.zmin() << "), (";=0A= os << b.xmax()=0A= << ", " << b.ymax()=0A= << ", " << b.zmax() << "))";=0A= return os;=0A= }=0A= }=0A= =0A= =0A= =0A= inline=0A= std::istream&=0A= operator>>(std::istream &is, Bbox_3& b)=0A= {=0A= double xmin, ymin, zmin, xmax, ymax, zmax;=0A= =0A= switch(is.iword(IO::mode))=0A= {=0A= case IO::ASCII :=0A= is >> xmin >> ymin >> xmax >> ymax;=0A= break;=0A= case IO::BINARY :=0A= read(is, xmin);=0A= read(is, ymin);=0A= read(is, zmin);=0A= read(is, xmax);=0A= read(is, ymax);=0A= read(is, zmax);=0A= break;=0A= }=0A= b =3D Bbox_3(xmin, ymin, zmin, xmax, ymax, zmax);=0A= return is;=0A= }=0A= =0A= =0A= =0A= }=0A= # 54 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/re= presentation_tags.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/re= presentation_tags.h"=0A= namespace CGAL {=0A= =0A= class Cartesian_tag {};=0A= class Homogeneous_tag {};=0A= =0A= }=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ba= sic_classes.h" 2=0A= # 60 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Po= int_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Po= int_2.h"=0A= class Origin;=0A= =0A= namespace CGAL {=0A= =0A= template =0A= class Point_2 : public R_::Kernel_base::Point_2=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Vector_2 Vector_2;=0A= typedef typename R_::Kernel_base::Point_2 RPoint_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Point_2()=0A= {}=0A= =0A= Point_2(const Origin& o)=0A= : RPoint_2(o)=0A= {}=0A= =0A= Point_2(const CGAL::Point_2& p)=0A= : RPoint_2(static_cast(p))=0A= {}=0A= =0A= Point_2(const RPoint_2& p)=0A= : RPoint_2(p)=0A= {}=0A= =0A= Point_2(const RT& hx, const RT& hy)=0A= : RPoint_2(hx, hy)=0A= {}=0A= =0A= Point_2(const RT& hx, const RT& hy, const RT& hw)=0A= : RPoint_2(hx, hy, hw)=0A= {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Point_2& p)=0A= {=0A= typedef typename R::Kernel_base::Point_2 RPoint_2;=0A= return os << static_cast(p);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream& is, Point_2& p)=0A= {=0A= typedef typename R::Kernel_base::Point_2 RPoint_2;=0A= return is >> static_cast(p);=0A= }=0A= =0A= =0A= }=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ve= ctor_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ve= ctor_2.h"=0A= namespace CGAL {=0A= =0A= class Null_vector;=0A= =0A= template =0A= class Vector_2 : public R_::Kernel_base::Vector_2=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Kernel_base::Vector_2 RVector_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Vector_2() {}=0A= =0A= Vector_2(const CGAL::Vector_2 &v)=0A= : RVector_2(static_cast(v)) {}=0A= =0A= Vector_2(const Point_2& a, const Point_2& b)=0A= : RVector_2(a, b) {}=0A= =0A= Vector_2(const RVector_2& v) : RVector_2(v) {}=0A= =0A= Vector_2(const Null_vector &v) : RVector_2(v) {}=0A= =0A= Vector_2(const RT &x, const RT &y) : RVector_2(x,y) {}=0A= =0A= Vector_2(const RT &x, const RT &y, const RT &w) : RVector_2(x,y,w) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const Vector_2 &v)=0A= {=0A= typedef typename R::Kernel_base::Vector_2 RVector_2;=0A= return os << static_cast(v);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, Vector_2 &p)=0A= {=0A= typedef typename R::Kernel_base::Vector_2 RVector_2;=0A= return is >> static_cast(p);=0A= }=0A= =0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Di= rection_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Di= rection_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Direction_2 : public R_::Kernel_base::Direction_2=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Vector_2 Vector_2;=0A= typedef typename R_::Line_2 Line_2;=0A= typedef typename R_::Ray_2 Ray_2;=0A= typedef typename R_::Segment_2 Segment_2;=0A= typedef typename R_::Kernel_base::Direction_2 RDirection_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Direction_2()=0A= {}=0A= =0A= Direction_2(const CGAL::Direction_2 &d)=0A= : RDirection_2(static_cast(d)) {}=0A= =0A= Direction_2(const RDirection_2& d)=0A= : RDirection_2(d) {}=0A= =0A= Direction_2(const Vector_2& v)=0A= : RDirection_2(v) {}=0A= =0A= Direction_2(const Line_2& l)=0A= : RDirection_2(l) {}=0A= =0A= Direction_2(const Ray_2& r)=0A= : RDirection_2(r) {}=0A= =0A= Direction_2(const Segment_2& s)=0A= : RDirection_2(s) {}=0A= =0A= Direction_2(const RT &x, const RT &y)=0A= : RDirection_2(x,y) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const Direction_2 &d)=0A= {=0A= typedef typename R::Kernel_base::Direction_2 RDirection_2;=0A= return os << static_cast(d);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, Direction_2 &p)=0A= {=0A= typedef typename R::Kernel_base::Direction_2 RDirection_2;=0A= return is >> static_cast(p);=0A= }=0A= =0A= =0A= }=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Li= ne_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Li= ne_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Line_2 : public R_::Kernel_base::Line_2=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Segment_2 Segment_2;=0A= typedef typename R_::Ray_2 Ray_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Kernel_base::Line_2 RLine_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Line_2()=0A= : RLine_2() {}=0A= =0A= Line_2(const CGAL::Line_2 &l)=0A= : RLine_2(static_cast(l)) {}=0A= =0A= Line_2(const Point_2 &p, const Point_2 &q)=0A= : RLine_2(p,q) {}=0A= =0A= Line_2(const RT &a, const RT &b, const RT &c)=0A= : RLine_2(a,b,c) {}=0A= =0A= Line_2(const RLine_2& l)=0A= : RLine_2(l) {}=0A= =0A= Line_2(const Segment_2& s)=0A= : RLine_2(s) {}=0A= =0A= Line_2(const Ray_2& r)=0A= : RLine_2(r) {}=0A= =0A= Line_2(const Point_2 &p, const Direction_2 &d)=0A= : RLine_2(p,d) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const Line_2 &l)=0A= {=0A= typedef typename R::Kernel_base::Line_2 RLine_2;=0A= return os << static_cast(l);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, Line_2 &p)=0A= {=0A= typedef typename R::Kernel_base::Line_2 RLine_2;=0A= return is >> static_cast(p);=0A= }=0A= =0A= =0A= }=0A= # 54 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ra= y_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ra= y_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Ray_2 : public R_::Kernel_base::Ray_2=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Kernel_base::Ray_2 RRay_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Ray_2()=0A= : RRay_2() {}=0A= =0A= Ray_2(const CGAL::Ray_2 &r)=0A= : RRay_2(static_cast(r)) {}=0A= =0A= Ray_2(const RRay_2& r)=0A= : RRay_2(r) {}=0A= =0A= Ray_2(const Point_2 &sp, const Point_2 &secondp)=0A= : RRay_2(sp, secondp) {}=0A= =0A= Ray_2(const Point_2 &sp, const Direction_2 &d)=0A= : RRay_2(sp, d) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const Ray_2 &r)=0A= {=0A= typedef typename R::Kernel_base::Ray_2 RRay_2;=0A= return os << static_cast(r);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, Ray_2 &r)=0A= {=0A= typedef typename R::Kernel_base::Ray_2 RRay_2;=0A= return is >> static_cast(r);=0A= }=0A= =0A= =0A= }=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Se= gment_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Se= gment_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Segment_2 : public R_::Kernel_base::Segment_2=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Kernel_base::Segment_2 RSegment_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Segment_2()=0A= : RSegment_2() {}=0A= =0A= Segment_2(const CGAL::Segment_2& s)=0A= : RSegment_2(static_cast(s)) {}=0A= =0A= Segment_2(const Point_2 &sp, const Point_2 &ep)=0A= : RSegment_2(sp,ep) {}=0A= =0A= =0A= Segment_2(const RSegment_2& s)=0A= : RSegment_2(s) {}=0A= };=0A= =0A= =0A= template < class R>=0A= std::ostream &=0A= operator<<(std::ostream &os, const Segment_2 &s)=0A= {=0A= typedef typename R::Kernel_base::Segment_2 RSegment_2;=0A= return os << static_cast(s);=0A= }=0A= =0A= =0A= =0A= template < class R>=0A= std::istream &=0A= operator>>(std::istream &is, Segment_2 &s)=0A= {=0A= typedef typename R::Kernel_base::Segment_2 RSegment_2;=0A= return is >> static_cast(s);=0A= }=0A= =0A= =0A= }=0A= # 56 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tr= iangle_2.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tr= iangle_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Triangle_2 : public R_::Kernel_base::Triangle_2=0A= {=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Kernel_base::Triangle_2 RTriangle_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Triangle_2()=0A= : RTriangle_2() {}=0A= =0A= Triangle_2(const CGAL::Triangle_2 &t)=0A= : RTriangle_2((RTriangle_2&)t) {}=0A= =0A= Triangle_2(const RTriangle_2& t)=0A= : RTriangle_2(t) {}=0A= =0A= Triangle_2(const Point_2 &p, const Point_2 &q, const Point_2 &r)=0A= : RTriangle_2(p,q,r) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const Triangle_2 &t)=0A= {=0A= typedef typename R::Kernel_base::Triangle_2 RTriangle_2;=0A= return os << (const RTriangle_2&)t;=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, Triangle_2 &t)=0A= {=0A= typedef typename R::Kernel_base::Triangle_2 RTriangle_2;=0A= return is >> (RTriangle_2&)t;=0A= }=0A= =0A= =0A= }=0A= # 57 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Is= o_rectangle_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Is= o_rectangle_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Iso_rectangle_2 : public R_::Kernel_base::Iso_rectangle_2=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Kernel_base::Iso_rectangle_2 RIso_rectangle_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Iso_rectangle_2()=0A= : RIso_rectangle_2() {}=0A= =0A= Iso_rectangle_2(const CGAL::Iso_rectangle_2 &r)=0A= : RIso_rectangle_2(r) {}=0A= =0A= Iso_rectangle_2(const RIso_rectangle_2& r)=0A= : RIso_rectangle_2(r) {}=0A= =0A= Iso_rectangle_2(const Point_2 &p, const Point_2 &q)=0A= : RIso_rectangle_2(p,q) {}=0A= =0A= Iso_rectangle_2(const RT& min_hx, const RT& min_hy,=0A= const RT& max_hx, const RT& max_hy)=0A= : RIso_rectangle_2(min_hx, min_hy, max_hx, max_hy) {}=0A= =0A= Iso_rectangle_2(const RT& min_hx, const RT& min_hy,=0A= const RT& max_hx, const RT& max_hy, const RT& hw)=0A= : RIso_rectangle_2(min_hx, min_hy, max_hx, max_hy, hw) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const Iso_rectangle_2 &r)=0A= {=0A= typedef typename R::Kernel_base::Iso_rectangle_2 RIso_rectangle_2;=0A= return os << (const RIso_rectangle_2&)r;=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, Iso_rectangle_2 &r)=0A= {=0A= typedef typename R::Kernel_base::Iso_rectangle_2 RIso_rectangle_2;=0A= is >> (RIso_rectangle_2&)r;=0A= return is;=0A= }=0A= =0A= =0A= }=0A= # 58 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ci= rcle_2.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ci= rcle_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Circle_2 : public R_::Kernel_base::Circle_2=0A= {=0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Kernel_base::Circle_2 RCircle_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Circle_2()=0A= : RCircle_2() {}=0A= =0A= Circle_2(const CGAL::Circle_2 &t)=0A= : RCircle_2((RCircle_2&)t) {}=0A= =0A= Circle_2(const RCircle_2& t)=0A= : RCircle_2(t) {}=0A= =0A= Circle_2(const Point_2 ¢er, const FT &squared_radius,=0A= const Orientation &orientation)=0A= : RCircle_2(center, squared_radius, orientation) {}=0A= =0A= Circle_2(const Point_2 ¢er, const FT &squared_radius)=0A= : RCircle_2(center, squared_radius, COUNTERCLOCKWISE) {}=0A= =0A= Circle_2(const Point_2 &p, const Point_2 &q, const Point_2 &r)=0A= : RCircle_2(p,q,r) {}=0A= =0A= Circle_2(const Point_2 & p, const Point_2 & q,=0A= const Orientation &orientation)=0A= : RCircle_2(p,q,orientation) {}=0A= =0A= Circle_2(const Point_2 & p, const Point_2 & q)=0A= : RCircle_2(p,q,COUNTERCLOCKWISE) {}=0A= =0A= Circle_2(const Point_2 & center, const Orientation& orientation)=0A= : RCircle_2(center,FT(0),orientation) {}=0A= =0A= Circle_2(const Point_2 & center)=0A= : RCircle_2(center,FT(0),COUNTERCLOCKWISE) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const Circle_2 &c)=0A= {=0A= typedef typename R::Kernel_base::Circle_2 RCircle_2;=0A= return os << (const RCircle_2&)c;=0A= }=0A= =0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, Circle_2 &c)=0A= {=0A= typedef typename R::Kernel_base::Circle_2 RCircle_2;=0A= return is >> (RCircle_2&)c;=0A= }=0A= =0A= =0A= }=0A= # 59 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nic_2.h" 1=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nic_2.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /forward_decl_window_stream.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/IO= /forward_decl_window_stream.h"=0A= namespace CGAL {=0A= class window;=0A= }=0A= =0A= =0A= =0A= =0A= namespace CGAL {=0A= =0A= =0A= typedef CGAL::window Window_stream;=0A= =0A= =0A= =0A= =0A= }=0A= # 56 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nic_2.h" 2=0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nic_misc.h" 1=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nic_misc.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Op= timisation/assertions.h" 1=0A= # 56 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nic_misc.h" 2=0A= =0A= =0A= namespace CGAL {=0A= =0A= template < class R>=0A= class Conic_2;=0A= =0A= =0A= enum Conic_type=0A= {=0A= HYPERBOLA =3D -1,=0A= PARABOLA,=0A= ELLIPSE=0A= };=0A= =0A= =0A= typedef CGAL::Bounded_side Convex_side;=0A= const Convex_side ON_CONVEX_SIDE =3D CGAL::ON_BOUNDED_SIDE;=0A= const Convex_side ON_NONCONVEX_SIDE =3D CGAL::ON_UNBOUNDED_SIDE;=0A= =0A= =0A= =0A= =0A= template < class NT >=0A= NT best_value (NT *values, int nr_values,=0A= NT a2, NT a1, NT a0,=0A= NT b3, NT b2, NT b1, NT b0)=0A= {=0A= bool det_positive =3D false;=0A= NT d, q, max_det =3D 0, det, best =3D -1;=0A= for (int i=3D0; i 0.0)=0A= if (!det_positive || (det > max_det)) {=0A= max_det =3D det;=0A= best =3D x;=0A= det_positive =3D true;=0A= }=0A= }=0A= ((det_positive)?((void)0): ::CGAL::precondition_fail( "det_positive" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onic_misc.h",98,0));=0A= return best;=0A= }=0A= =0A= =0A= template < class NT >=0A= int solve_cubic (NT c3, NT c2, NT c1, NT c0,=0A= NT& r1, NT& r2, NT& r3)=0A= {=0A= if (c3 =3D=3D 0.0) {=0A= =0A= if (c2 =3D=3D 0) {=0A= =0A= ((c1 !=3D 0)?((void)0): ::CGAL::precondition_fail( "c1 !=3D = 0" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onic_misc.h",111,0));=0A= r1 =3D -c0/c1;=0A= return 1;=0A= }=0A= NT D =3D c1*c1-4*c2*c0;=0A= if (D < 0.0)=0A= =0A= return 0;=0A= if (D =3D=3D 0.0) {=0A= =0A= r1 =3D -c1/(2.0*c2);=0A= return 1;=0A= }=0A= =0A= r1 =3D (-c1 + CGAL::sqrt(D))/(2.0*c2);=0A= r2 =3D (-c1 - CGAL::sqrt(D))/(2.0*c2);=0A= return 2;=0A= }=0A= =0A= =0A= =0A= NT g2 =3D c2/c3,=0A= g1 =3D c1/c3,=0A= g0 =3D c0/c3;=0A= =0A= =0A= NT a =3D g1 - g2*g2/3.0,=0A= b =3D 2.0*g2*g2*g2/27.0 - g1*g2/3.0 + g0;=0A= =0A= if (a =3D=3D 0) {=0A= =0A= =0A= r1 =3D exp(log(-b)/3.0) - g2/3.0;=0A= return 1;=0A= }=0A= =0A= =0A= NT D =3D a*a*a/27.0 + b*b/4.0;=0A= if (D >=3D 0.0) {=0A= =0A= =0A= NT u =3D exp(log(-b/2.0 + CGAL::sqrt(D))),=0A= alpha =3D 1.0 - a/(3.0*u*u);=0A= if (D =3D=3D 0) {=0A= =0A= r1 =3D u*alpha - g2/3.0;=0A= r2 =3D -0.5*alpha*u - g2/3.0;=0A= return 2;=0A= }=0A= =0A= r1 =3D u*alpha - g2/3.0;=0A= return 1;=0A= }=0A= =0A= NT r_prime =3D CGAL::sqrt(-a/3),=0A= phi_prime =3D acos (-b/(2.0*r_prime*r_prime*r_prime))/3.0,=0A= u_R =3D r_prime * cos (phi_prime),=0A= u_I =3D r_prime * sin (phi_prime);=0A= =0A= r1 =3D 2.0*u_R - g2/3.0;=0A= r2 =3D -u_R + u_I*CGAL::sqrt(3.0) - g2/3.0;=0A= r3 =3D -u_R - u_I*CGAL::sqrt(3.0) - g2/3.0;=0A= return 3;=0A= }=0A= =0A= =0A= =0A= }=0A= # 59 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nic_2.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class _R >=0A= class Optimisation_ellipse_2;=0A= =0A= }=0A= =0A= =0A= =0A= template < class _R >=0A= CGAL::Window_stream&=0A= operator << ( CGAL::Window_stream&,=0A= const CGAL::Optimisation_ellipse_2<_R>&);=0A= =0A= namespace CGAL {=0A= =0A= template < class _R>=0A= class Conic_2 : public _R::Kernel_base::Conic_2 {=0A= =0A= friend class Optimisation_ellipse_2<_R>;=0A= =0A= public:=0A= =0A= =0A= typedef _R R;=0A= typedef typename _R::RT RT;=0A= typedef typename _R::FT FT;=0A= typedef typename _R::Kernel_base::Conic_2 _Conic_2;=0A= =0A= =0A= Conic_2 ()=0A= {}=0A= =0A= Conic_2 (RT r, RT s, RT t, RT u, RT v, RT w)=0A= : _Conic_2 (r, s, t, u, v, w)=0A= {}=0A= =0A= =0A= =0A= =0A= RT r () const=0A= {=0A= return _Conic_2::r();=0A= }=0A= =0A= RT s () const=0A= {=0A= return _Conic_2::s();=0A= }=0A= =0A= RT t () const=0A= {=0A= return _Conic_2::t();=0A= }=0A= =0A= RT u () const=0A= {=0A= return _Conic_2::u();=0A= }=0A= =0A= RT v () const=0A= {=0A= return _Conic_2::v();=0A= }=0A= =0A= RT w () const=0A= {=0A= return _Conic_2::w();=0A= }=0A= =0A= CGAL::Point_2 center () const=0A= {=0A= return _Conic_2::center();=0A= }=0A= =0A= =0A= =0A= =0A= Conic_type conic_type () const=0A= {=0A= return _Conic_2::conic_type();=0A= }=0A= =0A= bool is_hyperbola () const=0A= {=0A= return _Conic_2::is_hyperbola();=0A= }=0A= =0A= bool is_parabola () const=0A= {=0A= return _Conic_2::is_parabola();=0A= }=0A= =0A= bool is_ellipse () const=0A= {=0A= return _Conic_2::is_ellipse();=0A= }=0A= =0A= bool is_empty () const=0A= {=0A= return _Conic_2::is_empty();=0A= }=0A= =0A= bool is_trivial () const=0A= {=0A= return _Conic_2::is_trivial();=0A= }=0A= =0A= bool is_degenerate () const=0A= {=0A= return _Conic_2::is_degenerate();=0A= }=0A= =0A= =0A= =0A= =0A= CGAL::Orientation orientation () const=0A= {=0A= return _Conic_2::orientation ();=0A= }=0A= =0A= CGAL::Oriented_side oriented_side (const CGAL::Point_2& p) const=0A= {=0A= return _Conic_2::oriented_side (p);=0A= }=0A= =0A= bool has_on_positive_side (const CGAL::Point_2& p) const=0A= {=0A= return _Conic_2::has_on_positive_side (p);=0A= }=0A= =0A= bool has_on_negative_side (const CGAL::Point_2& p) const=0A= {=0A= return _Conic_2::has_on_negative_side (p);=0A= }=0A= =0A= bool has_on_boundary (const CGAL::Point_2& p) const=0A= {=0A= return _Conic_2::has_on_boundary (p);=0A= }=0A= =0A= bool has_on (const CGAL::Point_2& p) const=0A= {=0A= return _Conic_2::has_on (p);=0A= }=0A= =0A= Convex_side convex_side (const CGAL::Point_2& p) const=0A= {=0A= return _Conic_2::convex_side (p);=0A= }=0A= =0A= bool has_on_convex_side (const CGAL::Point_2& p) const=0A= {=0A= return _Conic_2::has_on_convex_side (p);=0A= }=0A= =0A= bool has_on_nonconvex_side (const CGAL::Point_2& p) const=0A= {=0A= return _Conic_2::has_on_nonconvex_side (p);=0A= }=0A= =0A= =0A= =0A= =0A= bool operator =3D=3D ( const Conic_2<_R>& c) const=0A= {=0A= return _Conic_2::operator =3D=3D ( (Conic_2)c);=0A= }=0A= =0A= bool operator !=3D ( const Conic_2<_R>& c) const=0A= {=0A= return( ! operator =3D=3D ( c));=0A= }=0A= =0A= =0A= void set (RT r, RT s, RT t,=0A= RT u, RT v, RT w)=0A= {=0A= _Conic_2::set (r, s, t, u, v, w);=0A= }=0A= =0A= void set_opposite ()=0A= {=0A= _Conic_2::set_opposite();=0A= }=0A= =0A= void set_linepair (const CGAL::Point_2& p1, const = CGAL::Point_2& p2,=0A= const CGAL::Point_2& p3, const = CGAL::Point_2& p4)=0A= {=0A= _Conic_2::set_linepair (p1, p2, p3, p4);=0A= }=0A= =0A= void set_ellipse (const CGAL::Point_2& p1, const = CGAL::Point_2& p2,=0A= const CGAL::Point_2& p3)=0A= {=0A= _Conic_2::set_ellipse (p1, p2, p3);=0A= }=0A= =0A= void set_ellipse (const CGAL::Point_2& p1, const = CGAL::Point_2& p2,=0A= const CGAL::Point_2& p3, const = CGAL::Point_2& p4,=0A= CGAL::Orientation o =3D POSITIVE)=0A= {=0A= _Conic_2::set_ellipse (p1, p2, p3, p4, o);=0A= }=0A= =0A= void set (const CGAL::Point_2& p1, const CGAL::Point_2& p2,=0A= const CGAL::Point_2& p3, const CGAL::Point_2& p4,=0A= const CGAL::Point_2& p5,=0A= CGAL::Orientation o =3D POSITIVE)=0A= {=0A= _Conic_2::set (p1, p2, p3, p4, p5, o);=0A= }=0A= =0A= =0A= =0A= private:=0A= void set_linear_combination (=0A= const RT& a1, const Conic_2& c1,=0A= const RT& a2, const Conic_2& c2)=0A= {=0A= _Conic_2::set_linear_combination (a1, c1, a2, c2);=0A= }=0A= =0A= static void set_two_linepairs (const CGAL::Point_2& p1,=0A= const CGAL::Point_2& p2,=0A= const CGAL::Point_2& p3,=0A= const CGAL::Point_2& p4,=0A= Conic_2& pair1,=0A= Conic_2& pair2)=0A= {=0A= _Conic_2::set_two_linepairs (p1, p2, p3, p4, pair1, pair2);=0A= }=0A= =0A= void set_ellipse (const Conic_2& pair1,=0A= const Conic_2& pair2)=0A= {=0A= _Conic_2::set_ellipse (pair1, pair2);=0A= }=0A= =0A= void set (const Conic_2& c1, const Conic_2& c2,=0A= const CGAL::Point_2& p)=0A= {=0A= _Conic_2::set( c1, c2, p); analyse();=0A= }=0A= =0A= CGAL::Sign vol_derivative (RT dr, RT ds,=0A= RT dt, RT du,=0A= RT dv, RT dw) const=0A= {=0A= return _Conic_2::vol_derivative (dr, ds, dt, du, dv, dw);=0A= }=0A= =0A= double vol_minimum (RT dr, RT ds,=0A= RT dt, RT du,=0A= RT dv, RT dw) const=0A= {=0A= return _Conic_2::vol_minimum (dr, ds, dt, du, dv, dw);=0A= }=0A= =0A= =0A= };=0A= =0A= =0A= =0A= =0A= template< class _R>=0A= std::ostream& operator << ( std::ostream& os, const Conic_2<_R>& c)=0A= {=0A= return( os << c.r() << ' ' << c.s() << ' ' << c.t() << ' '=0A= << c.u() << ' ' << c.v() << ' ' << c.w());=0A= }=0A= =0A= =0A= }=0A= # 60 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Af= f_transformation_2.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Af= f_transformation_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Aff_transformation_2 : public R_::Kernel_base::Aff_transformation_2=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::FT FT;=0A= typedef typename R_::Line_2 Line_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Vector_2 Vector_2;=0A= typedef typename R_::Kernel_base::Aff_transformation_2 = RAff_transformation_2;=0A= public:=0A= typedef R_ R;=0A= =0A= Aff_transformation_2()=0A= : RAff_transformation_2()=0A= {}=0A= =0A= Aff_transformation_2(const CGAL::Aff_transformation_2 &t)=0A= : RAff_transformation_2(t)=0A= {}=0A= =0A= Aff_transformation_2(const RAff_transformation_2& t)=0A= : RAff_transformation_2(t)=0A= {}=0A= =0A= Aff_transformation_2(const Identity_transformation tag)=0A= : RAff_transformation_2(tag)=0A= {}=0A= =0A= Aff_transformation_2(const Translation tag, const Vector_2 &v)=0A= : RAff_transformation_2(tag, v)=0A= {}=0A= =0A= =0A= Aff_transformation_2(const Rotation tag,=0A= const Direction_2 &d,=0A= const RT &num,=0A= const RT &den =3D RT(1))=0A= : RAff_transformation_2(tag, d, num, den)=0A= {}=0A= =0A= Aff_transformation_2(const Rotation tag,=0A= const RT &sin,=0A= const RT &cos,=0A= const RT &den =3D RT(1))=0A= : RAff_transformation_2(tag, sin, cos, den)=0A= {}=0A= =0A= Aff_transformation_2(const Reflection tag, const Line_2& l )=0A= : RAff_transformation_2(tag, l)=0A= {}=0A= =0A= Aff_transformation_2(const Scaling tag,=0A= const RT &s,=0A= const RT &w=3D RT(1))=0A= : RAff_transformation_2(tag, s, w)=0A= {}=0A= =0A= =0A= Aff_transformation_2(const RT & m11,=0A= const RT & m12,=0A= const RT & m13,=0A= =0A= const RT & m21,=0A= const RT & m22,=0A= const RT & m23,=0A= =0A= const RT &w=3D RT(1))=0A= : RAff_transformation_2(m11, m12, m13,=0A= m21, m22, m23,=0A= w)=0A= {}=0A= =0A= Aff_transformation_2(const RT & m11, const RT & m12,=0A= const RT & m21, const RT & m22,=0A= const RT &w =3D RT(1))=0A= : RAff_transformation_2(m11, m12,=0A= m21, m22,=0A= w)=0A= {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const CGAL::Aff_transformation_2 &t)=0A= {=0A= typedef typename R::Kernel_base::Aff_transformation_2 = RAff_transformation_2;=0A= return os << static_cast(t);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, CGAL::Aff_transformation_2 &t)=0A= {=0A= typedef typename R::Kernel_base::Aff_transformation_2 = RAff_transformation_2;=0A= return is >> static_cast(t);=0A= }=0A= =0A= =0A= }=0A= # 61 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Po= int_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Po= int_3.h"=0A= namespace CGAL {=0A= =0A= class Origin;=0A= =0A= template =0A= class Point_3 : public R_::Kernel_base::Point_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Kernel_base::Point_3 RPoint_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Point_3()=0A= {}=0A= =0A= Point_3(const Origin& o)=0A= : RPoint_3(o) {}=0A= =0A= Point_3(const CGAL::Point_3& p)=0A= : RPoint_3( static_cast(p) ) {}=0A= =0A= Point_3(const RPoint_3& p)=0A= : RPoint_3(p) {}=0A= =0A= Point_3(const RT& hx, const RT& hy, const RT& hz)=0A= : RPoint_3(hx, hy, hz) {}=0A= =0A= Point_3(const RT& hx, const RT& hy, const RT& hz, const RT& hw)=0A= : RPoint_3(hx, hy, hz, hw) {}=0A= };=0A= =0A= template =0A= inline=0A= bool=0A= operator=3D=3D(const Origin& o, const Point_3& p)=0A= { return p =3D=3D o; }=0A= =0A= template =0A= inline=0A= bool=0A= operator!=3D(const Origin& o, const Point_3& p)=0A= { return p !=3D o; }=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Point_3& p)=0A= {=0A= typedef typename R::Kernel_base::Point_3 RPoint_3;=0A= return os << static_cast(p);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream& operator>>(std::istream& is, Point_3& p)=0A= {=0A= typedef typename R::Kernel_base::Point_3 RPoint_3;=0A= return is >> static_cast(p);=0A= }=0A= =0A= =0A= }=0A= # 63 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Pl= ane_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Pl= ane_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Plane_3 : public R_::Kernel_base::Plane_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Segment_3 Segment_3;=0A= typedef typename R_::Line_3 Line_3;=0A= typedef typename R_::Ray_3 Ray_3;=0A= typedef typename R_::Kernel_base::Plane_3 RPlane_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Plane_3()=0A= : RPlane_3() {}=0A= =0A= Plane_3(const CGAL::Plane_3& p)=0A= : RPlane_3(p) {}=0A= =0A= Plane_3(const RPlane_3& p)=0A= : RPlane_3(p) {}=0A= =0A= Plane_3(const Point_3& p, const Point_3& q, const Point_3& r)=0A= : RPlane_3(p,q,r) {}=0A= =0A= Plane_3(const Point_3& p, const Direction_3& d)=0A= : RPlane_3(p,d) {}=0A= =0A= Plane_3(const Point_3& p, const Vector_3& v)=0A= : RPlane_3(p,v) {}=0A= =0A= Plane_3(const RT& a, const RT& b, const RT& c, const RT& d)=0A= : RPlane_3(a,b,c,d) {}=0A= =0A= Plane_3(const Line_3& l, const Point_3& p)=0A= : RPlane_3(l,p) {}=0A= =0A= Plane_3(const Segment_3& s, const Point_3& p)=0A= : RPlane_3(s,p) {}=0A= =0A= Plane_3(const Ray_3& r, const Point_3& p)=0A= : RPlane_3(r,p) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Plane_3& p)=0A= {=0A= typedef typename R::Kernel_base::Plane_3 RPlane_3;=0A= return os << static_cast(p);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream& is, Plane_3& t)=0A= {=0A= typedef typename R::Kernel_base::Plane_3 RPlane_3;=0A= return is >> static_cast(t);=0A= }=0A= =0A= =0A= }=0A= # 64 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ve= ctor_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ve= ctor_3.h"=0A= namespace CGAL {=0A= =0A= class Null_vector;=0A= =0A= template =0A= class Vector_3 : public R_::Kernel_base::Vector_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Kernel_base::Vector_3 RVector_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Vector_3()=0A= {}=0A= =0A= Vector_3(const CGAL::Vector_3& v)=0A= : RVector_3( static_cast(v) ) {}=0A= =0A= Vector_3(const Point_3& a, const Point_3& b)=0A= : RVector_3(a, b) {}=0A= =0A= Vector_3(const RVector_3& v)=0A= : RVector_3(v) {}=0A= =0A= Vector_3(const Null_vector& v)=0A= : RVector_3(v) {}=0A= =0A= Vector_3(const RT& x, const RT& y, const RT& z)=0A= : RVector_3(x, y, z) {}=0A= =0A= Vector_3(const RT& x, const RT& y, const RT& z, const RT& w)=0A= : RVector_3(x, y, z, w) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Vector_3& v)=0A= {=0A= typedef typename R::Kernel_base::Vector_3 RVector_3;=0A= return os << static_cast(v);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream& is, Vector_3& p)=0A= {=0A= typedef typename R::Kernel_base::Vector_3 RVector_3;=0A= return is >> static_cast(p);=0A= }=0A= =0A= =0A= }=0A= # 65 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Di= rection_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Di= rection_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Direction_3 : public R_::Kernel_base::Direction_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Line_3 Line_3;=0A= typedef typename R_::Ray_3 Ray_3;=0A= typedef typename R_::Segment_3 Segment_3;=0A= typedef typename R_::Kernel_base::Direction_3 RDirection_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Direction_3()=0A= {}=0A= =0A= Direction_3(const CGAL::Direction_3& d)=0A= : RDirection_3( static_cast(d) ) {}=0A= =0A= Direction_3(const RDirection_3& d)=0A= : RDirection_3(d) {}=0A= =0A= Direction_3(const Vector_3& v)=0A= : RDirection_3(v) {}=0A= =0A= Direction_3(const Line_3& l)=0A= : RDirection_3(l) {}=0A= =0A= Direction_3(const Ray_3& r)=0A= : RDirection_3(r) {}=0A= =0A= Direction_3(const Segment_3& s)=0A= : RDirection_3(s) {}=0A= =0A= Direction_3(const RT& hx, const RT& hy, const RT& hz)=0A= : RDirection_3(hx, hy, hz) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream& operator<<(std::ostream& os, const Direction_3& d)=0A= {=0A= typedef typename R::Kernel_base::Direction_3 RDirection_3;=0A= return os << static_cast(d); }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream& operator>>(std::istream& is, Direction_3& p)=0A= {=0A= typedef typename R::Kernel_base::Direction_3 RDirection_3;=0A= return is >> static_cast(p); }=0A= =0A= =0A= }=0A= # 66 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Li= ne_3.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Li= ne_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Line_3 : public R_::Kernel_base::Line_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Ray_3 Ray_3;=0A= typedef typename R_::Segment_3 Segment_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Kernel_base::Line_3 RLine_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Line_3() : RLine_3()=0A= {}=0A= =0A= Line_3(const CGAL::Line_3 & l)=0A= : RLine_3( static_cast(l)) {}=0A= =0A= Line_3(const Point_3 & p, const Point_3 & q)=0A= : RLine_3(p,q) {}=0A= =0A= =0A= Line_3(const RLine_3& l)=0A= : RLine_3(l) {}=0A= =0A= Line_3(const Segment_3 & s)=0A= : RLine_3( s ) {}=0A= =0A= Line_3(const Ray_3 & r)=0A= : RLine_3( r ) {}=0A= =0A= Line_3(const Point_3 & p, const Direction_3 & d)=0A= : RLine_3( p, d ) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Line_3& l)=0A= {=0A= typedef typename R::Kernel_base::Line_3 RLine_3;=0A= return os << static_cast(l);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream & is, Line_3 & p)=0A= {=0A= typedef typename R::Kernel_base::Line_3 RLine_3;=0A= is >> static_cast(p);=0A= return is;=0A= }=0A= =0A= =0A= }=0A= # 67 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ra= y_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ra= y_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Ray_3 : public R_::Kernel_base::Ray_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Kernel_base::Ray_3 RRay_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Ray_3()=0A= : RRay_3() {}=0A= =0A= Ray_3(const CGAL::Ray_3& r)=0A= : RRay_3(r) {}=0A= =0A= Ray_3(const RRay_3& r)=0A= : RRay_3(r) {}=0A= =0A= Ray_3(const Point_3& sp, const Point_3& secondp)=0A= : RRay_3(sp, secondp) {}=0A= =0A= Ray_3(const Point_3& sp, const Direction_3& d)=0A= : RRay_3(sp, d) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Ray_3& r)=0A= {=0A= typedef typename R::Kernel_base::Ray_3 RRay_3;=0A= return os << static_cast(r);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream& is, Ray_3& r)=0A= {=0A= typedef typename R::Kernel_base::Ray_3 RRay_3;=0A= return is >> static_cast(r);=0A= }=0A= =0A= =0A= }=0A= # 68 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Se= gment_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Se= gment_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Segment_3 : public R_::Kernel_base::Segment_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Kernel_base::Segment_3 RSegment_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Segment_3()=0A= : RSegment_3() {}=0A= =0A= Segment_3(const CGAL::Segment_3& s)=0A= : RSegment_3(s) {}=0A= =0A= Segment_3(const Point_3& sp, const Point_3& ep)=0A= : RSegment_3(sp,ep) {}=0A= =0A= Segment_3(const RSegment_3& s)=0A= : RSegment_3(s) {}=0A= };=0A= =0A= =0A= template < class R>=0A= std::ostream&=0A= operator<<(std::ostream& os, const Segment_3& s)=0A= {=0A= typedef typename R::Kernel_base::Segment_3 RSegment_3;=0A= return os << static_cast(s);=0A= }=0A= =0A= =0A= =0A= template < class R>=0A= std::istream&=0A= operator>>(std::istream& is, Segment_3& s)=0A= {=0A= typedef typename R::Kernel_base::Segment_3 RSegment_3;=0A= return is >> static_cast(s);=0A= }=0A= =0A= =0A= }=0A= # 69 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tr= iangle_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Tr= iangle_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Triangle_3 : public R_::Kernel_base::Triangle_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Kernel_base::Triangle_3 RTriangle_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Triangle_3()=0A= : RTriangle_3() {}=0A= =0A= Triangle_3(const CGAL::Triangle_3& t)=0A= : RTriangle_3(t) {}=0A= =0A= Triangle_3(const RTriangle_3& t)=0A= : RTriangle_3(t) {}=0A= =0A= Triangle_3(const Point_3& p, const Point_3& q, const Point_3& r)=0A= : RTriangle_3(p,q,r) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Triangle_3& t)=0A= {=0A= typedef typename R::Kernel_base::Triangle_3 RTriangle_3;=0A= return os << static_cast(t);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream& is, Triangle_3& t)=0A= {=0A= typedef typename R::Kernel_base::Triangle_3 RTriangle_3;=0A= return is >> static_cast(t);=0A= }=0A= =0A= =0A= }=0A= # 70 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Te= trahedron_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Te= trahedron_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Tetrahedron_3 : public R_::Kernel_base::Tetrahedron_3=0A= {=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Kernel_base::Tetrahedron_3 RTetrahedron_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Tetrahedron_3()=0A= : RTetrahedron_3() {}=0A= =0A= Tetrahedron_3(const CGAL::Tetrahedron_3& t)=0A= : RTetrahedron_3(t) {}=0A= =0A= Tetrahedron_3(const RTetrahedron_3& t)=0A= : RTetrahedron_3(t) {}=0A= =0A= Tetrahedron_3(const Point_3& p,=0A= const Point_3& q,=0A= const Point_3& r,=0A= const Point_3& s)=0A= : RTetrahedron_3(p,q,r,s) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Tetrahedron_3& t)=0A= {=0A= typedef typename R::Kernel_base::Tetrahedron_3 RTetrahedron_3;=0A= return os << static_cast(t);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream& is, Tetrahedron_3& t)=0A= {=0A= typedef typename R::Kernel_base::Tetrahedron_3 RTetrahedron_3;=0A= return is >> static_cast(t);=0A= }=0A= =0A= =0A= }=0A= # 71 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Is= o_cuboid_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Is= o_cuboid_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Iso_cuboid_3 : public R_::Kernel_base::Iso_cuboid_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Kernel_base::Iso_cuboid_3 RIso_cuboid_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Iso_cuboid_3() : RIso_cuboid_3()=0A= {}=0A= =0A= Iso_cuboid_3(const CGAL::Iso_cuboid_3& r)=0A= : RIso_cuboid_3(r) {}=0A= =0A= Iso_cuboid_3(const RIso_cuboid_3& r)=0A= : RIso_cuboid_3(r) {}=0A= =0A= Iso_cuboid_3(const Point_3& p, const Point_3& q)=0A= : RIso_cuboid_3(p,q) {}=0A= =0A= Iso_cuboid_3(const RT& min_hx, const RT& min_hy, const RT& min_hz,=0A= const RT& max_hx, const RT& max_hy, const RT& max_hz,=0A= const RT& hw)=0A= : RIso_cuboid_3(min_hx, min_hy, min_hz, max_hx, max_hy, max_hz, hw) {}=0A= =0A= Iso_cuboid_3(const RT& min_hx, const RT& min_hy, const RT& min_hz,=0A= const RT& max_hx, const RT& max_hy, const RT& max_hz)=0A= : RIso_cuboid_3(min_hx, min_hy, min_hz, max_hx, max_hy, max_hz) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Iso_cuboid_3& r)=0A= {=0A= typedef typename R::Kernel_base::Iso_cuboid_3 RIso_cuboid_3;=0A= return os << (const RIso_cuboid_3& )r; }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream& is, Iso_cuboid_3& r)=0A= {=0A= typedef typename R::Kernel_base::Iso_cuboid_3 RIso_cuboid_3;=0A= is >> (RIso_cuboid_3& )r;=0A= return is;=0A= }=0A= =0A= =0A= }=0A= # 72 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Sp= here_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Sp= here_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Sphere_3 : public R_::Kernel_base::Sphere_3=0A= {=0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Kernel_base::Sphere_3 RSphere_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Sphere_3()=0A= {}=0A= =0A= Sphere_3(const RSphere_3& s)=0A= : RSphere_3(s) {}=0A= =0A= Sphere_3(const Point_3& p, const FT& sq_rad,=0A= const Orientation& o =3D COUNTERCLOCKWISE)=0A= : RSphere_3(p, sq_rad, o) {}=0A= =0A= Sphere_3(const Point_3& p, const Point_3& q,=0A= const Point_3& r, const Point_3& u)=0A= : RSphere_3(p, q, r, u) {}=0A= =0A= Sphere_3(const Point_3& p, const Point_3& q, const Point_3& r,=0A= const Orientation& o =3D COUNTERCLOCKWISE)=0A= : RSphere_3(p, q, r, o) {}=0A= =0A= Sphere_3(const Point_3& p, const Point_3& q,=0A= const Orientation& o =3D COUNTERCLOCKWISE)=0A= : RSphere_3(p, q, o) {}=0A= =0A= Sphere_3(const Point_3& p, const Orientation& o =3D = COUNTERCLOCKWISE)=0A= : RSphere_3(p, o) {}=0A= };=0A= =0A= }=0A= # 73 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Af= f_transformation_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Af= f_transformation_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Aff_transformation_3 : public R_::Kernel_base::Aff_transformation_3=0A= {=0A= typedef typename R_::RT RT;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Kernel_base::Aff_transformation_3 = RAff_transformation_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Aff_transformation_3()=0A= : RAff_transformation_3() {}=0A= =0A= Aff_transformation_3(const CGAL::Aff_transformation_3& t)=0A= : RAff_transformation_3(t) {}=0A= =0A= Aff_transformation_3(const RAff_transformation_3& t)=0A= : RAff_transformation_3(t) {}=0A= =0A= Aff_transformation_3(const Identity_transformation& tag)=0A= : RAff_transformation_3(tag) {}=0A= =0A= Aff_transformation_3(const Translation tag,=0A= const Vector_3& v)=0A= : RAff_transformation_3(tag, v) {}=0A= =0A= Aff_transformation_3(const Scaling tag,=0A= const RT& s,=0A= const RT& w=3D RT(1) )=0A= : RAff_transformation_3(tag, s, w) {}=0A= =0A= =0A= Aff_transformation_3(=0A= const RT& m11, const RT& m12, const RT& m13, const RT& m14,=0A= const RT& m21, const RT& m22, const RT& m23, const RT& m24,=0A= const RT& m31, const RT& m32, const RT& m33, const RT& m34,=0A= const RT& w=3D RT(1) )=0A= : RAff_transformation_3(m11, m12, m13, m14,=0A= m21, m22, m23, m24,=0A= m31, m32, m33, m34,=0A= w) {}=0A= =0A= Aff_transformation_3(=0A= const RT& m11, const RT& m12, const RT& m13,=0A= const RT& m21, const RT& m22, const RT& m23,=0A= const RT& m31, const RT& m32, const RT& m33,=0A= const RT& w =3D RT(1) = )=0A= : RAff_transformation_3(m11, m12, m13,=0A= m21, m22, m23,=0A= m31, m32, m33,=0A= w) {}=0A= };=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const CGAL::Aff_transformation_3& t)=0A= {=0A= typedef typename R::Kernel_base::Aff_transformation_3 = RAff_transformation_3;=0A= return os << static_cast(t);=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream& is, CGAL::Aff_transformation_3& t)=0A= {=0A= typedef typename R::Kernel_base::Aff_transformation_3 = RAff_transformation_3;=0A= return is >> static_cast(t);=0A= }=0A= =0A= =0A= }=0A= # 74 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/us= er_classes.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class R>=0A= class Point_d;=0A= =0A= }=0A= # 61 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Point_2.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Point_2.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class PointC2=0A= : public R_::Point_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Vector_2 Vector_2;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Point_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= PointC2()=0A= : base(rep()) {}=0A= =0A= PointC2(const Origin &)=0A= : base(rep(FT(0), FT(0))) {}=0A= =0A= PointC2(const FT &x, const FT &y)=0A= : base(rep(x, y)) {}=0A= =0A= PointC2(const FT &hx, const FT &hy, const FT &hw)=0A= {=0A= if (hw !=3D FT(1))=0A= initialize_with( rep(hx/hw, hy/hw) );=0A= else=0A= initialize_with( rep(hx, hy) );=0A= }=0A= =0A= PointC2(const Vector_2 &v)=0A= : base(v) {}=0A= =0A= const FT& x() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const FT& y() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= =0A= const FT& hx() const=0A= {=0A= return x();=0A= }=0A= const FT& hy() const=0A= {=0A= return y();=0A= }=0A= FT hw() const=0A= {=0A= return FT(1);=0A= }=0A= =0A= const FT& cartesian(int i) const;=0A= FT homogeneous(int i) const;=0A= const FT& operator[](int i) const=0A= {=0A= return cartesian(i);=0A= }=0A= =0A= int dimension() const=0A= {=0A= return 2;=0A= }=0A= =0A= bool operator=3D=3D(const PointC2 &p) const=0A= {=0A= if (identical(p))=0A= return true;=0A= return equal_xy(*this, p);=0A= }=0A= bool operator!=3D(const PointC2 &p) const=0A= {=0A= return !(*this =3D=3D p);=0A= }=0A= =0A= Bbox_2 bbox() const;=0A= =0A= Point_2 transform(const Aff_transformation_2 &t) const=0A= {=0A= return t.transform(*this);=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= const typename PointC2::FT &=0A= PointC2::cartesian(int i) const=0A= {=0A= (((i =3D=3D 0) || (i =3D=3D 1))?(static_cast(0)): = ::CGAL::precondition_fail( "(i =3D=3D 0) || (i =3D=3D 1)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Point_2.h", 152, 0));=0A= return (i =3D=3D 0) ? x() : y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PointC2::FT=0A= PointC2::homogeneous(int i) const=0A= {=0A= (((i>=3D0) && (i<=3D2))?(static_cast(0)): = ::CGAL::precondition_fail( "(i>=3D0) && (i<=3D2)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Point_2.h", 161, 0));=0A= if (i<2)=0A= return cartesian(i);=0A= return FT(1);=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_2=0A= PointC2::bbox() const=0A= {=0A= double bx =3D CGAL::to_double(x());=0A= double by =3D CGAL::to_double(y());=0A= return Bbox_2(bx,by, bx,by);=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const PointC2 &p)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << p.x() << ' ' << p.y();=0A= case IO::BINARY :=0A= write(os, p.x());=0A= write(os, p.y());=0A= return os;=0A= default:=0A= return os << "PointC2(" << p.x() << ", " << p.y() << ')';=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, PointC2 &p)=0A= {=0A= typename R::FT x, y;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> x >> y;=0A= break;=0A= case IO::BINARY :=0A= read(is, x);=0A= read(is, y);=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << = std::endl;=0A= break;=0A= }=0A= if (is)=0A= p =3D PointC2(x, y);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 63 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Vector_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Vector_2.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class VectorC2=0A= : public R_::Vector_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Vector_2 Vector_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Vector_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= VectorC2()=0A= : base(rep()) {}=0A= =0A= VectorC2(const Null_vector &)=0A= : base(rep(FT(0), FT(0))) {}=0A= =0A= VectorC2(const Point_2 &p)=0A= : base(p) {}=0A= =0A= VectorC2(const Point_2 &a, const Point_2 &b)=0A= : base(b-a) {}=0A= =0A= VectorC2(const Direction_2 &d)=0A= : base(d) {}=0A= =0A= VectorC2(const FT &x, const FT &y)=0A= : base(rep(x, y)) {}=0A= =0A= VectorC2(const FT &hx, const FT &hy, const FT &hw)=0A= {=0A= if (hw !=3D FT(1))=0A= initialize_with(rep(hx/hw, hy/hw));=0A= else=0A= initialize_with(rep(hx, hy));=0A= }=0A= =0A= bool operator=3D=3D(const VectorC2 &v) const;=0A= bool operator!=3D(const VectorC2 &v) const;=0A= bool operator=3D=3D(const Null_vector &) const;=0A= bool operator!=3D(const Null_vector &p) const;=0A= =0A= const FT & x() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const FT & y() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= =0A= const FT & hx() const=0A= {=0A= return x();=0A= }=0A= const FT & hy() const=0A= {=0A= return y();=0A= }=0A= FT hw() const=0A= {=0A= return FT(1);=0A= }=0A= =0A= const FT & cartesian(int i) const;=0A= const FT & operator[](int i) const;=0A= FT homogeneous(int i) const;=0A= =0A= int dimension() const=0A= {=0A= return 2;=0A= }=0A= =0A= Vector_2 operator+(const VectorC2 &w) const;=0A= Vector_2 operator-(const VectorC2 &w) const;=0A= Vector_2 operator-() const;=0A= FT operator*(const VectorC2 &w) const;=0A= FT squared_length() const;=0A= Vector_2 operator/(const FT &c) const;=0A= Direction_2 direction() const;=0A= =0A= Vector_2 perpendicular(const Orientation &o) const;=0A= Vector_2 transform(const Aff_transformation_2 &t) const=0A= {=0A= return t.transform(*this);=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= VectorC2::operator=3D=3D(const VectorC2 &v) const=0A= {=0A= if (identical(v))=0A= return true;=0A= return x() =3D=3D v.x() && y() =3D=3D v.y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= VectorC2::operator!=3D(const VectorC2 &v) const=0A= {=0A= return !(*this =3D=3D v);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= VectorC2::operator=3D=3D(const Null_vector &) const=0A= {=0A= return CGAL::NTS:: is_zero(x()) && CGAL::NTS:: is_zero(y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= VectorC2::operator!=3D(const Null_vector &v) const=0A= {=0A= return !(*this =3D=3D v);=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename VectorC2::FT &=0A= VectorC2::cartesian(int i) const=0A= {=0A= (((i =3D=3D 0) || (i =3D=3D 1))?(static_cast(0)): = ::CGAL::precondition_fail( "(i =3D=3D 0) || (i =3D=3D 1)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Vector_2.h", 188, 0));=0A= return (i =3D=3D 0) ? x() : y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename VectorC2::FT &=0A= VectorC2::operator[](int i) const=0A= {=0A= return cartesian(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC2::FT=0A= VectorC2::homogeneous(int i) const=0A= {=0A= return (i =3D=3D 2) ? FT(1) : cartesian(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC2::Vector_2=0A= VectorC2::operator+(const VectorC2 &w) const=0A= {=0A= return VectorC2(x() + w.x(), y() + w.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC2::Vector_2=0A= VectorC2::operator-(const VectorC2 &w) const=0A= {=0A= return VectorC2(x() - w.x(), y() - w.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC2::Vector_2=0A= VectorC2::operator-() const=0A= {=0A= return VectorC2(-x(), -y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC2::FT=0A= VectorC2::operator*(const VectorC2 &w) const=0A= {=0A= return x() * w.x() + y() * w.y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC2::FT=0A= VectorC2::squared_length() const=0A= {=0A= return CGAL::NTS:: square(x()) + CGAL::NTS:: square(y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC2::Vector_2=0A= VectorC2::=0A= operator/(const typename VectorC2::FT &c) const=0A= {=0A= return VectorC2( x()/c, y()/c);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC2::Direction_2=0A= VectorC2::direction() const=0A= {=0A= return Direction_2(*this);=0A= }=0A= =0A= template < class R >=0A= =0A= typename VectorC2::Vector_2=0A= VectorC2::perpendicular(const Orientation &o) const=0A= {=0A= ((o !=3D COLLINEAR)?(static_cast(0)): ::CGAL::precondition_fail( = "o !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Vector_2.h", 270, 0));=0A= if (o =3D=3D COUNTERCLOCKWISE)=0A= return VectorC2(-y(), x());=0A= else=0A= return VectorC2(y(), -x());=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const VectorC2 &v)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << v.x() << ' ' << v.y();=0A= case IO::BINARY :=0A= write(os, v.x());=0A= write(os, v.y());=0A= return os;=0A= default:=0A= return os << "VectorC2(" << v.x() << ", " << v.y() << ')';=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, VectorC2 &p)=0A= {=0A= typename R::FT x, y;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> x >> y;=0A= break;=0A= case IO::BINARY :=0A= read(is, x);=0A= read(is, y);=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << = std::endl;=0A= break;=0A= }=0A= if (is)=0A= p =3D VectorC2(x, y);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 64 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Direction_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Direction_2.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class DirectionC2=0A= : public R_::Direction_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Vector_2 Vector_2;=0A= typedef typename R_::Line_2 Line_2;=0A= typedef typename R_::Ray_2 Ray_2;=0A= typedef typename R_::Segment_2 Segment_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Direction_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= DirectionC2()=0A= : base(rep()) {}=0A= =0A= DirectionC2(const Vector_2 &v)=0A= : base(v) {}=0A= =0A= DirectionC2(const Line_2 &l)=0A= : base(l.direction()) {}=0A= =0A= DirectionC2(const Ray_2 &r)=0A= : base(r.direction()) {}=0A= =0A= DirectionC2(const Segment_2 &s)=0A= : base(s.direction()) {}=0A= =0A= DirectionC2(const FT &x, const FT &y)=0A= : base(rep(x, y)) {}=0A= =0A= bool operator=3D=3D(const DirectionC2 &d) const;=0A= bool operator!=3D(const DirectionC2 &d) const;=0A= bool operator>=3D(const DirectionC2 &d) const;=0A= bool operator<=3D(const DirectionC2 &d) const;=0A= bool operator>(const DirectionC2 &d) const;=0A= bool operator<(const DirectionC2 &d) const;=0A= bool counterclockwise_in_between( const DirectionC2 &d1,=0A= const DirectionC2 &d2) const;=0A= =0A= Vector_2 to_vector() const;=0A= Vector_2 vector() const { return to_vector(); }=0A= =0A= Direction_2 perpendicular(const Orientation &o) const;=0A= Direction_2 transform(const Aff_transformation_2 &t) const=0A= {=0A= return t.transform(*this);=0A= }=0A= =0A= Direction_2 operator-() const;=0A= =0A= const FT & delta(int i) const;=0A= const FT & dx() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const FT & dy() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= DirectionC2::operator=3D=3D(const DirectionC2 &d) const=0A= {=0A= if (identical(d))=0A= return true;=0A= return equal_direction(*this, d);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= DirectionC2::operator!=3D(const DirectionC2 &d) const=0A= {=0A= return !( *this =3D=3D d );=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= DirectionC2::operator<(const DirectionC2 &d) const=0A= {=0A= return compare_angle_with_x_axis(*this, d) =3D=3D SMALLER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= DirectionC2::operator>(const DirectionC2 &d) const=0A= {=0A= return d < *this;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= DirectionC2::operator>=3D(const DirectionC2 &d) const=0A= {=0A= return compare_angle_with_x_axis(*this, d) !=3D SMALLER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= DirectionC2::operator<=3D(const DirectionC2 &d) const=0A= {=0A= return compare_angle_with_x_axis(*this, d) !=3D LARGER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= DirectionC2::=0A= counterclockwise_in_between(const DirectionC2 &d1,=0A= const DirectionC2 &d2) const=0A= =0A= =0A= =0A= =0A= =0A= {=0A= if ( d1 < *this)=0A= return ( *this < d2 )||( d2 <=3D d1 );=0A= else=0A= return ( *this < d2 )&&( d2 <=3D d1 );=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename DirectionC2::Vector_2=0A= DirectionC2::to_vector() const=0A= {=0A= return Vector_2(dx(), dy());=0A= }=0A= =0A= template < class R >=0A= =0A= typename DirectionC2::Direction_2=0A= DirectionC2::perpendicular(const Orientation &o) const=0A= {=0A= ((o !=3D COLLINEAR)?(static_cast(0)): ::CGAL::precondition_fail( = "o !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Direction_2.h", 205, 0));=0A= if (o =3D=3D COUNTERCLOCKWISE)=0A= return DirectionC2(-dy(), dx());=0A= else=0A= return DirectionC2(dy(), -dx());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename DirectionC2::Direction_2=0A= DirectionC2::operator-() const=0A= {=0A= return DirectionC2(-dx(), -dy());=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename DirectionC2::FT &=0A= DirectionC2::delta(int i) const=0A= {=0A= ((( i =3D=3D 0 ) || ( i =3D=3D 1 ))?(static_cast(0)): = ::CGAL::precondition_fail( "( i =3D=3D 0 ) || ( i =3D=3D 1 )" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Direction_2.h", 225, 0));=0A= return (i=3D=3D0) ? dx() : dy();=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream &os, const DirectionC2 &d)=0A= {=0A= typename R::Vector_2 v =3D d.to_vector();=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << v.x() << ' ' << v.y();=0A= case IO::BINARY :=0A= write(os, v.x());=0A= write(os, v.y());=0A= return os;=0A= default:=0A= return os << "DirectionC2(" << v.x() << ", " << v.y() << ')';=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream&=0A= operator>>(std::istream &is, DirectionC2 &p)=0A= {=0A= typename R::FT x, y;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> x >> y;=0A= break;=0A= case IO::BINARY :=0A= read(is, x);=0A= read(is, y);=0A= break;=0A= default:=0A= std::cerr << std::endl << "Stream must be in ascii or binary = mode"=0A= << std::endl;=0A= break;=0A= }=0A= if (is)=0A= p =3D DirectionC2(x, y);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 65 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Line_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Line_2.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class LineC2=0A= : public R_::Line_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Ray_2 Ray_2;=0A= typedef typename R_::Segment_2 Segment_2;=0A= typedef typename R_::Line_2 Line_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Line_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= LineC2()=0A= : base(rep()) {}=0A= =0A= LineC2(const Point_2 &p, const Point_2 &q)=0A= : base(line_from_points(p, q)) {}=0A= =0A= LineC2(const FT &a, const FT &b, const FT &c)=0A= : base(rep(a, b, c)) {}=0A= =0A= LineC2(const Segment_2 &s)=0A= : base(line_from_points(s.source(), s.target())) {}=0A= =0A= LineC2(const Ray_2 &r)=0A= : base(line_from_points(r.point(0), r.point(1))) {}=0A= =0A= LineC2(const Point_2 &p, const Direction_2 &d)=0A= : base(line_from_point_direction(p, d)) {}=0A= =0A= bool operator=3D=3D(const LineC2 &l) const;=0A= bool operator!=3D(const LineC2 &l) const;=0A= =0A= const FT & a() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const FT & b() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= const FT & c() const=0A= {=0A= return Ptr()->e2;=0A= }=0A= =0A= FT x_at_y(const FT &y) const;=0A= FT y_at_x(const FT &x) const;=0A= =0A= Line_2 perpendicular(const Point_2 &p) const;=0A= Line_2 opposite() const;=0A= Point_2 point(int i) const;=0A= =0A= Point_2 point() const;=0A= Point_2 projection(const Point_2 &p) const;=0A= =0A= Direction_2 direction() const;=0A= =0A= Oriented_side oriented_side(const Point_2 &p) const;=0A= bool has_on_boundary(const Point_2 &p) const;=0A= bool has_on_positive_side(const Point_2 &p) const;=0A= bool has_on_negative_side(const Point_2 &p) const;=0A= bool has_on(const Point_2 &p) const { return has_on_boundary(p); }=0A= =0A= bool is_horizontal() const;=0A= bool is_vertical() const;=0A= bool is_degenerate() const;=0A= =0A= Line_2 transform(const Aff_transformation_2 &t) const=0A= {=0A= return LineC2(t.transform(point(0)),=0A= t.transform(direction()));=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC2::operator=3D=3D(const LineC2 &l) const=0A= {=0A= if (identical(l))=0A= return true;=0A= return equal_line(*this, l);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC2::operator!=3D(const LineC2 &l) const=0A= {=0A= return !(*this =3D=3D l);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC2::is_horizontal() const=0A= {=0A= return CGAL::NTS:: is_zero(a());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC2::is_vertical() const=0A= {=0A= return CGAL::NTS:: is_zero(b());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC2::FT=0A= LineC2::x_at_y(const typename LineC2::FT &y) const=0A= {=0A= ((! is_horizontal())?(static_cast(0)): = ::CGAL::precondition_fail( "! is_horizontal()" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Line_2.h", 177, "Line::x_at_y(FT y) is undefined for horizontal = line"));=0A= =0A= return line_x_at_y(*this, y);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC2::FT=0A= LineC2::y_at_x(const typename LineC2::FT &x) const=0A= {=0A= ((! is_vertical())?(static_cast(0)): ::CGAL::precondition_fail( = "! is_vertical()" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Line_2.h", 187, "Line::y_at_x(FT x) is undefined for vertical = line"));=0A= =0A= return line_y_at_x(*this, x);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC2::Line_2=0A= LineC2::=0A= perpendicular(const typename LineC2::Point_2 &p) const=0A= {=0A= return perpendicular_through_point(*this, p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC2::Line_2=0A= LineC2::opposite() const=0A= {=0A= return LineC2( -a(), -b(), -c() );=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC2::Point_2=0A= LineC2::point(int i) const=0A= {=0A= return line_get_point(*this, i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC2::Point_2=0A= LineC2::point() const=0A= {=0A= return line_get_point(*this, 0);=0A= }=0A= =0A= template < class R >=0A= =0A= typename LineC2::Point_2=0A= LineC2::=0A= projection(const typename LineC2::Point_2 &p) const=0A= {=0A= return line_project_point(*this, p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC2::Direction_2=0A= LineC2::direction() const=0A= {=0A= return Direction_2( b(), -a() );=0A= }=0A= =0A= template < class R >=0A= inline=0A= Oriented_side=0A= LineC2::=0A= oriented_side(const typename LineC2::Point_2 &p) const=0A= {=0A= return side_of_oriented_line(*this, p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC2::=0A= has_on_boundary(const typename LineC2::Point_2 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_ORIENTED_BOUNDARY;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC2::=0A= has_on_positive_side(const typename LineC2::Point_2 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_POSITIVE_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC2::=0A= has_on_negative_side(const typename LineC2::Point_2 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_NEGATIVE_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC2::is_degenerate() const=0A= {=0A= return is_horizontal() && is_vertical();=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const LineC2 &l)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << l.a() << ' ' << l.b() << ' ' << l.c();=0A= case IO::BINARY :=0A= write(os, l.a());=0A= write(os, l.b());=0A= write(os, l.c());=0A= return os;=0A= default:=0A= return os << "LineC2(" << l.a()=0A= << ", " << l.b() << ", " << l.c() <<')';=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, LineC2 &l)=0A= {=0A= typename R::FT a, b, c;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> a >> b >> c;=0A= break;=0A= case IO::BINARY :=0A= read(is, a);=0A= read(is, b);=0A= read(is, c);=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << = std::endl;=0A= break;=0A= }=0A= if (is)=0A= l =3D LineC2(a, b, c);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 66 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Ray_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Ray_2.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class RayC2=0A= : public R_::Ray_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Line_2 Line_2;=0A= typedef typename R_::Ray_2 Ray_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Ray_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= RayC2()=0A= : base(rep()) {}=0A= =0A= RayC2(const Point_2 &sp, const Point_2 &secondp)=0A= : base(rep(sp, secondp)) {}=0A= =0A= RayC2(const Point_2 &sp, const Direction_2 &d)=0A= : base(rep(sp, sp + d.to_vector())){}=0A= =0A= bool operator=3D=3D(const RayC2 &r) const;=0A= bool operator!=3D(const RayC2 &r) const;=0A= =0A= const Point_2 & start() const;=0A= const Point_2 & source() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= Point_2 point(int i) const;=0A= const Point_2 & second_point() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= =0A= Direction_2 direction() const;=0A= Line_2 supporting_line() const;=0A= Ray_2 opposite() const;=0A= =0A= Ray_2 transform(const Aff_transformation_2 &t) const=0A= {=0A= return RayC2(t.transform(source()), t.transform(second_point()));=0A= }=0A= =0A= bool is_horizontal() const;=0A= bool is_vertical() const;=0A= bool is_degenerate() const;=0A= bool has_on(const Point_2 &p) const;=0A= bool collinear_has_on(const Point_2 &p) const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= RayC2::operator=3D=3D(const RayC2 &r) const=0A= {=0A= if (identical(r))=0A= return true;=0A= return source() =3D=3D r.source() && direction() =3D=3D r.direction();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= RayC2::operator!=3D(const RayC2 &r) const=0A= {=0A= return !(*this =3D=3D r);=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename RayC2::Point_2 &=0A= RayC2::start() const=0A= {=0A= return source();=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename RayC2::Point_2=0A= RayC2::point(int i) const=0A= {=0A= ((i >=3D 0)?(static_cast(0)): ::CGAL::precondition_fail( "i >=3D = 0" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Ray_2.h", 143, 0));=0A= if (i =3D=3D 0) return source();=0A= if (i =3D=3D 1) return second_point();=0A= return source() + (second_point() - source()) * FT(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename RayC2::Direction_2=0A= RayC2::direction() const=0A= {=0A= return Direction_2( second_point() - source() );=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename RayC2::Line_2=0A= RayC2::supporting_line() const=0A= {=0A= return Line_2(*this);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename RayC2::Ray_2=0A= RayC2::opposite() const=0A= {=0A= return RayC2( source(), - direction() );=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool RayC2::is_horizontal() const=0A= {=0A= return y_equal(source(), second_point());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool RayC2::is_vertical() const=0A= {=0A= return x_equal(source(), second_point());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool RayC2::is_degenerate() const=0A= {=0A= return source() =3D=3D second_point();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= RayC2::has_on(const typename RayC2::Point_2 &p) const=0A= {=0A= return p =3D=3D source()=0A= || collinear(source(), p, second_point())=0A= && Direction_2(p - source()) =3D=3D direction();=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= RayC2::=0A= collinear_has_on(const typename RayC2::Point_2 &p) const=0A= {=0A= switch(compare_x(source(), second_point())){=0A= case SMALLER:=0A= return compare_x(source(), p) !=3D LARGER;=0A= case LARGER:=0A= return compare_x(p, source()) !=3D LARGER;=0A= default:=0A= switch(compare_y(source(), second_point())){=0A= case SMALLER:=0A= return compare_y(source(), p) !=3D LARGER;=0A= case LARGER:=0A= return compare_y(p, source()) !=3D LARGER;=0A= default:=0A= return true;=0A= }=0A= }=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const RayC2 &r)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << r.source() << ' ' << r.direction();=0A= case IO::BINARY :=0A= return os << r.source() << r.direction();=0A= default:=0A= return os << "RayC2(" << r.source() << ", " << r.direction() << = ")";=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, RayC2 &r)=0A= {=0A= typename R::Point_2 p;=0A= typename R::Direction_2 d;=0A= =0A= is >> p >> d;=0A= =0A= if (is)=0A= r =3D RayC2(p, d);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 67 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Segment_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Segment_2.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_points_2.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_points_2.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/sign_of_determinant.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/sign_of_determinant.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/de= terminant.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/de= terminant.h"=0A= namespace CGAL {=0A= =0A= template =0A= inline=0A= FT=0A= det2x2_by_formula(=0A= const FT& a00, const FT& a01,=0A= const FT& a10, const FT& a11)=0A= {=0A= =0A= const FT m01 =3D a00*a11 - a10*a01;=0A= return m01;=0A= }=0A= =0A= template =0A= =0A= FT=0A= det3x3_by_formula(=0A= const FT& a00, const FT& a01, const FT& a02,=0A= const FT& a10, const FT& a11, const FT& a12,=0A= const FT& a20, const FT& a21, const FT& a22)=0A= {=0A= =0A= const FT m01 =3D a00*a11 - a10*a01;=0A= const FT m02 =3D a00*a21 - a20*a01;=0A= const FT m12 =3D a10*a21 - a20*a11;=0A= =0A= const FT m012 =3D m01*a22 - m02*a12 + m12*a02;=0A= return m012;=0A= }=0A= =0A= template =0A= =0A= FT=0A= det4x4_by_formula(=0A= const FT& a00, const FT& a01, const FT& a02, const FT& a03,=0A= const FT& a10, const FT& a11, const FT& a12, const FT& a13,=0A= const FT& a20, const FT& a21, const FT& a22, const FT& a23,=0A= const FT& a30, const FT& a31, const FT& a32, const FT& a33)=0A= {=0A= =0A= const FT m01 =3D a10*a01 - a00*a11;=0A= const FT m02 =3D a20*a01 - a00*a21;=0A= const FT m03 =3D a30*a01 - a00*a31;=0A= const FT m12 =3D a20*a11 - a10*a21;=0A= const FT m13 =3D a30*a11 - a10*a31;=0A= const FT m23 =3D a30*a21 - a20*a31;=0A= =0A= const FT m012 =3D m12*a02 - m02*a12 + m01*a22;=0A= const FT m013 =3D m13*a02 - m03*a12 + m01*a32;=0A= const FT m023 =3D m23*a02 - m03*a22 + m02*a32;=0A= const FT m123 =3D m23*a12 - m13*a22 + m12*a32;=0A= =0A= const FT m0123 =3D m123*a03 - m023*a13 + m013*a23 - m012*a33;=0A= return m0123;=0A= }=0A= =0A= template =0A= =0A= FT=0A= det5x5_by_formula(=0A= const FT& a00, const FT& a01, const FT& a02, const FT& a03, const FT& = a04,=0A= const FT& a10, const FT& a11, const FT& a12, const FT& a13, const FT& = a14,=0A= const FT& a20, const FT& a21, const FT& a22, const FT& a23, const FT& = a24,=0A= const FT& a30, const FT& a31, const FT& a32, const FT& a33, const FT& = a34,=0A= const FT& a40, const FT& a41, const FT& a42, const FT& a43, const FT& = a44)=0A= {=0A= =0A= const FT m01 =3D a10*a01 - a00*a11;=0A= const FT m02 =3D a20*a01 - a00*a21;=0A= const FT m03 =3D a30*a01 - a00*a31;=0A= const FT m04 =3D a40*a01 - a00*a41;=0A= const FT m12 =3D a20*a11 - a10*a21;=0A= const FT m13 =3D a30*a11 - a10*a31;=0A= const FT m14 =3D a40*a11 - a10*a41;=0A= const FT m23 =3D a30*a21 - a20*a31;=0A= const FT m24 =3D a40*a21 - a20*a41;=0A= const FT m34 =3D a40*a31 - a30*a41;=0A= =0A= const FT m012 =3D m12*a02 - m02*a12 + m01*a22;=0A= const FT m013 =3D m13*a02 - m03*a12 + m01*a32;=0A= const FT m014 =3D m14*a02 - m04*a12 + m01*a42;=0A= const FT m023 =3D m23*a02 - m03*a22 + m02*a32;=0A= const FT m024 =3D m24*a02 - m04*a22 + m02*a42;=0A= const FT m034 =3D m34*a02 - m04*a32 + m03*a42;=0A= const FT m123 =3D m23*a12 - m13*a22 + m12*a32;=0A= const FT m124 =3D m24*a12 - m14*a22 + m12*a42;=0A= const FT m134 =3D m34*a12 - m14*a32 + m13*a42;=0A= const FT m234 =3D m34*a22 - m24*a32 + m23*a42;=0A= =0A= const FT m0123 =3D m123*a03 - m023*a13 + m013*a23 - m012*a33;=0A= const FT m0124 =3D m124*a03 - m024*a13 + m014*a23 - m012*a43;=0A= const FT m0134 =3D m134*a03 - m034*a13 + m014*a33 - m013*a43;=0A= const FT m0234 =3D m234*a03 - m034*a23 + m024*a33 - m023*a43;=0A= const FT m1234 =3D m234*a13 - m134*a23 + m124*a33 - m123*a43;=0A= =0A= const FT m01234 =3D m1234*a04 - m0234*a14 + m0134*a24 - m0124*a34 + = m0123*a44;=0A= return m01234;=0A= }=0A= =0A= template =0A= FT=0A= det6x6_by_formula(=0A= const FT& a00, const FT& a01, const FT& a02, const FT& a03, const FT& = a04,=0A= const FT& a05,=0A= const FT& a10, const FT& a11, const FT& a12, const FT& a13, const FT& = a14,=0A= const FT& a15,=0A= const FT& a20, const FT& a21, const FT& a22, const FT& a23, const FT& = a24,=0A= const FT& a25,=0A= const FT& a30, const FT& a31, const FT& a32, const FT& a33, const FT& = a34,=0A= const FT& a35,=0A= const FT& a40, const FT& a41, const FT& a42, const FT& a43, const FT& = a44,=0A= const FT& a45,=0A= const FT& a50, const FT& a51, const FT& a52, const FT& a53, const FT& = a54,=0A= const FT& a55)=0A= {=0A= =0A= const FT m01 =3D a00*a11 - a10*a01;=0A= const FT m02 =3D a00*a21 - a20*a01;=0A= const FT m03 =3D a00*a31 - a30*a01;=0A= const FT m04 =3D a00*a41 - a40*a01;=0A= const FT m05 =3D a00*a51 - a50*a01;=0A= const FT m12 =3D a10*a21 - a20*a11;=0A= const FT m13 =3D a10*a31 - a30*a11;=0A= const FT m14 =3D a10*a41 - a40*a11;=0A= const FT m15 =3D a10*a51 - a50*a11;=0A= const FT m23 =3D a20*a31 - a30*a21;=0A= const FT m24 =3D a20*a41 - a40*a21;=0A= const FT m25 =3D a20*a51 - a50*a21;=0A= const FT m34 =3D a30*a41 - a40*a31;=0A= const FT m35 =3D a30*a51 - a50*a31;=0A= const FT m45 =3D a40*a51 - a50*a41;=0A= =0A= const FT m012 =3D m01*a22 - m02*a12 + m12*a02;=0A= const FT m013 =3D m01*a32 - m03*a12 + m13*a02;=0A= const FT m014 =3D m01*a42 - m04*a12 + m14*a02;=0A= const FT m015 =3D m01*a52 - m05*a12 + m15*a02;=0A= const FT m023 =3D m02*a32 - m03*a22 + m23*a02;=0A= const FT m024 =3D m02*a42 - m04*a22 + m24*a02;=0A= const FT m025 =3D m02*a52 - m05*a22 + m25*a02;=0A= const FT m034 =3D m03*a42 - m04*a32 + m34*a02;=0A= const FT m035 =3D m03*a52 - m05*a32 + m35*a02;=0A= const FT m045 =3D m04*a52 - m05*a42 + m45*a02;=0A= const FT m123 =3D m12*a32 - m13*a22 + m23*a12;=0A= const FT m124 =3D m12*a42 - m14*a22 + m24*a12;=0A= const FT m125 =3D m12*a52 - m15*a22 + m25*a12;=0A= const FT m134 =3D m13*a42 - m14*a32 + m34*a12;=0A= const FT m135 =3D m13*a52 - m15*a32 + m35*a12;=0A= const FT m145 =3D m14*a52 - m15*a42 + m45*a12;=0A= const FT m234 =3D m23*a42 - m24*a32 + m34*a22;=0A= const FT m235 =3D m23*a52 - m25*a32 + m35*a22;=0A= const FT m245 =3D m24*a52 - m25*a42 + m45*a22;=0A= const FT m345 =3D m34*a52 - m35*a42 + m45*a32;=0A= =0A= const FT m0123 =3D m012*a33 - m013*a23 + m023*a13 - m123*a03;=0A= const FT m0124 =3D m012*a43 - m014*a23 + m024*a13 - m124*a03;=0A= const FT m0125 =3D m012*a53 - m015*a23 + m025*a13 - m125*a03;=0A= const FT m0134 =3D m013*a43 - m014*a33 + m034*a13 - m134*a03;=0A= const FT m0135 =3D m013*a53 - m015*a33 + m035*a13 - m135*a03;=0A= const FT m0145 =3D m014*a53 - m015*a43 + m045*a13 - m145*a03;=0A= const FT m0234 =3D m023*a43 - m024*a33 + m034*a23 - m234*a03;=0A= const FT m0235 =3D m023*a53 - m025*a33 + m035*a23 - m235*a03;=0A= const FT m0245 =3D m024*a53 - m025*a43 + m045*a23 - m245*a03;=0A= const FT m0345 =3D m034*a53 - m035*a43 + m045*a33 - m345*a03;=0A= const FT m1234 =3D m123*a43 - m124*a33 + m134*a23 - m234*a13;=0A= const FT m1235 =3D m123*a53 - m125*a33 + m135*a23 - m235*a13;=0A= const FT m1245 =3D m124*a53 - m125*a43 + m145*a23 - m245*a13;=0A= const FT m1345 =3D m134*a53 - m135*a43 + m145*a33 - m345*a13;=0A= const FT m2345 =3D m234*a53 - m235*a43 + m245*a33 - m345*a23;=0A= =0A= const FT m01234 =3D m0123*a44 - m0124*a34 + m0134*a24 - m0234*a14 + = m1234*a04;=0A= const FT m01235 =3D m0123*a54 - m0125*a34 + m0135*a24 - m0235*a14 + = m1235*a04;=0A= const FT m01245 =3D m0124*a54 - m0125*a44 + m0145*a24 - m0245*a14 + = m1245*a04;=0A= const FT m01345 =3D m0134*a54 - m0135*a44 + m0145*a34 - m0345*a14 + = m1345*a04;=0A= const FT m02345 =3D m0234*a54 - m0235*a44 + m0245*a34 - m0345*a24 + = m2345*a04;=0A= const FT m12345 =3D m1234*a54 - m1235*a44 + m1245*a34 - m1345*a24 + = m2345*a14;=0A= =0A= const FT m012345 =3D m01234*a55 - m01235*a45 + m01245*a35 - m01345*a25=0A= + m02345*a15 - m12345*a05;=0A= return m012345;=0A= }=0A= =0A= }=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/sign_of_determinant.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template =0A= inline=0A= Sign=0A= sign_of_determinant2x2( const FT& a00, const FT& a01,=0A= const FT& a10, const FT& a11)=0A= {=0A= return=0A= static_cast(static_cast(CGAL::NTS:: compare( a00*a11, = a10*a01)));=0A= }=0A= =0A= template =0A= inline=0A= Sign=0A= sign_of_determinant3x3( const FT& a00, const FT& a01, const FT& a02,=0A= const FT& a10, const FT& a11, const FT& a12,=0A= const FT& a20, const FT& a21, const FT& a22)=0A= {=0A= return CGAL::NTS:: sign(det3x3_by_formula(a00, a01, a02,=0A= a10, a11, a12,=0A= a20, a21, a22));=0A= }=0A= =0A= template =0A= inline=0A= Sign=0A= sign_of_determinant4x4(=0A= const FT& a00, const FT& a01, const FT& a02, const FT& a03,=0A= const FT& a10, const FT& a11, const FT& a12, const FT& a13,=0A= const FT& a20, const FT& a21, const FT& a22, const FT& a23,=0A= const FT& a30, const FT& a31, const FT& a32, const FT& a33)=0A= {=0A= return CGAL::NTS:: sign(det4x4_by_formula(a00, a01, a02, a03,=0A= a10, a11, a12, a13,=0A= a20, a21, a22, a23,=0A= a30, a31, a32, a33));=0A= }=0A= =0A= template =0A= =0A= Sign=0A= sign_of_determinant5x5(=0A= const FT& a00, const FT& a01, const FT& a02, const FT& a03, const FT& = a04,=0A= const FT& a10, const FT& a11, const FT& a12, const FT& a13, const FT& = a14,=0A= const FT& a20, const FT& a21, const FT& a22, const FT& a23, const FT& = a24,=0A= const FT& a30, const FT& a31, const FT& a32, const FT& a33, const FT& = a34,=0A= const FT& a40, const FT& a41, const FT& a42, const FT& a43, const FT& = a44)=0A= {=0A= return CGAL::NTS:: sign(det5x5_by_formula(a00, a01, a02, a03, a04,=0A= a10, a11, a12, a13, a14,=0A= a20, a21, a22, a23, a24,=0A= a30, a31, a32, a33, a34,=0A= a40, a41, a42, a43, a44));=0A= }=0A= =0A= template =0A= =0A= Sign=0A= sign_of_determinant6x6(=0A= const FT& a00, const FT& a01, const FT& a02, const FT& a03, const FT& = a04,=0A= const FT& a05,=0A= const FT& a10, const FT& a11, const FT& a12, const FT& a13, const FT& = a14,=0A= const FT& a15,=0A= const FT& a20, const FT& a21, const FT& a22, const FT& a23, const FT& = a24,=0A= const FT& a25,=0A= const FT& a30, const FT& a31, const FT& a32, const FT& a33, const FT& = a34,=0A= const FT& a35,=0A= const FT& a40, const FT& a41, const FT& a42, const FT& a43, const FT& = a44,=0A= const FT& a45,=0A= const FT& a50, const FT& a51, const FT& a52, const FT& a53, const FT& = a54,=0A= const FT& a55)=0A= {=0A= return CGAL::NTS:: sign(det6x6_by_formula(a00, a01, a02, a03, a04, a05,=0A= a10, a11, a12, a13, a14, a15,=0A= a20, a21, a22, a23, a24, a25,=0A= a30, a31, a32, a33, a34, a35,=0A= a40, a41, a42, a43, a44, a45,=0A= a50, a51, a52, a53, a54, a55));=0A= }=0A= =0A= }=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC2.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC2.h"=0A= namespace CGAL {=0A= =0A= template < class FT >=0A= inline=0A= void=0A= midpointC2( const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= FT &x, FT &y )=0A= {=0A= x =3D (px+qx) / FT(2);=0A= y =3D (py+qy) / FT(2);=0A= }=0A= =0A= template < class FT >=0A= =0A= void=0A= circumcenter_translateC2(const FT &dqx, const FT &dqy,=0A= const FT &drx, const FT &dry,=0A= FT &dcx, FT &dcy)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= FT r2 =3D CGAL::NTS:: square(drx) + CGAL::NTS:: square(dry);=0A= FT q2 =3D CGAL::NTS:: square(dqx) + CGAL::NTS:: square(dqy);=0A= FT den =3D FT(2) * det2x2_by_formula(dqx, dqy, drx, dry);=0A= =0A= =0A= =0A= ((! CGAL::NTS:: is_zero(den))?(static_cast(0)): = ::CGAL::assertion_fail( "! CGAL_NTS is_zero(den)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC2.h", 82, 0));=0A= =0A= =0A= =0A= dcx =3D det2x2_by_formula (dry, dqy, r2, q2) / den;=0A= dcy =3D - det2x2_by_formula (drx, dqx, r2, q2) / den;=0A= }=0A= =0A= template < class FT >=0A= =0A= void=0A= circumcenterC2( const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= FT &x, FT &y )=0A= {=0A= circumcenter_translateC2(qx-px, qy-py, rx-px, ry-py, x, y);=0A= x +=3D px;=0A= y +=3D py;=0A= }=0A= =0A= template < class FT >=0A= =0A= void=0A= centroidC2( const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= FT &x, FT &y)=0A= {=0A= x =3D (px + qx + rx)/FT(3);=0A= y =3D (py + qy + ry)/FT(3);=0A= }=0A= =0A= template < class FT >=0A= =0A= void=0A= centroidC2( const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= const FT &sx, const FT &sy,=0A= FT &x, FT &y)=0A= {=0A= x =3D (px + qx + rx + sx)/FT(4);=0A= y =3D (py + qy + ry + sy)/FT(4);=0A= }=0A= =0A= template < class FT >=0A= inline=0A= void=0A= line_from_pointsC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= FT &a, FT &b, FT &c)=0A= {=0A= a =3D py - qy;=0A= b =3D qx - px;=0A= =0A= c =3D -px*a - py*b;=0A= =0A= }=0A= =0A= template < class FT >=0A= inline=0A= void=0A= line_from_point_directionC2(const FT &px, const FT &py,=0A= const FT &dx, const FT &dy,=0A= FT &a, FT &b, FT &c)=0A= {=0A= a =3D - dy;=0A= b =3D dx;=0A= c =3D px*dy - py*dx;=0A= }=0A= =0A= template < class FT >=0A= inline=0A= void=0A= bisector_of_pointsC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= FT &a, FT &b, FT& c )=0A= {=0A= a =3D FT(2)*(px - qx);=0A= b =3D FT(2)*(py - qy);=0A= c =3D CGAL::NTS:: square(qx) + CGAL::NTS:: square(qy) -=0A= CGAL::NTS:: square(px) - CGAL::NTS:: square(py);=0A= }=0A= =0A= template < class FT >=0A= inline=0A= FT=0A= line_y_at_xC2(const FT &a, const FT &b, const FT &c, const FT &x)=0A= {=0A= return (-a*x-c) / b;=0A= }=0A= =0A= template < class FT >=0A= inline=0A= void=0A= line_get_pointC2(const FT &a, const FT &b, const FT &c, int i,=0A= FT &x, FT &y)=0A= {=0A= if (CGAL::NTS:: is_zero(b))=0A= {=0A= x =3D (-b-c)/a + FT(i)*b;=0A= y =3D FT(1) - FT(i)*a;=0A= }=0A= else=0A= {=0A= x =3D FT(1) + FT(i)*b;=0A= y =3D -(a+c)/b - FT(i)*a;=0A= }=0A= }=0A= =0A= template < class FT >=0A= inline=0A= void=0A= perpendicular_through_pointC2(const FT &la, const FT &lb,=0A= const FT &px, const FT &py,=0A= FT &a, FT &b, FT &c)=0A= {=0A= a =3D -lb;=0A= b =3D la;=0A= c =3D lb * px - la * py;=0A= }=0A= =0A= template < class FT >=0A= =0A= void=0A= line_project_pointC2(const FT &la, const FT &lb, const FT &lc,=0A= const FT &px, const FT &py,=0A= FT &x, FT &y)=0A= {=0A= =0A= =0A= if (CGAL::NTS:: is_zero(la))=0A= {=0A= x =3D px;=0A= y =3D -lc/lb;=0A= }=0A= else if (CGAL::NTS:: is_zero(lb))=0A= {=0A= x =3D -lc/la;=0A= y =3D py;=0A= }=0A= else=0A= {=0A= FT ab =3D la/lb, ba =3D lb/la, ca =3D lc/la;=0A= y =3D ( -px + ab*py - ca ) / ( ba + ab );=0A= x =3D -ba * y - ca;=0A= }=0A= # 240 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC2.h"=0A= }=0A= =0A= template < class FT >=0A= =0A= FT=0A= squared_radiusC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= FT &x, FT &y )=0A= {=0A= circumcenter_translateC2(qx-px, qy-py, rx-px, ry-py, x, y);=0A= FT r2 =3D CGAL::NTS:: square(x) + CGAL::NTS:: square(y);=0A= x +=3D px;=0A= y +=3D py;=0A= return r2;=0A= }=0A= =0A= template < class FT >=0A= =0A= FT=0A= squared_radiusC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= FT x, y;=0A= circumcenter_translateC2(qx-px, qy-py, rx-px, ry-py, x, y);=0A= return CGAL::NTS:: square(x) + CGAL::NTS:: square(y);=0A= }=0A= =0A= template < class FT >=0A= inline=0A= FT=0A= squared_distanceC2( const FT &px, const FT &py,=0A= const FT &qx, const FT &qy)=0A= {=0A= return CGAL::NTS:: square(px-qx) + CGAL::NTS:: square(py-qy);=0A= }=0A= =0A= template < class FT >=0A= inline=0A= FT=0A= scaled_distance_to_lineC2( const FT &la, const FT &lb, const FT &lc,=0A= const FT &px, const FT &py)=0A= {=0A= =0A= =0A= return la*px + lb*py + lc;=0A= }=0A= =0A= template < class FT >=0A= inline=0A= FT=0A= scaled_distance_to_directionC2( const FT &la, const FT &lb,=0A= const FT &px, const FT &py)=0A= {=0A= =0A= return la*px + lb*py;=0A= }=0A= =0A= template < class FT >=0A= =0A= FT=0A= scaled_distance_to_lineC2( const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= return det2x2_by_formula(px-rx,py-ry,qx-rx,qy-ry);=0A= }=0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class FT >=0A= =0A= bool=0A= equal_lineC2(const FT &l1a, const FT &l1b, const FT &l1c,=0A= const FT &l2a, const FT &l2b, const FT &l2c)=0A= {=0A= if (sign_of_determinant2x2(l1a, l1b, l2a, l2b) !=3D ZERO)=0A= return false;=0A= CGAL::Sign s1a =3D CGAL::NTS:: sign(l1a);=0A= if (s1a !=3D ZERO)=0A= return s1a =3D=3D CGAL::NTS:: sign(l2a)=0A= && sign_of_determinant2x2(l1a, l1c, l2a, l2c) =3D=3D ZERO;=0A= return CGAL::NTS:: sign(l1b) =3D=3D CGAL::NTS:: sign(l2b)=0A= && sign_of_determinant2x2(l1b, l1c, l2b, l2c) =3D=3D ZERO;=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_xC2(const FT &px,=0A= const FT &la, const FT &lb, const FT &lc,=0A= const FT &ha, const FT &hb, const FT &hc)=0A= {=0A= =0A= FT num =3D det2x2_by_formula( lb, lc, hb, hc);=0A= FT den =3D det2x2_by_formula( la, lb, ha, hb);=0A= Sign s =3D CGAL::NTS:: sign(den);=0A= ((s !=3D ZERO)?(static_cast(0)): ::CGAL::assertion_fail( "s !=3D = ZERO" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 82, 0));=0A= return Comparison_result( s * CGAL::NTS:: compare( px * den, num) );=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_xC2(const FT &la, const FT &lb, const FT &lc,=0A= const FT &h1a, const FT &h1b, const FT &h1c,=0A= const FT &h2a, const FT &h2b, const FT &h2c)=0A= {=0A= # 103 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h"=0A= FT num1 =3D det2x2_by_formula( la, lc, h1a, h1c);=0A= FT num2 =3D det2x2_by_formula( la, lc, h2a, h2c);=0A= FT num =3D det2x2_by_formula(h1a,h1c,h2a,h2c)*lb=0A= + det2x2_by_formula(num1,num2,h1b,h2b);=0A= FT den1 =3D det2x2_by_formula( la, lb, h1a, h1b);=0A= FT den2 =3D det2x2_by_formula( la, lb, h2a, h2b);=0A= return Comparison_result( CGAL::NTS:: sign(lb) * CGAL::NTS:: sign(num) = *=0A= CGAL::NTS:: sign(den1) * CGAL::NTS:: = sign(den2));=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_xC2(const FT &l1a, const FT &l1b, const FT &l1c,=0A= const FT &h1a, const FT &h1b, const FT &h1c,=0A= const FT &l2a, const FT &l2b, const FT &l2c,=0A= const FT &h2a, const FT &h2b, const FT &h2c)=0A= {=0A= FT num1 =3D det2x2_by_formula( l1b, l1c, h1b, h1c);=0A= FT den1 =3D det2x2_by_formula( l1a, l1b, h1a, h1b);=0A= FT num2 =3D det2x2_by_formula( l2b, l2c, h2b, h2c);=0A= FT den2 =3D det2x2_by_formula( l2a, l2b, h2a, h2b);=0A= Sign s =3D Sign (CGAL::NTS:: sign(den1) * CGAL::NTS:: sign(den2));=0A= ((s !=3D ZERO)?(static_cast(0)): ::CGAL::assertion_fail( "s !=3D = ZERO" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 126, 0));=0A= return Comparison_result( s * sign_of_determinant2x2(num1, num2,=0A= den1, den2));=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_y_at_xC2(const FT &px, const FT &py,=0A= const FT &la, const FT &lb, const FT &lc)=0A= {=0A= Sign s =3D CGAL::NTS:: sign(lb);=0A= ((s !=3D ZERO)?(static_cast(0)): ::CGAL::assertion_fail( "s !=3D = ZERO" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 138, 0));=0A= return Comparison_result (s * CGAL::NTS:: sign(la*px + lb*py + lc));=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_y_at_xC2(const FT &px,=0A= const FT &l1a, const FT &l1b, const FT &l1c,=0A= const FT &l2a, const FT &l2b, const FT &l2c)=0A= {=0A= Sign s =3D Sign (CGAL::NTS:: sign(l1b) * CGAL::NTS:: sign(l2b));=0A= ((s !=3D ZERO)?(static_cast(0)): ::CGAL::assertion_fail( "s !=3D = ZERO" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 150, 0));=0A= return Comparison_result ( s * sign_of_determinant2x2(l2a*px+l2c, l2b,=0A= l1a*px+l1c, = l1b));=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_y_at_xC2(const FT &l1a, const FT &l1b, const FT &l1c,=0A= const FT &l2a, const FT &l2b, const FT &l2c,=0A= const FT &ha, const FT &hb, const FT &hc)=0A= {=0A= Sign s =3D Sign (sign_of_determinant2x2(l1a, l1b, l2a, l2b) *=0A= CGAL::NTS:: sign(hb));=0A= ((s !=3D ZERO)?(static_cast(0)): ::CGAL::assertion_fail( "s !=3D = ZERO" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 164, 0));=0A= return Comparison_result( s * sign_of_determinant3x3(l1a, l1b, l1c,=0A= l2a, l2b, l2c,=0A= ha, hb, hc));=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_y_at_xC2(const FT &l1a, const FT &l1b, const FT &l1c,=0A= const FT &l2a, const FT &l2b, const FT &l2c,=0A= const FT &h1a, const FT &h1b, const FT &h1c,=0A= const FT &h2a, const FT &h2b, const FT &h2c)=0A= {=0A= =0A= FT num =3D det2x2_by_formula( l1b, l1c, l2b, l2c);=0A= FT den =3D det2x2_by_formula( l1a, l1b, l2a, l2b);=0A= Sign s =3D Sign (CGAL::NTS:: sign(h1b) * CGAL::NTS:: sign(h2b) * = CGAL::NTS:: sign(den));=0A= ((s !=3D ZERO)?(static_cast(0)): ::CGAL::assertion_fail( "s !=3D = ZERO" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 182, 0));=0A= return Comparison_result ( s * sign_of_determinant2x2(h2a*num+h2c*den, = h2b,=0A= h1a*num+h1c*den, = h1b));=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= Comparison_result=0A= compare_y_at_xC2(const FT &px, const FT &py,=0A= const FT &ssx, const FT &ssy,=0A= const FT &stx, const FT &sty)=0A= {=0A= =0A= =0A= =0A= ((px >=3D min(ssx, stx) && px <=3D max(ssx, = stx))?(static_cast(0)): ::CGAL::precondition_fail( "px >=3D = min(ssx, stx) && px <=3D max(ssx, stx)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 198, 0));=0A= =0A= if (ssx < stx)=0A= return (Comparison_result) orientationC2(px, py, ssx, ssy, stx, = sty);=0A= else if (ssx > stx)=0A= return (Comparison_result) orientationC2(px, py, stx, sty, ssx, = ssy);=0A= else {=0A= if (py < min(sty, ssy))=0A= return SMALLER;=0A= if (py > max(sty, ssy))=0A= return LARGER;=0A= return EQUAL;=0A= }=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_y_at_x_segment_C2(const FT &px,=0A= const FT &s1sx, const FT &s1sy,=0A= const FT &s1tx, const FT &s1ty,=0A= const FT &s2sx, const FT &s2sy,=0A= const FT &s2tx, const FT &s2ty)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= ((px >=3D min(s1sx, s1tx) && px <=3D max(s1sx, = s1tx))?(static_cast(0)): ::CGAL::precondition_fail( "px >=3D = min(s1sx, s1tx) && px <=3D max(s1sx, s1tx)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 228, 0));=0A= ((px >=3D min(s2sx, s2tx) && px <=3D max(s2sx, = s2tx))?(static_cast(0)): ::CGAL::precondition_fail( "px >=3D = min(s2sx, s2tx) && px <=3D max(s2sx, s2tx)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC2.h", 229, 0));=0A= =0A= if (s1sx !=3D s1tx && s2sx !=3D s2tx) {=0A= FT s1stx =3D s1sx-s1tx;=0A= FT s2stx =3D s2sx-s2tx;=0A= =0A= return Comparison_result(=0A= CGAL::NTS:: compare(s1sx, s1tx) *=0A= CGAL::NTS:: compare(s2sx, s2tx) *=0A= CGAL::NTS:: compare(-(s1sx-px)*(s1sy-s1ty)*s2stx,=0A= (s2sy-s1sy)*s2stx*s1stx=0A= -(s2sx-px)*(s2sy-s2ty)*s1stx ));=0A= }=0A= else {=0A= if (s1sx =3D=3D s1tx) {=0A= Comparison_result c1, c2;=0A= c1 =3D compare_y_at_xC2(px, s1sy, s2sx, s2sy, s2tx, s2ty);=0A= c2 =3D compare_y_at_xC2(px, s1ty, s2sx, s2sy, s2tx, s2ty);=0A= if (c1 =3D=3D c2)=0A= return c1;=0A= return EQUAL;=0A= }=0A= =0A= Comparison_result c3, c4;=0A= c3 =3D compare_y_at_xC2(px, s2sy, s1sx, s1sy, s1tx, s1ty);=0A= c4 =3D compare_y_at_xC2(px, s2ty, s1sx, s1sy, s1tx, s1ty);=0A= if (c3 =3D=3D c4)=0A= return opposite(c3);=0A= return EQUAL;=0A= }=0A= }=0A= =0A= template < class FT >=0A= =0A= bool=0A= equal_directionC2(const FT &dx1, const FT &dy1,=0A= const FT &dx2, const FT &dy2)=0A= {=0A= return CGAL::NTS:: sign(dx1) =3D=3D CGAL::NTS:: sign(dx2)=0A= && CGAL::NTS:: sign(dy1) =3D=3D CGAL::NTS:: sign(dy2)=0A= && sign_of_determinant2x2(dx1, dy1, dx2, dy2) =3D=3D ZERO;=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= Comparison_result=0A= compare_angle_with_x_axisC2(const FT &dx1, const FT &dy1,=0A= const FT &dx2, const FT &dy2)=0A= {=0A= =0A= =0A= int quadrant_1 =3D (dx1 >=3D FT(0)) ? ((dy1 >=3D FT(0))?1:4)=0A= : ((dy1 >=3D FT(0))?2:3);=0A= int quadrant_2 =3D (dx2 >=3D FT(0)) ? ((dy2 >=3D FT(0))?1:4)=0A= : ((dy2 >=3D FT(0))?2:3);=0A= =0A= =0A= if (quadrant_1 > quadrant_2)=0A= return LARGER;=0A= else if (quadrant_1 < quadrant_2)=0A= return SMALLER;=0A= return Comparison_result(-sign_of_determinant2x2(dx1,dy1,dx2,dy2));=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_slopesC2(const FT &l1a, const FT &l1b, const FT &l2a, const FT = &l2b)=0A= {=0A= if (l1a =3D=3D FT(0))=0A= return l2b =3D=3D FT(0) ? SMALLER : Comparison_result(CGAL::NTS:: = sign(l2a*l2b));=0A= if (l2a =3D=3D FT(0))=0A= return l1b =3D=3D FT(0) ? LARGER : Comparison_result(-CGAL::NTS:: = sign(l1a*l1b));=0A= if (l1b =3D=3D FT(0)) return l2b =3D=3D FT(0) ? EQUAL : LARGER;=0A= if (l2b =3D=3D FT(0)) return SMALLER;=0A= int l1_sign =3D CGAL::NTS:: sign(-l1a * l1b);=0A= int l2_sign =3D CGAL::NTS:: sign(-l2a * l2b);=0A= =0A= if (l1_sign < l2_sign) return SMALLER;=0A= if (l1_sign > l2_sign) return LARGER;=0A= =0A= if (l1_sign > 0)=0A= return Comparison_result( CGAL::NTS:: sign ( CGAL::NTS:: abs(l1a * = l2b) -=0A= CGAL::NTS:: abs(l2a * = l1b) ) );=0A= =0A= return Comparison_result( CGAL::NTS:: sign ( CGAL::NTS:: abs(l2a * = l1b) -=0A= CGAL::NTS:: abs(l1a * l2b) = ) );=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= compare_slopesC2(const FT &s1_src_x, const FT &s1_src_y, const FT = &s1_tgt_x,=0A= const FT &s1_tgt_y, const FT &s2_src_x, const FT = &s2_src_y,=0A= const FT &s2_tgt_x, const FT &s2_tgt_y)=0A= {=0A= Comparison_result cmp_y1 =3D CGAL::NTS:: compare(s1_src_y, s1_tgt_y);=0A= if (cmp_y1 =3D=3D EQUAL)=0A= {=0A= Comparison_result cmp_x2 =3D CGAL::NTS:: compare(s2_src_x, = s2_tgt_x);=0A= =0A= if (cmp_x2 =3D=3D EQUAL) return SMALLER;=0A= return Comparison_result (- CGAL::NTS:: sign((s2_src_y - s2_tgt_y) = *=0A= (s2_src_x - s2_tgt_x)) );=0A= }=0A= =0A= Comparison_result cmp_y2 =3D CGAL::NTS:: compare(s2_src_y, s2_tgt_y);=0A= if (cmp_y2 =3D=3D EQUAL)=0A= {=0A= Comparison_result cmp_x1 =3D CGAL::NTS:: compare(s1_src_x, = s1_tgt_x);=0A= =0A= if (cmp_x1 =3D=3D EQUAL) return LARGER;=0A= return Comparison_result ( CGAL::NTS:: sign((s1_src_y - s1_tgt_y) *=0A= (s1_src_x - s1_tgt_x)) );=0A= }=0A= =0A= Comparison_result cmp_x1 =3D CGAL::NTS:: compare(s1_src_x, s1_tgt_x);=0A= Comparison_result cmp_x2 =3D CGAL::NTS:: compare(s2_src_x, s2_tgt_x);=0A= =0A= if (cmp_x1 =3D=3D EQUAL) return cmp_x2 =3D=3D EQUAL ? EQUAL : LARGER;=0A= =0A= if (cmp_x2 =3D=3D EQUAL) return SMALLER;=0A= =0A= FT s1_xdiff =3D s1_src_x - s1_tgt_x;=0A= FT s1_ydiff =3D s1_src_y - s1_tgt_y;=0A= FT s2_xdiff =3D s2_src_x - s2_tgt_x;=0A= FT s2_ydiff =3D s2_src_y - s2_tgt_y;=0A= Sign s1_sign =3D CGAL::NTS:: sign(s1_ydiff * s1_xdiff);=0A= Sign s2_sign =3D CGAL::NTS:: sign(s2_ydiff * s2_xdiff);=0A= =0A= if (s1_sign < s2_sign) return SMALLER;=0A= if (s1_sign > s2_sign) return LARGER;=0A= =0A= if (s1_sign > 0)=0A= return Comparison_result(=0A= CGAL::NTS:: sign ( CGAL::NTS:: abs(s1_ydiff * s2_xdiff) -=0A= CGAL::NTS:: abs(s2_ydiff * s1_xdiff)) );=0A= =0A= return Comparison_result(=0A= CGAL::NTS:: sign ( CGAL::NTS:: abs(s2_ydiff * s1_xdiff) -=0A= CGAL::NTS:: abs(s1_ydiff * s2_xdiff)) );=0A= }=0A= =0A= =0A= =0A= =0A= template < class FT >=0A= inline=0A= Comparison_result=0A= compare_deltax_deltayC2(const FT &px, const FT &qx,=0A= const FT &ry, const FT &sy)=0A= {=0A= return CGAL::NTS:: compare(CGAL::NTS:: abs(px-qx), CGAL::NTS:: = abs(ry-sy));=0A= }=0A= =0A= template < class FT >=0A= =0A= inline=0A= Comparison_result=0A= compare_lexicographically_xyC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy)=0A= {=0A= Comparison_result c =3D CGAL::NTS:: compare(px,qx);=0A= return (c !=3D EQUAL) ? c : CGAL::NTS:: compare(py,qy);=0A= }=0A= =0A= template < class FT >=0A= inline=0A= Orientation=0A= orientationC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= return Orientation (sign_of_determinant2x2(qx-px, qy-py,=0A= rx-px, ry-py));=0A= }=0A= =0A= template < class FT >=0A= inline=0A= Angle=0A= angleC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= return (Angle) CGAL::NTS:: sign ((px-qx)*(rx-qx)+(py-qy)*(ry-qy));=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= collinear_are_ordered_along_lineC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= if (px < qx) return !(rx < qx);=0A= if (qx < px) return !(qx < rx);=0A= if (py < qy) return !(ry < qy);=0A= if (qy < py) return !(qy < ry);=0A= return true;=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= collinear_are_strictly_ordered_along_lineC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= if (px < qx) return (qx < rx);=0A= if (qx < px) return (rx < qx);=0A= if (py < qy) return (qy < ry);=0A= if (qy < py) return (ry < qy);=0A= return false;=0A= }=0A= =0A= template < class FT >=0A= =0A= Oriented_side=0A= side_of_oriented_circleC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= const FT &tx, const FT &ty)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= FT qpx =3D qx-px;=0A= FT qpy =3D qy-py;=0A= FT rpx =3D rx-px;=0A= FT rpy =3D ry-py;=0A= FT tpx =3D tx-px;=0A= FT tpy =3D ty-py;=0A= =0A= =0A= =0A= =0A= return Oriented_side(sign_of_determinant2x2(=0A= qpx*tpy - qpy*tpx, tpx*(tx-qx) + = tpy*(ty-qy),=0A= qpx*rpy - qpy*rpx, rpx*(rx-qx) + = rpy*(ry-qy)));=0A= }=0A= =0A= template < class FT >=0A= =0A= Bounded_side=0A= side_of_bounded_circleC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= const FT &tx, const FT &ty)=0A= {=0A= return Bounded_side( side_of_oriented_circleC2(px,py,qx,qy,rx,ry,tx,ty)=0A= * orientationC2(px,py,qx,qy,rx,ry) );=0A= }=0A= =0A= template < class FT >=0A= =0A= Bounded_side=0A= side_of_bounded_circleC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &tx, const FT &ty)=0A= {=0A= =0A= return Bounded_side( CGAL::NTS:: compare((tx-px)*(qx-tx), = (ty-py)*(ty-qy)) );=0A= }=0A= =0A= template < class FT >=0A= inline=0A= Comparison_result=0A= cmp_dist_to_pointC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= return CGAL::NTS:: compare(squared_distanceC2(px,py,qx,qy),=0A= squared_distanceC2(px,py,rx,ry));=0A= }=0A= =0A= template < class FT >=0A= =0A= inline=0A= bool=0A= has_larger_dist_to_pointC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= return cmp_dist_to_pointC2(px,py,qx,qy,rx,ry) =3D=3D LARGER;=0A= }=0A= =0A= template < class FT >=0A= =0A= inline=0A= bool=0A= has_smaller_dist_to_pointC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry)=0A= {=0A= return cmp_dist_to_pointC2(px,py,qx,qy,rx,ry) =3D=3D SMALLER;=0A= }=0A= =0A= template < class FT >=0A= inline=0A= Comparison_result=0A= cmp_signed_dist_to_directionC2(const FT &la, const FT &lb,=0A= const FT &px, const FT &py,=0A= const FT &qx, const FT &qy)=0A= {=0A= return CGAL::NTS:: compare(scaled_distance_to_directionC2(la,lb,px,py),=0A= scaled_distance_to_directionC2(la,lb,qx,qy));=0A= }=0A= =0A= template < class FT >=0A= =0A= inline=0A= bool=0A= has_larger_signed_dist_to_directionC2(const FT &la, const FT &lb,=0A= const FT &px, const FT &py,=0A= const FT &qx, const FT &qy)=0A= {=0A= return cmp_signed_dist_to_directionC2(la,lb,px,py,qx,qy) =3D=3D LARGER;=0A= }=0A= =0A= template < class FT >=0A= =0A= inline=0A= bool=0A= has_smaller_signed_dist_to_directionC2(const FT &la, const FT &lb,=0A= const FT &px, const FT &py,=0A= const FT &qx, const FT &qy)=0A= {=0A= return cmp_signed_dist_to_directionC2(la,lb,px,py,qx,qy) =3D=3D = SMALLER;=0A= }=0A= =0A= template =0A= inline=0A= Comparison_result=0A= cmp_signed_dist_to_lineC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= const FT &sx, const FT &sy)=0A= {=0A= return CGAL::NTS:: = compare(scaled_distance_to_lineC2(px,py,qx,qy,rx,ry),=0A= scaled_distance_to_lineC2(px,py,qx,qy,sx,sy));=0A= }=0A= =0A= template =0A= =0A= inline=0A= bool=0A= has_larger_signed_dist_to_lineC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= const FT &sx, const FT &sy)=0A= {=0A= return cmp_signed_dist_to_lineC2(px,py,qx,qy,rx,ry,sx,sy) =3D=3D = LARGER;=0A= }=0A= =0A= template =0A= =0A= inline=0A= bool=0A= has_smaller_signed_dist_to_lineC2(const FT &px, const FT &py,=0A= const FT &qx, const FT &qy,=0A= const FT &rx, const FT &ry,=0A= const FT &sx, const FT &sy)=0A= {=0A= return cmp_signed_dist_to_lineC2(px,py,qx,qy,rx,ry,sx,sy) =3D=3D = SMALLER;=0A= }=0A= =0A= template =0A= inline=0A= Oriented_side=0A= side_of_oriented_lineC2(const FT &a, const FT &b, const FT &c,=0A= const FT &x, const FT &y)=0A= {=0A= return Oriented_side(CGAL::NTS:: sign(a*x+b*y+c));=0A= }=0A= =0A= }=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_points_2.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= bool=0A= x_equal(const PointC2 &p, const PointC2 &q)=0A= {=0A= return p.x() =3D=3D q.x();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= y_equal(const PointC2 &p, const PointC2 &q)=0A= {=0A= return p.y() =3D=3D q.y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= equal_xy(const PointC2 &p, const PointC2 &q)=0A= {=0A= return p.x() =3D=3D q.x() && p.y() =3D=3D q.y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= less_x(const PointC2 &p, const PointC2 &q)=0A= {=0A= return p.x() < q.x();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= less_y(const PointC2 &p, const PointC2 &q)=0A= {=0A= return p.y() < q.y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x(const PointC2 &p, const PointC2 &q)=0A= {=0A= return CGAL::NTS:: compare(p.x(), q.x());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y(const PointC2 &p, const PointC2 &q)=0A= {=0A= return CGAL::NTS:: compare(p.y(), q.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_xy(const PointC2 &p, const PointC2 &q)=0A= {=0A= return compare_lexicographically_xy(p, q);=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_deltax_deltay(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r,=0A= const PointC2& s)=0A= {=0A= return compare_deltax_deltayC2(p.x(), q.x(), r.y(), s.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_lexicographically_xy(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_xyC2(p.x(), p.y(), q.x(), q.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_xy_smaller_or_equal(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_xy(p, q) !=3D LARGER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_xy_larger_or_equal(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_xy(p, q) !=3D SMALLER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_xy_smaller(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_xy(p, q) =3D=3D SMALLER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_xy_larger(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_xy(p, q) =3D=3D LARGER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_yx(const PointC2 &p, const PointC2 &q)=0A= {=0A= return compare_lexicographically_xyC2(p.y(), p.x(), q.y(), q.x());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_lexicographically_yx(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_xyC2(p.y(), p.x(), q.y(), q.x());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_yx_smaller_or_equal(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_yx(p, q) !=3D LARGER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_yx_larger_or_equal(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_yx(p, q) !=3D SMALLER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_yx_smaller(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_yx(p, q) =3D=3D SMALLER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_yx_larger(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return compare_lexicographically_yx(p, q) =3D=3D LARGER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= Orientation=0A= orientation(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return orientationC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Angle=0A= angle(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return angleC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= collinear(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return orientation(p, q, r) =3D=3D COLLINEAR;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= collinear_are_ordered_along_line(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return collinear_are_ordered_along_lineC2=0A= (p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= are_ordered_along_line(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return collinear(p, q, r) && collinear_are_ordered_along_line(p, q, = r);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= collinear_are_strictly_ordered_along_line(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return collinear_are_strictly_ordered_along_lineC2=0A= (p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= are_strictly_ordered_along_line(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return collinear(p, q, r) &&=0A= collinear_are_strictly_ordered_along_line(p, q, r);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= left_turn(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return orientation(p, q, r) =3D=3D LEFT_TURN;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= right_turn(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return orientation(p, q, r) =3D=3D RIGHT_TURN;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= left_turn(const Origin &o,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return Orientation (sign_of_determinant2x2(qx, qy, rx, ry)) =3D=3D = LEFT_TURN;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= right_turn(const Origin &o,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return Orientation (sign_of_determinant2x2(qx, qy, rx, ry)) =3D=3D = RIGHT_TURN;=0A= }=0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= leftturn(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return orientation(p, q, r) =3D=3D LEFT_TURN;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= rightturn(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return orientation(p, q, r) =3D=3D RIGHT_TURN;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= leftturn(const Origin &o,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return Orientation (sign_of_determinant2x2(qx, qy, rx, ry)) =3D=3D = LEFT_TURN;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= rightturn(const Origin &o,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return Orientation (sign_of_determinant2x2(qx, qy, rx, ry)) =3D=3D = RIGHT_TURN;=0A= }=0A= =0A= =0A= template =0A= inline=0A= Oriented_side=0A= side_of_oriented_circle(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r,=0A= const PointC2 &t)=0A= {=0A= return side_of_oriented_circleC2(p.x(), p.y(), q.x(), q.y(), r.x(), = r.y(),=0A= t.x(), t.y());=0A= }=0A= =0A= template =0A= inline=0A= Bounded_side=0A= side_of_bounded_circle(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r,=0A= const PointC2 &t)=0A= {=0A= return side_of_bounded_circleC2(p.x(), p.y(), q.x(), q.y(), r.x(), = r.y(),=0A= t.x(), t.y());=0A= }=0A= =0A= template =0A= inline=0A= Bounded_side=0A= side_of_bounded_circle(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &t)=0A= {=0A= return side_of_bounded_circleC2(p.x(), p.y(), q.x(), q.y(), t.x(), = t.y());=0A= }=0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Segment_2.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class SegmentC2=0A= : public R_::Segment_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Line_2 Line_2;=0A= typedef typename R_::Segment_2 Segment_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Segment_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= SegmentC2()=0A= : base(rep()) {}=0A= =0A= SegmentC2(const Point_2 &sp, const Point_2 &ep)=0A= : base(rep(sp, ep)) {}=0A= =0A= bool is_horizontal() const;=0A= bool is_vertical() const;=0A= bool has_on(const Point_2 &p) const;=0A= bool collinear_has_on(const Point_2 &p) const;=0A= =0A= bool operator=3D=3D(const SegmentC2 &s) const;=0A= bool operator!=3D(const SegmentC2 &s) const;=0A= =0A= const Point_2 & source() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const Point_2 & target() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= =0A= const Point_2 & start() const;=0A= const Point_2 & end() const;=0A= =0A= const Point_2 & min() const;=0A= const Point_2 & max() const;=0A= const Point_2 & vertex(int i) const;=0A= const Point_2 & point(int i) const;=0A= const Point_2 & operator[](int i) const;=0A= =0A= FT squared_length() const;=0A= =0A= Direction_2 direction() const;=0A= Line_2 supporting_line() const;=0A= Segment_2 opposite() const;=0A= Segment_2 transform(const Aff_transformation_2 &t) const=0A= {=0A= return SegmentC2(t.transform(source()), t.transform(target()));=0A= }=0A= =0A= bool is_degenerate() const;=0A= Bbox_2 bbox() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC2::operator=3D=3D(const SegmentC2 &s) const=0A= {=0A= if (identical(s))=0A= return true;=0A= return source() =3D=3D s.source() && target() =3D=3D s.target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC2::operator!=3D(const SegmentC2 &s) const=0A= {=0A= return !(*this =3D=3D s);=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC2::Point_2 &=0A= SegmentC2::start() const=0A= {=0A= return source();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC2::Point_2 &=0A= SegmentC2::end() const=0A= {=0A= return target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC2::Point_2 &=0A= SegmentC2::min() const=0A= {=0A= return lexicographically_xy_smaller(source(),target()) ? source() : = target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC2::Point_2 &=0A= SegmentC2::max() const=0A= {=0A= return lexicographically_xy_smaller(source(),target()) ? target() : = source();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC2::Point_2 &=0A= SegmentC2::vertex(int i) const=0A= {=0A= return (i%2 =3D=3D 0) ? source() : target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC2::Point_2 &=0A= SegmentC2::point(int i) const=0A= {=0A= return (i%2 =3D=3D 0) ? source() : target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC2::Point_2 &=0A= SegmentC2::operator[](int i) const=0A= {=0A= return vertex(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SegmentC2::FT=0A= SegmentC2::squared_length() const=0A= {=0A= return squared_distance(source(), target());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SegmentC2::Direction_2=0A= SegmentC2::direction() const=0A= {=0A= return Direction_2( target() - source() );=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SegmentC2::Line_2=0A= SegmentC2::supporting_line() const=0A= {=0A= return Line_2(*this);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SegmentC2::Segment_2=0A= SegmentC2::opposite() const=0A= {=0A= return SegmentC2(target(), source());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_2=0A= SegmentC2::bbox() const=0A= {=0A= return source().bbox() + target().bbox();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC2::is_degenerate() const=0A= {=0A= return source() =3D=3D target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC2::is_horizontal() const=0A= {=0A= return y_equal(source(), target());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC2::is_vertical() const=0A= {=0A= return x_equal(source(), target());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC2::=0A= has_on(const typename SegmentC2::Point_2 &p) const=0A= {=0A= return are_ordered_along_line(source(), p, target());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= SegmentC2::=0A= collinear_has_on(const typename SegmentC2::Point_2 &p) const=0A= {=0A= return collinear_are_ordered_along_line(source(), p, target());=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const SegmentC2 &s)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << s.source() << ' ' << s.target();=0A= case IO::BINARY :=0A= return os << s.source() << s.target();=0A= default:=0A= return os << "SegmentC2(" << s.source() << ", " << s.target() << = ")";=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, SegmentC2 &s)=0A= {=0A= typename R::Point_2 p, q;=0A= =0A= is >> p >> q;=0A= =0A= if (is)=0A= s =3D SegmentC2(p, q);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 68 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Triangle_2.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Triangle_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class TriangleC2=0A= : public R_::Triangle_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Vector_2 Vector_2;=0A= typedef typename R_::Triangle_2 Triangle_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Triangle_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= TriangleC2()=0A= : base(rep()) {}=0A= =0A= TriangleC2(const Point_2 &p, const Point_2 &q, const Point_2 &r)=0A= : base(rep(p, q, r)) {}=0A= =0A= bool operator=3D=3D(const TriangleC2 &s) const;=0A= bool operator!=3D(const TriangleC2 &s) const;=0A= =0A= const Point_2 & vertex(int i) const;=0A= const Point_2 & operator[](int i) const;=0A= =0A= Triangle_2 opposite() const;=0A= Triangle_2 transform(const Aff_transformation_2 &t) const=0A= {=0A= return TriangleC2(t.transform(vertex(0)),=0A= t.transform(vertex(1)),=0A= t.transform(vertex(2)));=0A= }=0A= =0A= Orientation orientation() const;=0A= Oriented_side oriented_side(const Point_2 &p) const;=0A= Bounded_side bounded_side(const Point_2 &p) const;=0A= =0A= bool has_on_boundary(const Point_2 &p) const;=0A= =0A= bool has_on_bounded_side(const Point_2 &p) const;=0A= bool has_on_unbounded_side(const Point_2 &p) const;=0A= =0A= bool has_on_positive_side(const Point_2 &p) const;=0A= bool has_on_negative_side(const Point_2 &p) const;=0A= =0A= bool is_degenerate() const;=0A= =0A= Bbox_2 bbox() const;=0A= =0A= FT area() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= =0A= bool=0A= TriangleC2::operator=3D=3D(const TriangleC2 &t) const=0A= {=0A= if (identical(t))=0A= return true;=0A= =0A= int i;=0A= for(i=3D0; i<3; i++)=0A= if ( vertex(0) =3D=3D t.vertex(i) )=0A= break;=0A= =0A= return (i<3) && vertex(1) =3D=3D t.vertex(i+1) && vertex(2) =3D=3D = t.vertex(i+2);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TriangleC2::operator!=3D(const TriangleC2 &t) const=0A= {=0A= return !(*this =3D=3D t);=0A= }=0A= =0A= template < class R >=0A= =0A= const typename TriangleC2::Point_2 &=0A= TriangleC2::vertex(int i) const=0A= {=0A= if (i>2) i =3D i%3;=0A= else if (i<0) i =3D (i%3) + 3;=0A= return (i=3D=3D0) ? Ptr()->e0 :=0A= (i=3D=3D1) ? Ptr()->e1 :=0A= Ptr()->e2;=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename TriangleC2::Point_2 &=0A= TriangleC2::operator[](int i) const=0A= {=0A= return vertex(i);=0A= }=0A= =0A= template < class R >=0A= =0A= typename TriangleC2::FT=0A= TriangleC2::area() const=0A= {=0A= typename R::Vector_2 v1 =3D vertex(1)-vertex(0);=0A= typename R::Vector_2 v2 =3D vertex(2)-vertex(0);=0A= return det2x2_by_formula(v1.x(), v1.y(), v2.x(), v2.y())/FT(2);=0A= }=0A= =0A= template < class R >=0A= inline=0A= Orientation=0A= TriangleC2::orientation() const=0A= {=0A= return CGAL::orientation(vertex(0), vertex(1), vertex(2));=0A= }=0A= =0A= template < class R >=0A= =0A= Bounded_side=0A= TriangleC2::=0A= bounded_side(const typename TriangleC2::Point_2 &p) const=0A= {=0A= Orientation o1 =3D CGAL::orientation(vertex(0), vertex(1), p),=0A= o2 =3D CGAL::orientation(vertex(1), vertex(2), p),=0A= o3 =3D CGAL::orientation(vertex(2), vertex(3), p);=0A= =0A= if (o2 =3D=3D o1 && o3 =3D=3D o1)=0A= return ON_BOUNDED_SIDE;=0A= return=0A= (o1 =3D=3D COLLINEAR=0A= && collinear_are_ordered_along_line(vertex(0), p, vertex(1))) ||=0A= (o2 =3D=3D COLLINEAR=0A= && collinear_are_ordered_along_line(vertex(1), p, vertex(2))) ||=0A= (o3 =3D=3D COLLINEAR=0A= && collinear_are_ordered_along_line(vertex(2), p, vertex(3)))=0A= ? ON_BOUNDARY=0A= : ON_UNBOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= =0A= Oriented_side=0A= TriangleC2::=0A= oriented_side(const typename TriangleC2::Point_2 &p) const=0A= {=0A= =0A= Orientation o1 =3D CGAL::orientation(vertex(0), vertex(1), p),=0A= o2 =3D CGAL::orientation(vertex(1), vertex(2), p),=0A= o3 =3D CGAL::orientation(vertex(2), vertex(3), p),=0A= ot =3D CGAL::orientation(vertex(0), vertex(1), vertex(2));=0A= =0A= if (o1 =3D=3D ot && o2 =3D=3D ot && o3 =3D=3D ot)=0A= return Oriented_side(ot);=0A= return=0A= (o1 =3D=3D COLLINEAR=0A= && collinear_are_ordered_along_line(vertex(0), p, vertex(1))) ||=0A= (o2 =3D=3D COLLINEAR=0A= && collinear_are_ordered_along_line(vertex(1), p, vertex(2))) ||=0A= (o3 =3D=3D COLLINEAR=0A= && collinear_are_ordered_along_line(vertex(2), p, vertex(3)))=0A= ? ON_ORIENTED_BOUNDARY=0A= : Oriented_side(-ot);=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= TriangleC2::=0A= has_on_bounded_side(const typename TriangleC2::Point_2 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= TriangleC2::=0A= has_on_unbounded_side(const typename TriangleC2::Point_2 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TriangleC2::=0A= has_on_boundary(const typename TriangleC2::Point_2 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDARY;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TriangleC2::=0A= has_on_negative_side(const typename TriangleC2::Point_2 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_NEGATIVE_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TriangleC2::=0A= has_on_positive_side(const typename TriangleC2::Point_2 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_POSITIVE_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TriangleC2::is_degenerate() const=0A= {=0A= return collinear(vertex(0), vertex(1), vertex(2));=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_2=0A= TriangleC2::bbox() const=0A= {=0A= return vertex(0).bbox() + vertex(1).bbox() + vertex(2).bbox();=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename TriangleC2::Triangle_2=0A= TriangleC2::opposite() const=0A= {=0A= return TriangleC2(vertex(0), vertex(2), vertex(1));=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const TriangleC2 &t)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << t[0] << ' ' << t[1] << ' ' << t[2];=0A= case IO::BINARY :=0A= return os << t[0] << t[1] << t[2];=0A= default:=0A= return os<< "TriangleC2(" << t[0] << ", "=0A= << t[1] << ", " << t[2] <<")";=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, TriangleC2 &t)=0A= {=0A= typename R::Point_2 p, q, r;=0A= =0A= is >> p >> q >> r;=0A= =0A= if (is)=0A= t =3D TriangleC2(p, q, r);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 69 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Circle_2.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Circle_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class CircleC2=0A= : public R_::Circle_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Circle_2 Circle_2;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Circle_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= CircleC2()=0A= : base() {}=0A= =0A= CircleC2(const Point_2 ¢er, const FT &squared_radius =3D FT(0),=0A= const Orientation &orient =3D COUNTERCLOCKWISE)=0A= {=0A= ((( squared_radius >=3D FT(0) ) && ( orient !=3D = COLLINEAR))?(static_cast(0)): ::CGAL::precondition_fail( "( = squared_radius >=3D FT(0) ) && ( orient !=3D COLLINEAR)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Circle_2.h", 76, 0));=0A= =0A= =0A= initialize_with(rep(center, squared_radius, orient));=0A= }=0A= =0A= CircleC2(const Point_2 ¢er, const Orientation &orient)=0A= {=0A= ((orient !=3D COLLINEAR)?(static_cast(0)): = ::CGAL::precondition_fail( "orient !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Circle_2.h", 83, 0));=0A= =0A= initialize_with(rep(center, FT(0), orient));=0A= }=0A= =0A= CircleC2(const Point_2 &p, const Point_2 &q,=0A= const Orientation &orient =3D COUNTERCLOCKWISE)=0A= {=0A= ((orient !=3D COLLINEAR)?(static_cast(0)): = ::CGAL::precondition_fail( "orient !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Circle_2.h", 91, 0));=0A= =0A= if (p !=3D q) {=0A= Point_2 center =3D midpoint(p, q);=0A= initialize_with(rep(center, squared_distance(p, center), orient));=0A= } else=0A= initialize_with(rep(p, FT(0), orient));=0A= }=0A= =0A= CircleC2(const Point_2 &p, const Point_2 &q, const Point_2 &r)=0A= {=0A= Orientation orient =3D CGAL::orientation(p, q, r);=0A= ((orient !=3D COLLINEAR)?(static_cast(0)): = ::CGAL::precondition_fail( "orient !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Circle_2.h", 103, 0));=0A= =0A= Point_2 center =3D circumcenter(p, q, r);=0A= initialize_with(rep(center, squared_distance(p, center), orient));=0A= }=0A= =0A= bool operator=3D=3D(const CircleC2 &s) const;=0A= bool operator!=3D(const CircleC2 &s) const;=0A= =0A= const Point_2 & center() const=0A= {=0A= return Ptr()->first;=0A= }=0A= =0A= const FT & squared_radius() const=0A= {=0A= return Ptr()->second;=0A= }=0A= =0A= Orientation orientation() const=0A= {=0A= return Ptr()->third;=0A= }=0A= =0A= Circle_2 opposite() const;=0A= =0A= Circle_2 orthogonal_transform(const Aff_transformation_2 &t) const;=0A= =0A= Oriented_side oriented_side(const Point_2 &p) const;=0A= Bounded_side bounded_side(const Point_2 &p) const;=0A= =0A= bool has_on_boundary(const Point_2 &p) const;=0A= bool has_on_negative_side(const Point_2 &p) const;=0A= bool has_on_positive_side(const Point_2 &p) const;=0A= =0A= bool has_on_bounded_side(const Point_2 &p) const;=0A= bool has_on_unbounded_side(const Point_2 &p) const;=0A= =0A= bool is_degenerate() const;=0A= =0A= Bbox_2 bbox() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= CircleC2::operator=3D=3D(const CircleC2 &c) const=0A= {=0A= if (identical(c))=0A= return true;=0A= return center() =3D=3D c.center() &&=0A= squared_radius() =3D=3D c.squared_radius() &&=0A= orientation() =3D=3D c.orientation();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= CircleC2::operator!=3D(const CircleC2 &c) const=0A= {=0A= return !(*this =3D=3D c);=0A= }=0A= =0A= template < class R >=0A= =0A= Oriented_side=0A= CircleC2::=0A= oriented_side(const typename CircleC2::Point_2 &p) const=0A= {=0A= return Oriented_side(bounded_side(p) * orientation());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bounded_side=0A= CircleC2::=0A= bounded_side(const typename CircleC2::Point_2 &p) const=0A= {=0A= return Bounded_side(CGAL::NTS:: compare(squared_radius(),=0A= squared_distance(center(),p)));=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= CircleC2::=0A= has_on_boundary(const typename CircleC2::Point_2 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDARY;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= CircleC2::=0A= has_on_bounded_side(const typename CircleC2::Point_2 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= CircleC2::=0A= has_on_unbounded_side(const typename CircleC2::Point_2 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= CircleC2::=0A= has_on_negative_side(const typename CircleC2::Point_2 &p) const=0A= {=0A= if (orientation() =3D=3D COUNTERCLOCKWISE)=0A= return has_on_unbounded_side(p);=0A= return has_on_bounded_side(p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= CircleC2::=0A= has_on_positive_side(const typename CircleC2::Point_2 &p) const=0A= {=0A= if (orientation() =3D=3D COUNTERCLOCKWISE)=0A= return has_on_bounded_side(p);=0A= return has_on_unbounded_side(p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= CircleC2::is_degenerate() const=0A= {=0A= return CGAL::NTS:: is_zero(squared_radius());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename CircleC2::Circle_2=0A= CircleC2::opposite() const=0A= {=0A= return CircleC2(center(),=0A= squared_radius(),=0A= CGAL::opposite(orientation()) );=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_2=0A= CircleC2::bbox() const=0A= {=0A= =0A= double cx =3D CGAL::to_double(center().x());=0A= double cy =3D CGAL::to_double(center().y());=0A= double radius =3D CGAL::sqrt(CGAL::to_double(squared_radius()));=0A= =0A= return Bbox_2(cx - radius, cy - radius, cx + radius, cy + radius);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename CircleC2::Circle_2=0A= CircleC2::orthogonal_transform=0A= (const typename CircleC2::Aff_transformation_2 &t) const=0A= {=0A= typename R::Vector_2 vec(FT(1), FT(0) );=0A= vec =3D vec.transform(t);=0A= FT sq_scale =3D vec.squared_length();=0A= =0A= return CircleC2(t.transform(center()),=0A= sq_scale * squared_radius(),=0A= t.is_even() ? orientation()=0A= : = CGAL::opposite(orientation()));=0A= }=0A= =0A= =0A= template < class R >=0A= inline=0A= std::ostream &=0A= operator<<(std::ostream &os, const CircleC2 &c)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= os << c.center() << ' ' << c.squared_radius() << ' '=0A= << static_cast(c.orientation());=0A= break;=0A= case IO::BINARY :=0A= os << c.center();=0A= write(os, c.squared_radius());=0A= write(os, static_cast(c.orientation()));=0A= break;=0A= default:=0A= os << "CircleC2(" << c.center() << ", " << c.squared_radius() ;=0A= switch (c.orientation()) {=0A= case CLOCKWISE:=0A= os << ", clockwise)";=0A= break;=0A= case COUNTERCLOCKWISE:=0A= os << ", counterclockwise)";=0A= break;=0A= default:=0A= os << ", collinear)";=0A= break;=0A= }=0A= break;=0A= }=0A= return os;=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= std::istream&=0A= operator>>(std::istream &is, CircleC2 &c)=0A= {=0A= typename R::Point_2 center;=0A= typename R::FT squared_radius;=0A= int o;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> center >> squared_radius >> o;=0A= break;=0A= case IO::BINARY :=0A= is >> center;=0A= read(is, squared_radius);=0A= is >> o;=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << = std::endl;=0A= break;=0A= }=0A= if (is)=0A= c =3D CircleC2(center, squared_radius,=0A= static_cast(o));=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 70 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_rectangle_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_rectangle_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= class Iso_rectangleC2=0A= : public R_::Iso_rectangle_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Iso_rectangle_2 Iso_rectangle_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef typename R_::Iso_rectangle_handle_2 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= Iso_rectangleC2()=0A= : base(rep()) {}=0A= =0A= Iso_rectangleC2(const Point_2 &p, const Point_2 &q)=0A= {=0A= FT minx, maxx, miny, maxy;=0A= if (p.x() < q.x()) { minx =3D p.x(); maxx =3D q.x(); }=0A= else { minx =3D q.x(); maxx =3D p.x(); }=0A= if (p.y() < q.y()) { miny =3D p.y(); maxy =3D q.y(); }=0A= else { miny =3D q.y(); maxy =3D p.y(); }=0A= initialize_with(rep(Point_2(minx, miny),=0A= Point_2(maxx, maxy)));=0A= }=0A= =0A= Iso_rectangleC2(const FT& min_x, const FT& min_y,=0A= const FT& max_x, const FT& max_y)=0A= {=0A= initialize_with(rep(Point_2(min_x, min_y),=0A= Point_2(max_x, max_y)));=0A= }=0A= =0A= Iso_rectangleC2(const FT& min_hx, const FT& min_hy,=0A= const FT& max_hx, const FT& max_hy, const FT& hw)=0A= {=0A= if (hw =3D=3D FT(1))=0A= initialize_with(rep(Point_2(min_hx, min_hy),=0A= Point_2(max_hx, max_hy)));=0A= else=0A= initialize_with(rep(Point_2(min_hx/hw, min_hy/hw),=0A= Point_2(max_hx/hw, max_hy/hw)));=0A= }=0A= =0A= bool operator=3D=3D(const Iso_rectangleC2 &s) const;=0A= bool operator!=3D(const Iso_rectangleC2 &s) const;=0A= =0A= const Point_2 & min() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const Point_2 & max() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= Point_2 vertex(int i) const;=0A= Point_2 operator[](int i) const;=0A= =0A= Iso_rectangle_2 transform(const Aff_transformation_2 &t) const=0A= {=0A= =0A= =0A= return Iso_rectangleC2(t.transform(vertex(0)), = t.transform(vertex(2)));=0A= }=0A= =0A= Bounded_side bounded_side(const Point_2 &p) const;=0A= bool has_on_boundary(const Point_2 &p) const;=0A= bool has_on_bounded_side(const Point_2 &p) const;=0A= bool has_on_unbounded_side(const Point_2 &p) const;=0A= =0A= bool is_degenerate() const;=0A= =0A= Bbox_2 bbox() const;=0A= =0A= const FT & xmin() const;=0A= const FT & ymin() const;=0A= const FT & xmax() const;=0A= const FT & ymax() const;=0A= const FT & min_coord(int i) const;=0A= const FT & max_coord(int i) const;=0A= =0A= FT area() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_rectangleC2::=0A= operator=3D=3D(const Iso_rectangleC2 &r) const=0A= {=0A= if (identical(r))=0A= return true;=0A= return vertex(0) =3D=3D r.vertex(0) && vertex(2) =3D=3D r.vertex(2);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_rectangleC2::=0A= operator!=3D(const Iso_rectangleC2 &r) const=0A= {=0A= return !(*this =3D=3D r);=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_rectangleC2::FT &=0A= Iso_rectangleC2::xmin() const=0A= {=0A= return min().x();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_rectangleC2::FT &=0A= Iso_rectangleC2::ymin() const=0A= {=0A= return min().y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_rectangleC2::FT &=0A= Iso_rectangleC2::xmax() const=0A= {=0A= return max().x();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_rectangleC2::FT &=0A= Iso_rectangleC2::ymax() const=0A= {=0A= return max().y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_rectangleC2::FT &=0A= Iso_rectangleC2::min_coord(int i) const=0A= {=0A= ((i =3D=3D 0 || i =3D=3D 1)?(static_cast(0)): = ::CGAL::precondition_fail( "i =3D=3D 0 || i =3D=3D 1" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_rectangle_2.h", 200, 0));=0A= if (i =3D=3D 0)=0A= return xmin();=0A= else=0A= return ymin();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_rectangleC2::FT &=0A= Iso_rectangleC2::max_coord(int i) const=0A= {=0A= ((i =3D=3D 0 || i =3D=3D 1)?(static_cast(0)): = ::CGAL::precondition_fail( "i =3D=3D 0 || i =3D=3D 1" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_rectangle_2.h", 212, 0));=0A= if (i =3D=3D 0)=0A= return xmax();=0A= else=0A= return ymax();=0A= }=0A= =0A= template < class R >=0A= typename Iso_rectangleC2::Point_2=0A= Iso_rectangleC2::vertex(int i) const=0A= {=0A= switch (i%4) {=0A= case 0: return min();=0A= case 1: return Point_2(xmax(), ymin());=0A= case 2: return max();=0A= default: return Point_2(xmin(), ymax());=0A= }=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename Iso_rectangleC2::Point_2=0A= Iso_rectangleC2::operator[](int i) const=0A= {=0A= return vertex(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename Iso_rectangleC2::FT=0A= Iso_rectangleC2::area() const=0A= {=0A= return (xmax()-xmin()) * (ymax()-ymin());=0A= }=0A= =0A= template < class R >=0A= =0A= Bounded_side=0A= Iso_rectangleC2::=0A= bounded_side(const typename Iso_rectangleC2::Point_2 &p) const=0A= {=0A= bool x_incr =3D (xmin() < p.x()) && (p.x() < xmax()),=0A= y_incr =3D (ymin() < p.y()) && (p.y() < ymax());=0A= if (x_incr)=0A= {=0A= if (y_incr)=0A= return ON_BOUNDED_SIDE;=0A= if ( (p.y() =3D=3D ymin()) || (ymax() =3D=3D p.y()) )=0A= return ON_BOUNDARY;=0A= }=0A= if ( (p.x() =3D=3D xmin()) || (xmax() =3D=3D p.x()) )=0A= if ( y_incr || (p.y() =3D=3D ymin()) || (ymax() =3D=3D p.y()) )=0A= return ON_BOUNDARY;=0A= =0A= return ON_UNBOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_rectangleC2::=0A= has_on_boundary(const typename Iso_rectangleC2::Point_2 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDARY;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_rectangleC2::=0A= has_on_bounded_side(const typename Iso_rectangleC2::Point_2 &p)=0A= const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_rectangleC2::=0A= has_on_unbounded_side(const typename Iso_rectangleC2::Point_2 &p)=0A= const=0A= {=0A= return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_rectangleC2::is_degenerate() const=0A= {=0A= return (xmin() =3D=3D xmax()) || (ymin() =3D=3D ymax());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_2=0A= Iso_rectangleC2::bbox() const=0A= {=0A= return Bbox_2(CGAL::to_double(xmin()), CGAL::to_double(ymin()),=0A= CGAL::to_double(xmax()), CGAL::to_double(ymax()));=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const Iso_rectangleC2 &r)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << r[0] << ' ' << r[2];=0A= case IO::BINARY :=0A= return os << r[0] << r[2];=0A= default:=0A= return os << "Iso_rectangleC2(" << r[0] << ", " << r[2] << ")";=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= =0A= std::istream &=0A= operator>>(std::istream &is, Iso_rectangleC2 &r)=0A= {=0A= typename R::Point_2 p, q;=0A= =0A= is >> p >> q;=0A= =0A= if (is)=0A= r =3D Iso_rectangleC2(p, q);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 71 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_2.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_2.h"=0A= namespace CGAL {=0A= =0A= class Identity_transformation;=0A= template < class R > class Aff_transformation_rep_baseC2;=0A= template < class R > class Aff_transformation_repC2;=0A= template < class R > class Translation_repC2;=0A= template < class R > class Rotation_repC2;=0A= template < class R > class Scaling_repC2;=0A= =0A= }=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_rep_2.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_rep_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= class Aff_transformation_rep_baseC2=0A= : public Ref_counted_virtual=0A= {=0A= public:=0A= typedef typename R::FT FT;=0A= typedef typename R::Point_2 Point_2;=0A= typedef typename R::Vector_2 Vector_2;=0A= typedef typename R::Direction_2 Direction_2;=0A= typedef typename R::Aff_transformation_2 Aff_transformation_2;=0A= =0A= virtual ~Aff_transformation_rep_baseC2() {}=0A= =0A= virtual Point_2 transform(const Point_2 &p) const =3D 0;=0A= virtual Vector_2 transform(const Vector_2 &v) const =3D 0;=0A= virtual Direction_2 transform(const Direction_2 &d) const=3D0;=0A= =0A= virtual Aff_transformation_2 operator*(=0A= const Aff_transformation_rep_baseC2 &t) const =3D = 0;=0A= =0A= virtual Aff_transformation_2 compose(=0A= const Aff_transformation_repC2 &t) const =3D 0;=0A= =0A= virtual Aff_transformation_2 compose(=0A= const Translation_repC2 &t) const =3D 0;=0A= =0A= virtual Aff_transformation_2 compose(=0A= const Rotation_repC2 &t) const =3D 0;=0A= =0A= virtual Aff_transformation_2 compose(=0A= const Scaling_repC2 &t) const =3D 0;=0A= =0A= virtual Aff_transformation_2 inverse() const =3D 0;=0A= virtual bool is_even() const =3D 0;=0A= virtual FT cartesian(int i, int j) const =3D 0;=0A= virtual std::ostream &print(std::ostream &os) const =3D 0;=0A= };=0A= =0A= template < class R >=0A= class Aff_transformation_repC2=0A= : public Aff_transformation_rep_baseC2=0A= {=0A= public:=0A= typedef typename R::FT FT;=0A= typedef Aff_transformation_repC2 Self;=0A= typedef Aff_transformation_rep_baseC2 Aff_t_base;=0A= typedef typename Aff_t_base::Point_2 Point_2;=0A= typedef typename Aff_t_base::Vector_2 Vector_2;=0A= typedef typename Aff_t_base::Direction_2 Direction_2;=0A= typedef typename Aff_t_base::Aff_transformation_2 Aff_transformation_2;=0A= =0A= friend class Translation_repC2;=0A= friend class Rotation_repC2;=0A= friend class Scaling_repC2;=0A= =0A= Aff_transformation_repC2()=0A= {}=0A= =0A= Aff_transformation_repC2( const FT& m11, const FT& m12,=0A= const FT& m21, const FT& m22)=0A= : t11(m11), t12(m12), t13(0),=0A= t21(m21), t22(m22), t23(0)=0A= {}=0A= =0A= Aff_transformation_repC2( const FT& m11, const FT& m12, const FT& m13,=0A= const FT& m21, const FT& m22, const FT& m23)=0A= : t11(m11), t12(m12), t13(m13),=0A= t21(m21), t22(m22), t23(m23)=0A= {}=0A= =0A= Point_2 transform(const Point_2& p) const=0A= {=0A= return Point_2(t11 * p.x() + t12 * p.y() + t13,=0A= t21 * p.x() + t22 * p.y() + t23);=0A= }=0A= =0A= =0A= Vector_2 transform(const Vector_2& v) const=0A= {=0A= return Vector_2(t11 * v.x() + t12 * v.y(),=0A= t21 * v.x() + t22 * v.y());=0A= }=0A= =0A= =0A= Direction_2 transform(const Direction_2& dir) const=0A= {=0A= Vector_2 v =3D dir.to_vector();=0A= return Direction_2(t11 * v.x() + t12 * v.y(),=0A= t21 * v.x() + t22 * v.y());=0A= }=0A= =0A= =0A= =0A= Aff_transformation_2 inverse() const;=0A= Aff_transformation_2 operator*(const Aff_t_base &t) const;=0A= Aff_transformation_2 compose(const Self &t) const;=0A= Aff_transformation_2 compose(const Translation_repC2 &t) const;=0A= Aff_transformation_2 compose(const Rotation_repC2 &t) const;=0A= Aff_transformation_2 compose(const Scaling_repC2 &t) const;=0A= =0A= bool is_even() const=0A= {=0A= return sign_of_determinant2x2(t11, t12, t21, t22) =3D=3D POSITIVE;=0A= }=0A= =0A= FT cartesian(int i, int j) const=0A= {=0A= switch (i)=0A= {=0A= case 0: switch (j)=0A= {=0A= case 0: return t11;=0A= case 1: return t12;=0A= case 2: return t13;=0A= }=0A= case 1: switch (j)=0A= {=0A= case 0: return t21;=0A= case 1: return t22;=0A= case 2: return t23;=0A= }=0A= case 2: switch (j)=0A= {=0A= case 0: return FT(0);=0A= case 1: return FT(0);=0A= case 2: return FT(1);=0A= }=0A= }=0A= return FT(0);=0A= }=0A= =0A= std::ostream &print(std::ostream &os) const=0A= {=0A= os <<"Aff_transformationC2(" <=0A= =0A= typename Aff_transformation_repC2::Aff_transformation_2=0A= Aff_transformation_repC2::=0A= inverse() const=0A= {=0A= FT det =3D FT(1) / (t11 * t22 - t12 * t21);=0A= return Aff_transformation_2(=0A= det * t22, det * (-t12), det * (t12*t23-t13*t22),=0A= det * (-t21), det * t11 , det * (t13*t21-t11*t23));=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename Aff_transformation_repC2::Aff_transformation_2=0A= Aff_transformation_repC2::=0A= operator*(const Aff_transformation_rep_baseC2 &t) const=0A= {=0A= return t.compose(*this);=0A= }=0A= =0A= template < class R >=0A= =0A= typename Aff_transformation_repC2::Aff_transformation_2=0A= Aff_transformation_repC2::=0A= compose(const Aff_transformation_repC2 &t) const=0A= {=0A= return Aff_transformation_2(t.t11*t11 + t.t12*t21,=0A= t.t11*t12 + t.t12*t22,=0A= t.t11*t13 + t.t12*t23 + t.t13,=0A= t.t21*t11 + t.t22*t21,=0A= t.t21*t12 + t.t22*t22,=0A= t.t21*t13 + t.t22*t23 + t.t23 );=0A= }=0A= =0A= template < class R >=0A= =0A= typename Aff_transformation_repC2::Aff_transformation_2=0A= Aff_transformation_repC2::=0A= compose(const Translation_repC2 &t) const=0A= {=0A= return Aff_transformation_2(t11,=0A= t12,=0A= t13 + t.translationvector_.x(),=0A= t21,=0A= t22,=0A= t23 + t.translationvector_.y());=0A= }=0A= =0A= template < class R >=0A= =0A= typename Aff_transformation_repC2::Aff_transformation_2=0A= Aff_transformation_repC2::=0A= compose(const Rotation_repC2 &t) const=0A= {=0A= return Aff_transformation_2(t.cosinus_*t11 - t.sinus_*t21,=0A= t.cosinus_*t12 - t.sinus_*t22,=0A= t.cosinus_*t13 - t.sinus_*t23,=0A= t.sinus_*t11 + t.cosinus_*t21,=0A= t.sinus_*t12 + t.cosinus_*t22,=0A= t.sinus_*t13 + t.cosinus_*t23);=0A= }=0A= =0A= template < class R >=0A= =0A= typename Aff_transformation_repC2::Aff_transformation_2=0A= Aff_transformation_repC2::=0A= compose(const Scaling_repC2 &t) const=0A= {=0A= return Aff_transformation_2(t.scalefactor_ * t11,=0A= t.scalefactor_ * t12,=0A= t.scalefactor_ * t13,=0A= t.scalefactor_ * t21,=0A= t.scalefactor_ * t22,=0A= t.scalefactor_ * t23);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 63 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_2.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Translation_rep_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Translation_rep_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= class Translation_repC2 : public Aff_transformation_rep_baseC2=0A= {=0A= friend class Aff_transformation_repC2;=0A= friend class Rotation_repC2;=0A= friend class Scaling_repC2;=0A= =0A= public:=0A= typedef typename R::FT FT;=0A= typedef Aff_transformation_rep_baseC2 Aff_t_base;=0A= typedef Aff_transformation_repC2 Transformation;=0A= typedef Translation_repC2 Translation;=0A= typedef Rotation_repC2 Rotation;=0A= typedef Scaling_repC2 Scaling;=0A= typedef typename Aff_t_base::Point_2 Point_2;=0A= typedef typename Aff_t_base::Vector_2 Vector_2;=0A= typedef typename Aff_t_base::Direction_2 Direction_2;=0A= typedef typename Aff_t_base::Aff_transformation_2 Aff_transformation_2;=0A= =0A= Translation_repC2()=0A= {}=0A= =0A= Translation_repC2(const Vector_2 &tv)=0A= : translationvector_(tv)=0A= {}=0A= =0A= Point_2 transform(const Point_2 &p) const=0A= { return p + translationvector_; }=0A= Vector_2 transform(const Vector_2 &v) const { return v; }=0A= Direction_2 transform(const Direction_2 &d) const { return d; }=0A= =0A= Aff_transformation_2 operator*(const Aff_t_base &t) const=0A= {=0A= return t.compose(*this);=0A= }=0A= =0A= Aff_transformation_2 compose(const Translation &t) const=0A= {=0A= return Aff_transformation_2(TRANSLATION,=0A= translationvector_ + = t.translationvector_);=0A= }=0A= =0A= Aff_transformation_2 compose(const Rotation &t) const=0A= {=0A= return Aff_transformation_2(t.cosinus_,=0A= -t.sinus_,=0A= t.cosinus_*translationvector_.x() -=0A= t.sinus_*translationvector_.y(),=0A= =0A= t.sinus_,=0A= t.cosinus_,=0A= t.sinus_*translationvector_.x() +=0A= t.cosinus_*translationvector_.y());=0A= }=0A= =0A= Aff_transformation_2 compose(const Scaling &t) const=0A= {=0A= return Aff_transformation_2(t.scalefactor_,=0A= FT(0),=0A= t.scalefactor_*translationvector_.x(),=0A= =0A= FT(0),=0A= t.scalefactor_,=0A= t.scalefactor_*translationvector_.y());=0A= }=0A= =0A= Aff_transformation_2 compose(const Transformation &t) const=0A= {=0A= return Aff_transformation_2(t.t11,=0A= t.t12,=0A= t.t11 * translationvector_.x()=0A= + t.t12 * translationvector_.y()=0A= + t.t13,=0A= =0A= t.t21,=0A= t.t22,=0A= t.t21 * translationvector_.x()=0A= + t.t22*translationvector_.y()=0A= + t.t23);=0A= }=0A= =0A= Aff_transformation_2 inverse() const=0A= {=0A= return Aff_transformation_2(TRANSLATION, - translationvector_);=0A= }=0A= =0A= bool is_even() const=0A= {=0A= return true;=0A= }=0A= =0A= FT cartesian(int i, int j) const=0A= {=0A= if (j=3D=3Di) return FT(1);=0A= if (j=3D=3D2) return translationvector_[i];=0A= return FT(0);=0A= }=0A= =0A= std::ostream &print(std::ostream &os) const=0A= {=0A= os << "Aff_transformationC2(VectorC2(" << translationvector_.x() << = ", "=0A= << translationvector_.y() << "))";=0A= return os;=0A= }=0A= =0A= private:=0A= Vector_2 translationvector_;=0A= };=0A= =0A= }=0A= # 64 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_2.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Rotation_rep_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Rotation_rep_2.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h" 1=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h"=0A= namespace CGAL {=0A= =0A= template < class NT >=0A= void=0A= rational_rotation_approximation( const NT & dirx,=0A= const NT & diry,=0A= NT & sin_num,=0A= NT & cos_num,=0A= NT & denom,=0A= const NT & eps_num,=0A= const NT & eps_den )=0A= {=0A= =0A= using std::swap;=0A= =0A= =0A= const NT& n =3D eps_num;=0A= const NT& d =3D eps_den;=0A= const NT NT0 =3D NT(0) ;=0A= const NT NT1 =3D NT(1) ;=0A= ((n > NT0)?(static_cast(0)): ::CGAL::precondition_fail( "n > = NT0" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h", 73, 0));=0A= ((d > NT0)?(static_cast(0)): ::CGAL::precondition_fail( "d > = NT0" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h", 74, 0));=0A= NT & sin =3D sin_num;=0A= NT & cos =3D cos_num;=0A= NT & den =3D denom;=0A= NT dx =3D CGAL::NTS:: abs(dirx);=0A= NT dy =3D CGAL::NTS:: abs(diry);=0A= NT sq_hypotenuse =3D dx*dx + dy*dy;=0A= NT common_part;=0A= NT diff_part;=0A= NT rhs;=0A= bool lower_ok;=0A= bool upper_ok;=0A= =0A= if (dy > dx)=0A= {=0A= swap (dx,dy);=0A= }=0A= =0A= =0A= if (dy * dy * d * d < sq_hypotenuse * n * n)=0A= {=0A= cos =3D NT1;=0A= sin =3D NT0;=0A= den =3D NT1;=0A= }=0A= else=0A= {=0A= NT p;=0A= NT q;=0A= NT p0 =3D NT0;=0A= NT q0 =3D NT1;=0A= NT p1 =3D NT1;=0A= NT q1 =3D NT1;=0A= =0A= for(;;)=0A= {=0A= p =3D p0 + p1;=0A= q =3D q0 + q1;=0A= sin =3D NT(2)*p*q;=0A= den =3D p*p + q*q;=0A= # 123 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h"=0A= common_part =3D (sin*sin*d*d + n*n*den*den)*sq_hypotenuse;=0A= diff_part =3D NT(2)*n*sin*d*den*sq_hypotenuse;=0A= rhs =3D dy*dy*d*d*den*den;=0A= =0A= upper_ok =3D (common_part - diff_part < rhs);=0A= lower_ok =3D (common_part + diff_part > rhs);=0A= =0A= if ( lower_ok && upper_ok )=0A= {=0A= # 140 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h"=0A= cos =3D q*q - p*p;=0A= =0A= =0A= break;=0A= }=0A= else=0A= {=0A= =0A= if ( dy*dy*den*den < sin*sin*sq_hypotenuse )=0A= {=0A= p1 =3D p;=0A= q1 =3D q;=0A= }=0A= else=0A= {=0A= p0 =3D p;=0A= q0 =3D q;=0A= }=0A= }=0A= }=0A= }=0A= dx =3D dirx;=0A= dy =3D diry;=0A= =0A= =0A= if (dy > dx ) { swap (sin,cos); }=0A= =0A= if (dx < NT0) { cos =3D - cos; }=0A= =0A= if (dy < NT0) { sin =3D - sin; }=0A= =0A= sin_num =3D sin;=0A= cos_num =3D cos;=0A= denom =3D den;=0A= }=0A= =0A= =0A= template < class NT >=0A= void=0A= rational_rotation_approximation( const double& angle,=0A= NT & sin_num,=0A= NT & cos_num,=0A= NT & denom,=0A= const NT & eps_num,=0A= const NT & eps_den )=0A= {=0A= =0A= using std::swap;=0A= =0A= =0A= const NT& n =3D eps_num;=0A= const NT& d =3D eps_den;=0A= const NT NT0 =3D NT(0) ;=0A= const NT NT1 =3D NT(1) ;=0A= ((n > NT0)?(static_cast(0)): ::CGAL::precondition_fail( "n > = NT0" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h", 194, 0));=0A= ((d > NT0)?(static_cast(0)): ::CGAL::precondition_fail( "d > = NT0" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h", 195, 0));=0A= NT& isin =3D sin_num;=0A= NT& icos =3D cos_num;=0A= NT& iden =3D denom;=0A= double dsin =3D sin(angle);=0A= double dcos =3D cos(angle);=0A= double dn =3D CGAL::to_double(n);=0A= double dd =3D CGAL::to_double(d);=0A= double eps =3D dn / dd;=0A= dsin =3D CGAL::NTS:: abs( dsin);=0A= dcos =3D CGAL::NTS:: abs( dcos);=0A= NT common_part;=0A= NT diff_part;=0A= NT os;=0A= bool lower_ok;=0A= bool upper_ok;=0A= bool swapped =3D false;=0A= =0A= if (dsin > dcos)=0A= {=0A= swapped =3D true;=0A= swap (dsin,dcos);=0A= }=0A= if ( dsin < eps )=0A= {=0A= icos =3D NT1;=0A= isin =3D NT0;=0A= iden =3D NT1;=0A= }=0A= else=0A= {=0A= NT p;=0A= NT q;=0A= NT p0 =3D NT0;=0A= NT q0 =3D NT1;=0A= NT p1 =3D NT1;=0A= NT q1 =3D NT1;=0A= =0A= for(;;)=0A= {=0A= p =3D p0 + p1;=0A= q =3D q0 + q1;=0A= isin =3D NT(2)*p*q;=0A= iden =3D p*p + q*q;=0A= =0A= =0A= =0A= =0A= =0A= =0A= os =3D CGAL::to_double(isin);=0A= diff_part =3D eps * CGAL::to_double(iden);=0A= common_part =3D dsin * CGAL::to_double(iden);=0A= =0A= upper_ok =3D (common_part - diff_part < os);=0A= lower_ok =3D (os < common_part + diff_part);=0A= =0A= if ( lower_ok && upper_ok )=0A= {=0A= # 262 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/ra= tional_rotation.h"=0A= icos =3D q*q - p*p;=0A= =0A= =0A= break;=0A= }=0A= else=0A= {=0A= =0A= if ( dsin * CGAL::to_double(iden) < CGAL::to_double(isin) )=0A= {=0A= p1 =3D p;=0A= q1 =3D q;=0A= }=0A= else=0A= {=0A= p0 =3D p;=0A= q0 =3D q;=0A= }=0A= }=0A= }=0A= }=0A= =0A= if ( swapped ) { swap (isin,icos); }=0A= =0A= dsin =3D sin( angle);=0A= dcos =3D cos( angle);=0A= if (dcos < 0.0) { icos =3D - icos; }=0A= if (dsin < 0.0) { isin =3D - isin; }=0A= =0A= sin_num =3D isin;=0A= cos_num =3D icos;=0A= denom =3D iden;=0A= }=0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Rotation_rep_2.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class R >=0A= class Rotation_repC2: public Aff_transformation_rep_baseC2=0A= {=0A= friend class Aff_transformation_repC2;=0A= friend class Translation_repC2;=0A= friend class Scaling_repC2;=0A= =0A= public:=0A= typedef Aff_transformation_rep_baseC2 Aff_t_base;=0A= typedef typename Aff_t_base::FT FT;=0A= typedef typename Aff_t_base::Point_2 Point_2;=0A= typedef typename Aff_t_base::Vector_2 Vector_2;=0A= typedef typename Aff_t_base::Direction_2 Direction_2;=0A= typedef typename Aff_t_base::Aff_transformation_2 Aff_transformation_2;=0A= typedef Aff_transformation_repC2 Transformation;=0A= typedef Translation_repC2 Translation;=0A= typedef Rotation_repC2 Rotation;=0A= typedef Scaling_repC2 Scaling;=0A= =0A= Rotation_repC2() {}=0A= =0A= Rotation_repC2(const FT &sinus, const FT &cosinus)=0A= : sinus_(sinus), cosinus_(cosinus) {}=0A= =0A= Rotation_repC2(const Direction_2 &d,=0A= const FT &eps_num,=0A= const FT &eps_den =3D FT(1))=0A= {=0A= FT sin_num;=0A= FT cos_num;=0A= FT denom;=0A= =0A= rational_rotation_approximation(d.to_vector().x(),=0A= d.to_vector().y(),=0A= sin_num,=0A= cos_num,=0A= denom,=0A= eps_num,=0A= eps_den);=0A= sinus_ =3D sin_num/denom;=0A= cosinus_ =3D cos_num/denom;=0A= }=0A= =0A= Point_2 transform(const Point_2 &p) const=0A= {=0A= return Point_2(cosinus_ * p.x() - sinus_ * p.y(),=0A= sinus_ * p.x() + cosinus_ * p.y());=0A= }=0A= =0A= Vector_2 transform(const Vector_2 &v) const=0A= {=0A= return Vector_2(cosinus_ * v.x() - sinus_ * v.y(),=0A= sinus_ * v.x() + cosinus_ * v.y());=0A= }=0A= =0A= Direction_2 transform(const Direction_2 &d) const=0A= {=0A= Vector_2 v =3D d.to_vector();=0A= return Direction_2(cosinus_ * v.x() - sinus_ * v.y(),=0A= sinus_ * v.x() + cosinus_ * v.y());=0A= }=0A= =0A= Aff_transformation_2 inverse() const=0A= {=0A= return Aff_transformation_2(ROTATION, - sinus_, cosinus_, FT(1));=0A= }=0A= =0A= Aff_transformation_2 operator*(const Aff_t_base &t) const=0A= {=0A= return t.compose(*this);=0A= }=0A= =0A= Aff_transformation_2 compose(const Translation &t) const=0A= {=0A= return Aff_transformation_2(cosinus_,=0A= -sinus_,=0A= t.translationvector_.x(),=0A= sinus_,=0A= cosinus_,=0A= t.translationvector_.y());=0A= }=0A= =0A= Aff_transformation_2 compose(const Rotation &t) const=0A= {=0A= return Aff_transformation_2(ROTATION,=0A= t.sinus_*cosinus_ + t.cosinus_*sinus_,=0A= t.cosinus_*cosinus_-t.sinus_*sinus_ );=0A= }=0A= =0A= Aff_transformation_2 compose(const Scaling &t) const=0A= {=0A= return Aff_transformation_2(t.scalefactor_*cosinus_,=0A= t.scalefactor_*-sinus_,=0A= t.scalefactor_*sinus_,=0A= t.scalefactor_*cosinus_);=0A= }=0A= =0A= Aff_transformation_2 compose(const Transformation &t) const=0A= {=0A= return Aff_transformation_2(cosinus_*t.t11 + sinus_*t.t12,=0A= -sinus_*t.t11 + cosinus_*t.t12,=0A= t.t13,=0A= cosinus_*t.t21 + sinus_*t.t22,=0A= -sinus_*t.t21 + cosinus_*t.t22,=0A= t.t23);=0A= }=0A= =0A= bool is_even() const=0A= {=0A= return true;=0A= }=0A= =0A= FT cartesian(int i, int j) const=0A= {=0A= switch (i)=0A= {=0A= case 0: switch (j)=0A= {=0A= case 0: return cosinus_;=0A= case 1: return -sinus_;=0A= case 2: return FT(0);=0A= }=0A= case 1: switch (j)=0A= {=0A= case 0: return sinus_;=0A= case 1: return cosinus_;=0A= case 2: return FT(0);=0A= }=0A= case 2: switch (j)=0A= {=0A= case 0: return FT(0);=0A= case 1: return FT(0);=0A= case 2: return FT(1);=0A= }=0A= }=0A= return FT(0);=0A= }=0A= =0A= std::ostream &print(std::ostream &os) const=0A= {=0A= os << "Aff_transformationC2(" << sinus_ << ", " << cosinus_ << ")";=0A= return os;=0A= }=0A= =0A= private:=0A= FT sinus_, cosinus_;=0A= };=0A= =0A= }=0A= # 65 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_2.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Scaling_rep_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Scaling_rep_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= class Scaling_repC2: public Aff_transformation_rep_baseC2=0A= {=0A= friend class Aff_transformation_repC2;=0A= friend class Translation_repC2;=0A= friend class Rotation_repC2;=0A= =0A= public:=0A= typedef Aff_transformation_rep_baseC2 Aff_t_base;=0A= typedef typename Aff_t_base::FT FT;=0A= typedef typename Aff_t_base::Point_2 Point_2;=0A= typedef typename Aff_t_base::Vector_2 Vector_2;=0A= typedef typename Aff_t_base::Direction_2 Direction_2;=0A= typedef typename Aff_t_base::Aff_transformation_2 Aff_transformation_2;=0A= typedef Aff_transformation_repC2 Transformation;=0A= typedef Translation_repC2 Translation;=0A= typedef Rotation_repC2 Rotation;=0A= typedef Scaling_repC2 Scaling;=0A= =0A= Scaling_repC2()=0A= {}=0A= =0A= Scaling_repC2(const FT &scalefactor) :=0A= scalefactor_(scalefactor)=0A= {}=0A= =0A= ~Scaling_repC2()=0A= {}=0A= =0A= Point_2 transform(const Point_2 &p) const=0A= {=0A= return Point_2(scalefactor_ * p.x(), scalefactor_ * p.y());=0A= }=0A= =0A= Vector_2 transform(const Vector_2 &p) const=0A= {=0A= return Vector_2(scalefactor_ * p.x(), scalefactor_ * p.y());=0A= }=0A= =0A= Direction_2 transform(const Direction_2 &d) const=0A= {=0A= return d;=0A= }=0A= =0A= Aff_transformation_2 operator*(const Aff_t_base &t) const=0A= {=0A= return t.compose(*this);=0A= }=0A= =0A= Aff_transformation_2 compose(const Translation &t) const=0A= {=0A= FT ft0(0);=0A= return Aff_transformation_2(scalefactor_,=0A= ft0,=0A= t.translationvector_.x(),=0A= ft0,=0A= scalefactor_,=0A= t.translationvector_.y());=0A= }=0A= =0A= Aff_transformation_2 compose(const Rotation &t) const=0A= {=0A= return Aff_transformation_2(scalefactor_ * t.cosinus_,=0A= scalefactor_ * -t.sinus_,=0A= scalefactor_ * t.sinus_,=0A= scalefactor_ * t.cosinus_);=0A= }=0A= =0A= Aff_transformation_2 compose(const Scaling &t) const=0A= {=0A= return Aff_transformation_2(SCALING, scalefactor_*t.scalefactor_);=0A= }=0A= =0A= Aff_transformation_2 compose(const Transformation &t) const=0A= {=0A= return Aff_transformation_2(scalefactor_ * t.t11,=0A= scalefactor_ * t.t12,=0A= t.t13,=0A= scalefactor_ * t.t21,=0A= scalefactor_ * t.t22,=0A= t.t23);=0A= }=0A= =0A= Aff_transformation_2 inverse() const=0A= {=0A= return Aff_transformation_2(SCALING, FT(1)/scalefactor_);=0A= }=0A= =0A= bool is_even() const=0A= {=0A= return true;=0A= }=0A= =0A= FT cartesian(int i, int j) const=0A= {=0A= if (i!=3Dj) return FT(0);=0A= return (i=3D=3D2) ? FT(1) : scalefactor_;=0A= }=0A= =0A= std::ostream &print(std::ostream &os) const=0A= {=0A= os << "Aff_transformationC2(" << scalefactor_ << ")";=0A= return os;=0A= }=0A= =0A= private:=0A= FT scalefactor_;=0A= };=0A= =0A= }=0A= # 66 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_2.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class Aff_transformationC2=0A= : public R_::Aff_transformation_handle_2=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef Aff_transformation_rep_baseC2 Aff_t_base;=0A= =0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Vector_2 Vector_2;=0A= typedef typename R_::Direction_2 Direction_2;=0A= typedef typename R_::Line_2 Line_2;=0A= typedef typename R_::Aff_transformation_2 Aff_transformation_2;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= Aff_transformationC2()=0A= {=0A= initialize_with(Aff_transformation_repC2(FT(1), FT(0), FT(0), = FT(1)));=0A= }=0A= =0A= Aff_transformationC2(const Identity_transformation)=0A= {=0A= initialize_with(Aff_transformation_repC2(FT(1), FT(0), FT(0), = FT(1)));=0A= }=0A= =0A= Aff_transformationC2(const Translation, const Vector_2 &v)=0A= {=0A= initialize_with(Translation_repC2(v));=0A= }=0A= =0A= =0A= Aff_transformationC2(const Rotation,=0A= const Direction_2 &d,=0A= const FT &num,=0A= const FT &den =3D FT(1))=0A= {=0A= initialize_with(Rotation_repC2(d, num, den));=0A= }=0A= =0A= Aff_transformationC2(const Rotation,=0A= const FT &sine,=0A= const FT &cosine,=0A= const FT &w =3D FT(1))=0A= {=0A= if (w !=3D FT(1))=0A= initialize_with(Rotation_repC2(sine/w, cosine/w));=0A= else=0A= initialize_with(Rotation_repC2(sine, cosine));=0A= }=0A= =0A= Aff_transformationC2(const Scaling, const FT &s, const FT &w =3D FT(1))=0A= {=0A= if (w !=3D FT(1))=0A= initialize_with(Scaling_repC2(s/w));=0A= else=0A= initialize_with(Scaling_repC2(s));=0A= }=0A= =0A= =0A= =0A= Aff_transformationC2(const FT & m11, const FT & m12, const FT & m13,=0A= const FT & m21, const FT & m22, const FT & m23,=0A= const FT &w =3D FT(1))=0A= {=0A= if (w !=3D FT(1))=0A= initialize_with(Aff_transformation_repC2(m11/w, m12/w, m13/w,=0A= m21/w, m22/w, m23/w));=0A= else=0A= initialize_with(Aff_transformation_repC2(m11, m12, m13,=0A= m21, m22, m23));=0A= }=0A= =0A= Aff_transformationC2(const FT & m11, const FT & m12,=0A= const FT & m21, const FT & m22,=0A= const FT &w =3D FT(1))=0A= {=0A= initialize_with(Aff_transformation_repC2(m11/w, m12/w, m21/w, = m22/w));=0A= }=0A= =0A= Point_2=0A= transform(const Point_2 &p) const=0A= { return Ptr()->transform(p); }=0A= =0A= Point_2=0A= operator()(const Point_2 &p) const=0A= { return transform(p); }=0A= =0A= Vector_2=0A= transform(const Vector_2 &v) const=0A= { return Ptr()->transform(v); }=0A= =0A= Vector_2=0A= operator()(const Vector_2 &v) const=0A= { return transform(v); }=0A= =0A= Direction_2=0A= transform(const Direction_2 &d) const=0A= { return Ptr()->transform(d); }=0A= =0A= Direction_2=0A= operator()(const Direction_2 &d) const=0A= { return transform(d); }=0A= =0A= Line_2=0A= transform(const Line_2 &l) const=0A= { return l.transform(*this); }=0A= =0A= Line_2=0A= operator()(const Line_2 &l) const=0A= { return transform(l); }=0A= =0A= Aff_transformation_2 inverse() const { return Ptr()->inverse(); }=0A= =0A= bool is_even() const { return Ptr()->is_even(); }=0A= bool is_odd() const { return ! (Ptr()->is_even()); }=0A= =0A= FT cartesian(int i, int j) const { return Ptr()->cartesian(i,j); }=0A= FT homogeneous(int i, int j) const { return cartesian(i,j); }=0A= FT m(int i, int j) const { return cartesian(i,j); }=0A= FT hm(int i, int j) const { return cartesian(i,j); }=0A= =0A= Aff_transformation_2 operator*(const Aff_transformationC2 &t) const=0A= {=0A= return (*Ptr()) * (*t.Ptr());=0A= }=0A= =0A= std::ostream &=0A= print(std::ostream &os) const;=0A= };=0A= =0A= template < class R >=0A= std::ostream&=0A= Aff_transformationC2::print(std::ostream &os) const=0A= {=0A= Ptr()->print(os);=0A= return os;=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream&=0A= operator<<(std::ostream& os, const Aff_transformationC2& t)=0A= {=0A= t.print(os);=0A= return os;=0A= }=0A= =0A= =0A= }=0A= # 72 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Data_accessor_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Data_accessor_2.h"=0A= namespace CGAL {=0A= =0A= =0A= template < class R_ >=0A= class Data_accessorC2=0A= {=0A= public:=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point;=0A= =0A= typedef R_ R;=0A= =0A= FT get_x( const Point &p) const { return( p.x()); }=0A= FT get_y( const Point &p) const { return( p.y()); }=0A= =0A= void get( const Point &p, FT &x, FT &y) const { x=3Dget_x(p); = y=3Dget_y(p); }=0A= void set( Point& p, const FT &x, const FT &y) const { = p=3DPoint(x,y); }=0A= };=0A= =0A= }=0A= # 73 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nicCPA2.h" 1=0A= # 62 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Co= nicCPA2.h"=0A= namespace CGAL {=0A= =0A= template < class PT, class DA>=0A= class ConicCPA2;=0A= =0A= template < class PT, class DA>=0A= class _Min_ellipse_2_adapterC2__Ellipse;=0A= =0A= =0A= template < class _PT, class _DA>=0A= class ConicCPA2=0A= {=0A= public:=0A= =0A= typedef _PT PT;=0A= typedef _DA DA;=0A= typedef typename _DA::FT FT;=0A= =0A= =0A= =0A= friend class _Min_ellipse_2_adapterC2__Ellipse;=0A= =0A= DA dao;=0A= FT _r, _s, _t, _u, _v, _w;=0A= Conic_type type;=0A= CGAL::Orientation o;=0A= bool empty, trivial, degenerate;=0A= =0A= =0A= void=0A= set_linear_combination (const FT& a1, const ConicCPA2& c1,=0A= const FT& a2, const ConicCPA2& c2)=0A= {=0A= _r =3D a1 * c1.r() + a2 * c2.r();=0A= _s =3D a1 * c1.s() + a2 * c2.s();=0A= _t =3D a1 * c1.t() + a2 * c2.t();=0A= _u =3D a1 * c1.u() + a2 * c2.u();=0A= _v =3D a1 * c1.v() + a2 * c2.v();=0A= _w =3D a1 * c1.w() + a2 * c2.w();=0A= }=0A= =0A= static void set_two_linepairs (const PT& p1,=0A= const PT& p2,=0A= const PT& p3,=0A= const PT& p4,=0A= ConicCPA2& pair1,=0A= ConicCPA2& pair2)=0A= {=0A= FT x1, y1, x2, y2, x3, y3, x4, y4;=0A= const DA& da =3D pair1.da();=0A= da.get (p1, x1, y1);=0A= da.get (p2, x2, y2);=0A= da.get (p3, x3, y3);=0A= da.get (p4, x4, y4);=0A= =0A= CGAL::Orientation side1_24 =3D (CGAL::Orientation)(CGAL::NTS:: = sign=0A= (-x1*y4+x2*y4=0A= +x4*y1-x2*y1=0A= +x1*y2-x4*y2)),=0A= side3_24 =3D (CGAL::Orientation)(CGAL::NTS:: = sign=0A= (-x3*y4+x2*y4=0A= +x4*y3-x2*y3=0A= +x3*y2-x4*y2));=0A= if (side1_24 !=3D side3_24) {=0A= =0A= pair1.set_linepair (p1, p2, p3, p4);=0A= pair2.set_linepair (p2, p3, p4, p1);=0A= } else {=0A= CGAL::Orientation side1_32 =3D = (CGAL::Orientation)(CGAL::NTS:: sign=0A= (-x1*y2+x3*y2=0A= +x2*y1-x3*y1=0A= +x1*y3-x2*y3));=0A= if (side1_32 !=3D side3_24) {=0A= =0A= pair1.set_linepair (p2, p1, p3, p4);=0A= pair2.set_linepair (p1, p3, p4, p2);=0A= } else {=0A= =0A= pair1.set_linepair (p1, p3, p2, p4);=0A= pair2.set_linepair (p3, p2, p4, p1);=0A= }=0A= }=0A= }=0A= =0A= void set_ellipse (const ConicCPA2& pair1,=0A= const ConicCPA2& pair2)=0A= {=0A= FT b =3D FT(2) * (pair1.r() * pair2.s() + pair1.s() * pair2.r()) = -=0A= pair1.t() * pair2.t();=0A= set_linear_combination (pair2.det()-b, pair1,=0A= pair1.det()-b, pair2);=0A= }=0A= =0A= void set (const ConicCPA2& c1,=0A= const ConicCPA2& c2,=0A= const PT& p)=0A= {=0A= set_linear_combination (c2.evaluate(p), c1, -c1.evaluate(p), c2);=0A= }=0A= =0A= CGAL::Sign vol_derivative (FT dr, FT ds, FT dt,=0A= FT du, FT dv, FT dw) const=0A= {=0A= FT a1 =3D FT(4)*r()*ds+FT(4)*dr*s()-FT(2)*t()*dt,=0A= a0 =3D FT(4)*r()*s()-t()*t(),=0A= b1 =3D (FT(4)*r()*s()-t()*t())*dw+(FT(4)*r()*ds+FT(4)*dr*s()-=0A= FT(2)*t()*dt)*w()-u()*u()*ds -=0A= FT(2)*u()*du*s()-v()*v()*dr-FT(2)*v()*dv*r()+u()*v()*dt+=0A= (u()*dv+du*v())*t(),=0A= b0 =3D (FT(4)*r()*s()-t()*t())*w()=0A= -u()*u()*s()-v()*v()*r()+u()*v()*t(),=0A= c0 =3D -FT(2)*a0*b1 + FT(3)*a1*b0;=0A= =0A= return CGAL::Sign (-CGAL::NTS:: sign (c0)*o);=0A= }=0A= =0A= double vol_minimum (FT dr, FT ds, FT dt, FT du, FT dv, FT dw) const=0A= {=0A= FT a2 =3D FT(4)*dr*ds-dt*dt,=0A= a1 =3D FT(4)*r()*ds+FT(4)*dr*s()-FT(2)*t()*dt,=0A= a0 =3D FT(4)*r()*s()-t()*t(),=0A= b3 =3D (FT(4)*dr*ds-dt*dt)*dw-du*du*ds-dv*dv*dr+du*dv*dt,=0A= b2 =3D (FT(4)*r()*ds+FT(4)*dr*s()-FT(2)*t()*dt)*dw+=0A= (FT(4)*dr*ds-dt*dt)*w()-FT(2)*u()*du*ds-du*du*s()-=0A= FT(2)*v()*dv*dr-dv*dv*r()+(u()*dv+du*v())*dt+du*dv*t(),=0A= b1 =3D (FT(4)*r()*s()-t()*t())*dw+(FT(4)*r()*ds+FT(4)*dr*s()-=0A= FT(2)*t()*dt)*w()-u()*u()*ds -=0A= FT(2)*u()*du*s()-v()*v()*dr-FT(2)*v()*dv*r()+u()*v()*dt+=0A= (u()*dv+du*v())*t(),=0A= b0 =3D (FT(4)*r()*s()-t()*t())*w()=0A= -u()*u()*s()-v()*v()*r()+u()*v()*t(),=0A= c3 =3D -FT(3)*a1*b3 + FT(2)*a2*b2,=0A= c2 =3D -FT(6)*a0*b3 - a1*b2 + FT(4)*a2*b1,=0A= c1 =3D -FT(4)*a0*b2 + a1*b1 + FT(6)*a2*b0,=0A= c0 =3D -FT(2)*a0*b1 + FT(3)*a1*b0;=0A= =0A= if ( CGAL::NTS:: is_zero( c0)) return 0;=0A= =0A= double roots[3];=0A= int nr_roots =3D solve_cubic=0A= (CGAL::to_double(c3), = CGAL::to_double(c2),=0A= CGAL::to_double(c1), = CGAL::to_double(c0),=0A= roots[0], roots[1], roots[2]);=0A= ((nr_roots > 0)?((void)0): ::CGAL::precondition_fail( = "nr_roots > 0" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onicCPA2.h",205,0));=0A= return best_value (roots, nr_roots,=0A= CGAL::to_double(a2), = CGAL::to_double(a1),=0A= CGAL::to_double(a0), = CGAL::to_double(b3),=0A= CGAL::to_double(b2), = CGAL::to_double(b1),=0A= CGAL::to_double(b0));=0A= }=0A= =0A= =0A= =0A= protected:=0A= FT det () const=0A= {=0A= return FT(4)*s()*r() - t()*t();=0A= }=0A= =0A= void analyse( )=0A= {=0A= FT d =3D det();=0A= type =3D (Conic_type)(CGAL::NTS:: sign(d));=0A= switch (type) {=0A= case HYPERBOLA:=0A= {=0A= trivial =3D empty =3D false;=0A= FT z_prime =3D d*w() - u()*u()*s() - v()*v()*r() + = u()*v()*t();=0A= o =3D (CGAL::Orientation)(CGAL::NTS:: sign (z_prime));=0A= degenerate =3D (o =3D=3D CGAL::ZERO);=0A= =0A= =0A= }=0A= break;=0A= case PARABOLA:=0A= {=0A= if (!CGAL::NTS:: is_zero (r())) {=0A= trivial =3D false;=0A= degenerate =3D (t()*u() =3D=3D FT(2)*r()*v());=0A= if (degenerate) {=0A= CGAL::Sign discr =3D (CGAL::Sign)=0A= CGAL::NTS:: = sign(u()*u()-FT(4)*r()*w());=0A= switch (discr) {=0A= case CGAL::NEGATIVE:=0A= empty =3D true;=0A= o =3D (CGAL::Orientation)(CGAL::NTS:: = sign (w()));=0A= break;=0A= case CGAL::ZERO:=0A= empty =3D false;=0A= o =3D (CGAL::Orientation)(CGAL::NTS:: = sign (r()));=0A= break;=0A= case CGAL::POSITIVE:=0A= empty =3D false;=0A= o =3D CGAL::ZERO;=0A= break;=0A= }=0A= } else {=0A= empty =3D false;=0A= o =3D (CGAL::Orientation)(-CGAL::NTS:: sign = (r()));=0A= }=0A= } else if (!CGAL::NTS:: is_zero (s())) {=0A= trivial =3D false;=0A= degenerate =3D (t()*v() =3D=3D FT(2)*s()*u());=0A= if (degenerate) {=0A= CGAL::Sign discr =3D (CGAL::Sign)=0A= CGAL::NTS:: = sign(v()*v()-FT(4)*s()*w());=0A= switch (discr) {=0A= case CGAL::NEGATIVE:=0A= empty =3D true;=0A= o =3D (CGAL::Orientation)(CGAL::NTS:: = sign (w()));=0A= break;=0A= case CGAL::ZERO:=0A= empty =3D false;=0A= o =3D (CGAL::Orientation)(CGAL::NTS:: = sign (s()));=0A= break;=0A= case CGAL::POSITIVE:=0A= empty =3D false;=0A= o =3D CGAL::ZERO;=0A= break;=0A= }=0A= } else {=0A= empty =3D false;=0A= o =3D (CGAL::Orientation)(-CGAL::NTS:: sign = (s()));=0A= }=0A= } else {=0A= degenerate =3D true;=0A= bool uv_zero =3D CGAL::NTS:: is_zero (u())=0A= && CGAL::NTS:: is_zero (v());=0A= trivial =3D uv_zero && CGAL::NTS:: is_zero (w());=0A= empty =3D uv_zero && !trivial;=0A= if (empty)=0A= o =3D (CGAL::Orientation)(CGAL::NTS:: sign = (w()));=0A= else if (trivial)=0A= o =3D CGAL::POSITIVE;=0A= else=0A= o =3D CGAL::ZERO;=0A= }=0A= =0A= =0A= }=0A= break;=0A= case ELLIPSE:=0A= {=0A= trivial =3D false;=0A= FT z_prime =3D d*w() - u()*u()*s() - v()*v()*r() + = u()*v()*t();=0A= if (CGAL::NTS:: is_positive (r())) {=0A= empty =3D CGAL::NTS:: is_positive(CGAL::NTS:: sign = (z_prime));=0A= empty ? o =3D CGAL::POSITIVE : o =3D CGAL::NEGATIVE;=0A= } else {=0A= empty =3D CGAL::NTS:: is_negative(CGAL::NTS:: sign = (z_prime));=0A= empty ? o =3D CGAL::NEGATIVE : o =3D CGAL::POSITIVE;=0A= }=0A= degenerate =3D empty || CGAL::NTS:: is_zero (z_prime);=0A= =0A= =0A= }=0A= break;=0A= }=0A= }=0A= =0A= FT evaluate (const PT& p) const=0A= {=0A= FT x, y;=0A= dao.get (p, x, y);=0A= return r()*x*x + s()*y*y + t()*x*y + u()*x + v()*y + w();=0A= }=0A= =0A= =0A= =0A= public:=0A= ConicCPA2 ( const DA& da =3D DA()) : dao( da) { }=0A= =0A= ConicCPA2 (FT r, FT s, FT t, FT u, FT v, FT w, const DA& da =3D DA())=0A= : dao( da), _r(r), _s(s), _t(t), _u(u), _v(v), _w(w)=0A= {=0A= analyse();=0A= }=0A= =0A= const DA& da() const=0A= {=0A= return dao;=0A= }=0A= =0A= FT r() const { return _r;}=0A= FT s() const { return _s;}=0A= FT t() const { return _t;}=0A= FT u() const { return _u;}=0A= FT v() const { return _v;}=0A= FT w() const { return _w;}=0A= =0A= PT center () const=0A= {=0A= ((type !=3D PARABOLA)?((void)0): ::CGAL::precondition_fail( = "type !=3D PARABOLA" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onicCPA2.h",354,0));=0A= PT p;=0A= FT two =3D FT(2);=0A= FT div =3D -det();=0A= dao.set( p, (two*s()*u() - t()*v()) / div,=0A= (two*r()*v() - t()*u()) / div);=0A= return p;=0A= }=0A= =0A= Conic_type conic_type () const=0A= {=0A= return type;=0A= }=0A= =0A= bool is_hyperbola () const=0A= {=0A= return (type =3D=3D HYPERBOLA);=0A= }=0A= =0A= bool is_parabola () const=0A= {=0A= return (type =3D=3D PARABOLA);=0A= }=0A= =0A= bool is_ellipse () const=0A= {=0A= return (type =3D=3D ELLIPSE);=0A= }=0A= =0A= bool is_empty () const=0A= {=0A= return empty;=0A= }=0A= =0A= bool is_trivial () const=0A= {=0A= return trivial;=0A= }=0A= =0A= bool is_degenerate () const=0A= {=0A= return degenerate;=0A= }=0A= =0A= CGAL::Orientation orientation () const=0A= {=0A= return o;=0A= }=0A= =0A= CGAL::Oriented_side oriented_side (const PT& p) const=0A= {=0A= return (CGAL::Oriented_side)(CGAL::NTS:: sign (evaluate (p)));=0A= }=0A= =0A= bool has_on_positive_side (const PT& p) const=0A= {=0A= return (CGAL::NTS:: is_positive (evaluate(p)));=0A= }=0A= =0A= bool has_on_negative_side (const PT& p) const=0A= {=0A= return (CGAL::NTS:: is_negative (evaluate(p)));=0A= }=0A= =0A= bool has_on_boundary (const PT& p) const=0A= {=0A= return (CGAL::NTS:: is_zero (evaluate(p)));=0A= }=0A= =0A= bool has_on (const PT& p) const=0A= {=0A= return (CGAL::NTS:: is_zero (evaluate(p)));=0A= }=0A= =0A= =0A= Convex_side convex_side (const PT& p) const=0A= {=0A= switch (o) {=0A= case CGAL::POSITIVE:=0A= return (Convex_side)( CGAL::NTS:: sign (evaluate (p)));=0A= case CGAL::NEGATIVE:=0A= return (Convex_side)(-CGAL::NTS:: sign (evaluate (p)));=0A= case CGAL::ZERO:=0A= return (Convex_side)( CGAL::NTS:: sign (CGAL::NTS:: abs = (evaluate(p))));=0A= }=0A= =0A= return( Convex_side( 0));=0A= }=0A= =0A= bool has_on_convex_side (const PT& p) const=0A= {=0A= return (convex_side (p) =3D=3D ON_CONVEX_SIDE);=0A= }=0A= =0A= bool has_on_nonconvex_side (const PT& p) const=0A= {=0A= return (convex_side (p) =3D=3D ON_NONCONVEX_SIDE);=0A= }=0A= =0A= bool operator =3D=3D ( const ConicCPA2<_PT,_DA>& c) const=0A= {=0A= =0A= FT factor1;=0A= if ( ! CGAL::NTS:: is_zero( r())) factor1 =3D r(); else=0A= if ( ! CGAL::NTS:: is_zero( s())) factor1 =3D s(); else=0A= if ( ! CGAL::NTS:: is_zero( t())) factor1 =3D t(); else=0A= if ( ! CGAL::NTS:: is_zero( u())) factor1 =3D u(); else=0A= if ( ! CGAL::NTS:: is_zero( v())) factor1 =3D v(); else=0A= if ( ! CGAL::NTS:: is_zero( w())) factor1 =3D w(); else=0A= ((false)?((void)0): ::CGAL::assertion_fail( "false" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onicCPA2.h",463,"all coefficients zero"));=0A= =0A= =0A= FT factor2;=0A= if ( ! CGAL::NTS:: is_zero( c.r())) factor2 =3D c.r(); else=0A= if ( ! CGAL::NTS:: is_zero( c.s())) factor2 =3D c.s(); else=0A= if ( ! CGAL::NTS:: is_zero( c.t())) factor2 =3D c.t(); else=0A= if ( ! CGAL::NTS:: is_zero( c.u())) factor2 =3D c.u(); else=0A= if ( ! CGAL::NTS:: is_zero( c.v())) factor2 =3D c.v(); else=0A= if ( ! CGAL::NTS:: is_zero( c.w())) factor2 =3D c.w(); else=0A= ((false)?((void)0): ::CGAL::assertion_fail( "false" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onicCPA2.h",473,"all coefficients zero"));=0A= =0A= return( ( r()*factor2 =3D=3D c.r()*factor1)=0A= && ( s()*factor2 =3D=3D c.s()*factor1)=0A= && ( t()*factor2 =3D=3D c.t()*factor1)=0A= && ( u()*factor2 =3D=3D c.u()*factor1)=0A= && ( v()*factor2 =3D=3D c.v()*factor1)=0A= && ( w()*factor2 =3D=3D c.w()*factor1));=0A= }=0A= =0A= void set (FT r_, FT s_, FT t_, FT u_, FT v_, FT w_)=0A= {=0A= _r =3D r_; _s =3D s_; _t =3D t_; _u =3D u_; _v =3D v_; _w =3D w_;=0A= analyse();=0A= }=0A= =0A= void set_opposite ()=0A= {=0A= _r =3D -r(); _s =3D -s(); _t =3D -t(); _u =3D -u(); _v =3D -v(); = _w =3D -w();=0A= o =3D CGAL::opposite(orientation());=0A= }=0A= =0A= void set_linepair (const PT& p1, const PT& p2, const PT& p3, const = PT& p4)=0A= {=0A= FT x1, y1, x2, y2, x3, y3, x4, y4;=0A= dao.get (p1, x1, y1);=0A= dao.get (p2, x2, y2);=0A= dao.get (p3, x3, y3);=0A= dao.get (p4, x4, y4);=0A= =0A= =0A= ((((x1 !=3D x2) || (y1 !=3D y2)) && ((x3 !=3D x4) || (y3 !=3D = y4)))?((void)0): ::CGAL::precondition_fail( "((x1 !=3D x2) || (y1 !=3D = y2)) && ((x3 !=3D x4) || (y3 !=3D y4))" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onicCPA2.h",506,0));=0A= =0A= =0A= =0A= FT x2_x1 =3D x2-x1;=0A= FT x4_x3 =3D x4-x3;=0A= FT y1_y2 =3D y1-y2;=0A= FT y3_y4 =3D y3-y4;=0A= FT x1y2_y1x2 =3D x1*y2-y1*x2;=0A= FT x3y4_y3x4 =3D x3*y4-y3*x4;=0A= =0A= _r =3D y1_y2 * y3_y4;=0A= _s =3D x2_x1 * x4_x3;=0A= _t =3D x2_x1 * y3_y4 + y1_y2 * x4_x3;=0A= _u =3D x1y2_y1x2 * y3_y4 + y1_y2 * x3y4_y3x4;=0A= _v =3D x1y2_y1x2 * x4_x3 + x2_x1 * x3y4_y3x4;=0A= _w =3D x1y2_y1x2 * x3y4_y3x4;=0A= =0A= analyse();=0A= }=0A= =0A= void set_ellipse (const PT& p1, const PT& p2, const PT& p3)=0A= {=0A= FT x1, y1, x2, y2, x3, y3;=0A= dao.get (p1, x1, y1);=0A= dao.get (p2, x2, y2);=0A= dao.get (p3, x3, y3);=0A= =0A= =0A= FT det =3D -x3*y2+x1*y2+x2*y3-x1*y3+x3*y1-x2*y1;=0A= ((!CGAL::NTS:: is_zero (det))?((void)0): = ::CGAL::precondition_fail( "!CGAL_NTS is_zero (det)" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onicCPA2.h",534,0));=0A= =0A= FT x1x1 =3D x1*x1, y1y1 =3D y1*y1,=0A= x2x2 =3D x2*x2, y2y2 =3D y2*y2,=0A= x3x3 =3D x3*x3, y3y3 =3D y3*y3,=0A= two =3D FT(2);=0A= =0A= _r =3D y1y1 - y1*y2 - y1*y3 +=0A= y2y2 - y2*y3 + y3y3;=0A= =0A= _s =3D x1x1 - x1*x2 - x1*x3 +=0A= x2x2 - x2*x3 + x3x3;=0A= =0A= _t =3D -two*x1*y1 + x1*y2 + x1*y3 +=0A= y1*x2 -two*x2*y2 + x2*y3 +=0A= y1*x3 + y2*x3 -two*x3*y3;=0A= =0A= _u =3D -(y2y2*x3 - x2*y2*y3 - y2*x3*y3 +=0A= x1*y3y3 + x2*y3y3 + y1y1*x2 +=0A= y1y1*x3 - x1*y1*y2 - y1*x2*y2 -=0A= x1*y1*y3 - y1*x3*y3 + x1*y2y2);=0A= =0A= _v =3D -(x2x2*y3 - x2*y2*x3 - x2*x3*y3 +=0A= y1*x3x3 + y2*x3x3 + x1x1*y2 +=0A= x1x1*y3 - x1*y1*x2 - x1*x2*y2 -=0A= x1*y1*x3 - x1*x3*y3 + y1*x2x2);=0A= =0A= _w =3D y1y1*x2*x3 - x1*y1*y2*x3 - y1*x2*y2*x3 +=0A= y1*y2*x3x3 - x1*y1*x2*y3 + y1*x2x2*y3 -=0A= y1*x2*x3*y3 + x1*y2y2*x3 + x1x1*y2*y3 -=0A= x1*x2*y2*y3 - x1*y2*x3*y3 + x1*x2*y3y3;=0A= =0A= type =3D ELLIPSE;=0A= degenerate =3D trivial =3D empty =3D false;=0A= o =3D CGAL::NEGATIVE;=0A= if (CGAL::NTS:: is_positive (det)) set_opposite();=0A= }=0A= =0A= void set_ellipse (const PT& p1, const PT& p2,=0A= const PT& p3, const PT& p4,=0A= CGAL::Orientation _o =3D POSITIVE)=0A= {=0A= ConicCPA2 pair1, pair2;=0A= set_two_linepairs (p1, p2, p3, p4, pair1, pair2);=0A= set_ellipse (pair1, pair2);=0A= analyse();=0A= if (o !=3D _o) set_opposite();=0A= }=0A= =0A= void set (const PT& p1, const PT& p2, const PT& p3, const PT& p4,=0A= const PT& p5, CGAL::Orientation _o =3D POSITIVE)=0A= {=0A= ConicCPA2 c1; c1.set_linepair (p1, p2, p3, p4);=0A= ConicCPA2 c2; c2.set_linepair (p1, p4, p2, p3);=0A= set_linear_combination (c2.evaluate (p5), c1,=0A= -c1.evaluate (p5), c2);=0A= analyse();=0A= =0A= ((!is_trivial())?((void)0): ::CGAL::precondition_fail( = "!is_trivial()" = ,"/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/C= onicCPA2.h",592,0));=0A= if (o !=3D _o) set_opposite();=0A= }=0A= =0A= =0A= =0A= };=0A= =0A= =0A= template< class _PT, class _DA>=0A= std::ostream& operator << ( std::ostream& os, const ConicCPA2<_PT,_DA>& = c)=0A= {=0A= return( os << c.r() << ' ' << c.s() << ' ' << c.t() << ' '=0A= << c.u() << ' ' << c.v() << ' ' << c.w());=0A= }=0A= =0A= template< class _PT, class _DA>=0A= std::istream& operator >> ( std::istream& is, ConicCPA2<_PT,_DA>& c)=0A= {=0A= typedef ConicCPA2<_PT,_DA> Conic;=0A= typedef typename _DA::FT FT;=0A= =0A= FT r, s, t, u, v, w;=0A= is >> r >> s >> t >> u >> v >> w;=0A= c.set( r, s, t, u, v, w);=0A= =0A= return( is);=0A= }=0A= =0A= =0A= }=0A= # 74 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/global_operators_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/global_operators_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= typename R::Point_2=0A= operator+(const PointC2 &p, const VectorC2 &v)=0A= {=0A= return PointC2(p.x() + v.x(), p.y() + v.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Point_2=0A= operator-(const PointC2 &p, const VectorC2 &v)=0A= {=0A= return PointC2(p.x() - v.x(), p.y() - v.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Point_2=0A= operator+(const Origin &, const VectorC2 &v)=0A= {=0A= return PointC2(v);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Point_2=0A= operator-(const Origin &, const VectorC2 &v)=0A= {=0A= return PointC2(-v);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_2=0A= operator-(const PointC2 &p, const PointC2 &q)=0A= {=0A= return VectorC2(p.x() - q.x(), p.y() - q.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_2=0A= operator-(const PointC2 &p, const Origin &)=0A= {=0A= return VectorC2(p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_2=0A= operator-(const Origin &, const PointC2 &p)=0A= {=0A= return VectorC2(-p.x(), -p.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_2=0A= operator*(const typename R::FT &c, const VectorC2 &w)=0A= {=0A= return VectorC2(c * w.x(), c * w.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_2=0A= operator*(const VectorC2 &w, const typename R::FT &c)=0A= {=0A= return VectorC2(c * w.x(), c * w.y());=0A= }=0A= =0A= }=0A= # 76 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_directions_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_directions_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= bool=0A= equal_direction(const DirectionC2 &d1,=0A= const DirectionC2 &d2)=0A= {=0A= return equal_directionC2(d1.dx(), d1.dy(), d2.dx(), d2.dy());=0A= }=0A= =0A= template < class R >=0A= =0A= Comparison_result=0A= compare_angle_with_x_axis(const DirectionC2 &d1,=0A= const DirectionC2 &d2)=0A= {=0A= return compare_angle_with_x_axisC2(d1.dx(), d1.dy(), d2.dx(), d2.dy());=0A= }=0A= =0A= }=0A= # 78 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_lines_2.h" 1=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_lines_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= bool=0A= equal_line(const LineC2 &l1, const LineC2 &l2)=0A= {=0A= return equal_lineC2(l1.a(), l1.b(), l1.c(), l2.a(), l2.b(), l2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x(const PointC2 &p,=0A= const LineC2 &l,=0A= const LineC2 &h)=0A= {=0A= return compare_xC2(p.x(), l.a(), l.b(), l.c(), h.a(), h.b(), h.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x(const LineC2 &l,=0A= const LineC2 &h1,=0A= const LineC2 &h2)=0A= {=0A= return compare_xC2(l.a(), l.b(), l.c(), h1.a(), h1.b(), h1.c(),=0A= h2.a(), h2.b(), h2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x(const LineC2 &l1,=0A= const LineC2 &h1,=0A= const LineC2 &l2,=0A= const LineC2 &h2)=0A= {=0A= return compare_xC2(l1.a(), l1.b(), l1.c(), h1.a(), h1.b(), h1.c(),=0A= l2.a(), l2.b(), l2.c(), h2.a(), h2.b(), h2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y(const PointC2 &p,=0A= const LineC2 &l1,=0A= const LineC2 &l2)=0A= {=0A= return compare_xC2(p.y(), l1.b(), l1.a(), l1.c(), l2.b(), l2.a(), = l2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y(const LineC2 &l1,=0A= const LineC2 &l2,=0A= const LineC2 &h1,=0A= const LineC2 &h2)=0A= {=0A= return compare_xC2(l1.b(), l1.a(), l1.c(), l2.b(), l2.a(), l2.c(),=0A= h1.b(), h1.a(), h1.c(), h2.b(), h2.a(), h2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y(const LineC2 &l,=0A= const LineC2 &h1,=0A= const LineC2 &h2)=0A= {=0A= return compare_xC2(l.b(), l.a(), l.c(), h1.b(), h1.a(), h1.c(),=0A= l.b(), l.a(), l.c(), h2.b(), h2.a(), h2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y_at_x(const PointC2 &p, const LineC2 &h)=0A= {=0A= return compare_y_at_xC2(p.x(), p.y(), h.a(), h.b(), h.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y_at_x(const PointC2 &p,=0A= const LineC2 &h1,=0A= const LineC2 &h2)=0A= {=0A= return compare_y_at_xC2(p.x(), h1.a(), h1.b(), h1.c(),=0A= h2.a(), h2.b(), h2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y_at_x(const LineC2 &l1,=0A= const LineC2 &l2,=0A= const LineC2 &h)=0A= {=0A= return compare_y_at_xC2(l1.a(), l1.b(), l1.c(), l2.a(), l2.b(), l2.c(),=0A= h.a(), h.b(), h.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y_at_x(const LineC2 &l1,=0A= const LineC2 &l2,=0A= const LineC2 &h1,=0A= const LineC2 &h2)=0A= {=0A= return compare_y_at_xC2(l1.a(), l1.b(), l1.c(), l2.a(), l2.b(), l2.c(),=0A= h1.a(), h1.b(), h1.c(), h2.a(), h2.b(), = h2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x_at_y(const PointC2 &p, const LineC2 &h)=0A= {=0A= return compare_y_at_xC2(p.y(), p.x(), h.b(), h.a(), h.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x_at_y(const PointC2 &p,=0A= const LineC2 &h1,=0A= const LineC2 &h2)=0A= {=0A= return compare_y_at_xC2(p.y(), h1.b(), h1.a(), h1.c(),=0A= h2.b(), h2.a(), h2.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x_at_y(const LineC2 &l1,=0A= const LineC2 &l2,=0A= const LineC2 &h)=0A= {=0A= return compare_y_at_xC2(l1.b(), l1.a(), l1.c(), l2.b(), l2.a(), l2.c(),=0A= h.b(), h.a(), h.c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x_at_y(const LineC2 &l1,=0A= const LineC2 &l2,=0A= const LineC2 &h1,=0A= const LineC2 &h2)=0A= {=0A= return compare_y_at_xC2(l1.b(), l1.a(), l1.c(), l2.b(), l2.a(), l2.c(),=0A= h1.b(), h1.a(), h1.c(), h2.b(), h2.a(), = h2.c());=0A= }=0A= =0A= template < class R >=0A= Comparison_result=0A= compare_slopes(const LineC2 &l1,=0A= const LineC2 &l2)=0A= {=0A= return compare_slopesC2(l1.a(), l1.b(), l2.a(), l2.b());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Oriented_side=0A= side_of_oriented_line(const LineC2 &l,=0A= const PointC2 &p)=0A= {=0A= return side_of_oriented_lineC2(l.a(), l.b(), l.c(), p.x(), p.y());=0A= }=0A= =0A= }=0A= # 79 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_segments_2.h" 1=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_segments_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= Comparison_result=0A= compare_slopes(const SegmentC2 &s1,=0A= const SegmentC2 &s2)=0A= {=0A= return compare_slopesC2(s1.source().x(), s1.source().y(),=0A= s1.target().x(), s1.target().y(),=0A= s2.source().x(), s2.source().y(),=0A= s2.target().x(), s2.target().y());=0A= }=0A= =0A= template < class R >=0A= Comparison_result=0A= compare_y_at_x(const PointC2 &p,=0A= const SegmentC2 &s)=0A= {=0A= return compare_y_at_xC2(p.x(), p.y(),=0A= s.source().x(), s.source().y(),=0A= s.target().x(), s.target().y());=0A= }=0A= =0A= template < class R >=0A= Comparison_result=0A= compare_y_at_x(const PointC2 &p,=0A= const SegmentC2 &s1,=0A= const SegmentC2 &s2)=0A= {=0A= return compare_y_at_x_segment_C2(p.x(),=0A= s1.source().x(), s1.source().y(),=0A= s1.target().x(), s1.target().y(),=0A= s2.source().x(), s2.source().y(),=0A= s2.target().x(), s2.target().y());=0A= }=0A= =0A= }=0A= # 80 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/distance_predicates_2.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/distance_predicates_2.h"=0A= namespace CGAL {=0A= =0A= template =0A= inline=0A= Comparison_result=0A= compare_distance_to_point(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r)=0A= {=0A= return cmp_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_larger_distance_to_point(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r)=0A= {=0A= return has_larger_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), = r.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_smaller_distance_to_point(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r)=0A= {=0A= return has_smaller_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), = r.y());=0A= }=0A= =0A= template =0A= inline=0A= Comparison_result=0A= compare_signed_distance_to_line(const LineC2& l,=0A= const PointC2& p,=0A= const PointC2& q)=0A= {=0A= return cmp_signed_dist_to_directionC2(l.a(), l.b(), p.x(), p.y(),=0A= q.x(), q.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_larger_signed_distance_to_line(const LineC2& l,=0A= const PointC2& p,=0A= const PointC2& q)=0A= {=0A= return has_larger_signed_dist_to_directionC2(l.a(), l.b(), p.x(), = p.y(),=0A= q.x(), q.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_smaller_signed_distance_to_line(const LineC2& l,=0A= const PointC2& p,=0A= const PointC2& q)=0A= {=0A= return has_smaller_signed_dist_to_directionC2(l.a(), l.b(), p.x(), = p.y(),=0A= q.x(), q.y());=0A= }=0A= =0A= template =0A= inline=0A= Comparison_result=0A= compare_signed_distance_to_line(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r,=0A= const PointC2& s)=0A= {=0A= return cmp_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A= r.x(), r.y(), s.x(), s.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_smaller_signed_distance_to_line(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r,=0A= const PointC2& s)=0A= {=0A= return has_smaller_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A= r.x(), r.y(), s.x(), s.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_larger_signed_distance_to_line(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r,=0A= const PointC2& s)=0A= {=0A= return has_larger_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A= r.x(), r.y(), s.x(), s.y());=0A= }=0A= =0A= =0A= template =0A= inline=0A= Comparison_result=0A= cmp_dist_to_point(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r)=0A= {=0A= return cmp_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_larger_dist_to_point(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r)=0A= {=0A= return has_larger_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), = r.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_smaller_dist_to_point(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r)=0A= {=0A= return has_smaller_dist_to_pointC2(p.x(), p.y(), q.x(), q.y(), r.x(), = r.y());=0A= }=0A= =0A= template =0A= inline=0A= Comparison_result=0A= cmp_signed_dist_to_line(const LineC2& l,=0A= const PointC2& p,=0A= const PointC2& q)=0A= {=0A= return cmp_signed_dist_to_directionC2(l.a(), l.b(), p.x(), p.y(),=0A= q.x(), q.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_larger_signed_dist_to_line(const LineC2& l,=0A= const PointC2& p,=0A= const PointC2& q)=0A= {=0A= return has_larger_signed_dist_to_directionC2(l.a(), l.b(), p.x(), = p.y(),=0A= q.x(), q.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_smaller_signed_dist_to_line(const LineC2& l,=0A= const PointC2& p,=0A= const PointC2& q)=0A= {=0A= return has_smaller_signed_dist_to_directionC2(l.a(), l.b(), p.x(), = p.y(),=0A= q.x(), q.y());=0A= }=0A= =0A= template =0A= inline=0A= Comparison_result=0A= cmp_signed_dist_to_line(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r,=0A= const PointC2& s)=0A= {=0A= return cmp_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A= r.x(), r.y(), s.x(), s.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_smaller_signed_dist_to_line(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r,=0A= const PointC2& s)=0A= {=0A= return has_smaller_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A= r.x(), r.y(), s.x(), s.y());=0A= }=0A= =0A= template =0A= inline=0A= bool=0A= has_larger_signed_dist_to_line(const PointC2& p,=0A= const PointC2& q,=0A= const PointC2& r,=0A= const PointC2& s)=0A= {=0A= return has_larger_signed_dist_to_lineC2(p.x(), p.y(), q.x(), q.y(),=0A= r.x(), r.y(), s.x(), s.y());=0A= }=0A= =0A= =0A= }=0A= # 81 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_2.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/point_constructions_2.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/point_constructions_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= PointC2=0A= midpoint(const PointC2 &p,=0A= const PointC2 &q )=0A= {=0A= typename R::FT x, y;=0A= midpointC2(p.x(), p.y(), q.x(), q.y(), x, y);=0A= return PointC2(x, y);=0A= }=0A= =0A= template < class R >=0A= inline=0A= PointC2=0A= circumcenter(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= typename R::FT x, y;=0A= circumcenterC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y(), x, y);=0A= return PointC2(x, y);=0A= }=0A= =0A= template < class R >=0A= inline=0A= PointC2=0A= centroid(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= typename R::FT x, y;=0A= centroidC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y(), x, y);=0A= return PointC2(x, y);=0A= }=0A= =0A= template < class R >=0A= inline=0A= PointC2=0A= centroid(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r,=0A= const PointC2 &s)=0A= {=0A= typename R::FT x, y;=0A= centroidC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y(), s.x(), s.y(), x, = y);=0A= return PointC2(x, y);=0A= }=0A= =0A= template < class R >=0A= inline=0A= PointC2=0A= line_get_point(const LineC2 &l, int i)=0A= {=0A= typename R::FT x, y;=0A= line_get_pointC2(l.a(), l.b(), l.c(), i, x, y);=0A= return PointC2(x, y);=0A= }=0A= =0A= template < class R >=0A= inline=0A= PointC2=0A= line_project_point(const LineC2 &l,=0A= const PointC2 &p)=0A= {=0A= typename R::FT x, y;=0A= line_project_pointC2(l.a(), l.b(), l.c(), p.x(), p.y(), x, y);=0A= return PointC2(x, y);=0A= }=0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_2.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/line_constructions_2.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/line_constructions_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= LineC2=0A= line_from_points(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= typename R::FT a, b, c;=0A= line_from_pointsC2(p.x(), p.y(), q.x(), q.y(), a, b, c);=0A= return LineC2(a, b, c);=0A= }=0A= =0A= template < class R >=0A= inline=0A= LineC2=0A= line_from_point_direction(const PointC2 &p,=0A= const DirectionC2 &d)=0A= {=0A= typename R::FT a, b, c;=0A= line_from_point_directionC2(p.x(), p.y(), d.dx(), d.dy(), a, b, c);=0A= return LineC2(a, b, c);=0A= }=0A= =0A= template < class R >=0A= inline=0A= LineC2=0A= bisector(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= typename R::FT a, b, c;=0A= bisector_of_pointsC2(p.x(), p.y(), q.x(), q.y(), a, b, c);=0A= return LineC2(a, b, c);=0A= }=0A= =0A= template < class R >=0A= inline=0A= LineC2=0A= perpendicular_through_point(const LineC2 &l,=0A= const PointC2 &p)=0A= {=0A= typename R::FT a, b, c;=0A= perpendicular_through_pointC2(l.a(), l.b(), p.x(), p.y(), a, b, c);=0A= return LineC2(a, b, c);=0A= }=0A= =0A= }=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_2.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/ft_constructions_2.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/ft_constructions_2.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= squared_distance(const PointC2 &p,=0A= const PointC2 &q)=0A= {=0A= return squared_distanceC2(p.x(), p.y(), q.x(), q.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= scaled_distance_to_line(const LineC2 &l,=0A= const PointC2 &p)=0A= {=0A= return scaled_distance_to_lineC2(l.a(), l.b(), l.c(), p.x(), p.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= scaled_distance_to_line(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return scaled_distance_to_lineC2(p.x(), p.y(), q.x(), q.y(), r.x(), = r.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= line_y_at_x(const LineC2 &l, const typename R::FT &x)=0A= {=0A= return line_y_at_xC2(l.a(), l.b(), l.c(), x);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= line_x_at_y(const LineC2 &l, const typename R::FT &y)=0A= {=0A= return line_y_at_xC2(l.b(), l.a(), l.c(), y);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= squared_radius(const PointC2 &p,=0A= const PointC2 &q,=0A= const PointC2 &r)=0A= {=0A= return squared_radiusC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());=0A= }=0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_2.h" 2=0A= # 83 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel/function_objects.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel/function_objects.h"=0A= namespace CGAL {=0A= namespace CGALi {=0A= =0A= template =0A= class Construct=0A= {=0A= public:=0A= typedef ToBeConstructed result_type;=0A= =0A= ToBeConstructed=0A= operator()() const=0A= { return ToBeConstructed(); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A1& a1) const=0A= { return ToBeConstructed(a1); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A1& a1, const A2& a2) const=0A= { return ToBeConstructed(a1,a2); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A1& a1, const A2& a2, const A3& a3) const=0A= { return ToBeConstructed(a1,a2,a3); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A1& a1, const A2& a2, const A3& a3, const A4& a4) = const=0A= { return ToBeConstructed(a1,a2,a3,a4); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A1& a1, const A2& a2, const A3& a3, const A4& a4,=0A= const A5& a5) const=0A= { return ToBeConstructed(a1,a2,a3,a4,a5); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A& a1, const A& a2, const A& a3,=0A= const A& a4, const A& a5, const A& a6 ) const=0A= { return ToBeConstructed(a1,a2,a3,a4,a5,a6); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A& a1, const A& a2, const A& a3,=0A= const A& a4, const A& a5, const A& a6,=0A= const A& a7 ) const=0A= { return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A& a1, const A& a2, const A& a3,=0A= const A& a4, const A& a5, const A& a6,=0A= const A& a7, const A& a8, const A& a9) const=0A= { return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A& a1, const A& a2, const A& a3,=0A= const A& a4, const A& a5, const A& a6,=0A= const A& a7, const A& a8, const A& a9,=0A= const A& a10) const=0A= { return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A& a1, const A& a2, const A& a3,=0A= const A& a4, const A& a5, const A& a6,=0A= const A& a7, const A& a8, const A& a9,=0A= const A& a10,const A& a11,const A& a12) const=0A= { return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); }=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const A& a1, const A& a2, const A& a3,=0A= const A& a4, const A& a5, const A& a6,=0A= const A& a7, const A& a8, const A& a9,=0A= const A& a10,const A& a11,const A& a12,=0A= const A& a13) const=0A= { return = ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); }=0A= =0A= };=0A= =0A= template =0A= class Call_make_object_to_get=0A= {=0A= public:=0A= typedef ToBeConstructed result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ToBeConstructed=0A= operator()( const Cls& c) const=0A= { return make_object(c); }=0A= };=0A= =0A= template =0A= class Construct_scaled_vector=0A= {=0A= public:=0A= typedef Vector result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Vector=0A= operator()( const Vector& v, const NT& scale) const=0A= { return v * scale; }=0A= };=0A= =0A= template =0A= class Construct_translated_point=0A= {=0A= public:=0A= typedef Point result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Point=0A= operator()( const Point& p, const Vector& v) const=0A= { return p + v; }=0A= };=0A= =0A= template =0A= class Construct_projected_xy_point=0A= {=0A= public:=0A= typedef Point_2 result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Point_2=0A= operator()( const Plane_3& h, const Point_3& p) const=0A= { return h.to_2d(p); }=0A= };=0A= =0A= template =0A= class Call_point_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.point(); }=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c, int i) const=0A= { return c.point(i); }=0A= };=0A= =0A= template =0A= class Call_second_point_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.second_point(); }=0A= };=0A= =0A= template =0A= class Call_perpendicular_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= =0A= =0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.perpendicular(); }=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c, const A1& a1) const=0A= { return c.perpendicular(a1); }=0A= };=0A= =0A= template =0A= class Call_perpendicular_plane_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c, const A1& a1) const=0A= { return c.perpendicular_plane(a1); }=0A= };=0A= =0A= template =0A= class Call_perpendicular_line_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c, const A1& a1) const=0A= { return c.perpendicular_line(a1); }=0A= };=0A= =0A= template =0A= class Call_orthogonal_vector_to_get=0A= {=0A= public:=0A= typedef Vector result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= Vector=0A= operator()( const Cls& c ) const=0A= { return c.orthogonal_vector(); }=0A= };=0A= =0A= template =0A= class Call_projection_to_get=0A= {=0A= public:=0A= typedef Point result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Point=0A= operator()( const Cls& c, const Point& p ) const=0A= { return c.projection(p); }=0A= };=0A= =0A= template =0A= class Call_squared_area_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c ) const=0A= { return c.squared_area(); }=0A= };=0A= =0A= template =0A= class Call_area_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c ) const=0A= { return c.area(); }=0A= };=0A= =0A= template =0A= class Call_volume_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c ) const=0A= { return c.volume(); }=0A= };=0A= =0A= template =0A= class p_Midpoint=0A= {=0A= public:=0A= typedef Point result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= Point=0A= operator()(const Point& p, const Point& q) const=0A= { return midpoint(p,q); }=0A= };=0A= =0A= template =0A= class p_Center=0A= {=0A= public:=0A= typedef Point result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= Point=0A= operator()(const C&c) const=0A= { return c.center(); }=0A= };=0A= =0A= template =0A= class p_Circumcenter=0A= {=0A= public:=0A= typedef Point result_type;=0A= =0A= Point=0A= operator()(const Point& p, const Point& q, const Point& r) const=0A= { return circumcenter(p,q,r); }=0A= =0A= Point=0A= operator()(const Point& p, const Point& q,=0A= const Point& r, const Point& s) const=0A= { return circumcenter(p,q,r,s); }=0A= };=0A= =0A= template =0A= class p_Centroid=0A= {=0A= public:=0A= typedef Point result_type;=0A= =0A= Point=0A= operator()(const Point& p, const Point& q, const Point& r) const=0A= { return centroid(p,q,r); }=0A= =0A= Point=0A= operator()(const Point& p, const Point& q,=0A= const Point& r, const Point& s) const=0A= { return centroid(p,q,r,s); }=0A= };=0A= =0A= template =0A= class pl_Bisector=0A= {=0A= public:=0A= typedef Line result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= Line=0A= operator()(const Point& p, const Point& q) const=0A= { return bisector(p,q); }=0A= };=0A= =0A= template =0A= class v_Opposite=0A= {=0A= public:=0A= typedef Vector result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= Vector=0A= operator()(const Vector& v) const=0A= { return -v; }=0A= };=0A= =0A= template =0A= class v_Cross_product=0A= {=0A= public:=0A= typedef Vector result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= Vector=0A= operator()(const Vector& v, const Vector& w) const=0A= { return cross_product(v, w); }=0A= };=0A= =0A= template =0A= class v_Base=0A= {=0A= public:=0A= typedef Vector result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Vector=0A= operator()( const Plane& pl, int index )=0A= {=0A= if (index =3D=3D 1)=0A= return pl.base1();=0A= else=0A= return pl.base2();=0A= }=0A= };=0A= =0A= class Intersect=0A= {=0A= public:=0A= typedef CGAL::Object result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= CGAL::Object=0A= operator()(const T1& t1, const T2& t2) const=0A= { return intersection( t1, t2); }=0A= };=0A= =0A= class Do_intersect=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T1& t1, const T2& t2) const=0A= { return do_intersect( t1, t2); }=0A= };=0A= =0A= class Assign=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()(T1& t1, const CGAL::Object& o) const=0A= { return assign( t1, o); }=0A= };=0A= =0A= template =0A= class Call_y_at_x_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c, const ReturnType& x) const=0A= { return c.y_at_x(x); }=0A= };=0A= =0A= template =0A= class Call_x_at_y_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c, const ReturnType& x) const=0A= { return c.x_at_y(x); }=0A= };=0A= =0A= template =0A= class Call_squared_length_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.squared_length(); }=0A= };=0A= =0A= template =0A= class Call_squared_distance=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const T1& t1, const T2& t2) const=0A= { return squared_distance(t1, t2); }=0A= };=0A= =0A= template =0A= class Call_squared_radius=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= =0A= template =0A= ReturnType=0A= operator()( const T1& t1) const=0A= { return t1.squared_radius(); }=0A= =0A= template =0A= ReturnType=0A= operator()( const T1& t1, const T1& t2, const T1& t3) const=0A= { return squared_radius(t1, t2, t3); }=0A= =0A= template =0A= ReturnType=0A= operator()( const T1& t1, const T1& t2, const T1& t3, const T1& t4) = const=0A= { return squared_radius(t1, t2, t3, t4); }=0A= };=0A= =0A= class p_Angle=0A= {=0A= public:=0A= typedef Angle result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= template =0A= Angle=0A= operator()(const T& p, const T& q, const T& r) const=0A= { return angle(p, q, r); }=0A= };=0A= =0A= template =0A= class p_Lifted=0A= {=0A= public:=0A= typedef Point_3 result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Point_3=0A= operator()(const Plane& p, const Point_2& pt) const=0A= { return p.to_3d(pt); }=0A= };=0A= =0A= class Counterclockwise_in_between=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T& p, const T& q, const T& r) const=0A= { return p.counterclockwise_in_between(q,r); }=0A= };=0A= =0A= class Collinear=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T& p, const T& q, const T& r) const=0A= { return collinear(p,q,r); }=0A= };=0A= =0A= class Coplanar=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 4 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T& p, const T& q, const T& r, const T& s) const=0A= { return coplanar(p,q,r,s); }=0A= };=0A= =0A= class Coplanar_orientation=0A= {=0A= public:=0A= typedef Orientation result_type;=0A= =0A= template =0A= Orientation=0A= operator()(const P& p, const P& q, const P& r) const=0A= { return coplanar_orientation(p,q,r); }=0A= =0A= template =0A= Orientation=0A= operator()(const P& p, const P& q, const P& r, const P& t) const=0A= { return coplanar_orientation(p,q,r,t); }=0A= };=0A= =0A= class Coplanar_side_of_bounded_circle=0A= {=0A= public:=0A= typedef Bounded_side result_type;=0A= typedef Arity_tag< 4 > Arity;=0A= =0A= template =0A= Bounded_side=0A= operator()(const P& p, const P& q, const P& r, const P& t) const=0A= { return coplanar_side_of_bounded_circle(p,q,r,t); }=0A= };=0A= =0A= class Side_of_oriented_circle=0A= {=0A= public:=0A= typedef Oriented_side result_type;=0A= typedef Arity_tag< 4 > Arity;=0A= =0A= template =0A= Oriented_side=0A= operator()(const T& p, const T& q, const T& r, const T& t) const=0A= { return side_of_oriented_circle(p,q,r,t); }=0A= };=0A= =0A= class Side_of_bounded_circle=0A= {=0A= public:=0A= typedef Bounded_side result_type;=0A= =0A= template =0A= Bounded_side=0A= operator()(const T& p, const T& q, const T& t) const=0A= { return side_of_bounded_circle(p,q,t); }=0A= =0A= template =0A= Bounded_side=0A= operator()(const T& p, const T& q, const T& r, const T& t) const=0A= { return side_of_bounded_circle(p,q,r,t); }=0A= };=0A= =0A= class Side_of_oriented_sphere=0A= {=0A= public:=0A= typedef Oriented_side result_type;=0A= typedef Arity_tag< 5 > Arity;=0A= =0A= template =0A= Oriented_side=0A= operator()(const T& p, const T& q, const T& r, const T& s,=0A= const T& t) const=0A= { return side_of_oriented_sphere(p,q,r,s,t); }=0A= };=0A= =0A= class Side_of_bounded_sphere=0A= {=0A= public:=0A= typedef Bounded_side result_type;=0A= =0A= template =0A= Bounded_side=0A= operator()(const T& p, const T& q, const T& t) const=0A= { return side_of_bounded_sphere(p,q,t); }=0A= =0A= template =0A= Bounded_side=0A= operator()(const T& p, const T& q, const T& r, const T& t) const=0A= { return side_of_bounded_sphere(p,q,r,t); }=0A= =0A= template =0A= Bounded_side=0A= operator()(const T& p, const T& q, const T& r, const T& s,=0A= const T& t) const=0A= { return side_of_bounded_sphere(p,q,r,s,t); }=0A= };=0A= =0A= class Call_is_horizontal=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c) const=0A= { return c.is_horizontal(); }=0A= };=0A= =0A= class Call_is_vertical=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c) const=0A= { return c.is_vertical(); }=0A= };=0A= =0A= class Call_is_degenerate=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c) const=0A= { return c.is_degenerate(); }=0A= };=0A= =0A= class Call_has_on_bounded_side=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c, const Arg& a) const=0A= { return c.has_on_bounded_side(a); }=0A= };=0A= =0A= class Call_has_on_unbounded_side=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c, const Arg& a) const=0A= { return c.has_on_unbounded_side(a); }=0A= };=0A= =0A= class Call_has_on_boundary=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c, const Arg& a) const=0A= { return c.has_on_boundary(a); }=0A= };=0A= =0A= class Call_has_on_positive_side=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c, const Arg& a) const=0A= { return c.has_on_positive_side(a); }=0A= };=0A= =0A= class Call_has_on_negative_side=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c, const Arg& a) const=0A= { return c.has_on_negative_side(a); }=0A= };=0A= =0A= class Call_oriented_side=0A= {=0A= public:=0A= typedef Oriented_side result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Oriented_side=0A= operator()( const Cls& c, const Arg& a) const=0A= { return c.oriented_side(a); }=0A= };=0A= =0A= class Call_bounded_side=0A= {=0A= public:=0A= typedef Bounded_side result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Bounded_side=0A= operator()( const Cls& c, const Arg& a) const=0A= { return c.bounded_side(a); }=0A= };=0A= =0A= class Less_x=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return less_x(a1,a2); }=0A= };=0A= =0A= class Less_y=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return less_y(a1,a2); }=0A= };=0A= =0A= class Less_z=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return less_y(a1,a2); }=0A= };=0A= =0A= class Less_xy=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return lexicographically_xy_smaller(a1,a2); }=0A= };=0A= =0A= class Less_yx=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return lexicographically_yx_smaller(a1,a2); }=0A= };=0A= =0A= class Less_xyz=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return lexicographically_xyz_smaller(a1,a2); }=0A= };=0A= =0A= class Equal=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T1& p, const T2& q) const=0A= { return p =3D=3D q; }=0A= };=0A= =0A= class Equal_x=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return x_equal(a1,a2); }=0A= };=0A= =0A= class Equal_y=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return y_equal(a1,a2); }=0A= };=0A= =0A= class Equal_z=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return z_equal(a1,a2); }=0A= };=0A= =0A= class Equal_xy=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return equal_xy(a1,a2); }=0A= };=0A= =0A= class Equal_xyz=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const T1& a1, const T2& a2) const=0A= { return equal_xyz(a1,a2); }=0A= };=0A= =0A= class Compare_x=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2) const=0A= { return compare_x(a1,a2); }=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2, const T3& a3) const=0A= { return compare_x(a1,a2,a3); }=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2, const T3& a3, const T4& a4) = const=0A= { return compare_x(a1,a2,a3,a4); }=0A= =0A= };=0A= =0A= class Compare_y=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2) const=0A= { return compare_y(a1,a2); }=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2, const T3& a3) const=0A= { return compare_y(a1,a2,a3); }=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2, const T3& a3, const T4& a4) = const=0A= { return compare_y(a1,a2,a3,a4); }=0A= =0A= =0A= };=0A= =0A= class Compare_z=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2) const=0A= { return compare_z(a1,a2); }=0A= };=0A= =0A= class Compare_xy=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2) const=0A= { return compare_xy(a1,a2); }=0A= };=0A= =0A= class Compare_xyz=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2) const=0A= { return compare_xyz(a1,a2); }=0A= };=0A= =0A= class Compare_y_at_x=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2) const=0A= { return compare_y_at_x(a1,a2); }=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2, const T3& a3) const=0A= { return compare_y_at_x(a1,a2,a3); }=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2, const T3& a3, const T4& a4) = const=0A= { return compare_y_at_x(a1,a2,a3,a4); }=0A= };=0A= =0A= class Compare_x_at_y=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2) const=0A= { return compare_x_at_y(a1,a2); }=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2, const T3& a3) const=0A= { return compare_x_at_y(a1,a2,a3); }=0A= =0A= template =0A= Comparison_result=0A= operator()( const T1& a1, const T2& a2, const T3& a3, const T4& a4) = const=0A= { return compare_x_at_y(a1,a2,a3,a4); }=0A= };=0A= =0A= template =0A= class Compare_distance=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= Comparison_result=0A= operator()(const T& p, const T& q, const T& r) const=0A= { return cmp_dist_to_point(p,q,r); }=0A= };=0A= =0A= template =0A= class Compare_angle_with_x_axis=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= Comparison_result=0A= operator()(const T& p, const T& q) const=0A= { return compare_angle_with_x_axis(p,q); }=0A= };=0A= =0A= class Compare_slope=0A= {=0A= public:=0A= typedef Comparison_result result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= Comparison_result=0A= operator()(const T& l1, const T& l2) const=0A= { return compare_slopes(l1,l2); }=0A= };=0A= =0A= =0A= template =0A= class Less_signed_distance_to_plane=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= bool operator()( const Plane & p, const Point& q, const Point& r) = const=0A= { return has_smaller_signed_dist_to_plane(p,q,r); }=0A= };=0A= =0A= class Are_ordered_along_line=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T& p, const T& q, const T& r) const=0A= { return are_ordered_along_line(p,q,r); }=0A= };=0A= =0A= class Are_strictly_ordered_along_line=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T& p, const T& q, const T& r) const=0A= { return are_strictly_ordered_along_line(p,q,r); }=0A= };=0A= =0A= class Collinear_are_ordered_along_line=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T& p, const T& q, const T& r) const=0A= { return collinear_are_ordered_along_line(p,q,r); }=0A= };=0A= =0A= class Collinear_are_strictly_ordered_along_line=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= template =0A= bool=0A= operator()(const T& p, const T& q, const T& r) const=0A= { return collinear_are_strictly_ordered_along_line(p,q,r); }=0A= };=0A= =0A= =0A= class Call_transform=0A= {=0A= public:=0A= template =0A= ArgumentType=0A= operator()( const ArgumentType& a, const Transformation& t) const=0A= { return a.transform(t); }=0A= };=0A= =0A= =0A= template =0A= class Call_source_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.source(); }=0A= };=0A= =0A= template =0A= class Call_target_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.target(); }=0A= };=0A= =0A= template =0A= class Call_min_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.min(); }=0A= };=0A= =0A= template =0A= class Call_max_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.max(); }=0A= };=0A= =0A= template =0A= class Call_vertex_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c, int i) const=0A= { return c.vertex(i); }=0A= };=0A= =0A= template =0A= class Call_direction_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.direction(); }=0A= };=0A= =0A= template =0A= class Call_supporting_line_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.supporting_line(); }=0A= };=0A= =0A= template =0A= class Call_supporting_plane_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.supporting_plane(); }=0A= };=0A= =0A= template =0A= class Call_opposite_to_get=0A= {=0A= public:=0A= typedef ReturnType result_type;=0A= typedef Arity_tag< 1 > Arity;=0A= =0A= template =0A= ReturnType=0A= operator()( const Cls& c) const=0A= { return c.opposite(); }=0A= };=0A= =0A= =0A= class Call_has_on=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c, const A1& a1) const=0A= { return c.has_on(a1); }=0A= };=0A= =0A= class Call_collinear_has_on=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= template =0A= bool=0A= operator()( const Cls& c, const A1& a1) const=0A= { return c.collinear_has_on(a1); }=0A= };=0A= =0A= template =0A= struct p_Orientation=0A= {=0A= typedef Orientation result_type;=0A= =0A= Orientation operator()(const Point& p, const Point& q, const Point& r) = const=0A= { return orientation(p,q,r); }=0A= Orientation operator()(const Point& p, const Point& q, const Point& r,=0A= const Point& s) const=0A= { return orientation(p,q,r,s); }=0A= };=0A= =0A= template =0A= struct p_Less_dist_to_point=0A= {=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= bool operator()(const Point& p0, const Point& p1, const Point& p2) = const=0A= { return has_smaller_dist_to_point(p0, p1, p2); }=0A= };=0A= =0A= template =0A= struct p_Less_xy=0A= {=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= bool operator()( const Point& p1, const Point& p2) const=0A= { return lexicographically_xy_smaller( p1, p2); }=0A= };=0A= =0A= template =0A= struct p_Less_yx=0A= {=0A= typedef bool result_type;=0A= typedef Arity_tag< 2 > Arity;=0A= =0A= bool operator()( const Point& p1, const Point& p2) const=0A= { return lexicographically_yx_smaller( p1, p2); }=0A= };=0A= =0A= template =0A= class p_Less_dist_to_line_2=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 4 > Arity;=0A= =0A= bool operator()(const Point&a, const Point& b,=0A= const Point& c, const Point& d) const=0A= {=0A= Comparison_result=0A= res =3D compare_signed_distance_to_line( a, b, c, d);=0A= if ( res =3D=3D LARGER )=0A= {=0A= return false;=0A= }=0A= else if ( res =3D=3D SMALLER )=0A= {=0A= return true;=0A= }=0A= else=0A= {=0A= return lexicographically_xy_smaller( c, d );=0A= }=0A= }=0A= =0A= };=0A= =0A= template =0A= class p_Less_rotate_ccw=0A= {=0A= public:=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= bool operator()(const Point& r, const Point& p, const Point& q) const=0A= {=0A= Orientation ori =3D orientation(r, p, q);=0A= if ( ori =3D=3D LEFTTURN )=0A= {=0A= return true;=0A= }=0A= else if ( ori =3D=3D RIGHTTURN )=0A= {=0A= return false;=0A= }=0A= else=0A= {=0A= if (p =3D=3D r) return false;=0A= if (q =3D=3D r) return true;=0A= if (p =3D=3D q) return false;=0A= return collinear_are_ordered_along_line( r, q, p);=0A= }=0A= }=0A= };=0A= =0A= template =0A= struct p_Left_turn=0A= {=0A= typedef bool result_type;=0A= typedef Arity_tag< 3 > Arity;=0A= =0A= bool operator()(const Point& p, const Point& q, const Point& r) const=0A= { return left_turn(p,q,r); }=0A= };=0A= =0A= =0A= }=0A= }=0A= # 85 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Point_3.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Point_3.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class PointC3=0A= : public R_::Point_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Point_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= PointC3()=0A= : base(rep()) {}=0A= =0A= PointC3(const Origin &)=0A= : base(rep(FT(0), FT(0), FT(0))) {}=0A= =0A= PointC3(const Vector_3 &v)=0A= : base(v) {}=0A= =0A= PointC3(const FT &x, const FT &y, const FT &z)=0A= : base(rep(x, y, z)) {}=0A= =0A= PointC3(const FT &x, const FT &y, const FT &z, const FT &w)=0A= {=0A= if (w !=3D FT(1))=0A= initialize_with(rep(x/w, y/w, z/w));=0A= else=0A= initialize_with(rep(x, y, z));=0A= }=0A= =0A= bool operator=3D=3D(const PointC3 &p) const=0A= {=0A= if (identical(p))=0A= return true;=0A= return x_equal(*this, p) && y_equal(*this, p) && z_equal(*this, p);=0A= }=0A= bool operator!=3D(const PointC3 &p) const=0A= {=0A= return !(*this =3D=3D p);=0A= }=0A= =0A= const FT & x() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const FT & y() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= const FT & z() const=0A= {=0A= return Ptr()->e2;=0A= }=0A= =0A= const FT & hx() const=0A= {=0A= return x();=0A= }=0A= const FT & hy() const=0A= {=0A= return y();=0A= }=0A= const FT & hz() const=0A= {=0A= return z();=0A= }=0A= FT hw() const=0A= {=0A= return FT(1);=0A= }=0A= =0A= const FT & cartesian(int i) const;=0A= const FT & operator[](int i) const;=0A= FT homogeneous(int i) const;=0A= =0A= int dimension() const=0A= {=0A= return 3;=0A= }=0A= Bbox_3 bbox() const;=0A= =0A= PointC3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return t.transform(*this);=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= const typename PointC3::FT &=0A= PointC3::cartesian(int i) const=0A= {=0A= (((i>=3D0) && (i<=3D2))?(static_cast(0)): = ::CGAL::precondition_fail( "(i>=3D0) && (i<=3D2)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Point_3.h", 155, 0));=0A= =0A= =0A= if (i=3D=3D0) return x();=0A= if (i=3D=3D1) return y();=0A= return z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename PointC3::FT &=0A= PointC3::operator[](int i) const=0A= {=0A= return cartesian(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PointC3::FT=0A= PointC3::homogeneous(int i) const=0A= {=0A= ((i>=3D0 && i<=3D3)?(static_cast(0)): ::CGAL::precondition_fail( = "i>=3D0 && i<=3D3" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Point_3.h", 176, 0));=0A= if (i<3) return cartesian(i);=0A= return FT(1);=0A= }=0A= =0A= template < class R >=0A= Bbox_3=0A= PointC3::bbox() const=0A= {=0A= =0A= double bx =3D CGAL::to_double(x());=0A= double by =3D CGAL::to_double(y());=0A= double bz =3D CGAL::to_double(z());=0A= return Bbox_3(bx, by, bz, bx, by, bz);=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const PointC3 &p)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << p.x() << ' ' << p.y() << ' ' << p.z();=0A= case IO::BINARY :=0A= write(os, p.x());=0A= write(os, p.y());=0A= write(os, p.z());=0A= return os;=0A= default:=0A= os << "PointC3(" << p.x() << ", " << p.y() << ", " << p.z() << = ")";=0A= return os;=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, PointC3 &p)=0A= {=0A= typename R::FT x, y, z;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> x >> y >> z;=0A= break;=0A= case IO::BINARY :=0A= read(is, x);=0A= read(is, y);=0A= read(is, z);=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << = std::endl;=0A= break;=0A= }=0A= if (is)=0A= p =3D PointC3(x, y, z);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 87 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Vector_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Vector_3.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class VectorC3=0A= : public R_::Vector_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Vector_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= VectorC3()=0A= : base(rep()) {}=0A= =0A= VectorC3(const Null_vector &)=0A= : base(rep(FT(0), FT(0), FT(0))) {}=0A= =0A= VectorC3(const Point_3 &p)=0A= : base(p) {}=0A= =0A= VectorC3(const Point_3 &a, const Point_3 &b)=0A= : base(b-a) {}=0A= =0A= VectorC3(const Direction_3 &d)=0A= : base(d) {}=0A= =0A= VectorC3(const FT &x, const FT &y, const FT &z)=0A= : base(rep(x, y, z)) {}=0A= =0A= VectorC3(const FT &x, const FT &y, const FT &z, const FT &w)=0A= {=0A= if (w !=3D FT(1))=0A= initialize_with(rep(x/w, y/w, z/w));=0A= else=0A= initialize_with(rep(x, y, z));=0A= }=0A= =0A= bool operator=3D=3D(const VectorC3 &p) const;=0A= bool operator!=3D(const VectorC3 &p) const;=0A= =0A= bool operator=3D=3D(const Null_vector &) const;=0A= bool operator!=3D(const Null_vector &) const;=0A= =0A= const FT & x() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const FT & y() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= const FT & z() const=0A= {=0A= return Ptr()->e2;=0A= }=0A= =0A= const FT & hx() const=0A= {=0A= return x();=0A= }=0A= const FT & hy() const=0A= {=0A= return y();=0A= }=0A= const FT & hz() const=0A= {=0A= return z();=0A= }=0A= FT hw() const=0A= {=0A= return FT(1);=0A= }=0A= =0A= const FT & cartesian(int i) const;=0A= const FT & operator[](int i) const;=0A= FT homogeneous(int i) const;=0A= =0A= int dimension() const=0A= {=0A= return 3;=0A= }=0A= =0A= Vector_3 operator+(const VectorC3 &w) const;=0A= Vector_3 operator-(const VectorC3 &w) const;=0A= Vector_3 operator-() const;=0A= Vector_3 operator/(const FT &c) const;=0A= FT operator*(const VectorC3 &w) const;=0A= FT squared_length() const;=0A= Direction_3 direction() const;=0A= Vector_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return t.transform(*this);=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= VectorC3::operator=3D=3D(const VectorC3 &v) const=0A= {=0A= if (identical(v))=0A= return true;=0A= return x() =3D=3D v.x() && y() =3D=3D v.y() && z() =3D=3D v.z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= VectorC3::operator!=3D(const VectorC3 &v) const=0A= {=0A= return !(*this =3D=3D v);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= VectorC3::operator=3D=3D(const Null_vector &) const=0A= {=0A= return CGAL::NTS:: is_zero(x()) && CGAL::NTS:: is_zero(y()) &&=0A= CGAL::NTS:: is_zero(z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= VectorC3::operator!=3D(const Null_vector &v) const=0A= {=0A= return !(*this =3D=3D v);=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename VectorC3::FT &=0A= VectorC3::cartesian(int i) const=0A= {=0A= (((i>=3D0) && (i<3))?(static_cast(0)): = ::CGAL::precondition_fail( "(i>=3D0) && (i<3)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Vector_3.h", 196, 0));=0A= if (i=3D=3D0) return x();=0A= if (i=3D=3D1) return y();=0A= return z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename VectorC3::FT &=0A= VectorC3::operator[](int i) const=0A= {=0A= return cartesian(i);=0A= }=0A= =0A= template < class R >=0A= typename VectorC3::FT=0A= VectorC3::homogeneous(int i) const=0A= {=0A= if (i=3D=3D3) return FT(1);=0A= return cartesian(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC3::Vector_3=0A= VectorC3::=0A= operator+(const VectorC3 &w) const=0A= {=0A= return VectorC3(x() + w.x(), y() + w.y(), z() + w.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC3::Vector_3=0A= VectorC3::operator-(const VectorC3 &w) const=0A= {=0A= return VectorC3(x() - w.x(), y() - w.y(), z() - w.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC3::Vector_3=0A= VectorC3::operator-() const=0A= {=0A= return Vector_3(-x(), -y(), -z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC3::FT=0A= VectorC3::operator*(const VectorC3 &w) const=0A= {=0A= return x() * w.x() + y() * w.y() + z() * w.z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC3::FT=0A= VectorC3::squared_length() const=0A= {=0A= return CGAL::NTS:: square(x()) + CGAL::NTS:: square(y()) + CGAL::NTS:: = square(z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC3::Vector_3=0A= VectorC3::=0A= operator/(const typename VectorC3::FT &c) const=0A= {=0A= return VectorC3(x()/c, y()/c, z()/c);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename VectorC3::Direction_3=0A= VectorC3::direction() const=0A= {=0A= return Direction_3(*this);=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const VectorC3 &v)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << v.x() << ' ' << v.y() << ' ' << v.z();=0A= case IO::BINARY :=0A= write(os, v.x());=0A= write(os, v.y());=0A= write(os, v.z());=0A= return os;=0A= default:=0A= os << "VectorC3(" << v.x() << ", " << v.y() << ", " << v.z() << = ")";=0A= return os;=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, VectorC3 &p)=0A= {=0A= typename R::FT x, y, z;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> x >> y >> z;=0A= break;=0A= case IO::BINARY :=0A= read(is, x);=0A= read(is, y);=0A= read(is, z);=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << std::endl;=0A= break;=0A= }=0A= if (is)=0A= p =3D VectorC3(x, y, z);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 88 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Direction_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Direction_3.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class DirectionC3=0A= : public R_::Direction_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Line_3 Line_3;=0A= typedef typename R_::Ray_3 Ray_3;=0A= typedef typename R_::Segment_3 Segment_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Direction_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= DirectionC3()=0A= : base(rep()) {}=0A= =0A= DirectionC3(const Vector_3 &v)=0A= : base(v) {}=0A= =0A= DirectionC3(const Line_3 &l)=0A= : base(l.direction()) {}=0A= =0A= DirectionC3(const Ray_3 &r)=0A= : base(r.direction()) {}=0A= =0A= DirectionC3(const Segment_3 &s)=0A= : base(s.direction()) {}=0A= =0A= DirectionC3(const FT &x, const FT &y, const FT &z)=0A= : base(rep(x, y, z)) {}=0A= =0A= bool operator=3D=3D(const DirectionC3 &d) const;=0A= bool operator!=3D(const DirectionC3 &d) const;=0A= =0A= Vector_3 to_vector() const;=0A= Vector_3 vector() const { return to_vector(); }=0A= =0A= Direction_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return t.transform(*this);=0A= }=0A= =0A= Direction_3 operator-() const;=0A= =0A= const FT & delta(int i) const;=0A= const FT & dx() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const FT & dy() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= const FT & dz() const=0A= {=0A= return Ptr()->e2;=0A= }=0A= =0A= const FT & hdx() const=0A= {=0A= return dx();=0A= }=0A= const FT & hdy() const=0A= {=0A= return dy();=0A= }=0A= const FT & hdz() const=0A= {=0A= return dz();=0A= }=0A= FT hw() const=0A= {=0A= return FT(1);=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= DirectionC3::operator=3D=3D(const DirectionC3 &d) const=0A= {=0A= if (identical(d))=0A= return true;=0A= return equal_directionC3(dx(), dy(), dz(), d.dx(), d.dy(), d.dz());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= DirectionC3::operator!=3D(const DirectionC3 &d) const=0A= {=0A= return !(*this =3D=3D d);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename DirectionC3::Vector_3=0A= DirectionC3::to_vector() const=0A= {=0A= return Vector_3(dx(), dy(), dz());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename DirectionC3::Direction_3=0A= DirectionC3::operator-() const=0A= {=0A= return DirectionC3(-dx(), -dy(), -dz());=0A= }=0A= =0A= template < class R >=0A= const typename DirectionC3::FT &=0A= DirectionC3::delta(int i) const=0A= {=0A= ((i >=3D 0 && i <=3D 2)?(static_cast(0)): = ::CGAL::precondition_fail( "i >=3D 0 && i <=3D 2" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Direction_3.h", 175, 0));=0A= if (i=3D=3D0) return dx();=0A= if (i=3D=3D1) return dy();=0A= return dz();=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const DirectionC3 &d)=0A= {=0A= typename R::Vector_3 v =3D d.to_vector();=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << v.x() << ' ' << v.y() << ' ' << v.z();=0A= case IO::BINARY :=0A= write(os, v.x());=0A= write(os, v.y());=0A= write(os, v.z());=0A= return os;=0A= default:=0A= os << "DirectionC3(" << v.x() << ", " << v.y() << ", " << v.z() << = ")";=0A= return os;=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, DirectionC3 &d)=0A= {=0A= typename R::FT x, y, z;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> x >> y >> z;=0A= break;=0A= case IO::BINARY :=0A= read(is, x);=0A= read(is, y);=0A= read(is, z);=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << std::endl;=0A= break;=0A= }=0A= if (is)=0A= d =3D DirectionC3(x, y, z);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 89 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Line_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Line_3.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class LineC3=0A= : public R_::Line_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Plane_3 Plane_3;=0A= typedef typename R_::Ray_3 Ray_3;=0A= typedef typename R_::Line_3 Line_3;=0A= typedef typename R_::Segment_3 Segment_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Line_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= LineC3()=0A= : base(rep()) {}=0A= =0A= LineC3(const Point_3 &p, const Point_3 &q)=0A= : base(rep(p, (q-p).direction())) {}=0A= =0A= LineC3(const Segment_3 &s)=0A= : base(rep(s.start(), (s.end() - s.start()).direction())) {}=0A= =0A= LineC3(const Ray_3 &r)=0A= : base(rep(r.start(), (r.point(1) - r.start()).direction())) {}=0A= =0A= LineC3(const Point_3 &p, const Direction_3 &d)=0A= : base(rep(p, d)) {}=0A= =0A= bool operator=3D=3D(const LineC3 &l) const;=0A= bool operator!=3D(const LineC3 &l) const;=0A= =0A= Plane_3 perpendicular_plane(const Point_3 &p) const;=0A= Line_3 opposite() const;=0A= =0A= const Point_3 & point() const=0A= {=0A= return Ptr()->first;=0A= }=0A= const Direction_3 & direction() const=0A= {=0A= return Ptr()->second;=0A= }=0A= =0A= Point_3 point(int i) const;=0A= =0A= Point_3 projection(const Point_3 &p) const;=0A= =0A= bool has_on(const Point_3 &p) const;=0A= bool is_degenerate() const;=0A= =0A= Line_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return LineC3(t.transform(point()), t.transform(direction()));=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC3::operator=3D=3D(const LineC3 &l) const=0A= {=0A= if (identical(l))=0A= return true;=0A= return has_on(l.point()) && (direction() =3D=3D l.direction());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC3::operator!=3D(const LineC3 &l) const=0A= {=0A= return !(*this =3D=3D l);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC3::Point_3=0A= LineC3::point(int i) const=0A= {=0A= return point_on_line(i, *this);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC3::Plane_3=0A= LineC3::=0A= perpendicular_plane(const typename LineC3::Point_3 &p) const=0A= {=0A= return Plane_3(p, direction().to_vector());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC3::Line_3=0A= LineC3::opposite() const=0A= {=0A= return LineC3(point(), -direction());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename LineC3::Point_3=0A= LineC3::=0A= projection(const typename LineC3::Point_3 &p) const=0A= {=0A= return projection_line(p, *this);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC3::=0A= has_on(const typename LineC3::Point_3 &p) const=0A= {=0A= return collinear(point(), point()+direction().to_vector(), p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= LineC3::is_degenerate() const=0A= {=0A= return direction() =3D=3D Direction_3(0,0,0);=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const LineC3 &l)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << l.point(0) << ' ' << l.point(1);=0A= case IO::BINARY :=0A= return os << l.point(0) << l.point(1);=0A= default:=0A= return os << "LineC3(" << l.point(0) << ", " << l.point(1) << = ")";=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, LineC3 &l)=0A= {=0A= typename R::Point_3 p, q;=0A= is >> p >> q;=0A= if (is)=0A= l =3D LineC3(p, q);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 90 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Plane_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Plane_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class PlaneC3=0A= : public R_::Plane_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_2 Point_2;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Line_3 Line_3;=0A= typedef typename R_::Ray_3 Ray_3;=0A= typedef typename R_::Segment_3 Segment_3;=0A= typedef typename R_::Plane_3 Plane_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Plane_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= PlaneC3()=0A= : base(rep()) {}=0A= =0A= PlaneC3(const Point_3 &p, const Point_3 &q, const Point_3 &r)=0A= : base(plane_from_points(p, q, r)) {}=0A= =0A= PlaneC3(const Point_3 &p, const Direction_3 &d)=0A= : base(plane_from_point_direction(p, d)) {}=0A= =0A= PlaneC3(const Point_3 &p, const Vector_3 &v)=0A= : base(plane_from_point_direction(p, v.direction())) {}=0A= =0A= PlaneC3(const FT &a, const FT &b, const FT &c, const FT &d)=0A= : base(rep(a, b, c, d)) {}=0A= =0A= PlaneC3(const Line_3 &l, const Point_3 &p)=0A= : base(plane_from_points(l.point(),=0A= = l.point()+l.direction().to_vector(),=0A= p)) {}=0A= =0A= PlaneC3(const Segment_3 &s, const Point_3 &p)=0A= : base(plane_from_points(s.start(), s.end(), p)) {}=0A= =0A= PlaneC3(const Ray_3 &r, const Point_3 &p)=0A= : base(plane_from_points(r.start(), r.second_point(), p)) {}=0A= =0A= bool operator=3D=3D(const PlaneC3 &p) const;=0A= bool operator!=3D(const PlaneC3 &p) const;=0A= =0A= const FT & a() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const FT & b() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= const FT & c() const=0A= {=0A= return Ptr()->e2;=0A= }=0A= const FT & d() const=0A= {=0A= return Ptr()->e3;=0A= }=0A= =0A= Line_3 perpendicular_line(const Point_3 &p) const;=0A= Plane_3 opposite() const;=0A= =0A= Point_3 point() const;=0A= Point_3 projection(const Point_3 &p) const;=0A= Vector_3 orthogonal_vector() const;=0A= Direction_3 orthogonal_direction() const;=0A= Vector_3 base1() const;=0A= Vector_3 base2() const;=0A= =0A= Point_3 to_plane_basis(const Point_3 &p) const;=0A= =0A= Point_2 to_2d(const Point_3 &p) const;=0A= Point_3 to_3d(const Point_2 &p) const;=0A= =0A= Plane_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= if (t.is_even())=0A= return PlaneC3(t.transform(point()),=0A= = t.transpose().inverse().transform(orthogonal_direction()));=0A= else=0A= return PlaneC3( t.transform(point()),=0A= - = t.transpose().inverse().transform(orthogonal_direction()));=0A= }=0A= =0A= Oriented_side oriented_side(const Point_3 &p) const;=0A= =0A= bool has_on_boundary(const Point_3 &p) const=0A= {=0A= return has_on(p);=0A= }=0A= bool has_on_boundary(const Line_3 &l) const=0A= {=0A= return has_on(l);=0A= }=0A= =0A= bool has_on_positive_side(const Point_3 &l) const;=0A= bool has_on_negative_side(const Point_3 &l) const;=0A= bool has_on(const Point_3 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_ORIENTED_BOUNDARY;=0A= }=0A= bool has_on(const Line_3 &l) const=0A= {=0A= return has_on(l.point())=0A= && has_on(l.point() + l.direction().to_vector());=0A= }=0A= =0A= bool is_degenerate() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= PlaneC3::operator=3D=3D(const PlaneC3 &p) const=0A= {=0A= if (identical(p))=0A= return true;=0A= return equal_plane(*this, p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= PlaneC3::operator!=3D(const PlaneC3 &p) const=0A= {=0A= return !(*this =3D=3D p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PlaneC3::Point_3=0A= PlaneC3::point() const=0A= {=0A= return point_on_plane(*this);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PlaneC3::Point_3=0A= PlaneC3::=0A= projection(const typename PlaneC3::Point_3 &p) const=0A= {=0A= return CGAL::projection_plane(p, *this);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PlaneC3::Vector_3=0A= PlaneC3::orthogonal_vector() const=0A= {=0A= return Vector_3(a(), b(), c());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PlaneC3::Direction_3=0A= PlaneC3::orthogonal_direction() const=0A= {=0A= return Direction_3(a(), b(), c());=0A= }=0A= =0A= template < class R >=0A= typename PlaneC3::Vector_3=0A= PlaneC3::base1() const=0A= {=0A= if ( CGAL::NTS:: is_zero(a()) )=0A= return Vector_3(FT(1), FT(0), FT(0));=0A= =0A= if ( CGAL::NTS:: is_zero(b()) )=0A= return Vector_3(FT(0), FT(1), FT(0));=0A= =0A= if ( CGAL::NTS:: is_zero(c()) )=0A= return Vector_3(FT(0), FT(0), FT(1));=0A= =0A= return Vector_3(-b(), a(), FT(0));=0A= }=0A= =0A= template < class R >=0A= typename PlaneC3::Vector_3=0A= PlaneC3::base2() const=0A= {=0A= return cross_product(orthogonal_vector(), base1());=0A= }=0A= =0A= template < class R >=0A= typename PlaneC3::Point_3=0A= PlaneC3::=0A= to_plane_basis(const typename PlaneC3::Point_3 &p) const=0A= {=0A= FT alpha, beta, gamma;=0A= =0A= solve(base1(), base2(), orthogonal_vector(), p - point(),=0A= alpha, beta, gamma);=0A= =0A= return Point_3(alpha, beta, gamma);=0A= }=0A= =0A= template < class R >=0A= typename PlaneC3::Point_2=0A= PlaneC3::=0A= to_2d(const typename PlaneC3::Point_3 &p) const=0A= {=0A= FT alpha, beta, gamma;=0A= =0A= solve(base1(), base2(), orthogonal_vector(), p - point(),=0A= alpha, beta, gamma);=0A= =0A= return Point_2(alpha, beta);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PlaneC3::Point_3=0A= PlaneC3::=0A= to_3d(const typename PlaneC3::Point_2 &p) const=0A= {=0A= return point() + p.x() * base1() + p.y() * base2();=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PlaneC3::Line_3=0A= PlaneC3::=0A= perpendicular_line(const typename PlaneC3::Point_3 &p) const=0A= {=0A= return Line_3(p, orthogonal_direction());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename PlaneC3::Plane_3=0A= PlaneC3::opposite() const=0A= {=0A= return PlaneC3(-a(), -b(), -c(), -d());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Oriented_side=0A= PlaneC3::=0A= oriented_side(const typename PlaneC3::Point_3 &p) const=0A= {=0A= return side_of_oriented_plane(*this, p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= PlaneC3::=0A= has_on_positive_side(const typename PlaneC3::Point_3 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_POSITIVE_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= PlaneC3::=0A= has_on_negative_side(const typename PlaneC3::Point_3 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_NEGATIVE_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= PlaneC3::=0A= is_degenerate() const=0A= {=0A= return CGAL::NTS:: is_zero(a()) && CGAL::NTS:: is_zero(b()) &&=0A= CGAL::NTS:: is_zero(c());=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const PlaneC3 &p)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << p.a() << ' ' << p.b() << ' ' << p.c() << ' ' << = p.d();=0A= case IO::BINARY :=0A= write(os, p.a());=0A= write(os, p.b());=0A= write(os, p.c());=0A= write(os, p.d());=0A= return os;=0A= default:=0A= os << "PlaneC3(" << p.a() << ", " << p.b() << ", ";=0A= os << p.c() << ", " << p.d() <<")";=0A= return os;=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, PlaneC3 &p)=0A= {=0A= typename R::FT a, b, c, d;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> a >> b >> c >> d;=0A= break;=0A= case IO::BINARY :=0A= read(is, a);=0A= read(is, b);=0A= read(is, c);=0A= read(is, d);=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << = std::endl;=0A= break;=0A= }=0A= if (is)=0A= p =3D PlaneC3(a, b, c, d);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 91 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Ray_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Ray_3.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class RayC3=0A= : public R_::Ray_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Line_3 Line_3;=0A= typedef typename R_::Ray_3 Ray_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Ray_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= RayC3()=0A= : base(rep()) {}=0A= =0A= RayC3(const Point_3 &sp, const Point_3 &secondp)=0A= : base(rep(sp, secondp)) {}=0A= =0A= RayC3(const Point_3 &sp, const Direction_3 &d)=0A= : base(rep(sp, sp + d.to_vector())) {}=0A= =0A= bool operator=3D=3D(const RayC3 &r) const;=0A= bool operator!=3D(const RayC3 &r) const;=0A= =0A= const Point_3 & start() const;=0A= const Point_3 & source() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const Point_3 & second_point() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= Point_3 point(int i) const;=0A= =0A= Direction_3 direction() const;=0A= Line_3 supporting_line() const;=0A= Ray_3 opposite() const;=0A= =0A= Ray_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return RayC3(t.transform(source()), t.transform(second_point()));=0A= }=0A= =0A= bool is_degenerate() const;=0A= bool has_on(const Point_3 &p) const;=0A= bool collinear_has_on(const Point_3 &p) const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= RayC3::operator=3D=3D(const RayC3 &r) const=0A= {=0A= if (identical(r))=0A= return true;=0A= return source() =3D=3D r.source() && direction() =3D=3D = r.direction();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= RayC3::operator!=3D(const RayC3 &r) const=0A= {=0A= return !(*this =3D=3D r);=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename RayC3::Point_3 &=0A= RayC3::start() const=0A= {=0A= return source();=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename RayC3::Point_3=0A= RayC3::point(int i) const=0A= {=0A= ((i >=3D 0)?(static_cast(0)): ::CGAL::precondition_fail( "i >=3D = 0" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Ray_3.h", 141, 0));=0A= if (i =3D=3D 0) return source();=0A= if (i =3D=3D 1) return second_point();=0A= return source() + FT(i) * (second_point() - source());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename RayC3::Direction_3=0A= RayC3::direction() const=0A= {=0A= return Direction_3( second_point() - source() );=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename RayC3::Line_3=0A= RayC3::supporting_line() const=0A= {=0A= return Line_3(*this);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename RayC3::Ray_3=0A= RayC3::opposite() const=0A= {=0A= return RayC3( source(), - direction() );=0A= }=0A= =0A= template < class R >=0A= bool=0A= RayC3::=0A= has_on(const typename RayC3::Point_3 &p) const=0A= {=0A= return (p =3D=3D source()) ||=0A= ( collinear(source(), p, second_point())=0A= && ( Direction_3(p - source()) =3D=3D direction() ));=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= RayC3::is_degenerate() const=0A= {=0A= return source() =3D=3D second_point();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= RayC3::=0A= collinear_has_on(const typename RayC3::Point_3 &p) const=0A= {=0A= (static_cast(0));=0A= =0A= Comparison_result cx =3D compare_x(source(), second_point());=0A= if (cx !=3D EQUAL)=0A= return cx !=3D compare_x(p, source());=0A= =0A= Comparison_result cy =3D compare_y(source(), second_point());=0A= if (cy !=3D EQUAL)=0A= return cy !=3D compare_y(p, source());=0A= =0A= Comparison_result cz =3D compare_z(source(), second_point());=0A= if (cz !=3D EQUAL)=0A= return cz !=3D compare_z(p, source());=0A= =0A= return true;=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const RayC3 &r)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << r.start() << ' ' << r.direction();=0A= case IO::BINARY :=0A= return os<< r.start() << r.direction();=0A= default:=0A= return os << "RayC3(" << r.start() << ", " << r.direction() << = ")";=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, RayC3 &r)=0A= {=0A= typename R::Point_3 p;=0A= typename R::Direction_3 d;=0A= =0A= is >> p >> d;=0A= =0A= if (is)=0A= r =3D RayC3(p, d);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 92 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Segment_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Segment_3.h"=0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class SegmentC3=0A= : public R_::Segment_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Line_3 Line_3;=0A= typedef typename R_::Segment_3 Segment_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Segment_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= SegmentC3()=0A= : base(rep()) {}=0A= =0A= SegmentC3(const Point_3 &sp, const Point_3 &ep)=0A= : base(rep(sp, ep)) {}=0A= =0A= bool has_on(const Point_3 &p) const;=0A= bool collinear_has_on(const Point_3 &p) const;=0A= =0A= bool operator=3D=3D(const SegmentC3 &s) const;=0A= bool operator!=3D(const SegmentC3 &s) const;=0A= =0A= const Point_3 & source() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const Point_3 & target() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= =0A= const Point_3 & start() const;=0A= const Point_3 & end() const;=0A= =0A= const Point_3 & min() const;=0A= const Point_3 & max() const;=0A= const Point_3 & vertex(int i) const;=0A= const Point_3 & point(int i) const;=0A= const Point_3 & operator[](int i) const;=0A= =0A= FT squared_length() const;=0A= =0A= Direction_3 direction() const;=0A= Line_3 supporting_line() const;=0A= Segment_3 opposite() const;=0A= Segment_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return SegmentC3(t.transform(source()), t.transform(target()));=0A= }=0A= =0A= bool is_degenerate() const;=0A= Bbox_3 bbox() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC3::operator=3D=3D(const SegmentC3 &s) const=0A= {=0A= if (identical(s))=0A= return true;=0A= return source() =3D=3D s.source() && target() =3D=3D s.target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC3::operator!=3D(const SegmentC3 &s) const=0A= {=0A= return !(*this =3D=3D s);=0A= }=0A= =0A= template < class R >=0A= const typename SegmentC3::Point_3 &=0A= SegmentC3::start() const=0A= {=0A= return source();=0A= }=0A= =0A= template < class R >=0A= const typename SegmentC3::Point_3 &=0A= SegmentC3::end() const=0A= {=0A= return target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC3::Point_3 &=0A= SegmentC3::min() const=0A= {=0A= return lexicographically_xyz_smaller(source(),target()) ? source()=0A= : target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC3::Point_3 &=0A= SegmentC3::max() const=0A= {=0A= return lexicographically_xyz_smaller(source(),target()) ? target()=0A= : source();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC3::Point_3 &=0A= SegmentC3::vertex(int i) const=0A= {=0A= return (i%2 =3D=3D 0) ? source() : target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC3::Point_3 &=0A= SegmentC3::point(int i) const=0A= {=0A= return (i%2 =3D=3D 0) ? source() : target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename SegmentC3::Point_3 &=0A= SegmentC3::operator[](int i) const=0A= {=0A= return vertex(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SegmentC3::FT=0A= SegmentC3::squared_length() const=0A= {=0A= return squared_distance(target(), source());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SegmentC3::Direction_3=0A= SegmentC3::direction() const=0A= {=0A= return Direction_3( target() - source() );=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SegmentC3::Line_3=0A= SegmentC3::supporting_line() const=0A= {=0A= return Line_3(*this);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SegmentC3::Segment_3=0A= SegmentC3::opposite() const=0A= {=0A= return SegmentC3(target(), source());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC3::is_degenerate() const=0A= {=0A= return source() =3D=3D target();=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_3=0A= SegmentC3::bbox() const=0A= {=0A= return source().bbox() + target().bbox();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC3::=0A= has_on(const typename SegmentC3::Point_3 &p) const=0A= {=0A= return are_ordered_along_line(source(), p, target());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SegmentC3::=0A= collinear_has_on(const typename SegmentC3::Point_3 &p) const=0A= {=0A= return collinear_are_ordered_along_line(source(), p, target());=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const SegmentC3 &s)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << s.source() << ' ' << s.target();=0A= case IO::BINARY :=0A= return os << s.source() << s.target();=0A= default:=0A= return os << "SegmentC3(" << s.source() << ", " << s.target() << = ")";=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, SegmentC3 &s)=0A= {=0A= typename R::Point_3 p, q;=0A= =0A= is >> p >> q;=0A= =0A= if (is)=0A= s =3D SegmentC3(p, q);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 93 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Triangle_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Triangle_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class TriangleC3=0A= : public R_::Triangle_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Plane_3 Plane_3;=0A= typedef typename R_::Triangle_3 Triangle_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Triangle_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= TriangleC3()=0A= : base(rep()) {}=0A= =0A= TriangleC3(const Point_3 &p, const Point_3 &q, const Point_3 &r)=0A= : base(rep(p, q, r)) {}=0A= =0A= bool operator=3D=3D(const TriangleC3 &t) const;=0A= bool operator!=3D(const TriangleC3 &t) const;=0A= =0A= Plane_3 supporting_plane() const;=0A= =0A= Triangle_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return TriangleC3(t.transform(vertex(0)),=0A= t.transform(vertex(1)),=0A= t.transform(vertex(2)));=0A= }=0A= =0A= bool has_on(const Point_3 &p) const;=0A= bool is_degenerate() const;=0A= =0A= const Point_3 & vertex(int i) const;=0A= const Point_3 & operator[](int i) const;=0A= =0A= Bbox_3 bbox() const;=0A= =0A= FT squared_area() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= bool=0A= TriangleC3::operator=3D=3D(const TriangleC3 &t) const=0A= {=0A= if (identical(t))=0A= return true;=0A= =0A= int i;=0A= for(i=3D0; i<3; i++)=0A= if ( vertex(0) =3D=3D t.vertex(i) )=0A= break;=0A= =0A= return (i<3) && vertex(1) =3D=3D t.vertex(i+1) && vertex(2) =3D=3D = t.vertex(i+2);=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TriangleC3::operator!=3D(const TriangleC3 &t) const=0A= {=0A= return !(*this =3D=3D t);=0A= }=0A= =0A= template < class R >=0A= const typename TriangleC3::Point_3 &=0A= TriangleC3::vertex(int i) const=0A= {=0A= if (i<0) i=3D(i%3)+3;=0A= else if (i>2) i=3Di%3;=0A= return (i=3D=3D0) ? Ptr()->e0 :=0A= (i=3D=3D1) ? Ptr()->e1 :=0A= Ptr()->e2;=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename TriangleC3::Point_3 &=0A= TriangleC3::operator[](int i) const=0A= {=0A= return vertex(i);=0A= }=0A= =0A= template < class R >=0A= =0A= typename TriangleC3::FT=0A= TriangleC3::squared_area() const=0A= {=0A= typename R::Vector_3 v1 =3D vertex(1)-vertex(0);=0A= typename R::Vector_3 v2 =3D vertex(2)-vertex(0);=0A= typename R::Vector_3 v3 =3D cross_product(v1, v2);=0A= return (v3.squared_length())/FT(4);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename TriangleC3::Plane_3=0A= TriangleC3::supporting_plane() const=0A= {=0A= return Plane_3(vertex(0), vertex(1), vertex(2));=0A= }=0A= =0A= template < class R >=0A= Bbox_3=0A= TriangleC3::bbox() const=0A= {=0A= return vertex(0).bbox() + vertex(1).bbox() + vertex(2).bbox();=0A= }=0A= =0A= template < class R >=0A= bool=0A= TriangleC3::=0A= has_on(const typename TriangleC3::Point_3 &p) const=0A= {=0A= Point_3 o =3D vertex(0) + supporting_plane().orthogonal_vector();=0A= Vector_3 v0 =3D vertex(0)-o,=0A= v1 =3D vertex(1)-o,=0A= v2 =3D vertex(2)-o;=0A= =0A= FT alpha, beta, gamma;=0A= solve(v0, v1, v2, p-o, alpha, beta, gamma);=0A= return (alpha >=3D FT(0)) && (beta >=3D FT(0)) && (gamma >=3D FT(0))=0A= && ((alpha+beta+gamma =3D=3D FT(1)));=0A= }=0A= =0A= template < class R >=0A= bool=0A= TriangleC3::is_degenerate() const=0A= {=0A= return collinear(vertex(0),vertex(1),vertex(2));=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const TriangleC3 &t)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << t[0] << ' ' << t[1] << ' ' << t[2];=0A= case IO::BINARY :=0A= return os << t[0] << t[1] << t[2];=0A= default:=0A= os << "TriangleC3(" << t[0] << ", " << t[1] << ", " << t[2] = <<")";=0A= return os;=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, TriangleC3 &t)=0A= {=0A= typename R::Point_3 p, q, r;=0A= =0A= is >> p >> q >> r;=0A= =0A= if (is)=0A= t =3D TriangleC3(p, q, r);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 94 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Tetrahedron_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Tetrahedron_3.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/solve_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/solve_3.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/so= lve.h" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/so= lve.h"=0A= namespace CGAL {=0A= =0A= =0A= template =0A= void solve (const FT &a1, const FT &a2, const FT &a3,=0A= const FT &b1, const FT &b2, const FT &b3,=0A= const FT &c1, const FT &c2, const FT &c3,=0A= const FT &d1, const FT &d2, const FT &d3,=0A= FT &x, FT &y, FT &z)=0A= {=0A= FT denom =3D b2*c1*a3-b1*c2*a3+c3*b1*a2+b3*c2*a1-c1*b3*a2-b2*c3*a1;=0A= =0A= x =3D - (b2*c3*d1-b2*c1*d3+c1*b3*d2+b1*c2*d3-c3*b1*d2-b3*c2*d1)/denom;=0A= =0A= z =3D (b2*d1*a3-b2*a1*d3+b1*a2*d3-b1*d2*a3-d1*b3*a2+a1*b3*d2)/denom;=0A= =0A= y =3D (a2*c3*d1-a2*c1*d3-c2*d1*a3+c2*a1*d3+d2*c1*a3-d2*c3*a1)/denom;=0A= }=0A= =0A= =0A= =0A= template =0A= void solve_quadratic (const FT &a1, const FT &a2, const FT &a3,=0A= const FT &b1, const FT &b2, const FT &b3,=0A= const FT &d1, const FT &d2, const FT &d3,=0A= FT &x, FT &y, FT &z)=0A= {=0A= FT denom =3D b2*a3-b1*a3+b1*a2+b3*a1-b3*a2-b2*a1;=0A= =0A= x =3D - (b2*d1-b2*d3+b3*d2+b1*d3-b1*d2-b3*d1)/denom;=0A= =0A= z =3D (b2*d1*a3-b2*a1*d3+b1*a2*d3-b1*d2*a3-d1*b3*a2+a1*b3*d2)/denom;=0A= =0A= y =3D (a2*d1-a2*d3-d1*a3+a1*d3+d2*a3-d2*a1)/denom;=0A= }=0A= =0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/solve_3.h" 2=0A= =0A= =0A= namespace CGAL {=0A= =0A= template =0A= void solve (const VectorC3 &v0,=0A= const VectorC3 &v1,=0A= const VectorC3 &v2,=0A= const VectorC3 &d,=0A= typename R::FT &alpha, typename R::FT &beta, typename R::FT = &gamma)=0A= {=0A= solve(v0.x(), v0.y(), v0.z(),=0A= v1.x(), v1.y(), v1.z(),=0A= v2.x(), v2.y(), v2.z(),=0A= d.x(), d.y(), d.z(),=0A= alpha, beta, gamma);=0A= }=0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Tetrahedron_3.h" 2=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/vector" 1 3=0A= # 65 "/usr/local/gcc3.1/include/g++-v3/vector" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A= # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A= # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= void=0A= __throw_bad_exception(void);=0A= =0A= =0A= void=0A= __throw_bad_alloc(void);=0A= =0A= =0A= void=0A= __throw_bad_cast(void);=0A= =0A= void=0A= __throw_bad_typeid(void);=0A= =0A= =0A= void=0A= __throw_logic_error(const char* __s);=0A= =0A= void=0A= __throw_domain_error(const char* __s);=0A= =0A= void=0A= __throw_invalid_argument(const char* __s);=0A= =0A= void=0A= __throw_length_error(const char* __s);=0A= =0A= void=0A= __throw_out_of_range(const char* __s);=0A= =0A= void=0A= __throw_runtime_error(const char* __s);=0A= =0A= void=0A= __throw_range_error(const char* __s);=0A= =0A= void=0A= __throw_overflow_error(const char* __s);=0A= =0A= void=0A= __throw_underflow_error(const char* __s);=0A= =0A= =0A= void=0A= __throw_ios_failure(const char* __s);=0A= }=0A= # 67 "/usr/local/gcc3.1/include/g++-v3/vector" 2 3=0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 1 3=0A= # 65 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 1 3=0A= # 34 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/exception_defines.h" 1 3=0A= # 35 "/usr/local/gcc3.1/include/g++-v3/bits/functexcept.h" 2 3=0A= =0A= namespace std=0A= {=0A= =0A= void=0A= __throw_bad_exception(void);=0A= =0A= =0A= void=0A= __throw_bad_alloc(void);=0A= =0A= =0A= void=0A= __throw_bad_cast(void);=0A= =0A= void=0A= __throw_bad_typeid(void);=0A= =0A= =0A= void=0A= __throw_logic_error(const char* __s);=0A= =0A= void=0A= __throw_domain_error(const char* __s);=0A= =0A= void=0A= __throw_invalid_argument(const char* __s);=0A= =0A= void=0A= __throw_length_error(const char* __s);=0A= =0A= void=0A= __throw_out_of_range(const char* __s);=0A= =0A= void=0A= __throw_runtime_error(const char* __s);=0A= =0A= void=0A= __throw_range_error(const char* __s);=0A= =0A= void=0A= __throw_overflow_error(const char* __s);=0A= =0A= void=0A= __throw_underflow_error(const char* __s);=0A= =0A= =0A= void=0A= __throw_ios_failure(const char* __s);=0A= }=0A= # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 2 3=0A= =0A= =0A= namespace std=0A= {=0A= # 78 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= template =0A= class _Vector_alloc_base {=0A= public:=0A= typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type=0A= allocator_type;=0A= allocator_type get_allocator() const { return _M_data_allocator; }=0A= =0A= _Vector_alloc_base(const allocator_type& __a)=0A= : _M_data_allocator(__a), _M_start(0), _M_finish(0), = _M_end_of_storage(0)=0A= {}=0A= =0A= protected:=0A= allocator_type _M_data_allocator;=0A= _Tp* _M_start;=0A= _Tp* _M_finish;=0A= _Tp* _M_end_of_storage;=0A= =0A= _Tp* _M_allocate(size_t __n)=0A= { return _M_data_allocator.allocate(__n); }=0A= void _M_deallocate(_Tp* __p, size_t __n)=0A= { if (__p) _M_data_allocator.deallocate(__p, __n); }=0A= };=0A= =0A= =0A= =0A= template =0A= class _Vector_alloc_base<_Tp, _Allocator, true> {=0A= public:=0A= typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type=0A= allocator_type;=0A= allocator_type get_allocator() const { return allocator_type(); }=0A= =0A= _Vector_alloc_base(const allocator_type&)=0A= : _M_start(0), _M_finish(0), _M_end_of_storage(0)=0A= {}=0A= =0A= protected:=0A= _Tp* _M_start;=0A= _Tp* _M_finish;=0A= _Tp* _M_end_of_storage;=0A= =0A= typedef typename _Alloc_traits<_Tp, _Allocator>::_Alloc_type = _Alloc_type;=0A= _Tp* _M_allocate(size_t __n)=0A= { return _Alloc_type::allocate(__n); }=0A= void _M_deallocate(_Tp* __p, size_t __n)=0A= { _Alloc_type::deallocate(__p, __n);}=0A= };=0A= =0A= template =0A= struct _Vector_base=0A= : public _Vector_alloc_base<_Tp, _Alloc,=0A= _Alloc_traits<_Tp, = _Alloc>::_S_instanceless>=0A= {=0A= typedef _Vector_alloc_base<_Tp, _Alloc,=0A= _Alloc_traits<_Tp, _Alloc>::_S_instanceless>=0A= _Base;=0A= typedef typename _Base::allocator_type allocator_type;=0A= =0A= _Vector_base(const allocator_type& __a) : _Base(__a) {}=0A= _Vector_base(size_t __n, const allocator_type& __a) : _Base(__a) {=0A= _M_start =3D _M_allocate(__n);=0A= _M_finish =3D _M_start;=0A= _M_end_of_storage =3D _M_start + __n;=0A= }=0A= =0A= ~_Vector_base() { _M_deallocate(_M_start, _M_end_of_storage - = _M_start); }=0A= };=0A= # 165 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= template >=0A= class vector : protected _Vector_base<_Tp, _Alloc>=0A= {=0A= =0A= =0A= =0A= private:=0A= typedef _Vector_base<_Tp, _Alloc> _Base;=0A= typedef vector<_Tp, _Alloc> vector_type;=0A= public:=0A= typedef _Tp value_type;=0A= typedef value_type* pointer;=0A= typedef const value_type* const_pointer;=0A= typedef __gnu_cxx::__normal_iterator iterator;=0A= typedef __gnu_cxx::__normal_iterator=0A= const_iterator;=0A= typedef value_type& reference;=0A= typedef const value_type& const_reference;=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= =0A= typedef typename _Base::allocator_type allocator_type;=0A= allocator_type get_allocator() const { return _Base::get_allocator(); }=0A= =0A= typedef reverse_iterator const_reverse_iterator;=0A= typedef reverse_iterator reverse_iterator;=0A= =0A= protected:=0A= using _Base::_M_allocate;=0A= using _Base::_M_deallocate;=0A= using _Base::_M_start;=0A= using _Base::_M_finish;=0A= using _Base::_M_end_of_storage;=0A= =0A= protected:=0A= void _M_insert_aux(iterator __position, const _Tp& __x);=0A= void _M_insert_aux(iterator __position);=0A= =0A= public:=0A= =0A= =0A= =0A= =0A= iterator begin() { return iterator (_M_start); }=0A= =0A= =0A= =0A= =0A= =0A= const_iterator begin() const=0A= { return const_iterator (_M_start); }=0A= =0A= =0A= =0A= =0A= =0A= iterator end() { return iterator (_M_finish); }=0A= =0A= =0A= =0A= =0A= =0A= const_iterator end() const { return const_iterator (_M_finish); }=0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator rbegin()=0A= { return reverse_iterator(end()); }=0A= =0A= =0A= =0A= =0A= =0A= const_reverse_iterator rbegin() const=0A= { return const_reverse_iterator(end()); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator rend()=0A= { return reverse_iterator(begin()); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= const_reverse_iterator rend() const=0A= { return const_reverse_iterator(begin()); }=0A= =0A= =0A= size_type size() const=0A= { return size_type(end() - begin()); }=0A= =0A= =0A= size_type max_size() const=0A= { return size_type(-1) / sizeof(_Tp); }=0A= =0A= =0A= =0A= =0A= =0A= size_type capacity() const=0A= { return size_type(const_iterator(_M_end_of_storage) - begin()); }=0A= =0A= =0A= =0A= =0A= bool empty() const=0A= { return begin() =3D=3D end(); }=0A= # 289 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= reference operator[](size_type __n) { return *(begin() + __n); }=0A= # 300 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= const_reference operator[](size_type __n) const { return *(begin() + = __n); }=0A= =0A= void _M_range_check(size_type __n) const {=0A= if (__n >=3D this->size())=0A= __throw_out_of_range("vector");=0A= }=0A= # 316 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= reference at(size_type __n)=0A= { _M_range_check(__n); return (*this)[__n]; }=0A= # 328 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= const_reference at(size_type __n) const=0A= { _M_range_check(__n); return (*this)[__n]; }=0A= =0A= =0A= explicit vector(const allocator_type& __a =3D allocator_type())=0A= : _Base(__a) {}=0A= =0A= vector(size_type __n, const _Tp& __value,=0A= const allocator_type& __a =3D allocator_type())=0A= : _Base(__n, __a)=0A= { _M_finish =3D uninitialized_fill_n(_M_start, __n, __value); }=0A= =0A= explicit vector(size_type __n)=0A= : _Base(__n, allocator_type())=0A= { _M_finish =3D uninitialized_fill_n(_M_start, __n, _Tp()); }=0A= =0A= vector(const vector<_Tp, _Alloc>& __x)=0A= : _Base(__x.size(), __x.get_allocator())=0A= { _M_finish =3D uninitialized_copy(__x.begin(), __x.end(), = _M_start); }=0A= =0A= =0A= template =0A= vector(_InputIterator __first, _InputIterator __last,=0A= const allocator_type& __a =3D allocator_type())=0A= : _Base(__a)=0A= {=0A= typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A= _M_initialize_aux(__first, __last, _Integral());=0A= }=0A= =0A= template =0A= void _M_initialize_aux(_Integer __n, _Integer __value, __true_type)=0A= {=0A= _M_start =3D _M_allocate(__n);=0A= _M_end_of_storage =3D _M_start + __n;=0A= _M_finish =3D uninitialized_fill_n(_M_start, __n, __value);=0A= }=0A= =0A= template=0A= void=0A= _M_initialize_aux(_InputIterator __first, _InputIterator __last, = __false_type)=0A= {=0A= typedef typename = iterator_traits<_InputIterator>::iterator_category _IterCategory;=0A= _M_range_initialize(__first, __last, _IterCategory());=0A= }=0A= =0A= ~vector()=0A= { _Destroy(_M_start, _M_finish); }=0A= =0A= vector<_Tp, _Alloc>& operator=3D(const vector<_Tp, _Alloc>& __x);=0A= # 393 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= void reserve(size_type __n) {=0A= if (capacity() < __n) {=0A= const size_type __old_size =3D size();=0A= pointer __tmp =3D _M_allocate_and_copy(__n, _M_start, _M_finish);=0A= _Destroy(_M_start, _M_finish);=0A= _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A= _M_start =3D __tmp;=0A= _M_finish =3D __tmp + __old_size;=0A= _M_end_of_storage =3D _M_start + __n;=0A= }=0A= }=0A= # 421 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, = __val); }=0A= void _M_fill_assign(size_type __n, const _Tp& __val);=0A= =0A= template=0A= void=0A= assign(_InputIterator __first, _InputIterator __last)=0A= {=0A= typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A= _M_assign_dispatch(__first, __last, _Integral());=0A= }=0A= =0A= template=0A= void=0A= _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)=0A= { _M_fill_assign((size_type) __n, (_Tp) __val); }=0A= =0A= template=0A= void=0A= _M_assign_dispatch(_InputIter __first, _InputIter __last, = __false_type)=0A= {=0A= typedef typename iterator_traits<_InputIter>::iterator_category = _IterCategory;=0A= _M_assign_aux(__first, __last, _IterCategory());=0A= }=0A= =0A= template =0A= void=0A= _M_assign_aux(_InputIterator __first, _InputIterator __last,=0A= input_iterator_tag);=0A= =0A= template =0A= void=0A= _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,=0A= forward_iterator_tag);=0A= =0A= =0A= =0A= =0A= =0A= reference front() { return *begin(); }=0A= =0A= =0A= =0A= =0A= =0A= const_reference front() const { return *begin(); }=0A= =0A= =0A= =0A= =0A= =0A= reference back() { return *(end() - 1); }=0A= =0A= =0A= =0A= =0A= =0A= const_reference back() const { return *(end() - 1); }=0A= # 488 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= void=0A= push_back(const _Tp& __x)=0A= {=0A= if (_M_finish !=3D _M_end_of_storage) {=0A= _Construct(_M_finish, __x);=0A= ++_M_finish;=0A= }=0A= else=0A= _M_insert_aux(end(), __x);=0A= }=0A= # 519 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= void=0A= swap(vector<_Tp, _Alloc>& __x)=0A= {=0A= std::swap(_M_start, __x._M_start);=0A= std::swap(_M_finish, __x._M_finish);=0A= std::swap(_M_end_of_storage, __x._M_end_of_storage);=0A= }=0A= # 538 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= iterator=0A= insert(iterator __position, const _Tp& __x)=0A= {=0A= size_type __n =3D __position - begin();=0A= if (_M_finish !=3D _M_end_of_storage && __position =3D=3D end()) {=0A= _Construct(_M_finish, __x);=0A= ++_M_finish;=0A= }=0A= else=0A= _M_insert_aux(iterator(__position), __x);=0A= return begin() + __n;=0A= }=0A= # 562 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= iterator=0A= insert(iterator __position)=0A= {=0A= size_type __n =3D __position - begin();=0A= if (_M_finish !=3D _M_end_of_storage && __position =3D=3D end()) {=0A= _Construct(_M_finish);=0A= ++_M_finish;=0A= }=0A= else=0A= _M_insert_aux(iterator(__position));=0A= return begin() + __n;=0A= }=0A= =0A= =0A= template=0A= void=0A= insert(iterator __pos, _InputIterator __first, _InputIterator = __last)=0A= {=0A= typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A= _M_insert_dispatch(__pos, __first, __last, _Integral());=0A= }=0A= =0A= template =0A= void=0A= _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, = __true_type)=0A= { _M_fill_insert(__pos, static_cast(__n), = static_cast<_Tp>(__val)); }=0A= =0A= template=0A= void=0A= _M_insert_dispatch(iterator __pos,=0A= _InputIterator __first, _InputIterator __last,=0A= __false_type)=0A= {=0A= typedef typename = iterator_traits<_InputIterator>::iterator_category _IterCategory;=0A= _M_range_insert(__pos, __first, __last, _IterCategory());=0A= }=0A= # 612 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= void insert (iterator __pos, size_type __n, const _Tp& __x)=0A= { _M_fill_insert(__pos, __n, __x); }=0A= =0A= void _M_fill_insert (iterator __pos, size_type __n, const _Tp& __x);=0A= # 626 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= void pop_back() {=0A= --_M_finish;=0A= _Destroy(_M_finish);=0A= }=0A= # 645 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= iterator erase(iterator __position) {=0A= if (__position + 1 !=3D end())=0A= copy(__position + 1, end(), __position);=0A= --_M_finish;=0A= _Destroy(_M_finish);=0A= return __position;=0A= }=0A= # 668 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= iterator erase(iterator __first, iterator __last) {=0A= iterator __i(copy(__last, end(), __first));=0A= _Destroy(__i, end());=0A= _M_finish =3D _M_finish - (__last - __first);=0A= return __first;=0A= }=0A= # 685 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= void resize(size_type __new_size, const _Tp& __x) {=0A= if (__new_size < size())=0A= erase(begin() + __new_size, end());=0A= else=0A= insert(end(), __new_size - size(), __x);=0A= }=0A= # 701 "/usr/local/gcc3.1/include/g++-v3/bits/stl_vector.h" 3=0A= void resize(size_type __new_size) { resize(__new_size, _Tp()); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= void clear() { erase(begin(), end()); }=0A= =0A= protected:=0A= =0A= template =0A= pointer _M_allocate_and_copy(size_type __n, _ForwardIterator __first,=0A= _ForwardIterator __last)=0A= {=0A= pointer __result =3D _M_allocate(__n);=0A= try {=0A= uninitialized_copy(__first, __last, __result);=0A= return __result;=0A= }=0A= catch(...)=0A= {=0A= _M_deallocate(__result, __n);=0A= throw;=0A= }=0A= }=0A= =0A= template =0A= void _M_range_initialize(_InputIterator __first,=0A= _InputIterator __last, input_iterator_tag)=0A= {=0A= for ( ; __first !=3D __last; ++__first)=0A= push_back(*__first);=0A= }=0A= =0A= =0A= template =0A= void _M_range_initialize(_ForwardIterator __first,=0A= _ForwardIterator __last, forward_iterator_tag)=0A= {=0A= size_type __n =3D distance(__first, __last);=0A= _M_start =3D _M_allocate(__n);=0A= _M_end_of_storage =3D _M_start + __n;=0A= _M_finish =3D uninitialized_copy(__first, __last, _M_start);=0A= }=0A= =0A= template =0A= void _M_range_insert(iterator __pos,=0A= _InputIterator __first, _InputIterator __last,=0A= input_iterator_tag);=0A= =0A= template =0A= void _M_range_insert(iterator __pos,=0A= _ForwardIterator __first, _ForwardIterator __last,=0A= forward_iterator_tag);=0A= };=0A= =0A= template =0A= inline bool=0A= operator=3D=3D(const vector<_Tp, _Alloc>& __x, const vector<_Tp, = _Alloc>& __y)=0A= {=0A= return __x.size() =3D=3D __y.size() &&=0A= equal(__x.begin(), __x.end(), __y.begin());=0A= }=0A= =0A= template =0A= inline bool=0A= operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)=0A= {=0A= return lexicographical_compare(__x.begin(), __x.end(),=0A= __y.begin(), __y.end());=0A= }=0A= =0A= template =0A= inline void swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)=0A= {=0A= __x.swap(__y);=0A= }=0A= =0A= template =0A= inline bool=0A= operator!=3D(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& = __y) {=0A= return !(__x =3D=3D __y);=0A= }=0A= =0A= template =0A= inline bool=0A= operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& = __y) {=0A= return __y < __x;=0A= }=0A= =0A= template =0A= inline bool=0A= operator<=3D(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& = __y) {=0A= return !(__y < __x);=0A= }=0A= =0A= template =0A= inline bool=0A= operator>=3D(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& = __y) {=0A= return !(__x < __y);=0A= }=0A= =0A= template =0A= vector<_Tp,_Alloc>&=0A= vector<_Tp,_Alloc>::operator=3D(const vector<_Tp, _Alloc>& __x)=0A= {=0A= if (&__x !=3D this) {=0A= const size_type __xlen =3D __x.size();=0A= if (__xlen > capacity()) {=0A= pointer __tmp =3D _M_allocate_and_copy(__xlen, __x.begin(), = __x.end());=0A= _Destroy(_M_start, _M_finish);=0A= _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A= _M_start =3D __tmp;=0A= _M_end_of_storage =3D _M_start + __xlen;=0A= }=0A= else if (size() >=3D __xlen) {=0A= iterator __i(copy(__x.begin(), __x.end(), begin()));=0A= _Destroy(__i, end());=0A= }=0A= else {=0A= copy(__x.begin(), __x.begin() + size(), _M_start);=0A= uninitialized_copy(__x.begin() + size(), __x.end(), _M_finish);=0A= }=0A= _M_finish =3D _M_start + __xlen;=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= void vector<_Tp, _Alloc>::_M_fill_assign(size_t __n, const value_type& = __val)=0A= {=0A= if (__n > capacity()) {=0A= vector<_Tp, _Alloc> __tmp(__n, __val, get_allocator());=0A= __tmp.swap(*this);=0A= }=0A= else if (__n > size()) {=0A= fill(begin(), end(), __val);=0A= _M_finish =3D uninitialized_fill_n(_M_finish, __n - size(), __val);=0A= }=0A= else=0A= erase(fill_n(begin(), __n, __val), end());=0A= }=0A= =0A= template template =0A= void vector<_Tp, _Alloc>::_M_assign_aux(_InputIter __first, _InputIter = __last,=0A= input_iterator_tag) {=0A= iterator __cur(begin());=0A= for ( ; __first !=3D __last && __cur !=3D end(); ++__cur, ++__first)=0A= *__cur =3D *__first;=0A= if (__first =3D=3D __last)=0A= erase(__cur, end());=0A= else=0A= insert(end(), __first, __last);=0A= }=0A= =0A= template template =0A= void=0A= vector<_Tp, _Alloc>::_M_assign_aux(_ForwardIter __first, _ForwardIter = __last,=0A= forward_iterator_tag) {=0A= size_type __len =3D distance(__first, __last);=0A= =0A= if (__len > capacity()) {=0A= pointer __tmp(_M_allocate_and_copy(__len, __first, __last));=0A= _Destroy(_M_start, _M_finish);=0A= _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A= _M_start =3D __tmp;=0A= _M_end_of_storage =3D _M_finish =3D _M_start + __len;=0A= }=0A= else if (size() >=3D __len) {=0A= iterator __new_finish(copy(__first, __last, _M_start));=0A= _Destroy(__new_finish, end());=0A= _M_finish =3D __new_finish.base();=0A= }=0A= else {=0A= _ForwardIter __mid =3D __first;=0A= advance(__mid, size());=0A= copy(__first, __mid, _M_start);=0A= _M_finish =3D uninitialized_copy(__mid, __last, _M_finish);=0A= }=0A= }=0A= =0A= template =0A= void=0A= vector<_Tp, _Alloc>::_M_insert_aux(iterator __position, const _Tp& __x)=0A= {=0A= if (_M_finish !=3D _M_end_of_storage) {=0A= _Construct(_M_finish, *(_M_finish - 1));=0A= ++_M_finish;=0A= _Tp __x_copy =3D __x;=0A= copy_backward(__position, iterator(_M_finish - 2), = iterator(_M_finish- 1));=0A= *__position =3D __x_copy;=0A= }=0A= else {=0A= const size_type __old_size =3D size();=0A= const size_type __len =3D __old_size !=3D 0 ? 2 * __old_size : 1;=0A= iterator __new_start(_M_allocate(__len));=0A= iterator __new_finish(__new_start);=0A= try {=0A= __new_finish =3D uninitialized_copy(iterator(_M_start), __position,=0A= __new_start);=0A= _Construct(__new_finish.base(), __x);=0A= ++__new_finish;=0A= __new_finish =3D uninitialized_copy(__position, = iterator(_M_finish),=0A= __new_finish);=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__new_start,__new_finish);=0A= _M_deallocate(__new_start.base(),__len);=0A= throw;=0A= }=0A= _Destroy(begin(), end());=0A= _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A= _M_start =3D __new_start.base();=0A= _M_finish =3D __new_finish.base();=0A= _M_end_of_storage =3D __new_start.base() + __len;=0A= }=0A= }=0A= =0A= template =0A= void=0A= vector<_Tp, _Alloc>::_M_insert_aux(iterator __position)=0A= {=0A= if (_M_finish !=3D _M_end_of_storage) {=0A= _Construct(_M_finish, *(_M_finish - 1));=0A= ++_M_finish;=0A= copy_backward(__position, iterator(_M_finish - 2),=0A= iterator(_M_finish - 1));=0A= *__position =3D _Tp();=0A= }=0A= else {=0A= const size_type __old_size =3D size();=0A= const size_type __len =3D __old_size !=3D 0 ? 2 * __old_size : 1;=0A= pointer __new_start =3D _M_allocate(__len);=0A= pointer __new_finish =3D __new_start;=0A= try {=0A= __new_finish =3D uninitialized_copy(iterator(_M_start), __position,=0A= __new_start);=0A= _Construct(__new_finish);=0A= ++__new_finish;=0A= __new_finish =3D uninitialized_copy(__position, = iterator(_M_finish),=0A= __new_finish);=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__new_start,__new_finish);=0A= _M_deallocate(__new_start,__len);=0A= throw;=0A= }=0A= _Destroy(begin(), end());=0A= _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A= _M_start =3D __new_start;=0A= _M_finish =3D __new_finish;=0A= _M_end_of_storage =3D __new_start + __len;=0A= }=0A= }=0A= =0A= template =0A= void vector<_Tp, _Alloc>::_M_fill_insert(iterator __position, size_type = __n,=0A= const _Tp& __x)=0A= {=0A= if (__n !=3D 0) {=0A= if (size_type(_M_end_of_storage - _M_finish) >=3D __n) {=0A= _Tp __x_copy =3D __x;=0A= const size_type __elems_after =3D end() - __position;=0A= iterator __old_finish(_M_finish);=0A= if (__elems_after > __n) {=0A= uninitialized_copy(_M_finish - __n, _M_finish, _M_finish);=0A= _M_finish +=3D __n;=0A= copy_backward(__position, __old_finish - __n, __old_finish);=0A= fill(__position, __position + __n, __x_copy);=0A= }=0A= else {=0A= uninitialized_fill_n(_M_finish, __n - __elems_after, __x_copy);=0A= _M_finish +=3D __n - __elems_after;=0A= uninitialized_copy(__position, __old_finish, _M_finish);=0A= _M_finish +=3D __elems_after;=0A= fill(__position, __old_finish, __x_copy);=0A= }=0A= }=0A= else {=0A= const size_type __old_size =3D size();=0A= const size_type __len =3D __old_size + max(__old_size, __n);=0A= iterator __new_start(_M_allocate(__len));=0A= iterator __new_finish(__new_start);=0A= try {=0A= __new_finish =3D uninitialized_copy(begin(), __position, = __new_start);=0A= __new_finish =3D uninitialized_fill_n(__new_finish, __n, __x);=0A= __new_finish=0A= =3D uninitialized_copy(__position, end(), __new_finish);=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__new_start,__new_finish);=0A= _M_deallocate(__new_start.base(),__len);=0A= throw;=0A= }=0A= _Destroy(_M_start, _M_finish);=0A= _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A= _M_start =3D __new_start.base();=0A= _M_finish =3D __new_finish.base();=0A= _M_end_of_storage =3D __new_start.base() + __len;=0A= }=0A= }=0A= }=0A= =0A= template template =0A= void=0A= vector<_Tp, _Alloc>::_M_range_insert(iterator __pos,=0A= _InputIterator __first,=0A= _InputIterator __last,=0A= input_iterator_tag)=0A= {=0A= for ( ; __first !=3D __last; ++__first) {=0A= __pos =3D insert(__pos, *__first);=0A= ++__pos;=0A= }=0A= }=0A= =0A= template template =0A= void=0A= vector<_Tp, _Alloc>::_M_range_insert(iterator __position,=0A= _ForwardIterator __first,=0A= _ForwardIterator __last,=0A= forward_iterator_tag)=0A= {=0A= if (__first !=3D __last) {=0A= size_type __n =3D distance(__first, __last);=0A= if (size_type(_M_end_of_storage - _M_finish) >=3D __n) {=0A= const size_type __elems_after =3D end() - __position;=0A= iterator __old_finish(_M_finish);=0A= if (__elems_after > __n) {=0A= uninitialized_copy(_M_finish - __n, _M_finish, _M_finish);=0A= _M_finish +=3D __n;=0A= copy_backward(__position, __old_finish - __n, __old_finish);=0A= copy(__first, __last, __position);=0A= }=0A= else {=0A= _ForwardIterator __mid =3D __first;=0A= advance(__mid, __elems_after);=0A= uninitialized_copy(__mid, __last, _M_finish);=0A= _M_finish +=3D __n - __elems_after;=0A= uninitialized_copy(__position, __old_finish, _M_finish);=0A= _M_finish +=3D __elems_after;=0A= copy(__first, __mid, __position);=0A= }=0A= }=0A= else {=0A= const size_type __old_size =3D size();=0A= const size_type __len =3D __old_size + max(__old_size, __n);=0A= iterator __new_start(_M_allocate(__len));=0A= iterator __new_finish(__new_start);=0A= try {=0A= __new_finish =3D uninitialized_copy(iterator(_M_start),=0A= __position, __new_start);=0A= __new_finish =3D uninitialized_copy(__first, __last, = __new_finish);=0A= __new_finish=0A= =3D uninitialized_copy(__position, iterator(_M_finish), = __new_finish);=0A= }=0A= catch(...)=0A= {=0A= _Destroy(__new_start,__new_finish);=0A= _M_deallocate(__new_start.base(), __len);=0A= throw;=0A= }=0A= _Destroy(_M_start, _M_finish);=0A= _M_deallocate(_M_start, _M_end_of_storage - _M_start);=0A= _M_start =3D __new_start.base();=0A= _M_finish =3D __new_finish.base();=0A= _M_end_of_storage =3D __new_start.base() + __len;=0A= }=0A= }=0A= }=0A= =0A= }=0A= # 72 "/usr/local/gcc3.1/include/g++-v3/vector" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_bvector.h" 1 3=0A= # 64 "/usr/local/gcc3.1/include/g++-v3/bits/stl_bvector.h" 3=0A= namespace std=0A= {=0A= typedef unsigned long _Bit_type;=0A= enum { _M_word_bit =3D int(8 * sizeof(_Bit_type)) };=0A= =0A= struct _Bit_reference {=0A= =0A= _Bit_type * _M_p;=0A= _Bit_type _M_mask;=0A= _Bit_reference(_Bit_type * __x, _Bit_type __y)=0A= : _M_p(__x), _M_mask(__y) {}=0A= =0A= public:=0A= _Bit_reference() : _M_p(0), _M_mask(0) {}=0A= operator bool() const { return !!(*_M_p & _M_mask); }=0A= _Bit_reference& operator=3D(bool __x)=0A= {=0A= if (__x) *_M_p |=3D _M_mask;=0A= else *_M_p &=3D ~_M_mask;=0A= return *this;=0A= }=0A= _Bit_reference& operator=3D(const _Bit_reference& __x)=0A= { return *this =3D bool(__x); }=0A= bool operator=3D=3D(const _Bit_reference& __x) const=0A= { return bool(*this) =3D=3D bool(__x); }=0A= bool operator<(const _Bit_reference& __x) const=0A= { return !bool(*this) && bool(__x); }=0A= void flip() { *_M_p ^=3D _M_mask; }=0A= };=0A= =0A= inline void swap(_Bit_reference __x, _Bit_reference __y)=0A= {=0A= bool __tmp =3D __x;=0A= __x =3D __y;=0A= __y =3D __tmp;=0A= }=0A= =0A= struct _Bit_iterator_base : public iterator=0A= {=0A= _Bit_type * _M_p;=0A= unsigned int _M_offset;=0A= =0A= _Bit_iterator_base(_Bit_type * __x, unsigned int __y)=0A= : _M_p(__x), _M_offset(__y) {}=0A= =0A= void _M_bump_up() {=0A= if (_M_offset++ =3D=3D _M_word_bit - 1) {=0A= _M_offset =3D 0;=0A= ++_M_p;=0A= }=0A= }=0A= void _M_bump_down() {=0A= if (_M_offset-- =3D=3D 0) {=0A= _M_offset =3D _M_word_bit - 1;=0A= --_M_p;=0A= }=0A= }=0A= =0A= void _M_incr(ptrdiff_t __i) {=0A= difference_type __n =3D __i + _M_offset;=0A= _M_p +=3D __n / _M_word_bit;=0A= __n =3D __n % _M_word_bit;=0A= if (__n < 0) {=0A= _M_offset =3D (unsigned int) __n + _M_word_bit;=0A= --_M_p;=0A= } else=0A= _M_offset =3D (unsigned int) __n;=0A= }=0A= =0A= bool operator=3D=3D(const _Bit_iterator_base& __i) const {=0A= return _M_p =3D=3D __i._M_p && _M_offset =3D=3D __i._M_offset;=0A= }=0A= bool operator<(const _Bit_iterator_base& __i) const {=0A= return _M_p < __i._M_p || (_M_p =3D=3D __i._M_p && _M_offset < = __i._M_offset);=0A= }=0A= bool operator!=3D(const _Bit_iterator_base& __i) const {=0A= return !(*this =3D=3D __i);=0A= }=0A= bool operator>(const _Bit_iterator_base& __i) const {=0A= return __i < *this;=0A= }=0A= bool operator<=3D(const _Bit_iterator_base& __i) const {=0A= return !(__i < *this);=0A= }=0A= bool operator>=3D(const _Bit_iterator_base& __i) const {=0A= return !(*this < __i);=0A= }=0A= };=0A= =0A= inline ptrdiff_t=0A= operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) {=0A= return _M_word_bit * (__x._M_p - __y._M_p) + __x._M_offset - = __y._M_offset;=0A= }=0A= =0A= =0A= struct _Bit_iterator : public _Bit_iterator_base=0A= {=0A= typedef _Bit_reference reference;=0A= typedef _Bit_reference* pointer;=0A= typedef _Bit_iterator iterator;=0A= =0A= _Bit_iterator() : _Bit_iterator_base(0, 0) {}=0A= _Bit_iterator(_Bit_type * __x, unsigned int __y)=0A= : _Bit_iterator_base(__x, __y) {}=0A= =0A= reference operator*() const { return reference(_M_p, 1U << _M_offset); = }=0A= iterator& operator++() {=0A= _M_bump_up();=0A= return *this;=0A= }=0A= iterator operator++(int) {=0A= iterator __tmp =3D *this;=0A= _M_bump_up();=0A= return __tmp;=0A= }=0A= iterator& operator--() {=0A= _M_bump_down();=0A= return *this;=0A= }=0A= iterator operator--(int) {=0A= iterator __tmp =3D *this;=0A= _M_bump_down();=0A= return __tmp;=0A= }=0A= iterator& operator+=3D(difference_type __i) {=0A= _M_incr(__i);=0A= return *this;=0A= }=0A= iterator& operator-=3D(difference_type __i) {=0A= *this +=3D -__i;=0A= return *this;=0A= }=0A= iterator operator+(difference_type __i) const {=0A= iterator __tmp =3D *this;=0A= return __tmp +=3D __i;=0A= }=0A= iterator operator-(difference_type __i) const {=0A= iterator __tmp =3D *this;=0A= return __tmp -=3D __i;=0A= }=0A= =0A= reference operator[](difference_type __i) { return *(*this + __i); }=0A= };=0A= =0A= inline _Bit_iterator=0A= operator+(ptrdiff_t __n, const _Bit_iterator& __x) { return __x + __n; }=0A= =0A= =0A= struct _Bit_const_iterator : public _Bit_iterator_base=0A= {=0A= typedef bool reference;=0A= typedef bool const_reference;=0A= typedef const bool* pointer;=0A= typedef _Bit_const_iterator const_iterator;=0A= =0A= _Bit_const_iterator() : _Bit_iterator_base(0, 0) {}=0A= _Bit_const_iterator(_Bit_type * __x, unsigned int __y)=0A= : _Bit_iterator_base(__x, __y) {}=0A= _Bit_const_iterator(const _Bit_iterator& __x)=0A= : _Bit_iterator_base(__x._M_p, __x._M_offset) {}=0A= =0A= const_reference operator*() const {=0A= return _Bit_reference(_M_p, 1U << _M_offset);=0A= }=0A= const_iterator& operator++() {=0A= _M_bump_up();=0A= return *this;=0A= }=0A= const_iterator operator++(int) {=0A= const_iterator __tmp =3D *this;=0A= _M_bump_up();=0A= return __tmp;=0A= }=0A= const_iterator& operator--() {=0A= _M_bump_down();=0A= return *this;=0A= }=0A= const_iterator operator--(int) {=0A= const_iterator __tmp =3D *this;=0A= _M_bump_down();=0A= return __tmp;=0A= }=0A= const_iterator& operator+=3D(difference_type __i) {=0A= _M_incr(__i);=0A= return *this;=0A= }=0A= const_iterator& operator-=3D(difference_type __i) {=0A= *this +=3D -__i;=0A= return *this;=0A= }=0A= const_iterator operator+(difference_type __i) const {=0A= const_iterator __tmp =3D *this;=0A= return __tmp +=3D __i;=0A= }=0A= const_iterator operator-(difference_type __i) const {=0A= const_iterator __tmp =3D *this;=0A= return __tmp -=3D __i;=0A= }=0A= const_reference operator[](difference_type __i) {=0A= return *(*this + __i);=0A= }=0A= };=0A= =0A= inline _Bit_const_iterator=0A= operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) { return __x + = __n; }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= class _Bvector_alloc_base {=0A= public:=0A= typedef typename _Alloc_traits::allocator_type=0A= allocator_type;=0A= allocator_type get_allocator() const { return _M_data_allocator; }=0A= =0A= _Bvector_alloc_base(const allocator_type& __a)=0A= : _M_data_allocator(__a), _M_start(), _M_finish(), = _M_end_of_storage(0) {}=0A= =0A= protected:=0A= _Bit_type * _M_bit_alloc(size_t __n)=0A= { return _M_data_allocator.allocate((__n + _M_word_bit - = 1)/_M_word_bit); }=0A= void _M_deallocate() {=0A= if (_M_start._M_p)=0A= _M_data_allocator.deallocate(_M_start._M_p,=0A= _M_end_of_storage - _M_start._M_p);=0A= }=0A= =0A= typename _Alloc_traits<_Bit_type, _Allocator>::allocator_type=0A= _M_data_allocator;=0A= _Bit_iterator _M_start;=0A= _Bit_iterator _M_finish;=0A= _Bit_type * _M_end_of_storage;=0A= };=0A= =0A= =0A= template =0A= class _Bvector_alloc_base<_Allocator, true> {=0A= public:=0A= typedef typename _Alloc_traits::allocator_type=0A= allocator_type;=0A= allocator_type get_allocator() const { return allocator_type(); }=0A= =0A= _Bvector_alloc_base(const allocator_type&)=0A= : _M_start(), _M_finish(), _M_end_of_storage(0) {}=0A= =0A= protected:=0A= typedef typename _Alloc_traits<_Bit_type, _Allocator>::_Alloc_type=0A= _Alloc_type;=0A= =0A= _Bit_type * _M_bit_alloc(size_t __n)=0A= { return _Alloc_type::allocate((__n + _M_word_bit - 1)/_M_word_bit); = }=0A= void _M_deallocate() {=0A= if (_M_start._M_p)=0A= _Alloc_type::deallocate(_M_start._M_p,=0A= _M_end_of_storage - _M_start._M_p);=0A= }=0A= =0A= _Bit_iterator _M_start;=0A= _Bit_iterator _M_finish;=0A= _Bit_type * _M_end_of_storage;=0A= };=0A= =0A= template =0A= class _Bvector_base=0A= : public _Bvector_alloc_base<_Alloc,=0A= _Alloc_traits::_S_instanceless>=0A= {=0A= typedef _Bvector_alloc_base<_Alloc,=0A= _Alloc_traits::_S_instanceless>=0A= _Base;=0A= public:=0A= typedef typename _Base::allocator_type allocator_type;=0A= =0A= _Bvector_base(const allocator_type& __a) : _Base(__a) {}=0A= ~_Bvector_base() { _Base::_M_deallocate(); }=0A= };=0A= =0A= }=0A= =0A= =0A= =0A= namespace std=0A= {=0A= =0A= template =0A= class vector : public _Bvector_base<_Alloc>=0A= {=0A= public:=0A= typedef bool value_type;=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= typedef _Bit_reference reference;=0A= typedef bool const_reference;=0A= typedef _Bit_reference* pointer;=0A= typedef const bool* const_pointer;=0A= =0A= typedef _Bit_iterator iterator;=0A= typedef _Bit_const_iterator const_iterator;=0A= =0A= typedef reverse_iterator const_reverse_iterator;=0A= typedef reverse_iterator reverse_iterator;=0A= =0A= typedef typename _Bvector_base<_Alloc>::allocator_type = allocator_type;=0A= allocator_type get_allocator() const {=0A= return _Bvector_base<_Alloc>::get_allocator();=0A= }=0A= =0A= protected:=0A= using _Bvector_base<_Alloc>::_M_bit_alloc;=0A= using _Bvector_base<_Alloc>::_M_deallocate;=0A= using _Bvector_base<_Alloc>::_M_start;=0A= using _Bvector_base<_Alloc>::_M_finish;=0A= using _Bvector_base<_Alloc>::_M_end_of_storage;=0A= =0A= protected:=0A= void _M_initialize(size_type __n) {=0A= _Bit_type * __q =3D _M_bit_alloc(__n);=0A= _M_end_of_storage =3D __q + (__n + _M_word_bit - 1)/_M_word_bit;=0A= _M_start =3D iterator(__q, 0);=0A= _M_finish =3D _M_start + difference_type(__n);=0A= }=0A= void _M_insert_aux(iterator __position, bool __x) {=0A= if (_M_finish._M_p !=3D _M_end_of_storage) {=0A= copy_backward(__position, _M_finish, _M_finish + 1);=0A= *__position =3D __x;=0A= ++_M_finish;=0A= }=0A= else {=0A= size_type __len =3D size()=0A= ? 2 * size() : = static_cast(_M_word_bit);=0A= _Bit_type * __q =3D _M_bit_alloc(__len);=0A= iterator __i =3D copy(begin(), __position, iterator(__q, 0));=0A= *__i++ =3D __x;=0A= _M_finish =3D copy(__position, end(), __i);=0A= _M_deallocate();=0A= _M_end_of_storage =3D __q + (__len + _M_word_bit - = 1)/_M_word_bit;=0A= _M_start =3D iterator(__q, 0);=0A= }=0A= }=0A= =0A= template =0A= void _M_initialize_range(_InputIterator __first, _InputIterator = __last,=0A= input_iterator_tag) {=0A= _M_start =3D iterator();=0A= _M_finish =3D iterator();=0A= _M_end_of_storage =3D 0;=0A= for ( ; __first !=3D __last; ++__first)=0A= push_back(*__first);=0A= }=0A= =0A= template =0A= void _M_initialize_range(_ForwardIterator __first, _ForwardIterator = __last,=0A= forward_iterator_tag) {=0A= size_type __n =3D distance(__first, __last);=0A= _M_initialize(__n);=0A= copy(__first, __last, _M_start);=0A= }=0A= =0A= template =0A= void _M_insert_range(iterator __pos,=0A= _InputIterator __first, _InputIterator __last,=0A= input_iterator_tag) {=0A= for ( ; __first !=3D __last; ++__first) {=0A= __pos =3D insert(__pos, *__first);=0A= ++__pos;=0A= }=0A= }=0A= =0A= template =0A= void _M_insert_range(iterator __position,=0A= _ForwardIterator __first, _ForwardIterator = __last,=0A= forward_iterator_tag) {=0A= if (__first !=3D __last) {=0A= size_type __n =3D distance(__first, __last);=0A= if (capacity() - size() >=3D __n) {=0A= copy_backward(__position, end(), _M_finish + = difference_type(__n));=0A= copy(__first, __last, __position);=0A= _M_finish +=3D difference_type(__n);=0A= }=0A= else {=0A= size_type __len =3D size() + max(size(), __n);=0A= _Bit_type * __q =3D _M_bit_alloc(__len);=0A= iterator __i =3D copy(begin(), __position, iterator(__q, 0));=0A= __i =3D copy(__first, __last, __i);=0A= _M_finish =3D copy(__position, end(), __i);=0A= _M_deallocate();=0A= _M_end_of_storage =3D __q + (__len + _M_word_bit - = 1)/_M_word_bit;=0A= _M_start =3D iterator(__q, 0);=0A= }=0A= }=0A= }=0A= =0A= public:=0A= iterator begin() { return _M_start; }=0A= const_iterator begin() const { return _M_start; }=0A= iterator end() { return _M_finish; }=0A= const_iterator end() const { return _M_finish; }=0A= =0A= reverse_iterator rbegin() { return reverse_iterator(end()); }=0A= const_reverse_iterator rbegin() const {=0A= return const_reverse_iterator(end());=0A= }=0A= reverse_iterator rend() { return reverse_iterator(begin()); }=0A= const_reverse_iterator rend() const {=0A= return const_reverse_iterator(begin());=0A= }=0A= =0A= size_type size() const { return size_type(end() - begin()); }=0A= size_type max_size() const { return size_type(-1); }=0A= size_type capacity() const {=0A= return size_type(const_iterator(_M_end_of_storage, 0) - begin());=0A= }=0A= bool empty() const { return begin() =3D=3D end(); }=0A= =0A= reference operator[](size_type __n)=0A= { return *(begin() + difference_type(__n)); }=0A= const_reference operator[](size_type __n) const=0A= { return *(begin() + difference_type(__n)); }=0A= =0A= void _M_range_check(size_type __n) const {=0A= if (__n >=3D this->size())=0A= __throw_out_of_range("vector");=0A= }=0A= =0A= reference at(size_type __n)=0A= { _M_range_check(__n); return (*this)[__n]; }=0A= const_reference at(size_type __n) const=0A= { _M_range_check(__n); return (*this)[__n]; }=0A= =0A= explicit vector(const allocator_type& __a =3D allocator_type())=0A= : _Bvector_base<_Alloc>(__a) {}=0A= =0A= vector(size_type __n, bool __value,=0A= const allocator_type& __a =3D allocator_type())=0A= : _Bvector_base<_Alloc>(__a)=0A= {=0A= _M_initialize(__n);=0A= fill(_M_start._M_p, _M_end_of_storage, __value ? ~0 : 0);=0A= }=0A= =0A= explicit vector(size_type __n)=0A= : _Bvector_base<_Alloc>(allocator_type())=0A= {=0A= _M_initialize(__n);=0A= fill(_M_start._M_p, _M_end_of_storage, 0);=0A= }=0A= =0A= vector(const vector& __x) : = _Bvector_base<_Alloc>(__x.get_allocator()) {=0A= _M_initialize(__x.size());=0A= copy(__x.begin(), __x.end(), _M_start);=0A= }=0A= =0A= =0A= =0A= template =0A= void _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) = {=0A= _M_initialize(__n);=0A= fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0);=0A= }=0A= =0A= template =0A= void _M_initialize_dispatch(_InputIterator __first, _InputIterator = __last,=0A= __false_type) {=0A= _M_initialize_range(__first, __last, __iterator_category(__first));=0A= }=0A= =0A= template =0A= vector(_InputIterator __first, _InputIterator __last,=0A= const allocator_type& __a =3D allocator_type())=0A= : _Bvector_base<_Alloc>(__a)=0A= {=0A= typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A= _M_initialize_dispatch(__first, __last, _Integral());=0A= }=0A= =0A= ~vector() { }=0A= =0A= vector& operator=3D(const vector& __x) {=0A= if (&__x =3D=3D this) return *this;=0A= if (__x.size() > capacity()) {=0A= _M_deallocate();=0A= _M_initialize(__x.size());=0A= }=0A= copy(__x.begin(), __x.end(), begin());=0A= _M_finish =3D begin() + difference_type(__x.size());=0A= return *this;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= void _M_fill_assign(size_t __n, bool __x) {=0A= if (__n > size()) {=0A= fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0);=0A= insert(end(), __n - size(), __x);=0A= }=0A= else {=0A= erase(begin() + __n, end());=0A= fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0);=0A= }=0A= }=0A= =0A= void assign(size_t __n, bool __x) { _M_fill_assign(__n, __x); }=0A= =0A= template =0A= void assign(_InputIterator __first, _InputIterator __last) {=0A= typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A= _M_assign_dispatch(__first, __last, _Integral());=0A= }=0A= =0A= template =0A= void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)=0A= { _M_fill_assign((size_t) __n, (bool) __val); }=0A= =0A= template =0A= void _M_assign_dispatch(_InputIter __first, _InputIter __last, = __false_type)=0A= { _M_assign_aux(__first, __last, __iterator_category(__first)); }=0A= =0A= template =0A= void _M_assign_aux(_InputIterator __first, _InputIterator __last,=0A= input_iterator_tag) {=0A= iterator __cur =3D begin();=0A= for ( ; __first !=3D __last && __cur !=3D end(); ++__cur, = ++__first)=0A= *__cur =3D *__first;=0A= if (__first =3D=3D __last)=0A= erase(__cur, end());=0A= else=0A= insert(end(), __first, __last);=0A= }=0A= =0A= template =0A= void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,=0A= forward_iterator_tag) {=0A= size_type __len =3D distance(__first, __last);=0A= if (__len < size())=0A= erase(copy(__first, __last, begin()), end());=0A= else {=0A= _ForwardIterator __mid =3D __first;=0A= advance(__mid, size());=0A= copy(__first, __mid, begin());=0A= insert(end(), __mid, __last);=0A= }=0A= }=0A= =0A= void reserve(size_type __n) {=0A= if (capacity() < __n) {=0A= _Bit_type * __q =3D _M_bit_alloc(__n);=0A= _M_finish =3D copy(begin(), end(), iterator(__q, 0));=0A= _M_deallocate();=0A= _M_start =3D iterator(__q, 0);=0A= _M_end_of_storage =3D __q + (__n + _M_word_bit - 1)/_M_word_bit;=0A= }=0A= }=0A= =0A= reference front() { return *begin(); }=0A= const_reference front() const { return *begin(); }=0A= reference back() { return *(end() - 1); }=0A= const_reference back() const { return *(end() - 1); }=0A= void push_back(bool __x) {=0A= if (_M_finish._M_p !=3D _M_end_of_storage)=0A= *_M_finish++ =3D __x;=0A= else=0A= _M_insert_aux(end(), __x);=0A= }=0A= void swap(vector& __x) {=0A= std::swap(_M_start, __x._M_start);=0A= std::swap(_M_finish, __x._M_finish);=0A= std::swap(_M_end_of_storage, __x._M_end_of_storage);=0A= }=0A= iterator insert(iterator __position, bool __x =3D bool()) {=0A= difference_type __n =3D __position - begin();=0A= if (_M_finish._M_p !=3D _M_end_of_storage && __position =3D=3D = end())=0A= *_M_finish++ =3D __x;=0A= else=0A= _M_insert_aux(__position, __x);=0A= return begin() + __n;=0A= }=0A= =0A= =0A= =0A= template =0A= void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,=0A= __true_type) {=0A= _M_fill_insert(__pos, __n, __x);=0A= }=0A= =0A= template =0A= void _M_insert_dispatch(iterator __pos,=0A= _InputIterator __first, _InputIterator = __last,=0A= __false_type) {=0A= _M_insert_range(__pos, __first, __last, = __iterator_category(__first));=0A= }=0A= =0A= template =0A= void insert(iterator __position,=0A= _InputIterator __first, _InputIterator __last) {=0A= typedef typename _Is_integer<_InputIterator>::_Integral _Integral;=0A= _M_insert_dispatch(__position, __first, __last, _Integral());=0A= }=0A= =0A= void _M_fill_insert(iterator __position, size_type __n, bool __x) {=0A= if (__n =3D=3D 0) return;=0A= if (capacity() - size() >=3D __n) {=0A= copy_backward(__position, end(), _M_finish + = difference_type(__n));=0A= fill(__position, __position + difference_type(__n), __x);=0A= _M_finish +=3D difference_type(__n);=0A= }=0A= else {=0A= size_type __len =3D size() + max(size(), __n);=0A= _Bit_type * __q =3D _M_bit_alloc(__len);=0A= iterator __i =3D copy(begin(), __position, iterator(__q, 0));=0A= fill_n(__i, __n, __x);=0A= _M_finish =3D copy(__position, end(), __i + = difference_type(__n));=0A= _M_deallocate();=0A= _M_end_of_storage =3D __q + (__len + _M_word_bit - = 1)/_M_word_bit;=0A= _M_start =3D iterator(__q, 0);=0A= }=0A= }=0A= =0A= void insert(iterator __position, size_type __n, bool __x) {=0A= _M_fill_insert(__position, __n, __x);=0A= }=0A= =0A= void pop_back() { --_M_finish; }=0A= iterator erase(iterator __position) {=0A= if (__position + 1 !=3D end())=0A= copy(__position + 1, end(), __position);=0A= --_M_finish;=0A= return __position;=0A= }=0A= iterator erase(iterator __first, iterator __last) {=0A= _M_finish =3D copy(__last, end(), __first);=0A= return __first;=0A= }=0A= void resize(size_type __new_size, bool __x =3D bool()) {=0A= if (__new_size < size())=0A= erase(begin() + difference_type(__new_size), end());=0A= else=0A= insert(end(), __new_size - size(), __x);=0A= }=0A= void flip() {=0A= for (_Bit_type * __p =3D _M_start._M_p; __p !=3D = _M_end_of_storage; ++__p)=0A= *__p =3D ~*__p;=0A= }=0A= =0A= void clear() { erase(begin(), end()); }=0A= };=0A= =0A= =0A= typedef vector bit_vector;=0A= =0A= }=0A= # 73 "/usr/local/gcc3.1/include/g++-v3/vector" 2 3=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Tetrahedron_3.h" 2=0A= =0A= =0A= namespace CGAL {=0A= =0A= template =0A= class TetrahedronC3=0A= : public R_::Tetrahedron_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Plane_3 Plane_3;=0A= typedef typename R_::Tetrahedron_3 Tetrahedron_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Tetrahedron_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= TetrahedronC3()=0A= : base(rep()) {}=0A= =0A= TetrahedronC3(const Point_3 &p, const Point_3 &q, const Point_3 &r,=0A= const Point_3 &s)=0A= : base(rep(p, q, r, s)) {}=0A= =0A= const Point_3 & vertex(int i) const;=0A= const Point_3 & operator[](int i) const;=0A= =0A= bool operator=3D=3D(const TetrahedronC3 &t) const;=0A= bool operator!=3D(const TetrahedronC3 &t) const;=0A= =0A= Bbox_3 bbox() const;=0A= =0A= Tetrahedron_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return TetrahedronC3(t.transform(vertex(0)),=0A= t.transform(vertex(1)),=0A= t.transform(vertex(2)),=0A= t.transform(vertex(3)));=0A= }=0A= =0A= Orientation orientation() const;=0A= Oriented_side oriented_side(const Point_3 &p) const;=0A= Bounded_side bounded_side(const Point_3 &p) const;=0A= =0A= bool has_on_boundary(const Point_3 &p) const;=0A= bool has_on_positive_side(const Point_3 &p) const;=0A= bool has_on_negative_side(const Point_3 &p) const;=0A= bool has_on_bounded_side(const Point_3 &p) const;=0A= bool has_on_unbounded_side(const Point_3 &p) const;=0A= =0A= bool is_degenerate() const;=0A= FT volume() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= bool=0A= TetrahedronC3::=0A= operator=3D=3D(const TetrahedronC3 &t) const=0A= {=0A= if (identical(t))=0A= return true;=0A= if (orientation() !=3D t.orientation())=0A= return false;=0A= =0A= std::vector< Point_3 > V1;=0A= std::vector< Point_3 > V2;=0A= typename std::vector< Point_3 >::iterator uniq_end1;=0A= typename std::vector< Point_3 >::iterator uniq_end2;=0A= int k;=0A= for ( k=3D0; k < 4; k++) V1.push_back( vertex(k));=0A= for ( k=3D0; k < 4; k++) V2.push_back( t.vertex(k));=0A= typename R::Less_xyz_3 Less_object =3D R().less_xyz_3_object();=0A= std::sort(V1.begin(), V1.end(), Less_object);=0A= std::sort(V2.begin(), V2.end(), Less_object);=0A= uniq_end1 =3D std::unique( V1.begin(), V1.end());=0A= uniq_end2 =3D std::unique( V2.begin(), V2.end());=0A= V1.erase( uniq_end1, V1.end());=0A= V2.erase( uniq_end2, V2.end());=0A= return V1 =3D=3D V2;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TetrahedronC3::=0A= operator!=3D(const TetrahedronC3 &t) const=0A= {=0A= return !(*this =3D=3D t);=0A= }=0A= =0A= template < class R >=0A= const typename TetrahedronC3::Point_3 &=0A= TetrahedronC3::=0A= vertex(int i) const=0A= {=0A= if (i<0) i=3D(i%4)+4;=0A= else if (i>3) i=3Di%4;=0A= switch (i)=0A= {=0A= case 0: return Ptr()->e0;=0A= case 1: return Ptr()->e1;=0A= case 2: return Ptr()->e2;=0A= default: return Ptr()->e3;=0A= }=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename TetrahedronC3::Point_3 &=0A= TetrahedronC3::=0A= operator[](int i) const=0A= {=0A= return vertex(i);=0A= }=0A= =0A= template < class R >=0A= =0A= typename TetrahedronC3::FT=0A= TetrahedronC3::volume() const=0A= {=0A= typename R::Vector_3 v1 =3D vertex(1)-vertex(0);=0A= typename R::Vector_3 v2 =3D vertex(2)-vertex(0);=0A= typename R::Vector_3 v3 =3D vertex(3)-vertex(0);=0A= return det3x3_by_formula(v1.x(), v1.y(), v1.z(),=0A= v2.x(), v2.y(), v2.z(),=0A= v3.x(), v3.y(), v3.z())/FT(6);=0A= }=0A= =0A= template < class R >=0A= Orientation=0A= TetrahedronC3::=0A= orientation() const=0A= {=0A= return CGAL::orientation(vertex(0), vertex(1), vertex(2), vertex(3));=0A= }=0A= =0A= template < class R >=0A= Oriented_side=0A= TetrahedronC3::=0A= oriented_side(const typename TetrahedronC3::Point_3 &p) const=0A= {=0A= Orientation o =3D orientation();=0A= if (o !=3D ZERO)=0A= return Oriented_side(o * bounded_side(p));=0A= =0A= ((!is_degenerate())?(static_cast(0)): ::CGAL::assertion_fail( = "!is_degenerate()" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Tetrahedron_3.h", 204, 0));=0A= return ON_ORIENTED_BOUNDARY;=0A= }=0A= =0A= template < class R >=0A= Bounded_side=0A= TetrahedronC3::=0A= bounded_side(const typename TetrahedronC3::Point_3 &p) const=0A= {=0A= FT alpha, beta, gamma;=0A= =0A= solve(vertex(1)-vertex(0), vertex(2)-vertex(0), vertex(3)-vertex(0),=0A= p - vertex(0), alpha, beta, gamma);=0A= if ( (alpha < FT(0)) || (beta < FT(0)) || (gamma < FT(0))=0A= || (alpha + beta + gamma > FT(1)) )=0A= return ON_UNBOUNDED_SIDE;=0A= =0A= if ( (alpha =3D=3D FT(0)) || (beta =3D=3D FT(0)) || (gamma =3D=3D = FT(0))=0A= || (alpha+beta+gamma =3D=3D FT(1)) )=0A= return ON_BOUNDARY;=0A= =0A= return ON_BOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TetrahedronC3::has_on_boundary=0A= (const typename TetrahedronC3::Point_3 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_ORIENTED_BOUNDARY;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TetrahedronC3::has_on_positive_side=0A= (const typename TetrahedronC3::Point_3 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_POSITIVE_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TetrahedronC3::has_on_negative_side=0A= (const typename TetrahedronC3::Point_3 &p) const=0A= {=0A= return oriented_side(p) =3D=3D ON_NEGATIVE_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TetrahedronC3::has_on_bounded_side=0A= (const typename TetrahedronC3::Point_3 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= TetrahedronC3::has_on_unbounded_side=0A= (const typename TetrahedronC3::Point_3 &p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= bool=0A= TetrahedronC3::is_degenerate() const=0A= {=0A= Plane_3 plane(vertex(0), vertex(1), vertex(2));=0A= return (plane.is_degenerate()) ? true=0A= : plane.has_on_boundary(vertex(3));=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_3=0A= TetrahedronC3::bbox() const=0A= {=0A= return vertex(0).bbox() + vertex(1).bbox()=0A= + vertex(2).bbox() + vertex(3).bbox();=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream &os, const TetrahedronC3 &t)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << t[0] << ' ' << t[1] << ' ' << t[2] << ' ' << t[3];=0A= case IO::BINARY :=0A= return os << t[0] << t[1] << t[2] << t[3];=0A= default:=0A= os << "TetrahedronC3(" << t[0] << ", " << t[1] << ", " << t[2];=0A= os << ", " << t[3] << ")";=0A= return os;=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream &is, TetrahedronC3 &t)=0A= {=0A= typename R::Point_3 p, q, r, s;=0A= =0A= is >> p >> q >> r >> s;=0A= =0A= if (is)=0A= t =3D TetrahedronC3(p, q, r, s);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 95 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_cuboid_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_cuboid_3.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_points_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_points_3.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC3.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC3.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC3.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC3.h"=0A= namespace CGAL {=0A= =0A= template < class FT >=0A= inline=0A= void=0A= midpointC3( const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= FT &x, FT &y, FT &z)=0A= {=0A= FT half =3D FT(1) / FT(2);=0A= x =3D (px+qx) * half;=0A= y =3D (py+qy) * half;=0A= z =3D (pz+qz) * half;=0A= }=0A= =0A= template < class FT >=0A= void=0A= circumcenterC3( const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= const FT &sx, const FT &sy, const FT &sz,=0A= FT &x, FT &y, FT &z)=0A= {=0A= =0A= FT qpx =3D qx-px;=0A= FT qpy =3D qy-py;=0A= FT qpz =3D qz-pz;=0A= FT qp2 =3D CGAL::NTS:: square(qpx) + CGAL::NTS:: square(qpy) + = CGAL::NTS:: square(qpz);=0A= FT rpx =3D rx-px;=0A= FT rpy =3D ry-py;=0A= FT rpz =3D rz-pz;=0A= FT rp2 =3D CGAL::NTS:: square(rpx) + CGAL::NTS:: square(rpy) + = CGAL::NTS:: square(rpz);=0A= FT spx =3D sx-px;=0A= FT spy =3D sy-py;=0A= FT spz =3D sz-pz;=0A= FT sp2 =3D CGAL::NTS:: square(spx) + CGAL::NTS:: square(spy) + = CGAL::NTS:: square(spz);=0A= =0A= FT num_x =3D det3x3_by_formula(qpy,qpz,qp2,=0A= rpy,rpz,rp2,=0A= spy,spz,sp2);=0A= FT num_y =3D det3x3_by_formula(qpx,qpz,qp2,=0A= rpx,rpz,rp2,=0A= spx,spz,sp2);=0A= FT num_z =3D det3x3_by_formula(qpx,qpy,qp2,=0A= rpx,rpy,rp2,=0A= spx,spy,sp2);=0A= FT den =3D det3x3_by_formula(qpx,qpy,qpz,=0A= rpx,rpy,rpz,=0A= spx,spy,spz);=0A= ((! CGAL::NTS:: is_zero(den))?(static_cast(0)): = ::CGAL::assertion_fail( "! CGAL_NTS is_zero(den)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC3.h", 100, 0));=0A= FT inv =3D FT(1)/(FT(2) * den);=0A= =0A= x =3D px + num_x*inv;=0A= y =3D py - num_y*inv;=0A= z =3D pz + num_z*inv;=0A= }=0A= =0A= template < class FT >=0A= void=0A= circumcenterC3( const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &sx, const FT &sy, const FT &sz,=0A= FT &x, FT &y, FT &z)=0A= {=0A= =0A= FT psx =3D px-sx;=0A= FT psy =3D py-sy;=0A= FT psz =3D pz-sz;=0A= FT ps2 =3D CGAL::NTS:: square(psx) + CGAL::NTS:: square(psy) + = CGAL::NTS:: square(psz);=0A= FT qsx =3D qx-sx;=0A= FT qsy =3D qy-sy;=0A= FT qsz =3D qz-sz;=0A= FT qs2 =3D CGAL::NTS:: square(qsx) + CGAL::NTS:: square(qsy) + = CGAL::NTS:: square(qsz);=0A= FT rsx =3D psy*qsz-psz*qsy;=0A= FT rsy =3D psz*qsx-psx*qsz;=0A= FT rsz =3D psx*qsy-psy*qsx;=0A= # 140 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC3.h"=0A= FT num_x =3D ps2 * det2x2_by_formula(qsy,qsz,rsy,rsz)=0A= - qs2 * det2x2_by_formula(psy,psz,rsy,rsz);=0A= FT num_y =3D ps2 * det2x2_by_formula(qsx,qsz,rsx,rsz)=0A= - qs2 * det2x2_by_formula(psx,psz,rsx,rsz);=0A= FT num_z =3D ps2 * det2x2_by_formula(qsx,qsy,rsx,rsy)=0A= - qs2 * det2x2_by_formula(psx,psy,rsx,rsy);=0A= =0A= FT den =3D det3x3_by_formula(psx,psy,psz,=0A= qsx,qsy,qsz,=0A= rsx,rsy,rsz);=0A= =0A= ((den !=3D FT(0))?(static_cast(0)): ::CGAL::assertion_fail( "den = !=3D FT(0)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC3.h", 151, 0));=0A= FT inv =3D FT(1)/(FT(2) * den);=0A= =0A= x =3D sx + num_x*inv;=0A= y =3D sy - num_y*inv;=0A= z =3D sz + num_z*inv;=0A= }=0A= =0A= template < class FT >=0A= void=0A= centroidC3( const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= const FT &sx, const FT &sy, const FT &sz,=0A= FT &x, FT &y, FT &z)=0A= {=0A= x =3D (px + qx + rx + sx)/FT(4);=0A= y =3D (py + qy + ry + sy)/FT(4);=0A= z =3D (pz + qz + rz + sz)/FT(4);=0A= }=0A= =0A= template < class FT >=0A= void=0A= centroidC3( const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= FT &x, FT &y, FT &z)=0A= {=0A= x =3D (px + qx + rx)/FT(3);=0A= y =3D (py + qy + ry)/FT(3);=0A= z =3D (pz + qz + rz)/FT(3);=0A= }=0A= =0A= template < class FT >=0A= =0A= FT=0A= squared_radiusC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= const FT &sx, const FT &sy, const FT &sz)=0A= {=0A= =0A= FT qpx =3D qx-px;=0A= FT qpy =3D qy-py;=0A= FT qpz =3D qz-pz;=0A= FT qp2 =3D CGAL::NTS:: square(qpx) + CGAL::NTS:: square(qpy) + = CGAL::NTS:: square(qpz);=0A= FT rpx =3D rx-px;=0A= FT rpy =3D ry-py;=0A= FT rpz =3D rz-pz;=0A= FT rp2 =3D CGAL::NTS:: square(rpx) + CGAL::NTS:: square(rpy) + = CGAL::NTS:: square(rpz);=0A= FT spx =3D sx-px;=0A= FT spy =3D sy-py;=0A= FT spz =3D sz-pz;=0A= FT sp2 =3D CGAL::NTS:: square(spx) + CGAL::NTS:: square(spy) + = CGAL::NTS:: square(spz);=0A= =0A= FT num_x =3D det3x3_by_formula(qpy,qpz,qp2,=0A= rpy,rpz,rp2,=0A= spy,spz,sp2);=0A= FT num_y =3D det3x3_by_formula(qpx,qpz,qp2,=0A= rpx,rpz,rp2,=0A= spx,spz,sp2);=0A= FT num_z =3D det3x3_by_formula(qpx,qpy,qp2,=0A= rpx,rpy,rp2,=0A= spx,spy,sp2);=0A= FT den =3D det3x3_by_formula(qpx,qpy,qpz,=0A= rpx,rpy,rpz,=0A= spx,spy,spz);=0A= ((! CGAL::NTS:: is_zero(den))?(static_cast(0)): = ::CGAL::assertion_fail( "! CGAL_NTS is_zero(den)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC3.h", 218, 0));=0A= =0A= return (CGAL::NTS:: square(num_x) + CGAL::NTS:: square(num_y)=0A= + CGAL::NTS:: square(num_z)) / CGAL::NTS:: square(FT(2) * den);=0A= }=0A= =0A= template < class FT >=0A= =0A= FT=0A= squared_radiusC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &sx, const FT &sy, const FT &sz)=0A= {=0A= =0A= FT psx =3D px-sx;=0A= FT psy =3D py-sy;=0A= FT psz =3D pz-sz;=0A= FT ps2 =3D CGAL::NTS:: square(psx) + CGAL::NTS:: square(psy) + = CGAL::NTS:: square(psz);=0A= FT qsx =3D qx-sx;=0A= FT qsy =3D qy-sy;=0A= FT qsz =3D qz-sz;=0A= FT qs2 =3D CGAL::NTS:: square(qsx) + CGAL::NTS:: square(qsy) + = CGAL::NTS:: square(qsz);=0A= FT rsx =3D psy*qsz-psz*qsy;=0A= FT rsy =3D psz*qsx-psx*qsz;=0A= FT rsz =3D psx*qsy-psy*qsx;=0A= =0A= FT num_x =3D ps2 * det2x2_by_formula(qsy,qsz,rsy,rsz)=0A= - qs2 * det2x2_by_formula(psy,psz,rsy,rsz);=0A= FT num_y =3D ps2 * det2x2_by_formula(qsx,qsz,rsx,rsz)=0A= - qs2 * det2x2_by_formula(psx,psz,rsx,rsz);=0A= FT num_z =3D ps2 * det2x2_by_formula(qsx,qsy,rsx,rsy)=0A= - qs2 * det2x2_by_formula(psx,psy,rsx,rsy);=0A= =0A= FT den =3D det3x3_by_formula(psx,psy,psz,=0A= qsx,qsy,qsz,=0A= rsx,rsy,rsz);=0A= =0A= ((den !=3D FT(0))?(static_cast(0)): ::CGAL::assertion_fail( "den = !=3D FT(0)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/co= nstructions/kernel_ftC3.h", 255, 0));=0A= =0A= return (CGAL::NTS:: square(num_x) + CGAL::NTS:: square(num_y)=0A= + CGAL::NTS:: square(num_z)) / CGAL::NTS:: square(FT(2) * den);=0A= }=0A= =0A= template =0A= =0A= void=0A= point_on_lineC3(const FT &lpx, const FT &lpy, const FT &lpz,=0A= const FT &ldx, const FT &ldy, const FT &ldz,=0A= int i,=0A= FT &x, FT &y, FT &z)=0A= {=0A= x =3D lpx + ldx*FT(i);=0A= y =3D lpy + ldy*FT(i);=0A= z =3D lpz + ldz*FT(i);=0A= }=0A= =0A= template =0A= =0A= void=0A= projection_lineC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &lpx, const FT &lpy, const FT &lpz,=0A= const FT &ldx, const FT &ldy, const FT &ldz,=0A= FT &x, FT &y, FT &z)=0A= {=0A= =0A= FT dpx =3D px-lpx;=0A= FT dpy =3D py-lpy;=0A= FT dpz =3D pz-lpz;=0A= FT lambda =3D (ldx*dpx+ldy*dpy+ldz*dpz) / (ldx*ldx+ldy*ldy+ldz*ldz);=0A= x =3D lpx + lambda * ldx;=0A= y =3D lpy + lambda * ldy;=0A= z =3D lpz + lambda * ldz;=0A= }=0A= =0A= template =0A= =0A= void=0A= plane_from_pointsC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= FT &pa, FT &pb, FT &pc, FT &pd)=0A= {=0A= FT rpx =3D px-rx;=0A= FT rpy =3D py-ry;=0A= FT rpz =3D pz-rz;=0A= FT rqx =3D qx-rx;=0A= FT rqy =3D qy-ry;=0A= FT rqz =3D qz-rz;=0A= =0A= pa =3D rpy*rqz - rqy*rpz;=0A= pb =3D rpz*rqx - rqz*rpx;=0A= pc =3D rpx*rqy - rqx*rpy;=0A= pd =3D - pa*rx - pb*ry - pc*rz;=0A= }=0A= =0A= template =0A= =0A= void=0A= plane_from_point_directionC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &dx, const FT &dy, const FT &dz,=0A= FT &pa, FT &pb, FT &pc, FT &pd)=0A= {=0A= =0A= pa =3D dx; pb =3D dy; pc =3D dz; pd =3D -dx*px - dy*py - dz*pz;=0A= }=0A= =0A= template =0A= =0A= void=0A= point_on_planeC3(const FT &pa, const FT &pb, const FT &pc, const FT &pd,=0A= FT &x, FT &y, FT &z)=0A= {=0A= x =3D y =3D z =3D FT(0);=0A= if (! CGAL::NTS:: is_zero(pa)) x =3D -pd/pa;=0A= else if (! CGAL::NTS:: is_zero(pb)) y =3D -pd/pb;=0A= else z =3D -pd/pc;=0A= }=0A= =0A= template =0A= =0A= void=0A= projection_planeC3(const FT &pa, const FT &pb, const FT &pc, const FT = &pd,=0A= const FT &px, const FT &py, const FT &pz,=0A= FT &x, FT &y, FT &z)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= FT num =3D pa*px + pb*py + pc*pz + pd;=0A= FT den =3D pa*pa + pb*pb + pc*pc;=0A= FT lambda =3D num / den;=0A= =0A= x =3D px - lambda * pa;=0A= y =3D py - lambda * pb;=0A= z =3D pz - lambda * pc;=0A= }=0A= =0A= template < class FT >=0A= inline=0A= FT=0A= squared_distanceC3( const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return CGAL::NTS:: square(px-qx) + CGAL::NTS:: square(py-qy) +=0A= CGAL::NTS:: square(pz-qz);=0A= }=0A= =0A= template < class FT >=0A= inline=0A= FT=0A= scaled_distance_to_directionC3(const FT &pa, const FT &pb, const FT &pc,=0A= const FT &px, const FT &py, const FT &pz)=0A= {=0A= return pa*px + pb*py + pc*pz;=0A= }=0A= =0A= template < class FT >=0A= inline=0A= FT=0A= scaled_distance_to_planeC3(=0A= const FT &pa, const FT &pb, const FT &pc, const FT &pd,=0A= const FT &px, const FT &py, const FT &pz)=0A= {=0A= return pa*px + pb*py + pc*pz + pd;=0A= }=0A= =0A= template < class FT >=0A= inline=0A= FT=0A= scaled_distance_to_planeC3(=0A= const FT &ppx, const FT &ppy, const FT &ppz,=0A= const FT &pqx, const FT &pqy, const FT &pqz,=0A= const FT &prx, const FT &pry, const FT &prz,=0A= const FT &px, const FT &py, const FT &pz)=0A= {=0A= return det3x3_by_formula(ppx-px,ppy-py,ppz-pz,=0A= pqx-px,pqy-py,pqz-pz,=0A= prx-px,pry-py,prz-pz);=0A= }=0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC3.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class FT >=0A= =0A= =0A= Comparison_result=0A= compare_lexicographically_xyzC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= Comparison_result c =3D CGAL::NTS:: compare(px, qx);=0A= if (c !=3D EQUAL) return c;=0A= c =3D CGAL::NTS:: compare(py, qy);=0A= if (c !=3D EQUAL) return c;=0A= return CGAL::NTS:: compare(pz, qz);=0A= }=0A= =0A= template < class FT >=0A= =0A= bool=0A= strict_dominanceC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return CGAL::NTS:: compare(px, qx) =3D=3D LARGER &&=0A= CGAL::NTS:: compare(py, qy) =3D=3D LARGER &&=0A= CGAL::NTS:: compare(pz, qz) =3D=3D LARGER;=0A= }=0A= =0A= template < class FT >=0A= =0A= bool=0A= dominanceC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return CGAL::NTS:: compare(px, qx) !=3D SMALLER &&=0A= CGAL::NTS:: compare(py, qy) !=3D SMALLER &&=0A= CGAL::NTS:: compare(pz, qz) !=3D SMALLER;=0A= }=0A= =0A= template < class FT >=0A= =0A= bool=0A= collinearC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz)=0A= {=0A= FT dpx =3D px-rx;=0A= FT dqx =3D qx-rx;=0A= FT dpy =3D py-ry;=0A= FT dqy =3D qy-ry;=0A= if (sign_of_determinant2x2(dpx, dqx, dpy, dqy) !=3D ZERO)=0A= return false;=0A= FT dpz =3D pz-rz;=0A= FT dqz =3D qz-rz;=0A= return sign_of_determinant2x2(dpx, dqx, dpz, dqz) =3D=3D ZERO=0A= && sign_of_determinant2x2(dpy, dqy, dpz, dqz) =3D=3D ZERO;=0A= }=0A= =0A= template < class FT >=0A= =0A= Orientation=0A= orientationC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= const FT &sx, const FT &sy, const FT &sz)=0A= {=0A= return Orientation(sign_of_determinant3x3(qx-px,rx-px,sx-px,=0A= qy-py,ry-py,sy-py,=0A= qz-pz,rz-pz,sz-pz));=0A= }=0A= =0A= template < class FT >=0A= inline=0A= Angle=0A= angleC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz)=0A= {=0A= return (Angle) CGAL::NTS:: sign ((px-qx)*(rx-qx)+=0A= (py-qy)*(ry-qy)+=0A= (pz-qz)*(rz-qz));=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= Orientation=0A= coplanar_orientationC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= const FT &sx, const FT &sy, const FT &sz)=0A= {=0A= Orientation oxy_pqr =3D orientationC2(px,py,qx,qy,rx,ry);=0A= if (oxy_pqr !=3D COLLINEAR)=0A= return Orientation( oxy_pqr * orientationC2(px,py,qx,qy,sx,sy));=0A= =0A= Orientation oyz_pqr =3D orientationC2(py,pz,qy,qz,ry,rz);=0A= if (oyz_pqr !=3D COLLINEAR)=0A= return Orientation( oyz_pqr * orientationC2(py,pz,qy,qz,sy,sz));=0A= =0A= Orientation oxz_pqr =3D orientationC2(px,pz,qx,qz,rx,rz);=0A= ((oxz_pqr !=3D COLLINEAR)?(static_cast(0)): = ::CGAL::assertion_fail( "oxz_pqr !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/pr= edicates/kernel_ftC3.h", 153, 0));=0A= return Orientation( oxz_pqr * orientationC2(px,pz,qx,qz,sx,sz));=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= Orientation=0A= coplanar_orientationC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz)=0A= {=0A= Orientation oxy_pqr =3D orientationC2(px,py,qx,qy,rx,ry);=0A= if (oxy_pqr !=3D COLLINEAR)=0A= return oxy_pqr;=0A= =0A= Orientation oyz_pqr =3D orientationC2(py,pz,qy,qz,ry,rz);=0A= if (oyz_pqr !=3D COLLINEAR)=0A= return oyz_pqr;=0A= =0A= return orientationC2(px,pz,qx,qz,rx,rz);=0A= }=0A= =0A= template < class FT >=0A= =0A= Bounded_side=0A= coplanar_side_of_bounded_circleC3(const FT &px, const FT &py, const FT = &pz,=0A= const FT &qx, const FT &qy, const FT = &qz,=0A= const FT &rx, const FT &ry, const FT = &rz,=0A= const FT &tx, const FT &ty, const FT = &tz)=0A= {=0A= =0A= =0A= =0A= =0A= FT ptx =3D px - tx;=0A= FT pty =3D py - ty;=0A= FT ptz =3D pz - tz;=0A= FT pt2 =3D CGAL::NTS:: square(ptx) + CGAL::NTS:: square(pty) + = CGAL::NTS:: square(ptz);=0A= FT qtx =3D qx - tx;=0A= FT qty =3D qy - ty;=0A= FT qtz =3D qz - tz;=0A= FT qt2 =3D CGAL::NTS:: square(qtx) + CGAL::NTS:: square(qty) + = CGAL::NTS:: square(qtz);=0A= FT rtx =3D rx - tx;=0A= FT rty =3D ry - ty;=0A= FT rtz =3D rz - tz;=0A= FT rt2 =3D CGAL::NTS:: square(rtx) + CGAL::NTS:: square(rty) + = CGAL::NTS:: square(rtz);=0A= FT pqx =3D qx - px;=0A= FT pqy =3D qy - py;=0A= FT pqz =3D qz - pz;=0A= FT prx =3D rx - px;=0A= FT pry =3D ry - py;=0A= FT prz =3D rz - pz;=0A= FT vx =3D pqy*prz - pqz*pry;=0A= FT vy =3D pqz*prx - pqx*prz;=0A= FT vz =3D pqx*pry - pqy*prx;=0A= FT v2 =3D CGAL::NTS:: square(vx) + CGAL::NTS:: square(vy) + = CGAL::NTS:: square(vz);=0A= return Bounded_side(sign_of_determinant4x4(ptx,pty,ptz,pt2,=0A= rtx,rty,rtz,rt2,=0A= qtx,qty,qtz,qt2,=0A= vx,vy,vz,v2));=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= collinear_are_ordered_along_lineC3(=0A= const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz)=0A= {=0A= if (px < qx) return !(rx < qx);=0A= if (qx < px) return !(qx < rx);=0A= if (py < qy) return !(ry < qy);=0A= if (qy < py) return !(qy < ry);=0A= if (pz < qz) return !(rz < qz);=0A= if (qz < pz) return !(qz < rz);=0A= return true;=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= collinear_are_strictly_ordered_along_lineC3(=0A= const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz)=0A= {=0A= if (px < qx) return (qx < rx);=0A= if (qx < px) return (rx < qx);=0A= if (py < qy) return (qy < ry);=0A= if (qy < py) return (ry < qy);=0A= if (pz < qz) return (qz < rz);=0A= if (qz < pz) return (rz < qz);=0A= return false;=0A= }=0A= =0A= template < class FT >=0A= =0A= bool=0A= equal_directionC3(const FT &dx1, const FT &dy1, const FT &dz1,=0A= const FT &dx2, const FT &dy2, const FT &dz2)=0A= {=0A= return sign_of_determinant2x2(dx1, dy1, dx2, dy2) =3D=3D ZERO=0A= && sign_of_determinant2x2(dx1, dz1, dx2, dz2) =3D=3D ZERO=0A= && sign_of_determinant2x2(dy1, dz1, dy2, dz2) =3D=3D ZERO=0A= && CGAL::NTS:: sign(dx1) =3D=3D CGAL::NTS:: sign(dx2)=0A= && CGAL::NTS:: sign(dy1) =3D=3D CGAL::NTS:: sign(dy2)=0A= && CGAL::NTS:: sign(dz1) =3D=3D CGAL::NTS:: sign(dz2);=0A= }=0A= =0A= template < class FT >=0A= =0A= bool=0A= equal_planeC3(const FT &ha, const FT &hb, const FT &hc, const FT &hd,=0A= const FT &pa, const FT &pb, const FT &pc, const FT &pd)=0A= {=0A= if (!equal_directionC3(ha, hb, hc, pa, pb, pc))=0A= return false;=0A= =0A= CGAL::Sign s1a =3D CGAL::NTS:: sign(ha);=0A= if (s1a !=3D ZERO)=0A= return s1a =3D=3D CGAL::NTS:: sign(pa)=0A= && sign_of_determinant2x2(pa, pd, ha, hd) =3D=3D ZERO;=0A= CGAL::Sign s1b =3D CGAL::NTS:: sign(hb);=0A= if (s1b !=3D ZERO)=0A= return s1b =3D=3D CGAL::NTS:: sign(pb)=0A= && sign_of_determinant2x2(pb, pd, hb, hd) =3D=3D ZERO;=0A= return CGAL::NTS:: sign(pc) =3D=3D CGAL::NTS:: sign(hc)=0A= && sign_of_determinant2x2(pc, pd, hc, hd) =3D=3D ZERO;=0A= }=0A= =0A= template =0A= =0A= Oriented_side=0A= side_of_oriented_planeC3(const FT &a, const FT &b, const FT &c, const FT = &d,=0A= const FT &px, const FT &py, const FT &pz)=0A= {=0A= return Oriented_side(CGAL::NTS:: sign(a*px + b*py + c*pz +d));=0A= }=0A= =0A= template =0A= =0A= Oriented_side=0A= side_of_oriented_sphereC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= const FT &sx, const FT &sy, const FT &sz,=0A= const FT &tx, const FT &ty, const FT &tz)=0A= {=0A= FT ptx =3D px - tx;=0A= FT pty =3D py - ty;=0A= FT ptz =3D pz - tz;=0A= FT pt2 =3D CGAL::NTS:: square(ptx) + CGAL::NTS:: square(pty) + = CGAL::NTS:: square(ptz);=0A= FT qtx =3D qx - tx;=0A= FT qty =3D qy - ty;=0A= FT qtz =3D qz - tz;=0A= FT qt2 =3D CGAL::NTS:: square(qtx) + CGAL::NTS:: square(qty) + = CGAL::NTS:: square(qtz);=0A= FT rtx =3D rx - tx;=0A= FT rty =3D ry - ty;=0A= FT rtz =3D rz - tz;=0A= FT rt2 =3D CGAL::NTS:: square(rtx) + CGAL::NTS:: square(rty) + = CGAL::NTS:: square(rtz);=0A= FT stx =3D sx - tx;=0A= FT sty =3D sy - ty;=0A= FT stz =3D sz - tz;=0A= FT st2 =3D CGAL::NTS:: square(stx) + CGAL::NTS:: square(sty) + = CGAL::NTS:: square(stz);=0A= return Oriented_side(sign_of_determinant4x4(ptx,pty,ptz,pt2,=0A= rtx,rty,rtz,rt2,=0A= qtx,qty,qtz,qt2,=0A= stx,sty,stz,st2));=0A= }=0A= =0A= template =0A= =0A= Bounded_side=0A= side_of_bounded_sphereC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz,=0A= const FT &sx, const FT &sy, const FT &sz,=0A= const FT &tx, const FT &ty, const FT &tz)=0A= {=0A= Oriented_side s =3D side_of_oriented_sphereC3(px, py, pz,=0A= qx, qy, qz,=0A= rx, ry, rz,=0A= sx, sy, sz,=0A= tx, ty, tz);=0A= Orientation o =3D orientationC3(px, py, pz,=0A= qx, qy, qz,=0A= rx, ry, rz,=0A= sx, sy, sz);=0A= return Bounded_side(s * o);=0A= }=0A= =0A= template =0A= =0A= Bounded_side=0A= side_of_bounded_sphereC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &tx, const FT &ty, const FT &tz)=0A= {=0A= =0A= return Bounded_side( CGAL::NTS:: sign((tx-px)*(qx-tx)=0A= + (ty-py)*(qy-ty)=0A= + (tz-pz)*(qz-tz)) );=0A= }=0A= =0A= template < class FT >=0A= inline=0A= Comparison_result=0A= cmp_dist_to_pointC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz)=0A= {=0A= return CGAL::NTS:: compare(squared_distanceC3(px,py,pz,qx,qy,qz),=0A= squared_distanceC3(px,py,pz,rx,ry,rz));=0A= }=0A= =0A= =0A= =0A= template =0A= =0A= Bounded_side=0A= side_of_bounded_sphereC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &sx, const FT &sy, const FT &sz,=0A= const FT &tx, const FT &ty, const FT &tz)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= FT psx =3D px-sx;=0A= FT psy =3D py-sy;=0A= FT psz =3D pz-sz;=0A= FT ps2 =3D CGAL::NTS:: square(psx) + CGAL::NTS:: square(psy) + = CGAL::NTS:: square(psz);=0A= FT qsx =3D qx-sx;=0A= FT qsy =3D qy-sy;=0A= FT qsz =3D qz-sz;=0A= FT qs2 =3D CGAL::NTS:: square(qsx) + CGAL::NTS:: square(qsy) + = CGAL::NTS:: square(qsz);=0A= FT rsx =3D psy*qsz-psz*qsy;=0A= FT rsy =3D psz*qsx-psx*qsz;=0A= FT rsz =3D psx*qsy-psy*qsx;=0A= FT tsx =3D tx-sx;=0A= FT tsy =3D ty-sy;=0A= FT tsz =3D tz-sz;=0A= =0A= FT num_x =3D ps2 * det2x2_by_formula(qsy,qsz,rsy,rsz)=0A= - qs2 * det2x2_by_formula(psy,psz,rsy,rsz);=0A= FT num_y =3D ps2 * det2x2_by_formula(qsx,qsz,rsx,rsz)=0A= - qs2 * det2x2_by_formula(psx,psz,rsx,rsz);=0A= FT num_z =3D ps2 * det2x2_by_formula(qsx,qsy,rsx,rsy)=0A= - qs2 * det2x2_by_formula(psx,psy,rsx,rsy);=0A= =0A= FT den =3D det3x3_by_formula(psx,psy,psz,=0A= qsx,qsy,qsz,=0A= rsx,rsy,rsz);=0A= =0A= FT den2 =3D FT(2) * den;=0A= =0A= =0A= return Bounded_side(cmp_dist_to_pointC3(num_x, - num_y, num_z,=0A= psx*den2, psy*den2, psz*den2,=0A= tsx*den2, tsy*den2, tsz*den2) = );=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= has_larger_dist_to_pointC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz)=0A= {=0A= return cmp_dist_to_pointC3(px,py,pz,qx,qy,qz,rx,ry,rz) =3D=3D LARGER;=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= has_smaller_dist_to_pointC3(const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz,=0A= const FT &rx, const FT &ry, const FT &rz)=0A= {=0A= return cmp_dist_to_pointC3(px,py,pz,qx,qy,qz,rx,ry,rz) =3D=3D SMALLER;=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= cmp_signed_dist_to_directionC3(=0A= const FT &pa, const FT &pb, const FT &pc,=0A= const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return CGAL::NTS:: = compare(scaled_distance_to_directionC3(pa,pb,pc,px,py,pz),=0A= = scaled_distance_to_directionC3(pa,pb,pc,qx,qy,qz));=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= has_larger_signed_dist_to_directionC3(=0A= const FT &pa, const FT &pb, const FT &pc,=0A= const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return cmp_signed_dist_to_directionC3(pa,pb,pc,px,py,pz,qx,qy,qz) = =3D=3D LARGER;=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= has_smaller_signed_dist_to_directionC3(=0A= const FT &pa, const FT &pb, const FT &pc,=0A= const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return cmp_signed_dist_to_directionC3(pa,pb,pc,px,py,pz,qx,qy,qz) = =3D=3D SMALLER;=0A= }=0A= =0A= template < class FT >=0A= =0A= Comparison_result=0A= cmp_signed_dist_to_planeC3(=0A= const FT &ppx, const FT &ppy, const FT &ppz,=0A= const FT &pqx, const FT &pqy, const FT &pqz,=0A= const FT &prx, const FT &pry, const FT &prz,=0A= const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return Comparison_result(sign_of_determinant3x3(=0A= pqx-ppx, pqy-ppy, pqz-ppz,=0A= prx-ppx, pry-ppy, prz-ppz,=0A= qx-px, qy-py, qz-pz));=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= has_larger_signed_dist_to_planeC3(=0A= const FT &ppx, const FT &ppy, const FT &ppz,=0A= const FT &pqx, const FT &pqy, const FT &pqz,=0A= const FT &prx, const FT &pry, const FT &prz,=0A= const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return cmp_signed_dist_to_planeC3(ppx, ppy, ppz, pqx, pqy, pqz,=0A= prx, pry, prz, px, py, pz, qx, qy, qz) =3D=3D LARGER;=0A= }=0A= =0A= template < class FT >=0A= =0A= =0A= bool=0A= has_smaller_signed_dist_to_planeC3(=0A= const FT &ppx, const FT &ppy, const FT &ppz,=0A= const FT &pqx, const FT &pqy, const FT &pqz,=0A= const FT &prx, const FT &pry, const FT &prz,=0A= const FT &px, const FT &py, const FT &pz,=0A= const FT &qx, const FT &qy, const FT &qz)=0A= {=0A= return cmp_signed_dist_to_planeC3(ppx, ppy, ppz, pqx, pqy, pqz,=0A= prx, pry, prz, px, py, pz, qx, qy, qz) =3D=3D SMALLER;=0A= }=0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_points_3.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= bool=0A= x_equal(const PointC3 &p, const PointC3 &q)=0A= {=0A= return p.x() =3D=3D q.x();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= y_equal(const PointC3 &p, const PointC3 &q)=0A= {=0A= return p.y() =3D=3D q.y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= z_equal(const PointC3 &p, const PointC3 &q)=0A= {=0A= return p.z() =3D=3D q.z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= less_x(const PointC3 &p, const PointC3 &q)=0A= {=0A= return p.x() < q.x();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= less_y(const PointC3 &p, const PointC3 &q)=0A= {=0A= return p.y() < q.y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= less_z(const PointC3 &p, const PointC3 &q)=0A= {=0A= return p.z() < q.z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_x(const PointC3 &p, const PointC3 &q)=0A= {=0A= return CGAL::NTS:: compare(p.x(), q.x());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_y(const PointC3 &p, const PointC3 &q)=0A= {=0A= return CGAL::NTS:: compare(p.y(), q.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_z(const PointC3 &p, const PointC3 &q)=0A= {=0A= return CGAL::NTS:: compare(p.z(), q.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= equal_xy(const PointC3 &p, const PointC3 &q)=0A= {=0A= return p.x() =3D=3D q.x() && p.y() =3D=3D q.y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= equal_xyz(const PointC3 &p, const PointC3 &q)=0A= {=0A= return p.x() =3D=3D q.x() && p.y() =3D=3D q.y() && p.z() =3D=3D q.z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_xy(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return compare_lexicographically_xyC2(p.x(), p.y(), q.x(), q.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Comparison_result=0A= compare_lexicographically_xy(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return compare_lexicographically_xyC2(p.x(), p.y(), q.x(), q.y());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_xy_smaller_or_equal(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return compare_lexicographically_xy(p, q) !=3D LARGER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= lexicographically_xy_smaller(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return compare_lexicographically_xy(p, q) =3D=3D SMALLER;=0A= }=0A= =0A= template < class R >=0A= Comparison_result=0A= compare_xyz(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return compare_lexicographically_xyzC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= Comparison_result=0A= compare_lexicographically_xyz(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return compare_lexicographically_xyzC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= bool=0A= lexicographically_xyz_smaller_or_equal(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return compare_lexicographically_xyz(p, q) !=3D LARGER;=0A= }=0A= =0A= template < class R >=0A= bool=0A= lexicographically_xyz_smaller(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return compare_lexicographically_xyz(p, q) =3D=3D SMALLER;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= strict_dominance(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return strict_dominanceC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= dominance(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return dominanceC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= collinear(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return collinearC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Orientation=0A= orientation(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &s)=0A= {=0A= return orientationC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= s.x(), s.y(), s.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Angle=0A= angle(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return angleC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= coplanar(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &s)=0A= {=0A= return orientation(p, q, r, s) =3D=3D COPLANAR;=0A= }=0A= =0A= template < class R >=0A= inline=0A= Orientation=0A= coplanar_orientation(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &s)=0A= {=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= (static_cast(0));=0A= (static_cast(0));=0A= return coplanar_orientationC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= s.x(), s.y(), s.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Orientation=0A= coplanar_orientation(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= =0A= return coplanar_orientationC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bounded_side=0A= coplanar_side_of_bounded_circle(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &t)=0A= {=0A= =0A= =0A= =0A= (static_cast(0));=0A= (static_cast(0));=0A= return coplanar_side_of_bounded_circleC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= t.x(), t.y(), t.z());=0A= }=0A= =0A= template < class R>=0A= inline=0A= bool=0A= are_positive_oriented(const PointC3& p,=0A= const PointC3& q,=0A= const PointC3& r,=0A= const PointC3& s)=0A= {=0A= return orientation(p, q, r, s) =3D=3D POSITIVE;=0A= }=0A= =0A= template < class R>=0A= inline=0A= bool=0A= are_negative_oriented(const PointC3& p,=0A= const PointC3& q,=0A= const PointC3& r,=0A= const PointC3& s)=0A= {=0A= return orientation(p, q, r, s) =3D=3D NEGATIVE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= are_ordered_along_line(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return collinear(p, q, r) ? collinear_are_ordered_along_line(p, q, r)=0A= : false;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= collinear_are_ordered_along_line(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= (static_cast(0));=0A= return collinear_are_ordered_along_lineC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= are_strictly_ordered_along_line(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return (collinear(p, q, r))=0A= ? collinear_are_strictly_ordered_along_line(p, q, r)=0A= : false;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= collinear_are_strictly_ordered_along_line(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= (static_cast(0));=0A= return collinear_are_strictly_ordered_along_lineC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), = r.z());=0A= }=0A= =0A= template =0A= inline=0A= Oriented_side=0A= side_of_oriented_sphere(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &s,=0A= const PointC3 &test)=0A= {=0A= return side_of_oriented_sphereC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= s.x(), s.y(), s.z(),=0A= test.x(), test.y(), test.z());=0A= }=0A= =0A= template =0A= inline=0A= Bounded_side=0A= side_of_bounded_sphere(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &test)=0A= {=0A= return side_of_bounded_sphereC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= test.x(), test.y(), test.z());=0A= }=0A= =0A= template =0A= inline=0A= Bounded_side=0A= side_of_bounded_sphere(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &test)=0A= {=0A= return side_of_bounded_sphereC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= test.x(), test.y(), test.z());=0A= }=0A= =0A= template =0A= inline=0A= Bounded_side=0A= side_of_bounded_sphere(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &s,=0A= const PointC3 &test)=0A= {=0A= return side_of_bounded_sphereC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= s.x(), s.y(), s.z(),=0A= test.x(), test.y(), test.z());=0A= }=0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_cuboid_3.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class Iso_cuboidC3=0A= : public R_::Iso_cuboid_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Iso_cuboid_3 Iso_cuboid_3;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Iso_cuboid_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= Iso_cuboidC3()=0A= : base(rep()) {}=0A= =0A= Iso_cuboidC3(const Point_3 &p, const Point_3 &q)=0A= {=0A= FT minx, maxx, miny, maxy, minz, maxz;=0A= if (p.x() < q.x()) { minx =3D p.x(); maxx =3D q.x(); }=0A= else { minx =3D q.x(); maxx =3D p.x(); }=0A= if (p.y() < q.y()) { miny =3D p.y(); maxy =3D q.y(); }=0A= else { miny =3D q.y(); maxy =3D p.y(); }=0A= if (p.z() < q.z()) { minz =3D p.z(); maxz =3D q.z(); }=0A= else { minz =3D q.z(); maxz =3D p.z(); }=0A= initialize_with(rep(Point_3(minx, miny, minz),=0A= Point_3(maxx, maxy, maxz)));=0A= }=0A= =0A= Iso_cuboidC3(const FT& min_x, const FT& min_y, const FT& min_z,=0A= const FT& max_x, const FT& max_y, const FT& max_z)=0A= {=0A= initialize_with(rep(Point_3(min_x, min_y, min_z),=0A= Point_3(max_x, max_y, max_z)));=0A= }=0A= =0A= Iso_cuboidC3(const FT& min_hx, const FT& min_hy, const FT& min_hz,=0A= const FT& max_hx, const FT& max_hy, const FT& max_hz,=0A= const FT& hw)=0A= {=0A= if (hw =3D=3D FT(1))=0A= initialize_with(rep(Point_3(min_hx, min_hy, min_hz),=0A= Point_3(max_hx, max_hy, = max_hz)));=0A= else=0A= initialize_with(=0A= rep(Point_3(min_hx/hw, min_hy/hw, min_hz/hw),=0A= Point_3(max_hx/hw, max_hy/hw, max_hz/hw)));=0A= }=0A= =0A= =0A= bool operator=3D=3D(const Iso_cuboidC3& s) const;=0A= bool operator!=3D(const Iso_cuboidC3& s) const;=0A= =0A= const Point_3 & min() const=0A= {=0A= return Ptr()->e0;=0A= }=0A= const Point_3 & max() const=0A= {=0A= return Ptr()->e1;=0A= }=0A= Point_3 vertex(int i) const;=0A= Point_3 operator[](int i) const;=0A= =0A= Iso_cuboid_3 transform(const Aff_transformation_3 &t) const=0A= {=0A= return Iso_cuboidC3(t.transform(min()), t.transform(max()));=0A= }=0A= =0A= Bounded_side bounded_side(const Point_3& p) const;=0A= bool has_on(const Point_3& p) const;=0A= bool has_on_boundary(const Point_3& p) const;=0A= bool has_on_bounded_side(const Point_3& p) const;=0A= bool has_on_unbounded_side(const Point_3& p) const;=0A= bool is_degenerate() const;=0A= Bbox_3 bbox() const;=0A= const FT & xmin() const;=0A= const FT & ymin() const;=0A= const FT & zmin() const;=0A= const FT & xmax() const;=0A= const FT & ymax() const;=0A= const FT & zmax() const;=0A= const FT & min_coord(int i) const;=0A= const FT & max_coord(int i) const;=0A= =0A= FT volume() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_cuboidC3::operator=3D=3D(const Iso_cuboidC3& r) const=0A= {=0A= if (identical(r))=0A= return true;=0A= return min() =3D=3D r.min() && max() =3D=3D r.max();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_cuboidC3::operator!=3D(const Iso_cuboidC3& r) const=0A= {=0A= return !(*this =3D=3D r);=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_cuboidC3::FT &=0A= Iso_cuboidC3::xmin() const=0A= {=0A= return min().x();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_cuboidC3::FT &=0A= Iso_cuboidC3::ymin() const=0A= {=0A= return min().y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_cuboidC3::FT &=0A= Iso_cuboidC3::zmin() const=0A= {=0A= return min().z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_cuboidC3::FT &=0A= Iso_cuboidC3::xmax() const=0A= {=0A= return max().x();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_cuboidC3::FT &=0A= Iso_cuboidC3::ymax() const=0A= {=0A= return max().y();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_cuboidC3::FT &=0A= Iso_cuboidC3::zmax() const=0A= {=0A= return max().z();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_cuboidC3::FT &=0A= Iso_cuboidC3::min_coord(int i) const=0A= {=0A= ((i =3D=3D 0 || i =3D=3D 1 || i =3D=3D 2)?(static_cast(0)): = ::CGAL::precondition_fail( "i =3D=3D 0 || i =3D=3D 1 || i =3D=3D 2" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_cuboid_3.h", 219, 0));=0A= if (i =3D=3D 0)=0A= return xmin();=0A= else if (i =3D=3D 1)=0A= return ymin();=0A= else=0A= return zmin();=0A= }=0A= =0A= template < class R >=0A= inline=0A= const typename Iso_cuboidC3::FT &=0A= Iso_cuboidC3::max_coord(int i) const=0A= {=0A= ((i =3D=3D 0 || i =3D=3D 1 || i =3D=3D 2)?(static_cast(0)): = ::CGAL::precondition_fail( "i =3D=3D 0 || i =3D=3D 1 || i =3D=3D 2" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Iso_cuboid_3.h", 233, 0));=0A= if (i =3D=3D 0)=0A= return xmax();=0A= else if (i =3D=3D 1)=0A= return ymax();=0A= else=0A= return zmax();=0A= }=0A= =0A= template < class R >=0A= =0A= typename Iso_cuboidC3::Point_3=0A= Iso_cuboidC3::vertex(int i) const=0A= {=0A= switch (i%8)=0A= {=0A= case 0: return min();=0A= case 1: return Point_3(max().hx(), min().hy(), min().hz());=0A= case 2: return Point_3(max().hx(), max().hy(), min().hz());=0A= case 3: return Point_3(min().hx(), max().hy(), min().hz());=0A= case 4: return Point_3(min().hx(), max().hy(), max().hz());=0A= case 5: return Point_3(min().hx(), min().hy(), max().hz());=0A= case 6: return Point_3(max().hx(), min().hy(), max().hz());=0A= default:=0A= return max();=0A= }=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename Iso_cuboidC3::Point_3=0A= Iso_cuboidC3::operator[](int i) const=0A= {=0A= return vertex(i);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename Iso_cuboidC3::FT=0A= Iso_cuboidC3::volume() const=0A= {=0A= return (xmax()-xmin()) * (ymax()-ymin()) * (zmax()-zmin());=0A= }=0A= =0A= template < class R >=0A= =0A= Bounded_side=0A= Iso_cuboidC3::=0A= bounded_side(const typename Iso_cuboidC3::Point_3& p) const=0A= {=0A= if (strict_dominance(p, min()) && strict_dominance(max(), p) )=0A= return ON_BOUNDED_SIDE;=0A= if (dominance(p, min()) && dominance(max(), p))=0A= return ON_BOUNDARY;=0A= return ON_UNBOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_cuboidC3::=0A= has_on_boundary(const typename Iso_cuboidC3::Point_3& p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDARY;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_cuboidC3::=0A= has_on(const typename Iso_cuboidC3::Point_3& p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDARY;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_cuboidC3::=0A= has_on_bounded_side(const typename Iso_cuboidC3::Point_3& p) const=0A= {=0A= return bounded_side(p) =3D=3D ON_BOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_cuboidC3::=0A= has_on_unbounded_side(const typename Iso_cuboidC3::Point_3& p)=0A= const=0A= {=0A= return bounded_side(p) =3D=3D ON_UNBOUNDED_SIDE;=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= Iso_cuboidC3::is_degenerate() const=0A= {=0A= return min().hx() =3D=3D max().hx()=0A= || min().hy() =3D=3D max().hy()=0A= || min().hz() =3D=3D max().hz();=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_3=0A= Iso_cuboidC3::bbox() const=0A= {=0A= return min().bbox() + max().bbox();=0A= }=0A= =0A= =0A= template < class R >=0A= std::ostream &=0A= operator<<(std::ostream& os, const Iso_cuboidC3& r)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= return os << r.min() << ' ' << r.max();=0A= case IO::BINARY :=0A= return os << r.min() << r.max();=0A= default:=0A= return os << "Iso_cuboidC3(" << r.min() << ", " << r.max() << ")";=0A= }=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= std::istream &=0A= operator>>(std::istream& is, Iso_cuboidC3& r)=0A= {=0A= typename R::Point_3 p, q;=0A= is >> p >> q;=0A= if (is)=0A= r =3D Iso_cuboidC3(p, q);=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 96 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Sphere_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Sphere_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= class SphereC3=0A= : public R_::Sphere_handle_3=0A= {=0A= =0A= typedef typename R_::FT FT;=0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Sphere_3 Sphere_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= =0A= typedef typename R_::Sphere_handle_3 base;=0A= typedef typename base::element_type rep;=0A= =0A= public:=0A= typedef R_ R;=0A= =0A= SphereC3()=0A= : base() {}=0A= =0A= SphereC3(const Point_3 ¢er, const FT &squared_radius,=0A= const Orientation &o =3D COUNTERCLOCKWISE)=0A= {=0A= (((squared_radius >=3D FT(0)) && (o !=3D = COLLINEAR))?(static_cast(0)): ::CGAL::precondition_fail( = "(squared_radius >=3D FT(0)) && (o !=3D COLLINEAR)" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Sphere_3.h", 75, 0));=0A= =0A= =0A= initialize_with(rep(center, squared_radius, o));=0A= }=0A= =0A= =0A= SphereC3(const Point_3 &p, const Point_3 &q,=0A= const Point_3 &r, const Point_3 &s)=0A= {=0A= Orientation orient =3D CGAL::orientation(p, q, r, s);=0A= Point_3 center =3D circumcenter(p, q, r, s);=0A= FT squared_radius =3D squared_distance(p, center);=0A= =0A= initialize_with(rep(center, squared_radius, orient));=0A= }=0A= =0A= =0A= SphereC3(const Point_3 &p, const Point_3 &q, const Point_3 &r,=0A= const Orientation &o =3D COUNTERCLOCKWISE)=0A= {=0A= ((o !=3D COLLINEAR)?(static_cast(0)): = ::CGAL::precondition_fail( "o !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Sphere_3.h", 95, 0));=0A= =0A= Point_3 center =3D circumcenter(p, q, r);=0A= FT squared_radius =3D squared_distance(p, center);=0A= =0A= initialize_with(rep(center, squared_radius, o));=0A= }=0A= =0A= =0A= SphereC3(const Point_3 &p, const Point_3 &q,=0A= const Orientation &o =3D COUNTERCLOCKWISE)=0A= {=0A= ((o !=3D COLLINEAR)?(static_cast(0)): = ::CGAL::precondition_fail( "o !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Sphere_3.h", 107, 0));=0A= =0A= Point_3 center =3D midpoint(p, q);=0A= FT squared_radius =3D squared_distance(p, center);=0A= =0A= initialize_with(rep(center, squared_radius, o));=0A= }=0A= =0A= SphereC3(const Point_3 ¢er,=0A= const Orientation& o =3D COUNTERCLOCKWISE)=0A= {=0A= ((o !=3D COLLINEAR)?(static_cast(0)): = ::CGAL::precondition_fail( "o !=3D COLLINEAR" , = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Sphere_3.h", 118, 0));=0A= =0A= initialize_with(rep(center, FT(0), o));=0A= }=0A= =0A= bool operator=3D=3D(const SphereC3 &) const;=0A= bool operator!=3D(const SphereC3 &) const;=0A= =0A= const Point_3 & center() const=0A= {=0A= return Ptr()->first;=0A= }=0A= const FT & squared_radius() const=0A= {=0A= =0A= =0A= return Ptr()->second;=0A= }=0A= Orientation orientation() const=0A= {=0A= return Ptr()->third;=0A= }=0A= =0A= Sphere_3 orthogonal_transform(const Aff_transformation_3 &t) const=0A= {=0A= =0A= Vector_3 vec(FT(1), FT(0));=0A= vec =3D vec.transform(t);=0A= FT sq_scale =3D vec.squared_length();=0A= =0A= return SphereC3(t.transform(center()),=0A= sq_scale * squared_radius(),=0A= t.is_even() ? orientation()=0A= : CGAL::opposite(orientation()));=0A= }=0A= =0A= =0A= bool is_degenerate() const;=0A= =0A= =0A= Sphere_3 opposite() const;=0A= =0A= Oriented_side oriented_side(const Point_3 &p) const;=0A= =0A= =0A= =0A= bool has_on_boundary(const Point_3 &p) const;=0A= bool has_on_positive_side(const Point_3 &p) const;=0A= bool has_on_negative_side(const Point_3 &p) const;=0A= =0A= Bounded_side bounded_side(const Point_3 &p) const;=0A= =0A= =0A= bool has_on_bounded_side(const Point_3 &p) const;=0A= bool has_on_unbounded_side(const Point_3 &p) const;=0A= =0A= Bbox_3 bbox() const;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= bool=0A= SphereC3::operator=3D=3D(const SphereC3 &t) const=0A= {=0A= if (identical(t))=0A= return true;=0A= return center() =3D=3D t.center() &&=0A= squared_radius() =3D=3D t.squared_radius() &&=0A= orientation() =3D=3D t.orientation();=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SphereC3::operator!=3D(const SphereC3 &t) const=0A= {=0A= return !(*this =3D=3D t);=0A= }=0A= =0A= template < class R >=0A= =0A= Oriented_side=0A= SphereC3::=0A= oriented_side(const typename SphereC3::Point_3 &p) const=0A= {=0A= return Oriented_side(bounded_side(p) * orientation());=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bounded_side=0A= SphereC3::=0A= bounded_side(const typename SphereC3::Point_3 &p) const=0A= {=0A= =0A= return Bounded_side(CGAL::NTS:: compare(squared_radius(),=0A= squared_distance(center(),p)));=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SphereC3::=0A= has_on_boundary(const typename SphereC3::Point_3 &p) const=0A= {=0A= =0A= return squared_distance(center(),p) =3D=3D squared_radius();=0A= =0A= =0A= =0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SphereC3::=0A= has_on_negative_side(const typename SphereC3::Point_3 &p) const=0A= {=0A= if (orientation() =3D=3D COUNTERCLOCKWISE)=0A= return has_on_unbounded_side(p);=0A= return has_on_bounded_side(p);=0A= =0A= =0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SphereC3::=0A= has_on_positive_side(const typename SphereC3::Point_3 &p) const=0A= {=0A= if (orientation() =3D=3D COUNTERCLOCKWISE)=0A= return has_on_bounded_side(p);=0A= return has_on_unbounded_side(p);=0A= =0A= =0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SphereC3::=0A= has_on_bounded_side(const typename SphereC3::Point_3 &p) const=0A= {=0A= =0A= return squared_distance(center(),p) < squared_radius();=0A= =0A= =0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SphereC3::=0A= has_on_unbounded_side(const typename SphereC3::Point_3 &p) const=0A= {=0A= =0A= return squared_distance(center(),p) > squared_radius();=0A= =0A= =0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= SphereC3::=0A= is_degenerate() const=0A= {=0A= =0A= return CGAL::NTS:: is_zero(squared_radius());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename SphereC3::Sphere_3=0A= SphereC3::opposite() const=0A= {=0A= return SphereC3(center(), squared_radius(),=0A= CGAL::opposite(orientation()) );=0A= }=0A= =0A= template < class R >=0A= inline=0A= Bbox_3=0A= SphereC3::bbox() const=0A= {=0A= double cx =3D CGAL::to_double(center().x());=0A= double cy =3D CGAL::to_double(center().y());=0A= double cz =3D CGAL::to_double(center().z());=0A= double radius =3D CGAL::sqrt(CGAL::to_double(squared_radius()));=0A= =0A= return Bbox_3(cx - radius, cy - radius, cz - radius,=0A= cx + radius, cy + radius, cz + radius);=0A= }=0A= # 330 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Sphere_3.h"=0A= template < class R >=0A= inline=0A= std::ostream &=0A= operator<<(std::ostream &os, const SphereC3 &c)=0A= {=0A= switch(os.iword(IO::mode)) {=0A= case IO::ASCII :=0A= os << c.center() << ' ' << c.squared_radius() << ' '=0A= << static_cast(c.orientation());=0A= break;=0A= case IO::BINARY :=0A= os << c.center();=0A= write(os, c.squared_radius());=0A= write(os, static_cast(c.orientation()));=0A= break;=0A= default:=0A= os << "SphereC3(" << c.center() << ", " << c.squared_radius();=0A= switch (c.orientation()) {=0A= case CLOCKWISE:=0A= os << ", clockwise)";=0A= break;=0A= case COUNTERCLOCKWISE:=0A= os << ", counterclockwise)";=0A= break;=0A= default:=0A= os << ", collinear)";=0A= break;=0A= }=0A= break;=0A= }=0A= return os;=0A= }=0A= =0A= =0A= =0A= template < class R >=0A= inline=0A= std::istream &=0A= operator>>(std::istream &is, SphereC3 &c)=0A= {=0A= typename R::Point_3 center;=0A= typename R::FT squared_radius;=0A= int o;=0A= switch(is.iword(IO::mode)) {=0A= case IO::ASCII :=0A= is >> center >> squared_radius >> o;=0A= break;=0A= case IO::BINARY :=0A= is >> center;=0A= read(is, squared_radius);=0A= is >> o;=0A= break;=0A= default:=0A= std::cerr << "" << std::endl;=0A= std::cerr << "Stream must be in ascii or binary mode" << = std::endl;=0A= break;=0A= }=0A= if (is)=0A= c =3D SphereC3(center, squared_radius,=0A= static_cast(o));=0A= return is;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 97 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_3.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_3.h"=0A= namespace CGAL {=0A= =0A= class Identity_transformation;=0A= template class Aff_transformation_rep_baseC3;=0A= template class Aff_transformation_repC3;=0A= template class Translation_repC3;=0A= template class Scaling_repC3;=0A= =0A= }=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_rep_3.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_rep_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= class Aff_transformation_rep_baseC3=0A= : public Ref_counted_virtual=0A= {=0A= public:=0A= typedef typename R::FT FT;=0A= typedef typename R::Point_3 Point_3;=0A= typedef typename R::Vector_3 Vector_3;=0A= typedef typename R::Direction_3 Direction_3;=0A= typedef typename R::Aff_transformation_3 Aff_transformation_3;=0A= =0A= virtual ~Aff_transformation_rep_baseC3(){}=0A= =0A= virtual Point_3 transform(const Point_3 &p) const =3D 0;=0A= virtual Vector_3 transform(const Vector_3 &v) const =3D 0;=0A= virtual Direction_3 transform(const Direction_3 &d) const =3D 0;=0A= =0A= virtual Aff_transformation_3 operator*(=0A= const Aff_transformation_rep_baseC3 &t) const =3D = 0;=0A= =0A= virtual Aff_transformation_3 compose(=0A= const Translation_repC3 &t) const =3D 0;=0A= =0A= virtual Aff_transformation_3 compose(=0A= const Scaling_repC3 &t) const =3D 0;=0A= =0A= virtual Aff_transformation_3 compose(=0A= const Aff_transformation_repC3 &t) const =3D 0;=0A= =0A= virtual Aff_transformation_3 inverse() const =3D 0;=0A= virtual Aff_transformation_3 transpose() const =3D 0;=0A= virtual bool is_even() const =3D 0;=0A= virtual FT cartesian(int i, int j) const =3D 0;=0A= virtual std::ostream &print(std::ostream &os) const =3D 0;=0A= };=0A= =0A= template < class R >=0A= class Aff_transformation_repC3=0A= : public Aff_transformation_rep_baseC3=0A= {=0A= friend class Translation_repC3;=0A= friend class Scaling_repC3;=0A= =0A= public:=0A= typedef typename R::FT FT;=0A= typedef Aff_transformation_repC3 Self;=0A= typedef Aff_transformation_rep_baseC3 Transformation_base_3;=0A= typedef Aff_transformation_repC3 Transformation_3;=0A= typedef Translation_repC3 Translation_3;=0A= typedef Scaling_repC3 Scaling_3;=0A= typedef typename Transformation_base_3::Point_3 Point_3;=0A= typedef typename Transformation_base_3::Vector_3 Vector_3;=0A= typedef typename Transformation_base_3::Direction_3 Direction_3;=0A= typedef typename Transformation_base_3::=0A= Aff_transformation_3 = Aff_transformation_3;=0A= =0A= Aff_transformation_repC3()=0A= {}=0A= =0A= Aff_transformation_repC3(const FT& m11, const FT& m12, const FT& m13,=0A= const FT& m21, const FT& m22, const FT& m23,=0A= const FT& m31, const FT& m32, const FT& m33)=0A= : t11(m11), t12(m12), t13(m13), t14(FT(0)),=0A= t21(m21), t22(m22), t23(m23), t24(FT(0)),=0A= t31(m31), t32(m32), t33(m33), t34(FT(0))=0A= {}=0A= =0A= Aff_transformation_repC3(=0A= const FT& m11, const FT& m12, const FT& m13, const FT& m14,=0A= const FT& m21, const FT& m22, const FT& m23, const FT& m24,=0A= const FT& m31, const FT& m32, const FT& m33, const FT& m34=0A= )=0A= : t11(m11), t12(m12), t13(m13), t14(m14),=0A= t21(m21), t22(m22), t23(m23), t24(m24),=0A= t31(m31), t32(m32), t33(m33), t34(m34)=0A= {}=0A= =0A= virtual ~Aff_transformation_repC3()=0A= {}=0A= =0A= virtual Point_3 transform(const Point_3& p) const=0A= {=0A= return Point_3(t11 * p.x() + t12 * p.y() + t13 * p.z() + t14,=0A= t21 * p.x() + t22 * p.y() + t23 * p.z() + t24,=0A= t31 * p.x() + t32 * p.y() + t33 * p.z() + t34);=0A= }=0A= =0A= =0A= virtual Vector_3 transform(const Vector_3& v) const=0A= {=0A= return Vector_3(t11 * v.x() + t12 * v.y() + t13 * v.z(),=0A= t21 * v.x() + t22 * v.y() + t23 * v.z(),=0A= t31 * v.x() + t32 * v.y() + t33 * v.z());=0A= }=0A= =0A= =0A= virtual Direction_3 transform(const Direction_3& dir) const=0A= {=0A= Vector_3 v =3D dir.to_vector();=0A= return Direction_3(t11 * v.x() + t12 * v.y() + t13 * v.z(),=0A= t21 * v.x() + t22 * v.y() + t23 * v.z(),=0A= t31 * v.x() + t32 * v.y() + t33 * v.z());=0A= }=0A= =0A= =0A= =0A= =0A= virtual Aff_transformation_3 inverse() const;=0A= virtual Aff_transformation_3 transpose() const;=0A= virtual Aff_transformation_3 operator*(const Transformation_base_3 &t) = const;=0A= virtual Aff_transformation_3 compose(const Transformation_3 &t) const;=0A= virtual Aff_transformation_3 compose(const Translation_3 &t) const;=0A= virtual Aff_transformation_3 compose(const Scaling_3 &t) const;=0A= =0A= virtual bool is_even() const=0A= {=0A= return sign_of_determinant3x3(t11, t12, t13,=0A= t21, t22, t23,=0A= t31, t32, t33) =3D=3D POSITIVE;=0A= }=0A= =0A= virtual FT cartesian(int i, int j) const=0A= {=0A= switch (i)=0A= {=0A= case 0: switch (j)=0A= {=0A= case 0: return t11;=0A= case 1: return t12;=0A= case 2: return t13;=0A= case 3: return t14;=0A= }=0A= case 1: switch (j)=0A= {=0A= case 0: return t21;=0A= case 1: return t22;=0A= case 2: return t23;=0A= case 3: return t24;=0A= }=0A= case 2: switch (j)=0A= {=0A= case 0: return t31;=0A= case 1: return t32;=0A= case 2: return t33;=0A= case 3: return t34;=0A= }=0A= case 3: switch (j)=0A= {=0A= case 0: return FT(0);=0A= case 1: return FT(0);=0A= case 2: return FT(0);=0A= case 3: return FT(1);=0A= }=0A= }=0A= return FT(0);=0A= }=0A= =0A= virtual std::ostream &print(std::ostream &os) const=0A= {=0A= os <<"Aff_transformationC3("<=0A= =0A= typename Aff_transformation_repC3::Aff_transformation_3=0A= Aff_transformation_repC3::inverse() const=0A= {=0A= return Aff_transformation_3(=0A= det2x2_by_formula( t22, t23, t32, t33),=0A= -det2x2_by_formula( t12, t13, t32, t33),=0A= det2x2_by_formula( t12, t13, t22, t23),=0A= -det3x3_by_formula( t12, t13, t14, t22, t23, t24, t32, t33, t34 ),=0A= =0A= -det2x2_by_formula( t21, t23, t31, t33),=0A= det2x2_by_formula( t11, t13, t31, t33),=0A= -det2x2_by_formula( t11, t13, t21, t23),=0A= det3x3_by_formula( t11, t13, t14, t21, t23, t24, t31, t33, t34 ),=0A= =0A= det2x2_by_formula( t21, t22, t31, t32),=0A= -det2x2_by_formula( t11, t12, t31, t32),=0A= det2x2_by_formula( t11, t12, t21, t22),=0A= -det3x3_by_formula( t11, t12, t14, t21, t22, t24, t31, t32, t34 ),=0A= =0A= det3x3_by_formula( t11, t12, t13, t21, t22, t23, t31, t32, t33 ));=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename Aff_transformation_repC3::Aff_transformation_3=0A= Aff_transformation_repC3::=0A= operator*(const Aff_transformation_rep_baseC3 &t) const=0A= {=0A= return t.compose(*this);=0A= }=0A= =0A= template < class R >=0A= =0A= typename Aff_transformation_repC3::Aff_transformation_3=0A= Aff_transformation_repC3::=0A= compose(const Aff_transformation_repC3 &t) const=0A= {=0A= return Aff_transformation_3(t.t11*t11 + t.t12*t21 + t.t13*t31,=0A= t.t11*t12 + t.t12*t22 + t.t13*t32,=0A= t.t11*t13 + t.t12*t23 + t.t13*t33,=0A= t.t11*t14 + t.t12*t24 + t.t13*t34 + t.t14,=0A= =0A= t.t21*t11 + t.t22*t21 + t.t23*t31,=0A= t.t21*t12 + t.t22*t22 + t.t23*t32,=0A= t.t21*t13 + t.t22*t23 + t.t23*t33,=0A= t.t21*t14 + t.t22*t24 + t.t23*t34 + t.t24,=0A= =0A= t.t31*t11 + t.t32*t21 + t.t33*t31,=0A= t.t31*t12 + t.t32*t22 + t.t33*t32,=0A= t.t31*t13 + t.t32*t23 + t.t33*t33,=0A= t.t31*t14 + t.t32*t24 + t.t33*t34 + t.t34);=0A= }=0A= =0A= template < class R >=0A= =0A= typename Aff_transformation_repC3::Aff_transformation_3=0A= Aff_transformation_repC3::=0A= compose(const Translation_repC3 &t) const=0A= {=0A= return Aff_transformation_3(t11,=0A= t12,=0A= t13,=0A= t14 + t.translationvector_.x(),=0A= =0A= t21,=0A= t22,=0A= t23,=0A= t24 + t.translationvector_.y(),=0A= =0A= t31,=0A= t32,=0A= t33,=0A= t34 + t.translationvector_.z());=0A= }=0A= =0A= template < class R >=0A= =0A= typename Aff_transformation_repC3::Aff_transformation_3=0A= Aff_transformation_repC3::=0A= compose(const Scaling_repC3 &t) const=0A= {=0A= return Aff_transformation_3(t.scalefactor_ * t11,=0A= t.scalefactor_ * t12,=0A= t.scalefactor_ * t13,=0A= t.scalefactor_ * t14,=0A= =0A= t.scalefactor_ * t21,=0A= t.scalefactor_ * t22,=0A= t.scalefactor_ * t23,=0A= t.scalefactor_ * t24,=0A= =0A= t.scalefactor_ * t31,=0A= t.scalefactor_ * t32,=0A= t.scalefactor_ * t33,=0A= t.scalefactor_ * t34);=0A= }=0A= =0A= template < class R >=0A= =0A= typename Aff_transformation_repC3::Aff_transformation_3=0A= Aff_transformation_repC3::transpose() const=0A= {=0A= return Aff_transformation_3( t11, t21, t31, t14,=0A= t12, t22, t32, t24,=0A= t13, t23, t33, t34);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= }=0A= # 62 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_3.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Translation_rep_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Translation_rep_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= class Translation_repC3 : public Aff_transformation_rep_baseC3=0A= {=0A= friend class Aff_transformation_repC3;=0A= friend class Scaling_repC3;=0A= =0A= public:=0A= typedef typename R::FT FT;=0A= typedef Aff_transformation_rep_baseC3 Transformation_base_3;=0A= typedef Aff_transformation_repC3 Transformation_3;=0A= typedef Translation_repC3 Translation_3;=0A= typedef Scaling_repC3 Scaling_3;=0A= typedef typename Transformation_base_3::Point_3 Point_3;=0A= typedef typename Transformation_base_3::Vector_3 Vector_3;=0A= typedef typename Transformation_base_3::Direction_3 Direction_3;=0A= typedef typename Transformation_base_3::Aff_transformation_3=0A= = Aff_transformation_3;=0A= =0A= Translation_repC3() {}=0A= Translation_repC3(const Vector_3 &tv) : translationvector_(tv) {}=0A= virtual ~Translation_repC3() {}=0A= =0A= virtual Point_3 transform(const Point_3 &p) const=0A= {=0A= return p + translationvector_;=0A= }=0A= =0A= virtual Vector_3 transform(const Vector_3 &v) const=0A= {=0A= return v;=0A= }=0A= =0A= virtual Direction_3 transform(const Direction_3 &d) const=0A= {=0A= return d;=0A= }=0A= =0A= virtual Aff_transformation_3 operator*(const Transformation_base_3 &t) = const=0A= {=0A= return t.compose(*this);=0A= }=0A= =0A= virtual Aff_transformation_3 compose(const Transformation_3 &t) const=0A= {=0A= return Aff_transformation_3(t.t11,=0A= t.t12,=0A= t.t13,=0A= t.t11 * translationvector_.x()=0A= + t.t12 * translationvector_.y()=0A= + t.t13 * translationvector_.z() + t.t14,=0A= =0A= t.t21,=0A= t.t22,=0A= t.t23,=0A= t.t21 * translationvector_.x()=0A= + t.t22 * translationvector_.y()=0A= + t.t23 * translationvector_.z() + t.t24,=0A= =0A= t.t31,=0A= t.t32,=0A= t.t33,=0A= t.t31 * translationvector_.x()=0A= + t.t32 * translationvector_.y()=0A= + t.t33 * translationvector_.z() + = t.t34);=0A= }=0A= =0A= virtual Aff_transformation_3 compose(const Translation_3 &t) const=0A= {=0A= return Aff_transformation_3(TRANSLATION,=0A= translationvector_ + = t.translationvector_);=0A= }=0A= =0A= virtual Aff_transformation_3 compose(const Scaling_3 &t) const=0A= {=0A= FT ft0(0);=0A= return Aff_transformation_3(t.scalefactor_,=0A= ft0,=0A= ft0,=0A= t.scalefactor_ * translationvector_.x(),=0A= =0A= ft0,=0A= t.scalefactor_,=0A= ft0,=0A= t.scalefactor_ * translationvector_.y(),=0A= =0A= ft0,=0A= ft0,=0A= t.scalefactor_,=0A= t.scalefactor_ * translationvector_.z());=0A= }=0A= =0A= virtual Aff_transformation_3 inverse() const=0A= {=0A= return Aff_transformation_3(TRANSLATION, - translationvector_);=0A= }=0A= =0A= virtual Aff_transformation_3 transpose() const=0A= {=0A= FT ft1(1), ft0(0);=0A= return Aff_transformation_3(TRANSLATION, translationvector_);=0A= }=0A= =0A= virtual bool is_even() const=0A= {=0A= return true;=0A= }=0A= =0A= virtual FT cartesian(int i, int j) const=0A= {=0A= if (j=3D=3Di) return FT(1);=0A= if (j=3D=3D3) return translationvector_[i];=0A= return FT(0);=0A= }=0A= =0A= virtual std::ostream &print(std::ostream &os) const=0A= {=0A= FT ft0(0), ft1(1);=0A= os << "Aff_transformationC3(VectorC3("<< translationvector_.x() << = ","=0A= << translationvector_.y() << ","=0A= << translationvector_.z() << "))\n";=0A= return os;=0A= }=0A= =0A= private:=0A= Vector_3 translationvector_;=0A= };=0A= =0A= }=0A= # 63 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_3.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Scaling_rep_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Scaling_rep_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= class Scaling_repC3 : public Aff_transformation_rep_baseC3=0A= {=0A= friend class Aff_transformation_repC3;=0A= friend class Translation_repC3;=0A= =0A= public:=0A= typedef typename R::FT FT;=0A= typedef Aff_transformation_rep_baseC3 Transformation_base_3;=0A= typedef Aff_transformation_repC3 Transformation_3;=0A= typedef Translation_repC3 Translation_3;=0A= typedef Scaling_repC3 Scaling_3;=0A= typedef typename Transformation_base_3::Point_3 Point_3;=0A= typedef typename Transformation_base_3::Vector_3 Vector_3;=0A= typedef typename Transformation_base_3::Direction_3 Direction_3;=0A= typedef typename Transformation_base_3::Aff_transformation_3=0A= = Aff_transformation_3;=0A= =0A= Scaling_repC3() {}=0A= Scaling_repC3(const FT &s) : scalefactor_(s) {}=0A= virtual ~Scaling_repC3() {}=0A= =0A= virtual Point_3 transform(const Point_3 &p) const=0A= {=0A= return Point_3(scalefactor_ * p.x(),=0A= scalefactor_ * p.y(),=0A= scalefactor_ * p.z());=0A= }=0A= =0A= virtual Vector_3 transform(const Vector_3 &v) const=0A= {=0A= return Vector_3(scalefactor_ * v.x(), scalefactor_ * v.y(),=0A= scalefactor_ * v.z());=0A= }=0A= =0A= virtual Direction_3 transform(const Direction_3 &d) const=0A= {=0A= return d;=0A= }=0A= =0A= virtual Aff_transformation_3 operator*(const Transformation_base_3 &t) = const=0A= {=0A= return t.compose(*this);=0A= }=0A= =0A= virtual Aff_transformation_3 compose(const Transformation_3 &t) const=0A= {=0A= return Aff_transformation_3(scalefactor_ * t.t11,=0A= scalefactor_ * t.t12,=0A= scalefactor_ * t.t13,=0A= t.t14,=0A= =0A= scalefactor_ * t.t21,=0A= scalefactor_ * t.t22,=0A= scalefactor_ * t.t23,=0A= t.t24,=0A= =0A= scalefactor_ * t.t31,=0A= scalefactor_ * t.t32,=0A= scalefactor_ * t.t33,=0A= t.t34);=0A= }=0A= =0A= virtual Aff_transformation_3 compose(const Translation_3 &t) const=0A= {=0A= FT ft0(0);=0A= return Aff_transformation_3(scalefactor_,=0A= ft0,=0A= ft0,=0A= t.translationvector_.x(),=0A= =0A= ft0,=0A= scalefactor_,=0A= ft0,=0A= t.translationvector_.y(),=0A= =0A= ft0,=0A= ft0,=0A= scalefactor_,=0A= t.translationvector_.z());=0A= }=0A= =0A= virtual Aff_transformation_3 compose(const Scaling_3 &t) const=0A= {=0A= return Aff_transformation_3(SCALING, scalefactor_*t.scalefactor_);=0A= }=0A= =0A= virtual Aff_transformation_3 inverse() const=0A= {=0A= return Aff_transformation_3(SCALING, FT(1)/scalefactor_);=0A= }=0A= =0A= virtual Aff_transformation_3 transpose() const=0A= {=0A= return Aff_transformation_3(SCALING, scalefactor_);=0A= }=0A= =0A= virtual bool is_even() const=0A= {=0A= return true;=0A= }=0A= =0A= virtual FT cartesian(int i, int j) const=0A= {=0A= if (i!=3Dj) return FT(0);=0A= if (i=3D=3D3) return FT(1);=0A= return scalefactor_;=0A= }=0A= =0A= virtual std::ostream &print(std::ostream &os) const=0A= {=0A= FT ft0(0);=0A= os << "Aff_transformationC3(" << scalefactor_ << ")";=0A= return os;=0A= }=0A= =0A= private:=0A= FT scalefactor_;=0A= };=0A= =0A= }=0A= # 64 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/Aff_transformation_3.h" 2=0A= =0A= namespace CGAL {=0A= =0A= template < class R_ >=0A= class Aff_transformationC3=0A= : public R_::Aff_transformation_handle_3=0A= {=0A= =0A= friend class PlaneC3;=0A= =0A= typedef typename R_::FT FT;=0A= typedef Aff_transformation_rep_baseC3 Aff_t_base;=0A= =0A= typedef typename R_::Point_3 Point_3;=0A= typedef typename R_::Vector_3 Vector_3;=0A= typedef typename R_::Direction_3 Direction_3;=0A= typedef typename R_::Plane_3 Plane_3;=0A= typedef typename R_::Aff_transformation_3 Aff_transformation_3;=0A= public:=0A= typedef R_ R;=0A= =0A= Aff_transformationC3()=0A= {=0A= FT ft1(1), ft0(0);=0A= initialize_with(Aff_transformation_repC3(ft1, ft0, ft0,=0A= ft0, ft1, ft0,=0A= ft0, ft0, ft1));=0A= }=0A= =0A= Aff_transformationC3(const Identity_transformation)=0A= {=0A= FT ft1(1), ft0(0);=0A= initialize_with(Aff_transformation_repC3(ft1, ft0, ft0,=0A= ft0, ft1, ft0,=0A= ft0, ft0, ft1));=0A= }=0A= =0A= Aff_transformationC3(const Translation, const Vector_3 &v)=0A= {=0A= initialize_with(Translation_repC3(v));=0A= }=0A= =0A= Aff_transformationC3(const Scaling, const FT &s, const FT &w =3D FT(1))=0A= {=0A= if (w !=3D FT(1))=0A= initialize_with(Scaling_repC3(s/w));=0A= else=0A= initialize_with(Scaling_repC3(s));=0A= }=0A= =0A= =0A= Aff_transformationC3(const FT& m11, const FT& m12, const FT& m13,=0A= const FT& m21, const FT& m22, const FT& m23,=0A= const FT& m31, const FT& m32, const FT& m33,=0A= const FT& w =3D FT(1))=0A= {=0A= if (w !=3D FT(1))=0A= initialize_with(Aff_transformation_repC3(m11/w, m12/w, m13/w,=0A= m21/w, m22/w, m23/w,=0A= m31/w, m32/w, m33/w));=0A= else=0A= initialize_with(Aff_transformation_repC3(m11, m12, m13,=0A= m21, m22, m23,=0A= m31, m32, m33));=0A= }=0A= =0A= =0A= Aff_transformationC3(=0A= const FT& m11, const FT& m12, const FT& m13, const FT& m14,=0A= const FT& m21, const FT& m22, const FT& m23, const FT& m24,=0A= const FT& m31, const FT& m32, const FT& m33, const FT& m34,=0A= const FT& w =3D FT(1))=0A= {=0A= if (w !=3D FT(1))=0A= initialize_with(Aff_transformation_repC3(m11/w, m12/w, m13/w, = m14/w,=0A= m21/w, m22/w, m23/w, m24/w,=0A= m31/w, m32/w, m33/w, m34/w));=0A= else=0A= initialize_with(Aff_transformation_repC3(m11, m12, m13, m14,=0A= m21, m22, m23, m24,=0A= m31, m32, m33, m34));=0A= }=0A= =0A= Point_3=0A= transform(const Point_3 &p) const=0A= { return Ptr()->transform(p); }=0A= =0A= Point_3=0A= operator()(const Point_3 &p) const=0A= { return transform(p); }=0A= =0A= Vector_3=0A= transform(const Vector_3 &v) const=0A= { return Ptr()->transform(v); }=0A= =0A= Vector_3=0A= operator()(const Vector_3 &v) const=0A= { return transform(v); }=0A= =0A= Direction_3=0A= transform(const Direction_3 &d) const=0A= { return Ptr()->transform(d); }=0A= =0A= Direction_3=0A= operator()(const Direction_3 &d) const=0A= { return transform(d); }=0A= =0A= Plane_3=0A= transform(const Plane_3& p) const=0A= { return p.transform(*this); }=0A= =0A= Plane_3=0A= operator()(const Plane_3& p) const=0A= { return transform(p); }=0A= =0A= Aff_transformation_3 inverse() const { return Ptr()->inverse(); }=0A= =0A= bool is_even() const { return Ptr()->is_even(); }=0A= bool is_odd() const { return ! (Ptr()->is_even()); }=0A= =0A= FT cartesian(int i, int j) const { return Ptr()->cartesian(i,j); }=0A= FT homogeneous(int i, int j) const { return cartesian(i,j); }=0A= FT m(int i, int j) const { return cartesian(i,j); }=0A= FT hm(int i, int j) const { return cartesian(i,j); }=0A= =0A= Aff_transformation_3 operator*(const Aff_transformationC3 &t) const=0A= { return (*Ptr()) * (*t.Ptr()); }=0A= =0A= protected:=0A= Aff_transformation_3 transpose() const { return Ptr()->transpose(); }=0A= };=0A= =0A= =0A= =0A= template < class R >=0A= std::ostream &operator<<(std::ostream &os,=0A= const Aff_transformationC3 &t)=0A= {=0A= t.print(os);=0A= return os;=0A= }=0A= =0A= =0A= }=0A= # 98 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/global_operators_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/global_operators_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= typename R::Point_3=0A= operator+(const PointC3 &p, const VectorC3 &v)=0A= {=0A= return PointC3(p.x() + v.x(), p.y() + v.y(), p.z() + v.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Point_3=0A= operator-(const PointC3 &p, const VectorC3 &v)=0A= {=0A= return PointC3(p.x() - v.x(), p.y() - v.y(), p.z() - v.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Point_3=0A= operator+(const Origin &, const VectorC3 &v)=0A= {=0A= return PointC3(v);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Point_3=0A= operator-(const Origin &, const VectorC3 &v)=0A= {=0A= return PointC3(-v);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_3=0A= operator-(const PointC3 &p, const PointC3 &q)=0A= {=0A= return VectorC3(p.x() - q.x(), p.y() - q.y(), p.z() - q.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_3=0A= operator-(const PointC3 &p, const Origin &)=0A= {=0A= return VectorC3(p);=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_3=0A= operator-(const Origin &, const PointC3 &p)=0A= {=0A= return VectorC3(-p.x(), -p.y(), -p.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_3=0A= operator*(const typename R::FT &c, const VectorC3 &w)=0A= {=0A= return VectorC3(c * w.x(), c * w.y(), c * w.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::Vector_3=0A= operator*(const VectorC3 &w, const typename R::FT &c)=0A= {=0A= return VectorC3(c * w.x(), c * w.y(), c * w.z());=0A= }=0A= =0A= }=0A= # 100 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_planes_3.h" 1=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/predicates_on_planes_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= Oriented_side=0A= side_of_oriented_plane(const PlaneC3 &h,=0A= const PointC3 &p)=0A= {=0A= return side_of_oriented_planeC3(h.a(), h.b(), h.c(), h.d(),=0A= p.x(), p.y(), p.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= bool=0A= equal_plane(const PlaneC3 &h, const PlaneC3 &p)=0A= {=0A= return equal_planeC3(h.a(), h.b(), h.c(), h.d(),=0A= p.a(), p.b(), p.c(), p.d());=0A= }=0A= =0A= }=0A= # 102 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/distance_predicates_3.h" 1=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/distance_predicates_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= =0A= Comparison_result=0A= compare_distance_to_point(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return cmp_dist_to_pointC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_larger_distance_to_point(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return has_larger_dist_to_pointC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_smaller_distance_to_point(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return has_smaller_dist_to_pointC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= =0A= Comparison_result=0A= compare_signed_distance_to_plane(const PlaneC3 &h,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return cmp_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_larger_signed_distance_to_plane(const PlaneC3 &h,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return has_larger_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_smaller_signed_distance_to_plane(const PlaneC3 &h,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return has_smaller_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= Comparison_result=0A= compare_signed_distance_to_plane(const PointC3 &hp,=0A= const PointC3 &hq,=0A= const PointC3 &hr,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return cmp_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A= hq.x(), hq.y(), hq.z(),=0A= hr.x(), hr.y(), hr.z(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_larger_signed_distance_to_plane(const PointC3 &hp,=0A= const PointC3 &hq,=0A= const PointC3 &hr,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return has_larger_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A= hq.x(), hq.y(), hq.z(),=0A= hr.x(), hr.y(), hr.z(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_smaller_signed_distance_to_plane(const PointC3 &hp,=0A= const PointC3 &hq,=0A= const PointC3 &hr,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return has_smaller_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A= hq.x(), hq.y(), hq.z(),=0A= hr.x(), hr.y(), hr.z(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= =0A= template < class R >=0A= =0A= Comparison_result=0A= cmp_dist_to_point(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return cmp_dist_to_pointC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_larger_dist_to_point(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return has_larger_dist_to_pointC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_smaller_dist_to_point(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return has_smaller_dist_to_pointC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= =0A= Comparison_result=0A= cmp_signed_dist_to_plane(const PlaneC3 &h,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return cmp_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_larger_signed_dist_to_plane(const PlaneC3 &h,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return has_larger_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_smaller_signed_dist_to_plane(const PlaneC3 &h,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return has_smaller_signed_dist_to_directionC3(h.a(), h.b(), h.c(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= Comparison_result=0A= cmp_signed_dist_to_plane(const PointC3 &hp,=0A= const PointC3 &hq,=0A= const PointC3 &hr,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return cmp_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A= hq.x(), hq.y(), hq.z(),=0A= hr.x(), hr.y(), hr.z(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_larger_signed_dist_to_plane(const PointC3 &hp,=0A= const PointC3 &hq,=0A= const PointC3 &hr,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return has_larger_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A= hq.x(), hq.y(), hq.z(),=0A= hr.x(), hr.y(), hr.z(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= =0A= bool=0A= has_smaller_signed_dist_to_plane(const PointC3 &hp,=0A= const PointC3 &hq,=0A= const PointC3 &hr,=0A= const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return has_smaller_signed_dist_to_planeC3(hp.x(), hp.y(), hp.z(),=0A= hq.x(), hq.y(), hq.z(),=0A= hr.x(), hr.y(), hr.z(),=0A= p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z());=0A= }=0A= =0A= =0A= =0A= }=0A= # 103 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_3.h" 1=0A= # 49 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_3.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/point_constructions_3.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/point_constructions_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= =0A= PointC3=0A= midpoint(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= typename R::FT x, y, z;=0A= midpointC3(p.x(), p.y(), p.z(), q.x(), q.y(), q.z(), x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= template < class R >=0A= PointC3=0A= centroid(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &s)=0A= {=0A= typename R::FT x, y, z;=0A= centroidC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= s.x(), s.y(), s.z(),=0A= x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= template < class R >=0A= PointC3=0A= centroid(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= typename R::FT x, y, z;=0A= centroidC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= template < class R >=0A= PointC3=0A= circumcenter(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &s)=0A= {=0A= typename R::FT x, y, z;=0A= circumcenterC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= s.x(), s.y(), s.z(),=0A= x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= template < class R >=0A= PointC3=0A= circumcenter(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= typename R::FT x, y, z;=0A= circumcenterC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= template =0A= =0A= PointC3=0A= point_on_line(int i, const LineC3 &l)=0A= {=0A= typename R::FT x, y, z;=0A= point_on_lineC3(l.point().x(), l.point().y(), l.point().z(),=0A= l.direction().dx(), l.direction().dy(), = l.direction().dz(),=0A= i, x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= template =0A= =0A= PointC3=0A= projection_line(const PointC3 &p, const LineC3 &l)=0A= {=0A= typename R::FT x, y, z;=0A= projection_lineC3(p.x(), p.y(), p.z(),=0A= l.point().x(), l.point().y(), l.point().z(),=0A= l.direction().dx(), l.direction().dy(), = l.direction().dz(),=0A= x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= template =0A= =0A= PointC3=0A= point_on_plane(const PlaneC3 &p)=0A= {=0A= typename R::FT x, y, z;=0A= point_on_planeC3(p.a(), p.b(), p.c(), p.d(), x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= template =0A= =0A= PointC3=0A= projection_plane(const PointC3 &p,=0A= const PlaneC3 &h)=0A= {=0A= typename R::FT x, y, z;=0A= projection_planeC3(h.a(), h.b(), h.c(), h.d(),=0A= p.x(), p.y(), p.z(),=0A= x, y, z);=0A= return PointC3(x, y, z);=0A= }=0A= =0A= }=0A= # 50 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_3.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/vector_constructions_3.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/vector_constructions_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= typename R::Vector_3=0A= cross_product(const VectorC3 &v, const VectorC3 &w)=0A= {=0A= return VectorC3(v.y() * w.z() - v.z() * w.y(),=0A= v.z() * w.x() - v.x() * w.z(),=0A= v.x() * w.y() - v.y() * w.x());=0A= }=0A= =0A= }=0A= # 51 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_3.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/plane_constructions_3.h" 1=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/plane_constructions_3.h"=0A= namespace CGAL {=0A= =0A= template =0A= =0A= PlaneC3=0A= plane_from_points(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= typename R::FT a, b, c, d;=0A= plane_from_pointsC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= a, b, c, d);=0A= return PlaneC3(a, b, c, d);=0A= }=0A= =0A= template =0A= =0A= PlaneC3=0A= plane_from_point_direction(const PointC3 &p,=0A= const DirectionC3 &d)=0A= {=0A= typename R::FT A, B, C, D;=0A= plane_from_point_directionC3(p.x(), p.y(), p.z(), d.dx(), d.dy(), = d.dz(),=0A= A, B, C, D);=0A= return PlaneC3(A, B, C, D);=0A= }=0A= =0A= }=0A= # 52 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_3.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/ft_constructions_3.h" 1=0A= # 54 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/ft_constructions_3.h"=0A= namespace CGAL {=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= squared_distance(const PointC3 &p,=0A= const PointC3 &q)=0A= {=0A= return squared_distanceC3(p.x(), p.y(), p.z(), q.x(), q.y(), q.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= scaled_distance_to_plane(const PlaneC3 &h,=0A= const PointC3 &p)=0A= {=0A= return scaled_distance_to_planeC3(h.a(), h.b(), h.c(), h.d(),=0A= p.x(), p.y(), p.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= scaled_distance_to_plane(const PointC3 &hp,=0A= const PointC3 &hq,=0A= const PointC3 &hr,=0A= const PointC3 &p)=0A= {=0A= return scaled_distance_to_planeC3(hp.x(), hp.y(), hp.z(),=0A= hq.x(), hq.y(), hq.z(),=0A= hr.x(), hr.y(), hr.z(),=0A= p.x(), p.y(), p.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= squared_radius(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r)=0A= {=0A= return squared_radiusC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z());=0A= }=0A= =0A= template < class R >=0A= inline=0A= typename R::FT=0A= squared_radius(const PointC3 &p,=0A= const PointC3 &q,=0A= const PointC3 &r,=0A= const PointC3 &s)=0A= {=0A= return squared_radiusC3(p.x(), p.y(), p.z(),=0A= q.x(), q.y(), q.z(),=0A= r.x(), r.y(), r.z(),=0A= s.x(), s.y(), s.z());=0A= }=0A= =0A= }=0A= # 53 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ca= rtesian/basic_constructions_3.h" 2=0A= # 105 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= =0A= =0A= namespace CGAL {=0A= =0A= template< class R, class FT_ >=0A= struct Simple_cartesian_base=0A= {=0A= typedef FT_ RT;=0A= typedef FT_ FT;=0A= typedef Cartesian_tag Rep_tag;=0A= typedef Cartesian_tag Kernel_tag;=0A= =0A= typedef CGAL::Object Object_2;=0A= typedef CGAL::Object Object_3;=0A= =0A= typedef PointC2 Point_2;=0A= typedef VectorC2 Vector_2;=0A= typedef DirectionC2 Direction_2;=0A= typedef SegmentC2 Segment_2;=0A= typedef LineC2 Line_2;=0A= typedef RayC2 Ray_2;=0A= typedef TriangleC2 Triangle_2;=0A= typedef CircleC2 Circle_2;=0A= typedef Iso_rectangleC2 Iso_rectangle_2;=0A= typedef Aff_transformationC2 Aff_transformation_2;=0A= typedef Data_accessorC2 Data_accessor_2;=0A= typedef ConicCPA2 Conic_2;=0A= =0A= typedef PointC3 Point_3;=0A= typedef VectorC3 Vector_3;=0A= typedef DirectionC3 Direction_3;=0A= typedef LineC3 Line_3;=0A= typedef PlaneC3 Plane_3;=0A= typedef RayC3 Ray_3;=0A= typedef SegmentC3 Segment_3;=0A= typedef TriangleC3 Triangle_3;=0A= typedef TetrahedronC3 Tetrahedron_3;=0A= typedef Iso_cuboidC3 Iso_cuboid_3;=0A= typedef SphereC3 Sphere_3;=0A= typedef Aff_transformationC3 Aff_transformation_3;=0A= =0A= };=0A= =0A= =0A= template< class FT_ >=0A= struct Simple_cartesian=0A= : public Simple_cartesian_base< Simple_cartesian, FT_ >=0A= {=0A= =0A= typedef FT_ RT;=0A= typedef FT_ FT;=0A= typedef Cartesian_tag Rep_tag;=0A= typedef Cartesian_tag Kernel_tag;=0A= =0A= typedef Simple_cartesian Self;=0A= typedef Simple_cartesian_base Kernel_base;=0A= =0A= =0A= =0A= =0A= =0A= typedef typename Kernel_base::Object_2 Object_2;=0A= typedef typename Kernel_base::Object_3 Object_3;=0A= =0A= =0A= =0A= =0A= =0A= typedef CGAL::Point_2 Point_2;=0A= typedef CGAL::Vector_2 Vector_2;=0A= typedef CGAL::Direction_2 Direction_2;=0A= typedef CGAL::Line_2 Line_2;=0A= typedef CGAL::Ray_2 Ray_2;=0A= typedef CGAL::Segment_2 Segment_2;=0A= typedef CGAL::Triangle_2 Triangle_2;=0A= typedef CGAL::Circle_2 Circle_2;=0A= typedef CGAL::Iso_rectangle_2 Iso_rectangle_2;=0A= typedef CGAL::Aff_transformation_2 Aff_transformation_2;=0A= =0A= typedef Data_accessorC2 Data_accessor_2;=0A= typedef CGAL::Conic_2 Conic_2;=0A= =0A= typedef CGAL::Point_3 Point_3;=0A= typedef CGAL::Vector_3 Vector_3;=0A= typedef CGAL::Direction_3 Direction_3;=0A= typedef CGAL::Line_3 Line_3;=0A= typedef CGAL::Plane_3 Plane_3;=0A= typedef CGAL::Ray_3 Ray_3;=0A= typedef CGAL::Segment_3 Segment_3;=0A= typedef CGAL::Triangle_3 Triangle_3;=0A= typedef CGAL::Tetrahedron_3 Tetrahedron_3;=0A= typedef CGAL::Sphere_3 Sphere_3;=0A= typedef CGAL::Iso_cuboid_3 Iso_cuboid_3;=0A= typedef CGAL::Aff_transformation_3 Aff_transformation_3;=0A= =0A= =0A= =0A= typedef CGAL::Simple_Handle_for > Point_handle_2;=0A= typedef CGAL::Simple_Handle_for > Vector_handle_2;=0A= typedef CGAL::Simple_Handle_for > = Direction_handle_2;=0A= typedef CGAL::Simple_Handle_for > Line_handle_2;=0A= typedef CGAL::Simple_Handle_for > = Ray_handle_2;=0A= typedef CGAL::Simple_Handle_for > = Segment_handle_2;=0A= typedef CGAL::Simple_Handle_for >=0A= Circle_handle_2;=0A= typedef CGAL::Simple_Handle_for >=0A= = Triangle_handle_2;=0A= typedef CGAL::Simple_Handle_for >=0A= = Iso_rectangle_handle_2;=0A= typedef CGAL::Handle_for_virtual< = Aff_transformation_rep_baseC2 >=0A= = Aff_transformation_handle_2;=0A= =0A= typedef CGAL::Simple_Handle_for > = Point_handle_3;=0A= typedef CGAL::Simple_Handle_for > = Vector_handle_3;=0A= typedef CGAL::Simple_Handle_for > = Direction_handle_3;=0A= typedef CGAL::Simple_Handle_for >=0A= Line_handle_3;=0A= typedef CGAL::Simple_Handle_for > Plane_handle_3;=0A= typedef CGAL::Simple_Handle_for > = Ray_handle_3;=0A= typedef CGAL::Simple_Handle_for > = Segment_handle_3;=0A= typedef CGAL::Simple_Handle_for >=0A= Sphere_handle_3;=0A= typedef CGAL::Simple_Handle_for >=0A= = Triangle_handle_3;=0A= typedef CGAL::Simple_Handle_for >=0A= = Tetrahedron_handle_3;=0A= typedef CGAL::Simple_Handle_for >=0A= = Iso_cuboid_handle_3;=0A= typedef CGAL::Handle_for_virtual< = Aff_transformation_rep_baseC3 >=0A= = Aff_transformation_handle_3;=0A= =0A= =0A= static FT make_FT(const RT & num, const RT& denom) { return = num/denom;}=0A= static FT make_FT(const RT & num) { return num;}=0A= static RT FT_numerator(const FT &r) { return r;}=0A= static RT FT_denominator(const FT &) { return RT(1);}=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel_traits_common.h" 1=0A= # 55 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel_traits_common.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel/interface_macros.h" 1=0A= # 56 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel/interface_macros.h"=0A= typedef CGALi::Construct Construct_point_2; Construct_point_2 = construct_point_2_object() const { return Construct_point_2(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_vector_2; = Construct_vector_2 construct_vector_2_object() const { return = Construct_vector_2(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_direction_2; = Construct_direction_2 construct_direction_2_object() const { return = Construct_direction_2(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_segment_2; = Construct_segment_2 construct_segment_2_object() const { return = Construct_segment_2(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_line_2; Construct_line_2 = construct_line_2_object() const { return Construct_line_2(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_ray_2; Construct_ray_2 = construct_ray_2_object() const { return Construct_ray_2(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_circle_2; = Construct_circle_2 construct_circle_2_object() const { return = Construct_circle_2(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_triangle_2; = Construct_triangle_2 construct_triangle_2_object() const { return = Construct_triangle_2(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_iso_rectangle_2; = Construct_iso_rectangle_2 construct_iso_rectangle_2_object() const { = return Construct_iso_rectangle_2(); }=0A= =0A= =0A= typedef CGALi::Call_make_object_to_get Construct_object_2; = Construct_object_2 construct_object_2_object() const { return = Construct_object_2(); }=0A= =0A= =0A= =0A= =0A= typedef CGALi::Construct = Construct_aff_transformation_2; Construct_aff_transformation_2 = construct_aff_transformation_2_object() const { return = Construct_aff_transformation_2(); }=0A= =0A= =0A= =0A= =0A= typedef CGALi::Call_point_to_get Construct_point_on_2; = Construct_point_on_2 construct_point_on_2_object() const { return = Construct_point_on_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_projection_to_get = Construct_projected_point_2; Construct_projected_point_2 = construct_projected_point_2_object() const { return = Construct_projected_point_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Construct_projected_xy_point = Construct_projected_xy_point_2; Construct_projected_xy_point_2 = construct_projected_xy_point_2_object() const { return = Construct_projected_xy_point_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Construct_scaled_vector = Construct_scaled_vector_2; Construct_scaled_vector_2 = construct_scaled_vector_2_object() const { return = Construct_scaled_vector_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Construct_translated_point = Construct_translated_point_2; Construct_translated_point_2 = construct_translated_point_2_object() const { return = Construct_translated_point_2(); }=0A= =0A= =0A= =0A= =0A= typedef CGALi::Call_second_point_to_get = Construct_second_point_on_2; Construct_second_point_on_2 = construct_second_point_on_2_object() const { return = Construct_second_point_on_2(); }=0A= =0A= =0A= typedef CGALi::Call_source_to_get Construct_source_point_2; = Construct_source_point_2 construct_source_point_2_object() const { = return Construct_source_point_2(); }=0A= =0A= =0A= typedef CGALi::Call_target_to_get Construct_target_point_2; = Construct_target_point_2 construct_target_point_2_object() const { = return Construct_target_point_2(); }=0A= =0A= =0A= typedef CGALi::Call_min_to_get Construct_min_point_2; = Construct_min_point_2 construct_min_point_2_object() const { return = Construct_min_point_2(); }=0A= =0A= =0A= typedef CGALi::Call_max_to_get Construct_max_point_2; = Construct_max_point_2 construct_max_point_2_object() const { return = Construct_max_point_2(); }=0A= =0A= =0A= =0A= =0A= typedef CGALi::Call_vertex_to_get Construct_vertex_2; = Construct_vertex_2 construct_vertex_2_object() const { return = Construct_vertex_2(); }=0A= =0A= =0A= =0A= =0A= typedef CGALi::Call_direction_to_get = Construct_direction_of_line_2; Construct_direction_of_line_2 = construct_direction_of_line_2_object() const { return = Construct_direction_of_line_2(); }=0A= =0A= =0A= typedef CGALi::Call_direction_to_get = Construct_direction_of_ray_2; Construct_direction_of_ray_2 = construct_direction_of_ray_2_object() const { return = Construct_direction_of_ray_2(); }=0A= =0A= =0A= =0A= =0A= typedef CGALi::Call_supporting_line_to_get = Construct_supporting_line_2; Construct_supporting_line_2 = construct_supporting_line_2_object() const { return = Construct_supporting_line_2(); }=0A= =0A= =0A= typedef CGALi::Call_perpendicular_to_get = Construct_perpendicular_vector_2; Construct_perpendicular_vector_2 = construct_perpendicular_vector_2_object() const { return = Construct_perpendicular_vector_2(); }=0A= =0A= =0A= typedef CGALi::Call_perpendicular_to_get = Construct_perpendicular_direction_2; Construct_perpendicular_direction_2 = construct_perpendicular_direction_2_object() const { return = Construct_perpendicular_direction_2(); }=0A= =0A= =0A= typedef CGALi::Call_perpendicular_to_get = Construct_perpendicular_line_2; Construct_perpendicular_line_2 = construct_perpendicular_line_2_object() const { return = Construct_perpendicular_line_2(); }=0A= =0A= =0A= typedef CGALi::p_Midpoint Construct_midpoint_2; = Construct_midpoint_2 construct_midpoint_2_object() const { return = Construct_midpoint_2(); }=0A= =0A= =0A= typedef CGALi::p_Center Construct_center_2; Construct_center_2 = construct_center_2_object() const { return Construct_center_2(); }=0A= =0A= =0A= typedef CGALi::p_Circumcenter Construct_circumcenter_2; = Construct_circumcenter_2 construct_circumcenter_2_object() const { = return Construct_circumcenter_2(); }=0A= =0A= =0A= typedef CGALi::p_Centroid Construct_centroid_2; = Construct_centroid_2 construct_centroid_2_object() const { return = Construct_centroid_2(); }=0A= =0A= =0A= typedef CGALi::pl_Bisector Construct_bisector_2; = Construct_bisector_2 construct_bisector_2_object() const { return = Construct_bisector_2(); }=0A= =0A= =0A= typedef CGALi::v_Opposite Construct_opposite_direction_2; = Construct_opposite_direction_2 construct_opposite_direction_2_object() = const { return Construct_opposite_direction_2(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get = Construct_opposite_segment_2; Construct_opposite_segment_2 = construct_opposite_segment_2_object() const { return = Construct_opposite_segment_2(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get Construct_opposite_ray_2; = Construct_opposite_ray_2 construct_opposite_ray_2_object() const { = return Construct_opposite_ray_2(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get Construct_opposite_line_2; = Construct_opposite_line_2 construct_opposite_line_2_object() const { = return Construct_opposite_line_2(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get = Construct_opposite_triangle_2; Construct_opposite_triangle_2 = construct_opposite_triangle_2_object() const { return = Construct_opposite_triangle_2(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get = Construct_opposite_circle_2; Construct_opposite_circle_2 = construct_opposite_circle_2_object() const { return = Construct_opposite_circle_2(); }=0A= =0A= =0A= typedef CGALi::v_Opposite Construct_opposite_vector_2; = Construct_opposite_vector_2 construct_opposite_vector_2_object() const { = return Construct_opposite_vector_2(); }=0A= =0A= =0A= typedef CGALi::Assign Assign_2; Assign_2 assign_2_object() const { = return Assign_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_transform Transform_2; Transform_2 = transform_2_object() const { return Transform_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Intersect Intersect_2; Intersect_2 intersect_2_object() = const { return Intersect_2(); }=0A= =0A= =0A= typedef CGALi::Do_intersect Do_intersect_2; Do_intersect_2 = do_intersect_2_object() const { return Do_intersect_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_y_at_x_to_get Compute_y_at_x_2; Compute_y_at_x_2 = compute_y_at_x_2_object() const { return Compute_y_at_x_2(); }=0A= =0A= =0A= typedef CGALi::Call_squared_distance Compute_squared_distance_2; = Compute_squared_distance_2 compute_squared_distance_2_object() const { = return Compute_squared_distance_2(); }=0A= =0A= =0A= typedef CGALi::Call_squared_length_to_get Compute_squared_length_2; = Compute_squared_length_2 compute_squared_length_2_object() const { = return Compute_squared_length_2(); }=0A= =0A= =0A= typedef CGALi::Call_squared_radius Compute_squared_radius_2; = Compute_squared_radius_2 compute_squared_radius_2_object() const { = return Compute_squared_radius_2(); }=0A= =0A= =0A= typedef CGALi::Call_area_to_get Compute_area_2; Compute_area_2 = compute_area_2_object() const { return Compute_area_2(); }=0A= =0A= =0A= typedef CGALi::Equal Equal_2; Equal_2 equal_2_object() const { return = Equal_2(); }=0A= =0A= =0A= typedef CGALi::Equal_x Equal_x_2; Equal_x_2 equal_x_2_object() const { = return Equal_x_2(); }=0A= =0A= =0A= typedef CGALi::Equal_y Equal_y_2; Equal_y_2 equal_y_2_object() const { = return Equal_y_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Equal_xy Equal_xy_2; Equal_xy_2 equal_xy_2_object() const = { return Equal_xy_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Less_x Less_x_2; Less_x_2 less_x_2_object() const { = return Less_x_2(); }=0A= =0A= =0A= typedef CGALi::Less_y Less_y_2; Less_y_2 less_y_2_object() const { = return Less_y_2(); }=0A= =0A= =0A= typedef CGALi::p_Less_xy Less_xy_2; Less_xy_2 = less_xy_2_object() const { return Less_xy_2(); }=0A= =0A= =0A= typedef CGALi::p_Less_yx Less_yx_2; Less_yx_2 = less_yx_2_object() const { return Less_yx_2(); }=0A= =0A= =0A= typedef CGALi::Compare_x Compare_x_2; Compare_x_2 compare_x_2_object() = const { return Compare_x_2(); }=0A= =0A= =0A= typedef CGALi::Compare_y Compare_y_2; Compare_y_2 compare_y_2_object() = const { return Compare_y_2(); }=0A= =0A= =0A= typedef CGALi::Compare_xy Compare_xy_2; Compare_xy_2 = compare_xy_2_object() const { return Compare_xy_2(); }=0A= =0A= =0A= typedef CGALi::Compare_y_at_x Compare_y_at_x_2; Compare_y_at_x_2 = compare_y_at_x_2_object() const { return Compare_y_at_x_2(); }=0A= =0A= =0A= typedef CGALi::Compare_x_at_y Compare_x_at_y_2; Compare_x_at_y_2 = compare_x_at_y_2_object() const { return Compare_x_at_y_2(); }=0A= =0A= =0A= typedef CGALi::Compare_distance Compare_distance_2; = Compare_distance_2 compare_distance_2_object() const { return = Compare_distance_2(); }=0A= =0A= =0A= typedef CGALi::Compare_slope Compare_slope_2; Compare_slope_2 = compare_slope_2_object() const { return Compare_slope_2(); }=0A= =0A= =0A= typedef CGALi::p_Less_dist_to_point Less_distance_to_point_2; = Less_distance_to_point_2 less_distance_to_point_2_object() const { = return Less_distance_to_point_2(); }=0A= =0A= =0A= typedef CGALi::p_Less_dist_to_line_2 = Less_signed_distance_to_line_2; Less_signed_distance_to_line_2 = less_signed_distance_to_line_2_object() const { return = Less_signed_distance_to_line_2(); }=0A= =0A= =0A= typedef CGALi::p_Less_rotate_ccw Less_rotate_ccw_2; = Less_rotate_ccw_2 less_rotate_ccw_2_object() const { return = Less_rotate_ccw_2(); }=0A= =0A= =0A= typedef CGALi::Compare_angle_with_x_axis = Compare_angle_with_x_axis_2; Compare_angle_with_x_axis_2 = compare_angle_with_x_axis_2_object() const { return = Compare_angle_with_x_axis_2(); }=0A= =0A= =0A= typedef CGALi::Counterclockwise_in_between = Counterclockwise_in_between_2; Counterclockwise_in_between_2 = counterclockwise_in_between_2_object() const { return = Counterclockwise_in_between_2(); }=0A= =0A= =0A= typedef CGALi::p_Left_turn Left_turn_2; Left_turn_2 = left_turn_2_object() const { return Left_turn_2(); }=0A= =0A= =0A= =0A= typedef CGALi::p_Left_turn Leftturn_2; Leftturn_2 = leftturn_2_object() const { return Leftturn_2(); }=0A= =0A= =0A= =0A= typedef CGALi::p_Angle Angle_2; Angle_2 angle_2_object() const { return = Angle_2(); }=0A= =0A= =0A= typedef CGALi::Collinear Collinear_2; Collinear_2 collinear_2_object() = const { return Collinear_2(); }=0A= =0A= =0A= typedef CGALi::p_Orientation Orientation_2; Orientation_2 = orientation_2_object() const { return Orientation_2(); }=0A= =0A= =0A= typedef CGALi::Side_of_oriented_circle Side_of_oriented_circle_2; = Side_of_oriented_circle_2 side_of_oriented_circle_2_object() const { = return Side_of_oriented_circle_2(); }=0A= =0A= =0A= typedef CGALi::Side_of_bounded_circle Side_of_bounded_circle_2; = Side_of_bounded_circle_2 side_of_bounded_circle_2_object() const { = return Side_of_bounded_circle_2(); }=0A= =0A= =0A= typedef CGALi::Call_is_horizontal Is_horizontal_2; Is_horizontal_2 = is_horizontal_2_object() const { return Is_horizontal_2(); }=0A= =0A= =0A= typedef CGALi::Call_is_vertical Is_vertical_2; Is_vertical_2 = is_vertical_2_object() const { return Is_vertical_2(); }=0A= =0A= =0A= typedef CGALi::Call_is_degenerate Is_degenerate_2; Is_degenerate_2 = is_degenerate_2_object() const { return Is_degenerate_2(); }=0A= =0A= =0A= typedef CGALi::Call_has_on Has_on_2; Has_on_2 has_on_2_object() const { = return Has_on_2(); }=0A= =0A= =0A= typedef CGALi::Call_collinear_has_on Collinear_has_on_2; = Collinear_has_on_2 collinear_has_on_2_object() const { return = Collinear_has_on_2(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_bounded_side Has_on_bounded_side_2; = Has_on_bounded_side_2 has_on_bounded_side_2_object() const { return = Has_on_bounded_side_2(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_unbounded_side Has_on_unbounded_side_2; = Has_on_unbounded_side_2 has_on_unbounded_side_2_object() const { return = Has_on_unbounded_side_2(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_boundary Has_on_boundary_2; Has_on_boundary_2 = has_on_boundary_2_object() const { return Has_on_boundary_2(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_positive_side Has_on_positive_side_2; = Has_on_positive_side_2 has_on_positive_side_2_object() const { return = Has_on_positive_side_2(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_negative_side Has_on_negative_side_2; = Has_on_negative_side_2 has_on_negative_side_2_object() const { return = Has_on_negative_side_2(); }=0A= =0A= =0A= typedef CGALi::Call_oriented_side Oriented_side_2; Oriented_side_2 = oriented_side_2_object() const { return Oriented_side_2(); }=0A= =0A= =0A= typedef CGALi::Call_bounded_side Bounded_side_2; Bounded_side_2 = bounded_side_2_object() const { return Bounded_side_2(); }=0A= =0A= =0A= typedef CGALi::Are_ordered_along_line Are_ordered_along_line_2; = Are_ordered_along_line_2 are_ordered_along_line_2_object() const { = return Are_ordered_along_line_2(); }=0A= =0A= =0A= typedef CGALi::Are_strictly_ordered_along_line = Are_strictly_ordered_along_line_2; Are_strictly_ordered_along_line_2 = are_strictly_ordered_along_line_2_object() const { return = Are_strictly_ordered_along_line_2(); }=0A= =0A= =0A= typedef CGALi::Collinear_are_ordered_along_line = Collinear_are_ordered_along_line_2; Collinear_are_ordered_along_line_2 = collinear_are_ordered_along_line_2_object() const { return = Collinear_are_ordered_along_line_2(); }=0A= =0A= =0A= typedef CGALi::Collinear_are_strictly_ordered_along_line = Collinear_are_strictly_ordered_along_line_2; = Collinear_are_strictly_ordered_along_line_2 = collinear_are_strictly_ordered_along_line_2_object() const { return = Collinear_are_strictly_ordered_along_line_2(); }=0A= =0A= =0A= =0A= typedef CGALi::Construct Construct_point_3; Construct_point_3 = construct_point_3_object() const { return Construct_point_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_vector_3; = Construct_vector_3 construct_vector_3_object() const { return = Construct_vector_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_direction_3; = Construct_direction_3 construct_direction_3_object() const { return = Construct_direction_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_segment_3; = Construct_segment_3 construct_segment_3_object() const { return = Construct_segment_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_plane_3; Construct_plane_3 = construct_plane_3_object() const { return Construct_plane_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_line_3; Construct_line_3 = construct_line_3_object() const { return Construct_line_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_ray_3; Construct_ray_3 = construct_ray_3_object() const { return Construct_ray_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_sphere_3; = Construct_sphere_3 construct_sphere_3_object() const { return = Construct_sphere_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_triangle_3; = Construct_triangle_3 construct_triangle_3_object() const { return = Construct_triangle_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_tetrahedron_3; = Construct_tetrahedron_3 construct_tetrahedron_3_object() const { return = Construct_tetrahedron_3(); }=0A= =0A= =0A= typedef CGALi::Construct Construct_iso_cuboid_3; = Construct_iso_cuboid_3 construct_iso_cuboid_3_object() const { return = Construct_iso_cuboid_3(); }=0A= =0A= =0A= typedef CGALi::Call_make_object_to_get Construct_object_3; = Construct_object_3 construct_object_3_object() const { return = Construct_object_3(); }=0A= =0A= =0A= =0A= =0A= typedef CGALi::Construct = Construct_aff_transformation_3; Construct_aff_transformation_3 = construct_aff_transformation_3_object() const { return = Construct_aff_transformation_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_point_to_get Construct_point_on_3; = Construct_point_on_3 construct_point_on_3_object() const { return = Construct_point_on_3(); }=0A= =0A= =0A= typedef CGALi::Call_projection_to_get = Construct_projected_point_3; Construct_projected_point_3 = construct_projected_point_3_object() const { return = Construct_projected_point_3(); }=0A= =0A= =0A= typedef CGALi::p_Lifted Construct_lifted_point_3; = Construct_lifted_point_3 construct_lifted_point_3_object() const { = return Construct_lifted_point_3(); }=0A= =0A= =0A= typedef CGALi::Construct_scaled_vector = Construct_scaled_vector_3; Construct_scaled_vector_3 = construct_scaled_vector_3_object() const { return = Construct_scaled_vector_3(); }=0A= =0A= =0A= typedef CGALi::Construct_translated_point = Construct_translated_point_3; Construct_translated_point_3 = construct_translated_point_3_object() const { return = Construct_translated_point_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_second_point_to_get = Construct_second_point_on_3; Construct_second_point_on_3 = construct_second_point_on_3_object() const { return = Construct_second_point_on_3(); }=0A= =0A= =0A= typedef CGALi::Call_source_to_get Construct_source_point_3; = Construct_source_point_3 construct_source_point_3_object() const { = return Construct_source_point_3(); }=0A= =0A= =0A= typedef CGALi::Call_target_to_get Construct_target_point_3; = Construct_target_point_3 construct_target_point_3_object() const { = return Construct_target_point_3(); }=0A= =0A= =0A= typedef CGALi::Call_min_to_get Construct_min_point_3; = Construct_min_point_3 construct_min_point_3_object() const { return = Construct_min_point_3(); }=0A= =0A= =0A= typedef CGALi::Call_max_to_get Construct_max_point_3; = Construct_max_point_3 construct_max_point_3_object() const { return = Construct_max_point_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_vertex_to_get Construct_vertex_3; = Construct_vertex_3 construct_vertex_3_object() const { return = Construct_vertex_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_direction_to_get = Construct_direction_of_line_3; Construct_direction_of_line_3 = construct_direction_of_line_3_object() const { return = Construct_direction_of_line_3(); }=0A= =0A= =0A= typedef CGALi::Call_direction_to_get = Construct_direction_of_ray_3; Construct_direction_of_ray_3 = construct_direction_of_ray_3_object() const { return = Construct_direction_of_ray_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_supporting_line_to_get = Construct_supporting_line_3; Construct_supporting_line_3 = construct_supporting_line_3_object() const { return = Construct_supporting_line_3(); }=0A= =0A= =0A= typedef CGALi::Call_perpendicular_plane_to_get = Construct_perpendicular_plane_3; Construct_perpendicular_plane_3 = construct_perpendicular_plane_3_object() const { return = Construct_perpendicular_plane_3(); }=0A= =0A= =0A= typedef CGALi::Call_perpendicular_line_to_get = Construct_perpendicular_line_3; Construct_perpendicular_line_3 = construct_perpendicular_line_3_object() const { return = Construct_perpendicular_line_3(); }=0A= =0A= =0A= typedef CGALi::Call_orthogonal_vector_to_get = Construct_orthogonal_vector_3; Construct_orthogonal_vector_3 = construct_orthogonal_vector_3_object() const { return = Construct_orthogonal_vector_3(); }=0A= =0A= =0A= typedef CGALi::v_Base Construct_base_vector_3; = Construct_base_vector_3 construct_base_vector_3_object() const { return = Construct_base_vector_3(); }=0A= =0A= =0A= typedef CGALi::p_Midpoint Construct_midpoint_3; = Construct_midpoint_3 construct_midpoint_3_object() const { return = Construct_midpoint_3(); }=0A= =0A= =0A= typedef CGALi::p_Center Construct_center_3; Construct_center_3 = construct_center_3_object() const { return Construct_center_3(); }=0A= =0A= =0A= typedef CGALi::p_Circumcenter Construct_circumcenter_3; = Construct_circumcenter_3 construct_circumcenter_3_object() const { = return Construct_circumcenter_3(); }=0A= =0A= =0A= typedef CGALi::p_Centroid Construct_centroid_3; = Construct_centroid_3 construct_centroid_3_object() const { return = Construct_centroid_3(); }=0A= =0A= =0A= typedef CGALi::v_Cross_product = Construct_cross_product_vector_3; Construct_cross_product_vector_3 = construct_cross_product_vector_3_object() const { return = Construct_cross_product_vector_3(); }=0A= =0A= =0A= typedef CGALi::v_Opposite Construct_opposite_direction_3; = Construct_opposite_direction_3 construct_opposite_direction_3_object() = const { return Construct_opposite_direction_3(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get = Construct_opposite_segment_3; Construct_opposite_segment_3 = construct_opposite_segment_3_object() const { return = Construct_opposite_segment_3(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get Construct_opposite_ray_3; = Construct_opposite_ray_3 construct_opposite_ray_3_object() const { = return Construct_opposite_ray_3(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get Construct_opposite_line_3; = Construct_opposite_line_3 construct_opposite_line_3_object() const { = return Construct_opposite_line_3(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get Construct_opposite_plane_3; = Construct_opposite_plane_3 construct_opposite_plane_3_object() const { = return Construct_opposite_plane_3(); }=0A= =0A= =0A= typedef CGALi::Call_opposite_to_get = Construct_opposite_sphere_3; Construct_opposite_sphere_3 = construct_opposite_sphere_3_object() const { return = Construct_opposite_sphere_3(); }=0A= =0A= =0A= typedef CGALi::v_Opposite Construct_opposite_vector_3; = Construct_opposite_vector_3 construct_opposite_vector_3_object() const { = return Construct_opposite_vector_3(); }=0A= =0A= =0A= typedef CGALi::Call_supporting_plane_to_get = Construct_supporting_plane_3; Construct_supporting_plane_3 = construct_supporting_plane_3_object() const { return = Construct_supporting_plane_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Call_transform Transform_3; Transform_3 = transform_3_object() const { return Transform_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Assign Assign_3; Assign_3 assign_3_object() const { = return Assign_3(); }=0A= =0A= =0A= typedef CGALi::Intersect Intersect_3; Intersect_3 intersect_3_object() = const { return Intersect_3(); }=0A= =0A= =0A= typedef CGALi::Do_intersect Do_intersect_3; Do_intersect_3 = do_intersect_3_object() const { return Do_intersect_3(); }=0A= =0A= =0A= typedef CGALi::Call_squared_distance Compute_squared_distance_3; = Compute_squared_distance_3 compute_squared_distance_3_object() const { = return Compute_squared_distance_3(); }=0A= =0A= =0A= typedef CGALi::Call_squared_length_to_get Compute_squared_length_3; = Compute_squared_length_3 compute_squared_length_3_object() const { = return Compute_squared_length_3(); }=0A= =0A= =0A= typedef CGALi::Call_squared_radius Compute_squared_radius_3; = Compute_squared_radius_3 compute_squared_radius_3_object() const { = return Compute_squared_radius_3(); }=0A= =0A= =0A= typedef CGALi::Call_squared_area_to_get Compute_squared_area_3; = Compute_squared_area_3 compute_squared_area_3_object() const { return = Compute_squared_area_3(); }=0A= =0A= =0A= typedef CGALi::Call_volume_to_get Compute_volume_3; Compute_volume_3 = compute_volume_3_object() const { return Compute_volume_3(); }=0A= =0A= =0A= typedef CGALi::Equal Equal_3; Equal_3 equal_3_object() const { return = Equal_3(); }=0A= =0A= =0A= typedef CGALi::Equal_x Equal_x_3; Equal_x_3 equal_x_3_object() const { = return Equal_x_3(); }=0A= =0A= =0A= typedef CGALi::Equal_y Equal_y_3; Equal_y_3 equal_y_3_object() const { = return Equal_y_3(); }=0A= =0A= =0A= typedef CGALi::Equal_z Equal_z_3; Equal_z_3 equal_z_3_object() const { = return Equal_z_3(); }=0A= =0A= =0A= typedef CGALi::Equal_xy Equal_xy_3; Equal_xy_3 equal_xy_3_object() const = { return Equal_xy_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Equal_xyz Equal_xyz_3; Equal_xyz_3 equal_xyz_3_object() = const { return Equal_xyz_3(); }=0A= =0A= =0A= =0A= typedef CGALi::Less_x Less_x_3; Less_x_3 less_x_3_object() const { = return Less_x_3(); }=0A= =0A= =0A= typedef CGALi::Less_y Less_y_3; Less_y_3 less_y_3_object() const { = return Less_y_3(); }=0A= =0A= =0A= typedef CGALi::Less_z Less_z_3; Less_z_3 less_z_3_object() const { = return Less_z_3(); }=0A= =0A= =0A= typedef CGALi::p_Less_xy Less_xy_3; Less_xy_3 = less_xy_3_object() const { return Less_xy_3(); }=0A= =0A= =0A= typedef CGALi::Less_xyz Less_xyz_3; Less_xyz_3 less_xyz_3_object() const = { return Less_xyz_3(); }=0A= =0A= =0A= typedef CGALi::Compare_x Compare_x_3; Compare_x_3 compare_x_3_object() = const { return Compare_x_3(); }=0A= =0A= =0A= typedef CGALi::Compare_y Compare_y_3; Compare_y_3 compare_y_3_object() = const { return Compare_y_3(); }=0A= =0A= =0A= typedef CGALi::Compare_z Compare_z_3; Compare_z_3 compare_z_3_object() = const { return Compare_z_3(); }=0A= =0A= =0A= typedef CGALi::Compare_xy Compare_xy_3; Compare_xy_3 = compare_xy_3_object() const { return Compare_xy_3(); }=0A= =0A= =0A= typedef CGALi::Compare_xyz Compare_xyz_3; Compare_xyz_3 = compare_xyz_3_object() const { return Compare_xyz_3(); }=0A= =0A= =0A= typedef CGALi::Compare_distance Compare_distance_3; = Compare_distance_3 compare_distance_3_object() const { return = Compare_distance_3(); }=0A= =0A= =0A= typedef CGALi::p_Less_dist_to_point Less_distance_to_point_3; = Less_distance_to_point_3 less_distance_to_point_3_object() const { = return Less_distance_to_point_3(); }=0A= =0A= =0A= typedef CGALi::Less_signed_distance_to_plane = Less_signed_distance_to_plane_3; Less_signed_distance_to_plane_3 = less_signed_distance_to_plane_3_object() const { return = Less_signed_distance_to_plane_3(); }=0A= =0A= =0A= typedef CGALi::p_Angle Angle_3; Angle_3 angle_3_object() const { return = Angle_3(); }=0A= =0A= =0A= typedef CGALi::Collinear Collinear_3; Collinear_3 collinear_3_object() = const { return Collinear_3(); }=0A= =0A= =0A= typedef CGALi::Coplanar Coplanar_3; Coplanar_3 coplanar_3_object() const = { return Coplanar_3(); }=0A= =0A= =0A= typedef CGALi::Coplanar_orientation Coplanar_orientation_3; = Coplanar_orientation_3 coplanar_orientation_3_object() const { return = Coplanar_orientation_3(); }=0A= =0A= =0A= typedef CGALi::Coplanar_side_of_bounded_circle = Coplanar_side_of_bounded_circle_3; Coplanar_side_of_bounded_circle_3 = coplanar_side_of_bounded_circle_3_object() const { return = Coplanar_side_of_bounded_circle_3(); }=0A= =0A= =0A= typedef CGALi::p_Orientation Orientation_3; Orientation_3 = orientation_3_object() const { return Orientation_3(); }=0A= =0A= =0A= typedef CGALi::Call_is_degenerate Is_degenerate_3; Is_degenerate_3 = is_degenerate_3_object() const { return Is_degenerate_3(); }=0A= =0A= =0A= typedef CGALi::Call_has_on Has_on_3; Has_on_3 has_on_3_object() const { = return Has_on_3(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_bounded_side Has_on_bounded_side_3; = Has_on_bounded_side_3 has_on_bounded_side_3_object() const { return = Has_on_bounded_side_3(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_unbounded_side Has_on_unbounded_side_3; = Has_on_unbounded_side_3 has_on_unbounded_side_3_object() const { return = Has_on_unbounded_side_3(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_boundary Has_on_boundary_3; Has_on_boundary_3 = has_on_boundary_3_object() const { return Has_on_boundary_3(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_positive_side Has_on_positive_side_3; = Has_on_positive_side_3 has_on_positive_side_3_object() const { return = Has_on_positive_side_3(); }=0A= =0A= =0A= typedef CGALi::Call_has_on_negative_side Has_on_negative_side_3; = Has_on_negative_side_3 has_on_negative_side_3_object() const { return = Has_on_negative_side_3(); }=0A= =0A= =0A= typedef CGALi::Call_oriented_side Oriented_side_3; Oriented_side_3 = oriented_side_3_object() const { return Oriented_side_3(); }=0A= =0A= =0A= typedef CGALi::Call_bounded_side Bounded_side_3; Bounded_side_3 = bounded_side_3_object() const { return Bounded_side_3(); }=0A= =0A= =0A= typedef CGALi::Are_ordered_along_line Are_ordered_along_line_3; = Are_ordered_along_line_3 are_ordered_along_line_3_object() const { = return Are_ordered_along_line_3(); }=0A= =0A= =0A= typedef CGALi::Are_strictly_ordered_along_line = Are_strictly_ordered_along_line_3; Are_strictly_ordered_along_line_3 = are_strictly_ordered_along_line_3_object() const { return = Are_strictly_ordered_along_line_3(); }=0A= =0A= =0A= typedef CGALi::Collinear_are_ordered_along_line = Collinear_are_ordered_along_line_3; Collinear_are_ordered_along_line_3 = collinear_are_ordered_along_line_3_object() const { return = Collinear_are_ordered_along_line_3(); }=0A= =0A= =0A= typedef CGALi::Collinear_are_strictly_ordered_along_line = Collinear_are_strictly_ordered_along_line_3; = Collinear_are_strictly_ordered_along_line_3 = collinear_are_strictly_ordered_along_line_3_object() const { return = Collinear_are_strictly_ordered_along_line_3(); }=0A= =0A= =0A= typedef CGALi::Side_of_oriented_sphere Side_of_oriented_sphere_3; = Side_of_oriented_sphere_3 side_of_oriented_sphere_3_object() const { = return Side_of_oriented_sphere_3(); }=0A= =0A= =0A= typedef CGALi::Side_of_bounded_sphere Side_of_bounded_sphere_3; = Side_of_bounded_sphere_3 side_of_bounded_sphere_3_object() const { = return Side_of_bounded_sphere_3(); }=0A= # 56 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Ke= rnel_traits_common.h" 2=0A= # 244 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= =0A= };=0A= =0A= }=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/it= erator_traits_pointer_specs_for_simple_cartesian_kernel.h" 1=0A= # 250 = "/homes/rob/utils_install/LINUX/cgal-2.4-LINUX.DEBUG.GCC3/include/CGAL/Si= mple_cartesian.h" 2=0A= # 8 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 2=0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array= .hpp" 1=0A= # 22 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array= .hpp"=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/stdexcept" 1 3=0A= # 43 "/usr/local/gcc3.1/include/g++-v3/stdexcept" 3=0A= =0A= =0A= =0A= =0A= namespace std=0A= {=0A= =0A= =0A= =0A= =0A= =0A= class logic_error : public exception=0A= {=0A= string _M_msg;=0A= =0A= public:=0A= =0A= explicit=0A= logic_error(const string& __arg);=0A= =0A= virtual=0A= ~logic_error() throw();=0A= =0A= =0A= =0A= virtual const char*=0A= what() const throw();=0A= };=0A= =0A= =0A= =0A= class domain_error : public logic_error=0A= {=0A= public:=0A= explicit domain_error(const string& __arg);=0A= };=0A= =0A= =0A= class invalid_argument : public logic_error=0A= {=0A= public:=0A= explicit invalid_argument(const string& __arg);=0A= };=0A= =0A= =0A= =0A= class length_error : public logic_error=0A= {=0A= public:=0A= explicit length_error(const string& __arg);=0A= };=0A= =0A= =0A= =0A= class out_of_range : public logic_error=0A= {=0A= public:=0A= explicit out_of_range(const string& __arg);=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= class runtime_error : public exception=0A= {=0A= string _M_msg;=0A= =0A= public:=0A= =0A= explicit=0A= runtime_error(const string& __arg);=0A= =0A= virtual=0A= ~runtime_error() throw();=0A= =0A= =0A= =0A= virtual const char*=0A= what() const throw();=0A= };=0A= =0A= =0A= class range_error : public runtime_error=0A= {=0A= public:=0A= explicit range_error(const string& __arg);=0A= };=0A= =0A= =0A= class overflow_error : public runtime_error=0A= {=0A= public:=0A= explicit overflow_error(const string& __arg);=0A= };=0A= =0A= =0A= class underflow_error : public runtime_error=0A= {=0A= public:=0A= explicit underflow_error(const string& __arg);=0A= };=0A= }=0A= # 23 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array= .hpp" 2=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/iterator" 1 3=0A= # 65 "/usr/local/gcc3.1/include/g++-v3/iterator" 3=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stream_iterator.h" 1 3=0A= # 39 "/usr/local/gcc3.1/include/g++-v3/bits/stream_iterator.h" 3=0A= =0A= namespace std=0A= {=0A= template, typename _Dist =3D = ptrdiff_t>=0A= class istream_iterator=0A= : public iterator=0A= {=0A= public:=0A= typedef _CharT char_type;=0A= typedef _Traits traits_type;=0A= typedef basic_istream<_CharT, _Traits> istream_type;=0A= =0A= private:=0A= istream_type* _M_stream;=0A= _Tp _M_value;=0A= bool _M_ok;=0A= =0A= public:=0A= istream_iterator() : _M_stream(0), _M_ok(false) {}=0A= =0A= istream_iterator(istream_type& __s) : _M_stream(&__s) { _M_read(); = }=0A= =0A= istream_iterator(const istream_iterator& __obj)=0A= : _M_stream(__obj._M_stream), _M_value(__obj._M_value),=0A= _M_ok(__obj._M_ok)=0A= { }=0A= =0A= const _Tp&=0A= operator*() const { return _M_value; }=0A= =0A= const _Tp*=0A= operator->() const { return &(operator*()); }=0A= =0A= istream_iterator&=0A= operator++()=0A= { _M_read(); return *this; }=0A= =0A= istream_iterator=0A= operator++(int)=0A= {=0A= istream_iterator __tmp =3D *this;=0A= _M_read();=0A= return __tmp;=0A= }=0A= =0A= bool=0A= _M_equal(const istream_iterator& __x) const=0A= { return (_M_ok =3D=3D __x._M_ok) && (!_M_ok || _M_stream =3D=3D = __x._M_stream);}=0A= =0A= private:=0A= void=0A= _M_read()=0A= {=0A= _M_ok =3D (_M_stream && *_M_stream) ? true : false;=0A= if (_M_ok)=0A= {=0A= *_M_stream >> _M_value;=0A= _M_ok =3D *_M_stream ? true : false;=0A= }=0A= }=0A= };=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& = __x,=0A= const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)=0A= { return __x._M_equal(__y); }=0A= =0A= template =0A= inline bool=0A= operator!=3D(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& = __x,=0A= const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)=0A= { return !__x._M_equal(__y); }=0A= =0A= =0A= template >=0A= class ostream_iterator=0A= : public iterator=0A= {=0A= public:=0A= typedef _CharT char_type;=0A= typedef _Traits traits_type;=0A= typedef basic_ostream<_CharT, _Traits> ostream_type;=0A= =0A= private:=0A= ostream_type* _M_stream;=0A= const _CharT* _M_string;=0A= =0A= public:=0A= ostream_iterator(ostream_type& __s) : _M_stream(&__s), = _M_string(0) {}=0A= =0A= ostream_iterator(ostream_type& __s, const _CharT* __c)=0A= : _M_stream(&__s), _M_string(__c) { }=0A= =0A= ostream_iterator(const ostream_iterator& __obj)=0A= : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { }=0A= =0A= ostream_iterator&=0A= operator=3D(const _Tp& __value)=0A= {=0A= *_M_stream << __value;=0A= if (_M_string) *_M_stream << _M_string;=0A= return *this;=0A= }=0A= =0A= ostream_iterator&=0A= operator*() { return *this; }=0A= =0A= ostream_iterator&=0A= operator++() { return *this; }=0A= =0A= ostream_iterator&=0A= operator++(int) { return *this; }=0A= };=0A= }=0A= # 73 "/usr/local/gcc3.1/include/g++-v3/iterator" 2 3=0A= # 24 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array= .hpp" 2=0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 1=0A= # 26 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp"=0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/user.hpp" 1=0A= # 27 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 2=0A= =0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/select_compiler_config.hpp" 1=0A= # 32 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 2=0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/compiler/gcc.hpp" 1=0A= # 36 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 2=0A= =0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/select_stdlib_config.hpp" 1=0A= # 18 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/select_stdlib_config.hpp"=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/utility" 1 3=0A= # 65 "/usr/local/gcc3.1/include/g++-v3/utility" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 1 3=0A= # 74 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A= namespace std=0A= {=0A= namespace rel_ops=0A= {=0A= # 90 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A= template =0A= inline bool operator!=3D(const _Tp& __x, const _Tp& __y) {=0A= return !(__x =3D=3D __y);=0A= }=0A= # 103 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A= template =0A= inline bool operator>(const _Tp& __x, const _Tp& __y) {=0A= return __y < __x;=0A= }=0A= # 116 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A= template =0A= inline bool operator<=3D(const _Tp& __x, const _Tp& __y) {=0A= return !(__y < __x);=0A= }=0A= # 129 "/usr/local/gcc3.1/include/g++-v3/bits/stl_relops.h" 3=0A= template =0A= inline bool operator>=3D(const _Tp& __x, const _Tp& __y) {=0A= return !(__x < __y);=0A= }=0A= =0A= }=0A= }=0A= # 67 "/usr/local/gcc3.1/include/g++-v3/utility" 2 3=0A= # 19 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/select_stdlib_config.hpp" 2=0A= # 41 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 2=0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/stdlib/libstdcpp3.hpp" 1=0A= # 45 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 2=0A= =0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/select_platform_config.hpp" 1=0A= # 50 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 2=0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/platform/linux.hpp" 1=0A= # 60 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/platform/linux.hpp"=0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/posix_features.hpp" 1=0A= # 11 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/posix_features.hpp"=0A= # 1 "/usr/include/unistd.h" 1 3=0A= # 28 "/usr/include/unistd.h" 3=0A= extern "C" {=0A= # 175 "/usr/include/unistd.h" 3=0A= # 1 "/usr/include/bits/posix_opt.h" 1 3=0A= # 176 "/usr/include/unistd.h" 2 3=0A= =0A= =0A= =0A= # 1 "/usr/include/bits/environments.h" 1 3=0A= # 23 "/usr/include/bits/environments.h" 3=0A= # 1 "/usr/include/bits/wordsize.h" 1 3=0A= # 24 "/usr/include/bits/environments.h" 2 3=0A= # 180 "/usr/include/unistd.h" 2 3=0A= # 199 "/usr/include/unistd.h" 3=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 = 3=0A= # 200 "/usr/include/unistd.h" 2 3=0A= # 240 "/usr/include/unistd.h" 3=0A= typedef __intptr_t intptr_t;=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef __socklen_t socklen_t;=0A= # 260 "/usr/include/unistd.h" 3=0A= extern int access (__const char *__name, int __type) throw ();=0A= =0A= =0A= =0A= =0A= extern int euidaccess (__const char *__name, int __type) throw ();=0A= # 290 "/usr/include/unistd.h" 3=0A= extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();=0A= # 302 "/usr/include/unistd.h" 3=0A= extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) = throw ();=0A= =0A= =0A= =0A= extern int close (int __fd) throw ();=0A= =0A= =0A= =0A= extern ssize_t read (int __fd, void *__buf, size_t __nbytes) throw ();=0A= =0A= =0A= extern ssize_t write (int __fd, __const void *__buf, size_t __n) throw = ();=0A= =0A= =0A= =0A= extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t = __offset)=0A= throw ();=0A= extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,=0A= __off_t __offset) throw ();=0A= # 340 "/usr/include/unistd.h" 3=0A= extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,=0A= __off64_t __offset) throw ();=0A= =0A= =0A= extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,=0A= __off64_t __offset) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int pipe (int __pipedes[2]) throw ();=0A= # 362 "/usr/include/unistd.h" 3=0A= extern unsigned int alarm (unsigned int __seconds) throw ();=0A= # 371 "/usr/include/unistd.h" 3=0A= extern unsigned int sleep (unsigned int __seconds) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern __useconds_t ualarm (__useconds_t __value, __useconds_t = __interval)=0A= throw ();=0A= =0A= =0A= =0A= extern int usleep (__useconds_t __useconds) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int pause (void) throw ();=0A= =0A= =0A= =0A= extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)=0A= throw ();=0A= =0A= =0A= =0A= extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw ();=0A= =0A= =0A= =0A= =0A= extern int lchown (__const char *__file, __uid_t __owner, __gid_t = __group)=0A= throw ();=0A= =0A= =0A= =0A= =0A= extern int chdir (__const char *__path) throw ();=0A= =0A= =0A= =0A= extern int fchdir (int __fd) throw ();=0A= # 423 "/usr/include/unistd.h" 3=0A= extern char *getcwd (char *__buf, size_t __size) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern char *get_current_dir_name (void) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern char *getwd (char *__buf) throw ();=0A= =0A= =0A= =0A= =0A= extern int dup (int __fd) throw ();=0A= =0A= =0A= extern int dup2 (int __fd, int __fd2) throw ();=0A= =0A= =0A= extern char **__environ;=0A= =0A= extern char **environ;=0A= =0A= =0A= =0A= =0A= =0A= extern int execve (__const char *__path, char *__const __argv[],=0A= char *__const __envp[]) throw ();=0A= =0A= =0A= =0A= =0A= extern int fexecve (int __fd, char *__const __argv[], char *__const = __envp[])=0A= throw ();=0A= =0A= =0A= =0A= =0A= extern int execv (__const char *__path, char *__const __argv[]) throw ();=0A= =0A= =0A= =0A= extern int execle (__const char *__path, __const char *__arg, ...) throw = ();=0A= =0A= =0A= =0A= extern int execl (__const char *__path, __const char *__arg, ...) throw = ();=0A= =0A= =0A= =0A= extern int execvp (__const char *__file, char *__const __argv[]) throw = ();=0A= =0A= =0A= =0A= =0A= extern int execlp (__const char *__file, __const char *__arg, ...) throw = ();=0A= =0A= =0A= =0A= =0A= extern int nice (int __inc) throw ();=0A= =0A= =0A= =0A= =0A= extern void _exit (int __status) __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= =0A= # 1 "/usr/include/bits/confname.h" 1 3=0A= # 25 "/usr/include/bits/confname.h" 3=0A= enum=0A= {=0A= _PC_LINK_MAX,=0A= =0A= _PC_MAX_CANON,=0A= =0A= _PC_MAX_INPUT,=0A= =0A= _PC_NAME_MAX,=0A= =0A= _PC_PATH_MAX,=0A= =0A= _PC_PIPE_BUF,=0A= =0A= _PC_CHOWN_RESTRICTED,=0A= =0A= _PC_NO_TRUNC,=0A= =0A= _PC_VDISABLE,=0A= =0A= _PC_SYNC_IO,=0A= =0A= _PC_ASYNC_IO,=0A= =0A= _PC_PRIO_IO,=0A= =0A= _PC_SOCK_MAXBUF,=0A= =0A= _PC_FILESIZEBITS,=0A= =0A= _PC_REC_INCR_XFER_SIZE,=0A= =0A= _PC_REC_MAX_XFER_SIZE,=0A= =0A= _PC_REC_MIN_XFER_SIZE,=0A= =0A= _PC_REC_XFER_ALIGN,=0A= =0A= _PC_ALLOC_SIZE_MIN,=0A= =0A= _PC_SYMLINK_MAX=0A= =0A= };=0A= =0A= =0A= enum=0A= {=0A= _SC_ARG_MAX,=0A= =0A= _SC_CHILD_MAX,=0A= =0A= _SC_CLK_TCK,=0A= =0A= _SC_NGROUPS_MAX,=0A= =0A= _SC_OPEN_MAX,=0A= =0A= _SC_STREAM_MAX,=0A= =0A= _SC_TZNAME_MAX,=0A= =0A= _SC_JOB_CONTROL,=0A= =0A= _SC_SAVED_IDS,=0A= =0A= _SC_REALTIME_SIGNALS,=0A= =0A= _SC_PRIORITY_SCHEDULING,=0A= =0A= _SC_TIMERS,=0A= =0A= _SC_ASYNCHRONOUS_IO,=0A= =0A= _SC_PRIORITIZED_IO,=0A= =0A= _SC_SYNCHRONIZED_IO,=0A= =0A= _SC_FSYNC,=0A= =0A= _SC_MAPPED_FILES,=0A= =0A= _SC_MEMLOCK,=0A= =0A= _SC_MEMLOCK_RANGE,=0A= =0A= _SC_MEMORY_PROTECTION,=0A= =0A= _SC_MESSAGE_PASSING,=0A= =0A= _SC_SEMAPHORES,=0A= =0A= _SC_SHARED_MEMORY_OBJECTS,=0A= =0A= _SC_AIO_LISTIO_MAX,=0A= =0A= _SC_AIO_MAX,=0A= =0A= _SC_AIO_PRIO_DELTA_MAX,=0A= =0A= _SC_DELAYTIMER_MAX,=0A= =0A= _SC_MQ_OPEN_MAX,=0A= =0A= _SC_MQ_PRIO_MAX,=0A= =0A= _SC_VERSION,=0A= =0A= _SC_PAGESIZE,=0A= =0A= =0A= _SC_RTSIG_MAX,=0A= =0A= _SC_SEM_NSEMS_MAX,=0A= =0A= _SC_SEM_VALUE_MAX,=0A= =0A= _SC_SIGQUEUE_MAX,=0A= =0A= _SC_TIMER_MAX,=0A= =0A= =0A= =0A= =0A= _SC_BC_BASE_MAX,=0A= =0A= _SC_BC_DIM_MAX,=0A= =0A= _SC_BC_SCALE_MAX,=0A= =0A= _SC_BC_STRING_MAX,=0A= =0A= _SC_COLL_WEIGHTS_MAX,=0A= =0A= _SC_EQUIV_CLASS_MAX,=0A= =0A= _SC_EXPR_NEST_MAX,=0A= =0A= _SC_LINE_MAX,=0A= =0A= _SC_RE_DUP_MAX,=0A= =0A= _SC_CHARCLASS_NAME_MAX,=0A= =0A= =0A= _SC_2_VERSION,=0A= =0A= _SC_2_C_BIND,=0A= =0A= _SC_2_C_DEV,=0A= =0A= _SC_2_FORT_DEV,=0A= =0A= _SC_2_FORT_RUN,=0A= =0A= _SC_2_SW_DEV,=0A= =0A= _SC_2_LOCALEDEF,=0A= =0A= =0A= _SC_PII,=0A= =0A= _SC_PII_XTI,=0A= =0A= _SC_PII_SOCKET,=0A= =0A= _SC_PII_INTERNET,=0A= =0A= _SC_PII_OSI,=0A= =0A= _SC_POLL,=0A= =0A= _SC_SELECT,=0A= =0A= _SC_UIO_MAXIOV,=0A= =0A= _SC_IOV_MAX =3D _SC_UIO_MAXIOV,=0A= =0A= _SC_PII_INTERNET_STREAM,=0A= =0A= _SC_PII_INTERNET_DGRAM,=0A= =0A= _SC_PII_OSI_COTS,=0A= =0A= _SC_PII_OSI_CLTS,=0A= =0A= _SC_PII_OSI_M,=0A= =0A= _SC_T_IOV_MAX,=0A= =0A= =0A= =0A= _SC_THREADS,=0A= =0A= _SC_THREAD_SAFE_FUNCTIONS,=0A= =0A= _SC_GETGR_R_SIZE_MAX,=0A= =0A= _SC_GETPW_R_SIZE_MAX,=0A= =0A= _SC_LOGIN_NAME_MAX,=0A= =0A= _SC_TTY_NAME_MAX,=0A= =0A= _SC_THREAD_DESTRUCTOR_ITERATIONS,=0A= =0A= _SC_THREAD_KEYS_MAX,=0A= =0A= _SC_THREAD_STACK_MIN,=0A= =0A= _SC_THREAD_THREADS_MAX,=0A= =0A= _SC_THREAD_ATTR_STACKADDR,=0A= =0A= _SC_THREAD_ATTR_STACKSIZE,=0A= =0A= _SC_THREAD_PRIORITY_SCHEDULING,=0A= =0A= _SC_THREAD_PRIO_INHERIT,=0A= =0A= _SC_THREAD_PRIO_PROTECT,=0A= =0A= _SC_THREAD_PROCESS_SHARED,=0A= =0A= =0A= _SC_NPROCESSORS_CONF,=0A= =0A= _SC_NPROCESSORS_ONLN,=0A= =0A= _SC_PHYS_PAGES,=0A= =0A= _SC_AVPHYS_PAGES,=0A= =0A= _SC_ATEXIT_MAX,=0A= =0A= _SC_PASS_MAX,=0A= =0A= =0A= _SC_XOPEN_VERSION,=0A= =0A= _SC_XOPEN_XCU_VERSION,=0A= =0A= _SC_XOPEN_UNIX,=0A= =0A= _SC_XOPEN_CRYPT,=0A= =0A= _SC_XOPEN_ENH_I18N,=0A= =0A= _SC_XOPEN_SHM,=0A= =0A= =0A= _SC_2_CHAR_TERM,=0A= =0A= _SC_2_C_VERSION,=0A= =0A= _SC_2_UPE,=0A= =0A= =0A= _SC_XOPEN_XPG2,=0A= =0A= _SC_XOPEN_XPG3,=0A= =0A= _SC_XOPEN_XPG4,=0A= =0A= =0A= _SC_CHAR_BIT,=0A= =0A= _SC_CHAR_MAX,=0A= =0A= _SC_CHAR_MIN,=0A= =0A= _SC_INT_MAX,=0A= =0A= _SC_INT_MIN,=0A= =0A= _SC_LONG_BIT,=0A= =0A= _SC_WORD_BIT,=0A= =0A= _SC_MB_LEN_MAX,=0A= =0A= _SC_NZERO,=0A= =0A= _SC_SSIZE_MAX,=0A= =0A= _SC_SCHAR_MAX,=0A= =0A= _SC_SCHAR_MIN,=0A= =0A= _SC_SHRT_MAX,=0A= =0A= _SC_SHRT_MIN,=0A= =0A= _SC_UCHAR_MAX,=0A= =0A= _SC_UINT_MAX,=0A= =0A= _SC_ULONG_MAX,=0A= =0A= _SC_USHRT_MAX,=0A= =0A= =0A= _SC_NL_ARGMAX,=0A= =0A= _SC_NL_LANGMAX,=0A= =0A= _SC_NL_MSGMAX,=0A= =0A= _SC_NL_NMAX,=0A= =0A= _SC_NL_SETMAX,=0A= =0A= _SC_NL_TEXTMAX,=0A= =0A= =0A= _SC_XBS5_ILP32_OFF32,=0A= =0A= _SC_XBS5_ILP32_OFFBIG,=0A= =0A= _SC_XBS5_LP64_OFF64,=0A= =0A= _SC_XBS5_LPBIG_OFFBIG,=0A= =0A= =0A= _SC_XOPEN_LEGACY,=0A= =0A= _SC_XOPEN_REALTIME,=0A= =0A= _SC_XOPEN_REALTIME_THREADS,=0A= =0A= =0A= _SC_ADVISORY_INFO,=0A= =0A= _SC_BARRIERS,=0A= =0A= _SC_BASE,=0A= =0A= _SC_C_LANG_SUPPORT,=0A= =0A= _SC_C_LANG_SUPPORT_R,=0A= =0A= _SC_CLOCK_SELECTION,=0A= =0A= _SC_CPUTIME,=0A= =0A= _SC_THREAD_CPUTIME,=0A= =0A= _SC_DEVICE_IO,=0A= =0A= _SC_DEVICE_SPECIFIC,=0A= =0A= _SC_DEVICE_SPECIFIC_R,=0A= =0A= _SC_FD_MGMT,=0A= =0A= _SC_FIFO,=0A= =0A= _SC_PIPE,=0A= =0A= _SC_FILE_ATTRIBUTES,=0A= =0A= _SC_FILE_LOCKING,=0A= =0A= _SC_FILE_SYSTEM,=0A= =0A= _SC_MONOTONIC_CLOCK,=0A= =0A= _SC_MULTI_PROCESS,=0A= =0A= _SC_SINGLE_PROCESS,=0A= =0A= _SC_NETWORKING,=0A= =0A= _SC_READER_WRITER_LOCKS,=0A= =0A= _SC_SPIN_LOCKS,=0A= =0A= _SC_REGEXP,=0A= =0A= _SC_REGEX_VERSION,=0A= =0A= _SC_SHELL,=0A= =0A= _SC_SIGNALS,=0A= =0A= _SC_SPAWN,=0A= =0A= _SC_SPORADIC_SERVER,=0A= =0A= _SC_THREAD_SPORADIC_SERVER,=0A= =0A= _SC_SYSTEM_DATABASE,=0A= =0A= _SC_SYSTEM_DATABASE_R,=0A= =0A= _SC_TIMEOUTS,=0A= =0A= _SC_TYPED_MEMORY_OBJECTS,=0A= =0A= _SC_USER_GROUPS,=0A= =0A= _SC_USER_GROUPS_R,=0A= =0A= _SC_2_PBS,=0A= =0A= _SC_2_PBS_ACCOUNTING,=0A= =0A= _SC_2_PBS_LOCATE,=0A= =0A= _SC_2_PBS_MESSAGE,=0A= =0A= _SC_2_PBS_TRACK,=0A= =0A= _SC_SYMLOOP_MAX,=0A= =0A= _SC_STREAMS,=0A= =0A= _SC_2_PBS_CHECKPOINT,=0A= =0A= =0A= _SC_V6_ILP32_OFF32,=0A= =0A= _SC_V6_ILP32_OFFBIG,=0A= =0A= _SC_V6_LP64_OFF64,=0A= =0A= _SC_V6_LPBIG_OFFBIG,=0A= =0A= =0A= _SC_HOST_NAME_MAX,=0A= =0A= _SC_TRACE,=0A= =0A= _SC_TRACE_EVENT_FILTER,=0A= =0A= _SC_TRACE_INHERIT,=0A= =0A= _SC_TRACE_LOG=0A= =0A= };=0A= =0A= =0A= =0A= =0A= =0A= enum=0A= {=0A= _CS_PATH,=0A= =0A= =0A= =0A= =0A= _CS_LFS_CFLAGS =3D 1000,=0A= =0A= _CS_LFS_LDFLAGS,=0A= =0A= _CS_LFS_LIBS,=0A= =0A= _CS_LFS_LINTFLAGS,=0A= =0A= _CS_LFS64_CFLAGS,=0A= =0A= _CS_LFS64_LDFLAGS,=0A= =0A= _CS_LFS64_LIBS,=0A= =0A= _CS_LFS64_LINTFLAGS,=0A= =0A= =0A= =0A= =0A= _CS_XBS5_ILP32_OFF32_CFLAGS =3D 1100,=0A= =0A= _CS_XBS5_ILP32_OFF32_LDFLAGS,=0A= =0A= _CS_XBS5_ILP32_OFF32_LIBS,=0A= =0A= _CS_XBS5_ILP32_OFF32_LINTFLAGS,=0A= =0A= _CS_XBS5_ILP32_OFFBIG_CFLAGS,=0A= =0A= _CS_XBS5_ILP32_OFFBIG_LDFLAGS,=0A= =0A= _CS_XBS5_ILP32_OFFBIG_LIBS,=0A= =0A= _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,=0A= =0A= _CS_XBS5_LP64_OFF64_CFLAGS,=0A= =0A= _CS_XBS5_LP64_OFF64_LDFLAGS,=0A= =0A= _CS_XBS5_LP64_OFF64_LIBS,=0A= =0A= _CS_XBS5_LP64_OFF64_LINTFLAGS,=0A= =0A= _CS_XBS5_LPBIG_OFFBIG_CFLAGS,=0A= =0A= _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,=0A= =0A= _CS_XBS5_LPBIG_OFFBIG_LIBS,=0A= =0A= _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,=0A= =0A= =0A= =0A= _CS_POSIX_V6_ILP32_OFF32_CFLAGS,=0A= =0A= _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,=0A= =0A= _CS_POSIX_V6_ILP32_OFF32_LIBS,=0A= =0A= _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,=0A= =0A= _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,=0A= =0A= _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,=0A= =0A= _CS_POSIX_V6_ILP32_OFFBIG_LIBS,=0A= =0A= _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,=0A= =0A= _CS_POSIX_V6_LP64_OFF64_CFLAGS,=0A= =0A= _CS_POSIX_V6_LP64_OFF64_LDFLAGS,=0A= =0A= _CS_POSIX_V6_LP64_OFF64_LIBS,=0A= =0A= _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,=0A= =0A= _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,=0A= =0A= _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,=0A= =0A= _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,=0A= =0A= _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,=0A= =0A= =0A= =0A= _CS_V6_WIDTH_RESTRICTED_ENVS=0A= =0A= };=0A= # 501 "/usr/include/unistd.h" 2 3=0A= =0A= =0A= extern long int pathconf (__const char *__path, int __name) throw ();=0A= =0A= =0A= extern long int fpathconf (int __fd, int __name) throw ();=0A= =0A= =0A= extern long int sysconf (int __name) throw () __attribute__ = ((__const__));=0A= =0A= =0A= =0A= extern size_t confstr (int __name, char *__buf, size_t __len) throw ();=0A= =0A= =0A= =0A= =0A= extern __pid_t getpid (void) throw ();=0A= =0A= =0A= extern __pid_t getppid (void) throw ();=0A= =0A= =0A= =0A= =0A= extern __pid_t getpgrp (void) throw ();=0A= # 536 "/usr/include/unistd.h" 3=0A= extern __pid_t __getpgid (__pid_t __pid) throw ();=0A= =0A= extern __pid_t getpgid (__pid_t __pid) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();=0A= # 562 "/usr/include/unistd.h" 3=0A= extern int setpgrp (void) throw ();=0A= # 580 "/usr/include/unistd.h" 3=0A= extern __pid_t setsid (void) throw ();=0A= =0A= =0A= =0A= extern __pid_t getsid (__pid_t __pid) throw ();=0A= =0A= =0A= =0A= extern __uid_t getuid (void) throw ();=0A= =0A= =0A= extern __uid_t geteuid (void) throw ();=0A= =0A= =0A= extern __gid_t getgid (void) throw ();=0A= =0A= =0A= extern __gid_t getegid (void) throw ();=0A= =0A= =0A= =0A= =0A= extern int getgroups (int __size, __gid_t __list[]) throw ();=0A= =0A= =0A= =0A= extern int group_member (__gid_t __gid) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int setuid (__uid_t __uid) throw ();=0A= =0A= =0A= =0A= =0A= extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();=0A= =0A= =0A= =0A= =0A= extern int seteuid (__uid_t __uid) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int setgid (__gid_t __gid) throw ();=0A= =0A= =0A= =0A= =0A= extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();=0A= =0A= =0A= =0A= =0A= extern int setegid (__gid_t __gid) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern __pid_t fork (void) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern __pid_t vfork (void) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern char *ttyname (int __fd) throw ();=0A= =0A= =0A= =0A= extern int ttyname_r (int __fd, char *__buf, size_t __buflen) throw ();=0A= =0A= =0A= =0A= extern int isatty (int __fd) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int ttyslot (void) throw ();=0A= =0A= =0A= =0A= =0A= extern int link (__const char *__from, __const char *__to) throw ();=0A= =0A= =0A= =0A= extern int symlink (__const char *__from, __const char *__to) throw ();=0A= =0A= =0A= =0A= =0A= extern int readlink (__const char *__restrict __path, char *__restrict = __buf,=0A= size_t __len) throw ();=0A= =0A= =0A= =0A= extern int unlink (__const char *__name) throw ();=0A= =0A= =0A= extern int rmdir (__const char *__path) throw ();=0A= =0A= =0A= =0A= extern __pid_t tcgetpgrp (int __fd) throw ();=0A= =0A= =0A= extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();=0A= =0A= =0A= =0A= extern char *getlogin (void) throw ();=0A= =0A= =0A= =0A= =0A= extern int getlogin_r (char *__name, size_t __name_len) throw ();=0A= =0A= =0A= =0A= =0A= extern int setlogin (__const char *__name) throw ();=0A= # 726 "/usr/include/unistd.h" 3=0A= # 1 "/usr/include/getopt.h" 1 3=0A= # 38 "/usr/include/getopt.h" 3=0A= extern "C" {=0A= # 47 "/usr/include/getopt.h" 3=0A= extern char *optarg;=0A= # 61 "/usr/include/getopt.h" 3=0A= extern int optind;=0A= =0A= =0A= =0A= =0A= extern int opterr;=0A= =0A= =0A= =0A= extern int optopt;=0A= # 145 "/usr/include/getopt.h" 3=0A= extern int getopt (int ___argc, char *const *___argv, const char = *__shortopts);=0A= # 175 "/usr/include/getopt.h" 3=0A= }=0A= # 727 "/usr/include/unistd.h" 2 3=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int gethostname (char *__name, size_t __len) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int sethostname (__const char *__name, size_t __len) throw ();=0A= =0A= =0A= =0A= extern int sethostid (long int __id) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int getdomainname (char *__name, size_t __len) throw ();=0A= extern int setdomainname (__const char *__name, size_t __len) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int vhangup (void) throw ();=0A= =0A= =0A= extern int revoke (__const char *__file) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int profil (unsigned short int *__sample_buffer, size_t __size,=0A= size_t __offset, unsigned int __scale) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int acct (__const char *__name) throw ();=0A= =0A= =0A= =0A= extern char *getusershell (void) throw ();=0A= extern void endusershell (void) throw ();=0A= extern void setusershell (void) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int daemon (int __nochdir, int __noclose) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern int chroot (__const char *__path) throw ();=0A= =0A= =0A= =0A= extern char *getpass (__const char *__prompt) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int fsync (int __fd) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern long int gethostid (void) throw ();=0A= =0A= =0A= extern void sync (void) throw ();=0A= =0A= =0A= =0A= =0A= extern int getpagesize (void) throw () __attribute__ ((__const__));=0A= =0A= =0A= =0A= =0A= extern int truncate (__const char *__file, __off_t __length) throw ();=0A= # 836 "/usr/include/unistd.h" 3=0A= extern int truncate64 (__const char *__file, __off64_t __length) throw = ();=0A= =0A= =0A= =0A= =0A= extern int ftruncate (int __fd, __off_t __length) throw ();=0A= # 851 "/usr/include/unistd.h" 3=0A= extern int ftruncate64 (int __fd, __off64_t __length) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern int getdtablesize (void) throw ();=0A= # 866 "/usr/include/unistd.h" 3=0A= extern int brk (void *__addr) throw ();=0A= =0A= =0A= =0A= =0A= =0A= extern void *sbrk (intptr_t __delta) throw ();=0A= # 887 "/usr/include/unistd.h" 3=0A= extern long int syscall (long int __sysno, ...) throw ();=0A= # 907 "/usr/include/unistd.h" 3=0A= extern int lockf (int __fd, int __cmd, __off_t __len) throw ();=0A= # 917 "/usr/include/unistd.h" 3=0A= extern int lockf64 (int __fd, int __cmd, __off64_t __len) throw ();=0A= # 938 "/usr/include/unistd.h" 3=0A= extern int fdatasync (int __fildes) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern char *crypt (__const char *__key, __const char *__salt) throw ();=0A= =0A= =0A= =0A= extern void encrypt (char *__block, int __edflag) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= extern void swab (__const void *__restrict __from, void *__restrict __to,=0A= ssize_t __n) throw ();=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= extern char *ctermid (char *__s) throw ();=0A= # 983 "/usr/include/unistd.h" 3=0A= extern int pthread_atfork (void (*__prepare) (void),=0A= void (*__parent) (void),=0A= void (*__child) (void)) throw ();=0A= =0A= =0A= }=0A= # 12 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/posix_features.hpp" 2=0A= # 61 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/platform/linux.hpp" 2=0A= # 54 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 2=0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/suffix.hpp" 1=0A= # 30 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/suffix.hpp"=0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 = 3=0A= # 31 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g/suffix.hpp" 2=0A= # 58 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/confi= g.hpp" 2=0A= # 28 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array= .hpp" 2=0A= =0A= namespace boost {=0A= =0A= template=0A= class array {=0A= public:=0A= T elems[N];=0A= =0A= public:=0A= =0A= typedef T value_type;=0A= typedef T* iterator;=0A= typedef const T* const_iterator;=0A= typedef T& reference;=0A= typedef const T& const_reference;=0A= typedef std::size_t size_type;=0A= typedef std::ptrdiff_t difference_type;=0A= =0A= =0A= iterator begin() { return elems; }=0A= const_iterator begin() const { return elems; }=0A= iterator end() { return elems+N; }=0A= const_iterator end() const { return elems+N; }=0A= =0A= =0A= =0A= typedef std::reverse_iterator reverse_iterator;=0A= typedef std::reverse_iterator = const_reverse_iterator;=0A= # 68 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/array= .hpp"=0A= reverse_iterator rbegin() { return reverse_iterator(end()); }=0A= const_reverse_iterator rbegin() const {=0A= return const_reverse_iterator(end());=0A= }=0A= reverse_iterator rend() { return reverse_iterator(begin()); }=0A= const_reverse_iterator rend() const {=0A= return const_reverse_iterator(begin());=0A= }=0A= =0A= =0A= reference operator[](size_type i) { return elems[i]; }=0A= const_reference operator[](size_type i) const { return elems[i]; = }=0A= =0A= =0A= reference at(size_type i) { rangecheck(i); return elems[i]; }=0A= const_reference at(size_type i) const { rangecheck(i); return = elems[i]; }=0A= =0A= =0A= reference front() { return elems[0]; }=0A= const_reference front() const { return elems[0]; }=0A= reference back() { return elems[N-1]; }=0A= const_reference back() const { return elems[N-1]; }=0A= =0A= =0A= static size_type size() { return N; }=0A= static bool empty() { return false; }=0A= static size_type max_size() { return N; }=0A= enum { static_size =3D N };=0A= =0A= =0A= void swap (array& y) {=0A= std::swap_ranges(begin(),end(),y.begin());=0A= }=0A= =0A= =0A= const T* data() const { return elems; }=0A= =0A= =0A= template =0A= array& operator=3D (const array& rhs) {=0A= std::copy(rhs.begin(),rhs.end(), begin());=0A= return *this;=0A= }=0A= =0A= =0A= void assign (const T& value)=0A= {=0A= std::fill_n(begin(),size(),value);=0A= }=0A= =0A= =0A= private:=0A= =0A= =0A= static void rangecheck (size_type i) {=0A= if (i >=3D size()) { throw std::range_error("array"); }=0A= }=0A= =0A= };=0A= =0A= =0A= template=0A= bool operator=3D=3D (const array& x, const array& y) {=0A= return std::equal(x.begin(), x.end(), y.begin());=0A= }=0A= template=0A= bool operator< (const array& x, const array& y) {=0A= return = std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end());=0A= }=0A= template=0A= bool operator!=3D (const array& x, const array& y) {=0A= return !(x=3D=3Dy);=0A= }=0A= template=0A= bool operator> (const array& x, const array& y) {=0A= return y=0A= bool operator<=3D (const array& x, const array& y) {=0A= return !(y=0A= bool operator>=3D (const array& x, const array& y) {=0A= return !(x=0A= inline void swap (array& x, array& y) {=0A= x.swap(y);=0A= }=0A= =0A= }=0A= # 11 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h" 2=0A= =0A= =0A= =0A= template =0A= class Point=0A= {=0A= public:=0A= =0A= Point();=0A= Point(const N & x, const N & y, const N & z);=0A= Point(const Point & other);=0A= =0A= template =0A= Point(const CGAL::Point_3 & point);=0A= =0A= template =0A= operator CGAL::Point_3();=0A= =0A= ~Point();=0A= =0A= Point & operator=3D(const Point & rhs);=0A= =0A= bool operator=3D=3D(const Point & rhs) const;=0A= bool operator!=3D(const Point & rhs) const;=0A= bool operator< (const Point & rhs) const;=0A= bool operator<=3D(const Point & rhs) const;=0A= bool operator> (const Point & rhs) const;=0A= bool operator>=3D(const Point & rhs) const;=0A= =0A= const N & x() const;=0A= const N & y() const;=0A= const N & z() const;=0A= =0A= const N & operator[](UInt c) const;=0A= =0A= N & x();=0A= N & y();=0A= N & z();=0A= =0A= N & operator[](UInt c);=0A= =0A= private:=0A= boost::array m_components;=0A= };=0A= =0A= =0A= =0A= template =0A= Point::Point()=0A= {=0A= }=0A= =0A= template =0A= Point::Point(const N & x, const N & y, const N & z)=0A= {=0A= m_components[0] =3D x;=0A= m_components[1] =3D y;=0A= m_components[2] =3D z;=0A= }=0A= =0A= template =0A= Point::Point(const Point & other) :=0A= m_components(other.m_components)=0A= {=0A= }=0A= =0A= template =0A= template =0A= Point::Point(const CGAL::Point_3 & point)=0A= {=0A= m_components[0] =3D point.x();=0A= m_components[1] =3D point.y();=0A= m_components[2] =3D point.z();=0A= }=0A= =0A= template =0A= template =0A= Point::operator CGAL::Point_3()=0A= {=0A= return CGAL::Point_3( m_components[0], m_components[1], = m_components[2] );=0A= }=0A= =0A= template =0A= Point::~Point()=0A= {=0A= }=0A= =0A= template =0A= Point & Point::operator=3D(const Point & rhs)=0A= {=0A= if(this !=3D &rhs)=0A= {=0A= m_components =3D rhs.m_components;=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= bool Point::operator=3D=3D(const Point & rhs) const=0A= {=0A= return ( m_components =3D=3D rhs.m_components ) ;=0A= }=0A= =0A= template =0A= bool Point::operator!=3D(const Point & rhs) const=0A= {=0A= return ( m_components !=3D rhs.m_components ) ;=0A= }=0A= =0A= template =0A= bool Point::operator<(const Point & rhs) const=0A= {=0A= return ( m_components < rhs.m_components ) ;=0A= }=0A= =0A= template =0A= bool Point::operator<=3D(const Point & rhs) const=0A= {=0A= return ( m_components <=3D rhs.m_components );=0A= }=0A= =0A= template =0A= bool Point::operator>(const Point & rhs) const=0A= {=0A= return ( m_components > rhs.m_components );=0A= }=0A= =0A= template =0A= bool Point::operator>=3D(const Point & rhs) const=0A= {=0A= return ( m_components <=3D rhs.m_components );=0A= }=0A= =0A= template =0A= const N & Point::x() const=0A= {=0A= return m_components[0];=0A= }=0A= =0A= template =0A= const N & Point::y() const=0A= {=0A= return m_components[1];=0A= }=0A= =0A= template =0A= const N & Point::z() const=0A= {=0A= return m_components[2];=0A= }=0A= =0A= template =0A= const N & Point::operator[](UInt c) const=0A= {=0A= (static_cast ((c >=3D 0 && c <=3D 2) ? 0 : (__assert_fail ("c = >=3D 0 && c <=3D 2", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h", 165, = __PRETTY_FUNCTION__), 0)));=0A= return m_components[c];=0A= }=0A= =0A= template =0A= N & Point::x() { return m_components[0]; }=0A= =0A= template =0A= N & Point::y() { return m_components[1]; }=0A= =0A= template =0A= N & Point::z() { return m_components[2]; }=0A= =0A= =0A= template =0A= N & Point::operator[](UInt c)=0A= {=0A= (static_cast ((c >=3D 0 && c <=3D 2) ? 0 : (__assert_fail ("c = >=3D 0 && c <=3D 2", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Point.h", 182, = __PRETTY_FUNCTION__), 0)));=0A= return m_components[c];=0A= }=0A= # 5 "main.cxx" 2=0A= # 1 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h" 1=0A= =0A= =0A= =0A= # 1 "/usr/include/assert.h" 1 3=0A= # 65 "/usr/include/assert.h" 3=0A= extern "C" {=0A= =0A= =0A= extern void __assert_fail (__const char *__assertion, __const char = *__file,=0A= unsigned int __line, __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= extern void __assert_perror_fail (int __errnum, __const char *__file,=0A= unsigned int __line,=0A= __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= extern void __assert (const char *__assertion, const char *__file, int = __line)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= }=0A= # 5 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h" 2=0A= # 16 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h"=0A= template =0A= class Edge=0A= {=0A= public:=0A= =0A= Edge();=0A= Edge(const Point & source, const Point & target);=0A= Edge(const Edge & other);=0A= =0A= template =0A= Edge(const CGAL::Segment_3 & segment);=0A= =0A= template =0A= operator CGAL::Segment_3();=0A= =0A= ~Edge();=0A= =0A= Edge & operator=3D(const Edge & rhs);=0A= =0A= bool operator=3D=3D(const Edge & rhs) const;=0A= bool operator!=3D(const Edge & rhs) const;=0A= bool operator< (const Edge & rhs) const;=0A= bool operator<=3D(const Edge & rhs) const;=0A= bool operator> (const Edge & rhs) const;=0A= bool operator>=3D(const Edge & rhs) const;=0A= =0A= const Point & source() const;=0A= const Point & target() const;=0A= const Point & operator[](UInt c) const;=0A= =0A= Point & source();=0A= Point & target();=0A= Point & operator[](UInt c);=0A= =0A= =0A= private:=0A= boost::array, 2> m_points;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Edge::Edge()=0A= {=0A= }=0A= =0A= template =0A= Edge::Edge(const Point & source, const Point & target)=0A= {=0A= m_points[0] =3D source;=0A= m_points[1] =3D target;=0A= }=0A= =0A= template =0A= Edge::Edge(const Edge & other) :=0A= m_points(other.m_points)=0A= {=0A= }=0A= =0A= template =0A= template =0A= Edge::Edge(const CGAL::Segment_3 & segment)=0A= {=0A= m_points[0] =3D segment.source();=0A= m_points[1] =3D segment.target();=0A= }=0A= =0A= template =0A= template =0A= Edge::operator CGAL::Segment_3()=0A= {=0A= return CGAL::Segment_3( m_points[0], m_points[1] );=0A= }=0A= =0A= template =0A= Edge::~Edge()=0A= {=0A= }=0A= =0A= template =0A= Edge & Edge::operator=3D(const Edge & rhs)=0A= {=0A= if(this !=3D &rhs)=0A= {=0A= m_points =3D rhs.m_points;=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= bool Edge::operator=3D=3D(const Edge & rhs) const=0A= {=0A= return ( m_points =3D=3D rhs.m_points ) ;=0A= }=0A= =0A= template =0A= bool Edge::operator!=3D(const Edge & rhs) const=0A= {=0A= return ( m_points !=3D rhs.m_points ) ;=0A= }=0A= =0A= template =0A= bool Edge::operator<(const Edge & rhs) const=0A= {=0A= return ( m_points < rhs.m_points ) ;=0A= }=0A= =0A= template =0A= bool Edge::operator<=3D(const Edge & rhs) const=0A= {=0A= return ( m_points <=3D rhs.m_points );=0A= }=0A= =0A= template =0A= bool Edge::operator>(const Edge & rhs) const=0A= {=0A= return ( m_points > rhs.m_points );=0A= }=0A= =0A= template =0A= bool Edge::operator>=3D(const Edge & rhs) const=0A= {=0A= return ( m_points <=3D rhs.m_points );=0A= }=0A= =0A= template =0A= const Point & Edge::source() const=0A= {=0A= return m_points[0];=0A= }=0A= =0A= template =0A= const Point & Edge::target() const=0A= {=0A= return m_points[1];=0A= }=0A= =0A= template =0A= const Point & Edge::operator[](UInt c) const=0A= {=0A= (static_cast ((c =3D=3D 0 || c =3D=3D 1) ? 0 : (__assert_fail = ("c =3D=3D 0 || c =3D=3D 1", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h", 158, = __PRETTY_FUNCTION__), 0)));=0A= return m_points[c];=0A= }=0A= =0A= template =0A= Point & Edge::source()=0A= {=0A= return m_points[0];=0A= }=0A= =0A= template =0A= Point & Edge::target()=0A= {=0A= return m_points[1];=0A= }=0A= =0A= template =0A= Point & Edge::operator[](UInt c)=0A= {=0A= (static_cast ((c =3D=3D 0 || c =3D=3D 1) ? 0 : (__assert_fail = ("c =3D=3D 0 || c =3D=3D 1", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Edge.h", 177, = __PRETTY_FUNCTION__), 0)));=0A= return m_points[c];=0A= }=0A= # 6 "main.cxx" 2=0A= # 1 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h" 1=0A= =0A= =0A= =0A= # 1 "/usr/include/assert.h" 1 3=0A= # 65 "/usr/include/assert.h" 3=0A= extern "C" {=0A= =0A= =0A= extern void __assert_fail (__const char *__assertion, __const char = *__file,=0A= unsigned int __line, __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= extern void __assert_perror_fail (int __errnum, __const char *__file,=0A= unsigned int __line,=0A= __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= extern void __assert (const char *__assertion, const char *__file, int = __line)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= }=0A= # 5 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h" 2=0A= # 13 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty.hpp" 1=0A= # 18 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty.hpp"=0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/check= ed_delete.hpp" 1=0A= # 19 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/check= ed_delete.hpp"=0A= namespace boost=0A= {=0A= =0A= =0A= =0A= template< typename T > inline void checked_delete(T * x)=0A= {=0A= typedef char type_must_be_complete[sizeof(T)];=0A= delete x;=0A= }=0A= =0A= template< typename T > inline void checked_array_delete(T * x)=0A= {=0A= typedef char type_must_be_complete[sizeof(T)];=0A= delete [] x;=0A= }=0A= =0A= template struct checked_deleter=0A= {=0A= typedef void result_type;=0A= typedef T * argument_type;=0A= =0A= void operator()(T * x)=0A= {=0A= checked_delete(x);=0A= }=0A= };=0A= =0A= template struct checked_array_deleter=0A= {=0A= typedef void result_type;=0A= typedef T * argument_type;=0A= =0A= void operator()(T * x)=0A= {=0A= checked_array_delete(x);=0A= }=0A= };=0A= =0A= }=0A= # 19 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty.hpp" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty/base_from_member.hpp" 1=0A= # 14 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty/base_from_member.hpp"=0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty_fwd.hpp" 1=0A= # 15 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty_fwd.hpp"=0A= namespace boost=0A= {=0A= =0A= =0A= =0A= =0A= template < typename MemberType, int UniqueID =3D 0 >=0A= class base_from_member;=0A= =0A= =0A= =0A= =0A= class noncopyable;=0A= =0A= =0A= =0A= }=0A= # 15 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty/base_from_member.hpp" 2=0A= =0A= =0A= namespace boost=0A= {=0A= # 29 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty/base_from_member.hpp"=0A= template < typename MemberType, int UniqueID >=0A= class base_from_member=0A= {=0A= protected:=0A= MemberType member;=0A= =0A= explicit base_from_member()=0A= : member()=0A= {}=0A= =0A= template< typename T1 >=0A= explicit base_from_member( T1 x1 )=0A= : member( x1 )=0A= {}=0A= =0A= template< typename T1, typename T2 >=0A= base_from_member( T1 x1, T2 x2 )=0A= : member( x1, x2 )=0A= {}=0A= =0A= template< typename T1, typename T2, typename T3 >=0A= base_from_member( T1 x1, T2 x2, T3 x3 )=0A= : member( x1, x2, x3 )=0A= {}=0A= =0A= };=0A= =0A= }=0A= # 20 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty.hpp" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty/addressof.hpp" 1=0A= # 19 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty/addressof.hpp"=0A= namespace boost {=0A= =0A= =0A= =0A= template T* addressof(T& v)=0A= {=0A= return reinterpret_cast(=0A= &const_cast(reinterpret_cast(v)));=0A= }=0A= =0A= }=0A= # 21 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty.hpp" 2=0A= =0A= namespace boost=0A= {=0A= # 35 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty.hpp"=0A= template =0A= inline T next(T x) { return ++x; }=0A= =0A= template =0A= inline T prior(T x) { return --x; }=0A= # 49 = "/homes/rob/utils_install/LINUX/boost-1_28_0-LINUX.DEBUG.GCC3/boost/utili= ty.hpp"=0A= class noncopyable=0A= {=0A= protected:=0A= noncopyable(){}=0A= ~noncopyable(){}=0A= private:=0A= noncopyable( const noncopyable& );=0A= const noncopyable& operator=3D( const noncopyable& );=0A= };=0A= =0A= =0A= }=0A= # 14 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h" 2=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= class Face=0A= {=0A= public:=0A= =0A= class VertexCirculator;=0A= friend class VertexCirculator;=0A= =0A= class EdgeReference;=0A= friend class EdgeReference;=0A= =0A= class EdgeCirculator;=0A= friend class EdgeCirculator;=0A= =0A= Face();=0A= =0A= Face(size_t n_vertices);=0A= =0A= template =0A= Face(ForwardIterator first, ForwardIterator last);=0A= =0A= template =0A= Face(ForwardCirculator first);=0A= =0A= Face(const Face & other);=0A= =0A= =0A= =0A= ~Face();=0A= =0A= Face & operator=3D(const Face & rhs);=0A= =0A= bool operator=3D=3D(const Face & rhs) const;=0A= bool operator!=3D(const Face & rhs) const;=0A= bool operator< (const Face & rhs) const;=0A= =0A= =0A= VertexCirculator vertex_begin();=0A= =0A= const Point & operator[](UInt c) const;=0A= Point & operator[](UInt c);=0A= =0A= =0A= EdgeCirculator edge_begin();=0A= =0A= size_t size() const;=0A= =0A= private:=0A= =0A= std::vector > m_points;=0A= =0A= };=0A= =0A= template =0A= class Face::VertexCirculator=0A= {=0A= public:=0A= VertexCirculator();=0A= VertexCirculator(typename std::vector >::const_iterator p, = Face * outer_this);=0A= VertexCirculator(const VertexCirculator & other);=0A= =0A= ~VertexCirculator();=0A= =0A= VertexCirculator & operator=3D(const VertexCirculator & rhs);=0A= =0A= Point & operator*();=0A= =0A= VertexCirculator & operator++();=0A= =0A= bool operator=3D=3D(Int null) const;=0A= bool operator=3D=3D(const VertexCirculator & rhs) const;=0A= bool operator!=3D(Int null) const;=0A= bool operator!=3D(const VertexCirculator & rhs) const;=0A= =0A= =0A= =0A= private:=0A= Face * const m_outer_this;=0A= typename std::vector >::iterator m_p;=0A= };=0A= =0A= =0A= =0A= template =0A= class Face::EdgeReference=0A= {=0A= public:=0A= friend class Face;=0A= =0A= EdgeReference(VertexCirculator p, Face * outer_this);=0A= EdgeReference(const EdgeReference & other);=0A= =0A= ~EdgeReference();=0A= =0A= operator Edge() const;=0A= EdgeReference & operator=3D(const Edge & rhs);=0A= =0A= bool operator=3D=3D(const Edge & rhs) const;=0A= bool operator!=3D(const Edge & rhs) const;=0A= bool operator< (const Edge & rhs) const;=0A= =0A= const Point & source() const;=0A= const Point & target() const;=0A= const Point & operator[](UInt c) const;=0A= =0A= Point & source();=0A= Point & target();=0A= Point & operator[](UInt c);=0A= private:=0A= EdgeReference & operator=3D(const EdgeReference & rhs);=0A= =0A= VertexCirculator m_p;=0A= =0A= Face * const m_outer_this;=0A= };=0A= =0A= =0A= =0A= template =0A= class Face::EdgeCirculator=0A= {=0A= public:=0A= friend class Face;=0A= =0A= EdgeCirculator();=0A= EdgeCirculator(VertexCirculator p, Face * outer_this);=0A= EdgeCirculator(const EdgeCirculator & other);=0A= =0A= ~EdgeCirculator();=0A= =0A= EdgeCirculator & operator=3D(const EdgeCirculator & rhs);=0A= =0A= EdgeReference operator*();=0A= Edge operator*() const;=0A= =0A= EdgeCirculator & operator++();=0A= =0A= bool operator=3D=3D(Int null) const;=0A= bool operator=3D=3D(const EdgeCirculator & rhs) const;=0A= bool operator!=3D(Int null) const;=0A= bool operator!=3D(const EdgeCirculator & rhs) const;=0A= =0A= =0A= =0A= private:=0A= VertexCirculator m_p;=0A= =0A= Face * const m_outer_this;=0A= };=0A= =0A= template =0A= Face::Face()=0A= {=0A= }=0A= =0A= template =0A= Face::Face(size_t n_vertices) :=0A= m_points(n_vertices)=0A= {=0A= }=0A= =0A= template =0A= template =0A= Face::Face(ForwardIterator first, ForwardIterator last)=0A= {=0A= std::copy(first, last, std::back_inserter(m_points) );=0A= }=0A= =0A= template =0A= Face::Face(const Face & other) :=0A= m_points(other.m_points)=0A= {=0A= }=0A= =0A= template =0A= Face::~Face()=0A= {=0A= }=0A= =0A= template =0A= Face & Face::operator=3D(const Face & rhs)=0A= {=0A= if(this !=3D &rhs)=0A= {=0A= m_points =3D rhs.m_points;=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= bool Face::operator=3D=3D(const Face & rhs) const=0A= {=0A= if(this =3D=3D &rhs)=0A= {=0A= return true;=0A= }=0A= return (m_points =3D=3D rhs.m_points);=0A= }=0A= =0A= template =0A= bool Face::operator!=3D(const Face & rhs) const=0A= {=0A= if(this =3D=3D &rhs)=0A= {=0A= return false;=0A= }=0A= return (m_points !=3D rhs.m_points);=0A= }=0A= =0A= template =0A= bool Face::operator< (const Face & rhs) const=0A= {=0A= return (m_points < rhs.m_points);=0A= }=0A= =0A= template =0A= typename Face::VertexCirculator Face::vertex_begin()=0A= {=0A= return VertexCirculator( m_points.begin(), this );=0A= }=0A= =0A= template =0A= const Point & Face::operator[](UInt c) const=0A= {=0A= return m_points[c];=0A= }=0A= =0A= template =0A= Point & Face::operator[](UInt c)=0A= {=0A= return m_points[c];=0A= }=0A= =0A= template =0A= typename Face::EdgeCirculator Face::edge_begin()=0A= {=0A= return EdgeCirculator( m_points.begin(), this );=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Face::VertexCirculator::VertexCirculator() :=0A= m_outer_this(0)=0A= {=0A= }=0A= =0A= template =0A= Face::VertexCirculator::VertexCirculator(typename = std::vector >::const_iterator p, Face * outer_this) :=0A= m_outer_this(outer_this),=0A= m_p(p)=0A= {=0A= }=0A= =0A= template =0A= Face::VertexCirculator::VertexCirculator(const VertexCirculator & = rhs) :=0A= m_outer_this(other.m_outer_this),=0A= m_p(other.m_p)=0A= {=0A= }=0A= =0A= template =0A= Face::VertexCirculator::~VertexCirculator()=0A= {=0A= }=0A= =0A= template =0A= typename Face::VertexCirculator & = Face::VertexCirculator::operator=3D(const VertexCirculator & rhs)=0A= {=0A= if(this !=3D &rhs)=0A= {=0A= m_outer_this =3D rhs.m_outer_this;=0A= m_p =3D rhs.m_p;=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= Point & Face::VertexCirculator::operator*()=0A= {=0A= return *m_p;=0A= }=0A= =0A= template =0A= typename Face::VertexCirculator & = Face::VertexCirculator::operator++()=0A= {=0A= ++m_p;=0A= if( m_outer_this->m_points.end() =3D=3D m_p )=0A= {=0A= m_p =3D m_outer_this->m_points.begin();=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= bool Face::VertexCirculator::operator=3D=3D(Int null) const=0A= {=0A= (static_cast ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D = null", "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", = 320, __PRETTY_FUNCTION__), 0)));=0A= =0A= return m_outer_this->m_points.empty();=0A= }=0A= =0A= template =0A= bool Face::VertexCirculator::operator=3D=3D(const VertexCirculator & = rhs) const=0A= {=0A= =0A= return ( (m_outer_this =3D=3D rhs.m_outer_this) && (m_p =3D=3D = rhs.m_p) );=0A= }=0A= =0A= template =0A= bool Face::VertexCirculator::operator!=3D(Int null) const=0A= {=0A= (static_cast ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D = null", "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", = 335, __PRETTY_FUNCTION__), 0)));=0A= =0A= return !(m_outer_this->m_points.empty);=0A= }=0A= =0A= template =0A= bool Face::VertexCirculator::operator!=3D(const VertexCirculator & = rhs) const=0A= {=0A= =0A= return ( (m_outer_this !=3D rhs.m_outer_this) || (m_p !=3D rhs.m_p) = );=0A= }=0A= =0A= =0A= =0A= template =0A= Face::EdgeReference::EdgeReference(VertexCirculator p, Face * = outer_this) :=0A= m_p(p),=0A= m_outer_this(outer_this)=0A= {=0A= }=0A= =0A= template =0A= Face::EdgeReference::EdgeReference(const EdgeReference & other) :=0A= m_p(other.m_p),=0A= m_outer_this(m_outer_this)=0A= {=0A= }=0A= =0A= template =0A= Face::EdgeReference::~EdgeReference()=0A= {=0A= }=0A= =0A= template =0A= Face::EdgeReference::operator Edge() const=0A= {=0A= return Edge(*m_p, *boost::next(m_p) );=0A= }=0A= =0A= template =0A= typename Face::EdgeReference & = Face::EdgeReference::operator=3D(const Edge & rhs)=0A= {=0A= *m_p =3D rhs.source;=0A= *boost::next(m_p) =3D rhs.target;=0A= =0A= return *this;=0A= }=0A= =0A= template =0A= bool Face::EdgeReference::operator=3D=3D(const Edge & rhs) const=0A= {=0A= return ( ( *m_p =3D=3D rhs.source() )=0A= && ( *boost::next(m_p) =3D=3D rhs.target() ) );=0A= }=0A= =0A= template =0A= bool Face::EdgeReference::operator!=3D(const Edge & rhs) const=0A= {=0A= return ( ( *m_p !=3D rhs.source() )=0A= || ( *boost::next(m_p) !=3D rhs.target() ) );=0A= }=0A= =0A= template =0A= bool Face::EdgeReference::operator< (const Edge & rhs) const=0A= {=0A= if( (*m_p) < rhs.source )=0A= {=0A= return true;=0A= }=0A= else if( (*m_p) =3D=3D rhs.source )=0A= {=0A= if( ( *boost::next(m_p) ) < rhs.target )=0A= {=0A= return true;=0A= }=0A= }=0A= return false;=0A= }=0A= =0A= template =0A= const Point & Face::EdgeReference::source() const=0A= {=0A= return *m_p;=0A= }=0A= =0A= template =0A= const Point & Face::EdgeReference::target() const=0A= {=0A= return *boost::next(m_p);=0A= }=0A= =0A= template =0A= const Point & Face::EdgeReference::operator[](UInt c) const=0A= {=0A= (static_cast ((c =3D=3D 0 || c =3D=3D 1) ? 0 : (__assert_fail = ("c =3D=3D 0 || c =3D=3D 1", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", 429, = __PRETTY_FUNCTION__), 0)));=0A= =0A= if(0 =3D=3D c)=0A= {=0A= return *m_p;=0A= }=0A= else=0A= {=0A= return *boost::next(m_p);=0A= }=0A= }=0A= =0A= template =0A= Point & Face::EdgeReference::source()=0A= {=0A= return *m_p;=0A= }=0A= =0A= template =0A= Point & Face::EdgeReference::target()=0A= {=0A= return *boost::next(m_p);=0A= }=0A= =0A= template =0A= Point & Face::EdgeReference::operator[](UInt c)=0A= {=0A= (static_cast ((c =3D=3D 0 || c =3D=3D 1) ? 0 : (__assert_fail = ("c =3D=3D 0 || c =3D=3D 1", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", 456, = __PRETTY_FUNCTION__), 0)));=0A= =0A= if(0 =3D=3D c)=0A= {=0A= return *m_p;=0A= }=0A= else=0A= {=0A= return *boost::next(m_p);=0A= }=0A= }=0A= =0A= =0A= =0A= template =0A= Face::EdgeCirculator::EdgeCirculator() :=0A= m_outer_this(0)=0A= {=0A= }=0A= =0A= template =0A= Face::EdgeCirculator::EdgeCirculator(VertexCirculator p, Face * = outer_this) :=0A= m_p(p),=0A= m_outer_this(outer_this)=0A= {=0A= }=0A= =0A= template =0A= Face::EdgeCirculator::EdgeCirculator(const EdgeCirculator & other) :=0A= m_p(other.m_p),=0A= m_outer_this(other.m_outer_this)=0A= {=0A= }=0A= =0A= template =0A= Face::EdgeCirculator::~EdgeCirculator()=0A= {=0A= }=0A= =0A= template =0A= typename Face::EdgeCirculator & = Face::EdgeCirculator::operator=3D(const EdgeCirculator & rhs)=0A= {=0A= if(this !=3D &rhs)=0A= {=0A= m_p(rhs.m_p);=0A= m_outer_this(rhs.m_outer_this);=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= typename Face::EdgeReference Face::EdgeCirculator::operator*()=0A= {=0A= return EdgeReference(m_p, m_outer_this);=0A= }=0A= =0A= template =0A= Edge Face::EdgeCirculator::operator*() const=0A= {=0A= return Edge( *m_p, *boost::next(m_p) );=0A= }=0A= =0A= template =0A= typename Face::EdgeCirculator & Face::EdgeCirculator::operator++()=0A= {=0A= ++m_p;=0A= }=0A= =0A= template =0A= bool Face::EdgeCirculator::operator=3D=3D(Int null) const=0A= {=0A= (static_cast ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D = null", "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", = 527, __PRETTY_FUNCTION__), 0)));=0A= =0A= return m_outer_this->m_points.empty();=0A= }=0A= =0A= template =0A= bool Face::EdgeCirculator::operator=3D=3D(const EdgeCirculator & rhs) = const=0A= {=0A= if(this =3D=3D &rhs)=0A= {=0A= return true;=0A= }=0A= =0A= return ( (m_p =3D=3D rhs.m_p) && (m_outer_this =3D=3D = rhs.m_outer_this) );=0A= }=0A= =0A= template =0A= bool Face::EdgeCirculator::operator!=3D(const EdgeCirculator & rhs) = const=0A= {=0A= if(this =3D=3D &rhs)=0A= {=0A= return false;=0A= }=0A= return ( (m_p !=3D rhs.m_p) || (m_outer_this !=3D rhs.m_outer_this) = );=0A= }=0A= =0A= template =0A= bool Face::EdgeCirculator::operator!=3D(Int null) const=0A= {=0A= (static_cast ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D = null", "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Face.h", = 556, __PRETTY_FUNCTION__), 0)));=0A= =0A= return !( m_outer_this->m_points.empty() );=0A= }=0A= # 7 "main.cxx" 2=0A= =0A= # 1 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h" 1=0A= =0A= =0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= .h" 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= .h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= defs.h" 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= defs.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h" 1=0A= # 441 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= typedef unsigned char uchar;=0A= typedef unsigned short ushort;=0A= typedef unsigned uint;=0A= typedef unsigned long ulong;=0A= typedef char *pchar;=0A= typedef uchar *puchar;=0A= typedef const char *pcchar;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= const bool FALSE =3D 0;=0A= const bool TRUE =3D !0;=0A= # 481 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= inline int qRound( double d )=0A= {=0A= return int( d >=3D 0.0 ? d + 0.5 : d - 0.5 );=0A= }=0A= # 493 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= typedef signed char INT8;=0A= typedef unsigned char UINT8;=0A= typedef short INT16;=0A= typedef unsigned short UINT16;=0A= typedef int INT32;=0A= typedef unsigned int UINT32;=0A= =0A= =0A= typedef signed char Q_INT8;=0A= typedef unsigned char Q_UINT8;=0A= typedef short Q_INT16;=0A= typedef unsigned short Q_UINT16;=0A= typedef int Q_INT32;=0A= typedef unsigned int Q_UINT32;=0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef long Q_LONG;=0A= typedef unsigned long Q_ULONG;=0A= # 528 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= class QDataStream;=0A= # 559 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qconfig= .h" 1=0A= # 560 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h" 2=0A= =0A= =0A= =0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmodule= s.h" 1=0A= # 565 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h" 2=0A= # 613 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qfeatur= es.h" 1=0A= # 614 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h" 2=0A= # 651 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= const char *qVersion();=0A= bool qSysInfo( int *wordSize, bool *bigEndian );=0A= # 723 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= void qDebug( const char *, ... )=0A= =0A= __attribute__ ((format (printf, 1, 2)))=0A= =0A= ;=0A= =0A= void qWarning( const char *, ... )=0A= =0A= __attribute__ ((format (printf, 1, 2)))=0A= =0A= ;=0A= =0A= void qFatal( const char *, ... )=0A= =0A= __attribute__ ((format (printf, 1, 2)))=0A= =0A= ;=0A= =0A= void qSystemWarning( const char *, int code =3D -1 );=0A= =0A= =0A= =0A= =0A= void debug( const char *, ... )=0A= =0A= __attribute__ ((format (printf, 1, 2)))=0A= =0A= ;=0A= =0A= void warning( const char *, ... )=0A= =0A= __attribute__ ((format (printf, 1, 2)))=0A= =0A= ;=0A= =0A= void fatal( const char *, ... )=0A= =0A= __attribute__ ((format (printf, 1, 2)))=0A= =0A= ;=0A= # 789 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= bool qt_check_pointer( bool c, const char *, int );=0A= # 805 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qglobal= .h"=0A= enum QtMsgType { QtDebugMsg, QtWarningMsg, QtFatalMsg };=0A= =0A= typedef void (*QtMsgHandler)(QtMsgType, const char *);=0A= QtMsgHandler qInstallMsgHandler( QtMsgHandler );=0A= =0A= =0A= =0A= typedef QtMsgHandler msg_handler;=0A= =0A= =0A= void qSuppressObsoleteWarnings( bool =3D TRUE );=0A= =0A= void qObsolete( const char *obj, const char *oldfunc,=0A= const char *newfunc );=0A= void qObsolete( const char *obj, const char *oldfunc );=0A= void qObsolete( const char *message );=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= defs.h" 2=0A= # 71 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= defs.h"=0A= struct QUObject;=0A= # 151 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= defs.h"=0A= class QObject;=0A= class QMetaObject;=0A= class QSignal;=0A= class QConnection;=0A= class QEvent;=0A= struct QMetaData;=0A= class QConnectionList;=0A= class QConnectionListIt;=0A= class QSignalVec;=0A= class QObjectList;=0A= class QObjectListIt;=0A= class QMemberDict;=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= .h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow= defs.h" 1=0A= # 44 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow= defs.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring= .h" 1=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring= .h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin= g.h" 1=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin= g.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmemarr= ay.h" 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmemarr= ay.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qgarray= .h" 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qgarray= .h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qshared= .h" 1=0A= # 46 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qshared= .h"=0A= struct QShared=0A= {=0A= QShared() { count =3D 1; }=0A= void ref() { count++; }=0A= bool deref() { return !--count; }=0A= uint count;=0A= };=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qgarray= .h" 2=0A= =0A= =0A= =0A= class QGArray=0A= {=0A= friend class QBuffer;=0A= public:=0A= =0A= struct array_data : public QShared {=0A= array_data() { data=3D0; len=3D0; }=0A= char *data;=0A= uint len;=0A= };=0A= QGArray();=0A= protected:=0A= QGArray( int, int );=0A= QGArray( int size );=0A= QGArray( const QGArray &a );=0A= virtual ~QGArray();=0A= =0A= QGArray &operator=3D( const QGArray &a ) { return assign( a ); }=0A= =0A= virtual void detach() { duplicate(*this); }=0A= =0A= char *data() const { return shd->data; }=0A= uint nrefs() const { return shd->count; }=0A= uint size() const { return shd->len; }=0A= bool isEqual( const QGArray &a ) const;=0A= =0A= bool resize( uint newsize );=0A= =0A= bool fill( const char *d, int len, uint sz );=0A= =0A= QGArray &assign( const QGArray &a );=0A= QGArray &assign( const char *d, uint len );=0A= QGArray &duplicate( const QGArray &a );=0A= QGArray &duplicate( const char *d, uint len );=0A= void store( const char *d, uint len );=0A= =0A= array_data *sharedBlock() const { return shd; }=0A= void setSharedBlock( array_data *p ) { shd=3D(array_data*)p; }=0A= =0A= QGArray &setRawData( const char *d, uint len );=0A= void resetRawData( const char *d, uint len );=0A= =0A= int find( const char *d, uint index, uint sz ) const;=0A= int contains( const char *d, uint sz ) const;=0A= =0A= void sort( uint sz );=0A= int bsearch( const char *d, uint sz ) const;=0A= =0A= char *at( uint index ) const;=0A= =0A= bool setExpand( uint index, const char *d, uint sz );=0A= =0A= protected:=0A= virtual array_data *newData();=0A= virtual void deleteData( array_data *p );=0A= =0A= private:=0A= static void msg_index( uint );=0A= array_data *shd;=0A= };=0A= =0A= =0A= inline char *QGArray::at( uint index ) const=0A= {=0A= =0A= if ( index >=3D size() ) {=0A= msg_index( index );=0A= index =3D 0;=0A= }=0A= =0A= return &shd->data[index];=0A= }=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmemarr= ay.h" 2=0A= =0A= =0A= =0A= template class QMemArray : public QGArray=0A= {=0A= public:=0A= typedef type* Iterator;=0A= typedef const type* ConstIterator;=0A= typedef type ValueType;=0A= =0A= protected:=0A= QMemArray( int, int ) : QGArray( 0, 0 ) {}=0A= =0A= public:=0A= QMemArray() {}=0A= QMemArray( int size ) : QGArray(size*sizeof(type)) {}=0A= QMemArray( const QMemArray &a ) : QGArray(a) {}=0A= ~QMemArray() {}=0A= QMemArray &operator=3D(const QMemArray &a)=0A= { return = (QMemArray&)QGArray::assign(a); }=0A= type *data() const { return (type *)QGArray::data(); }=0A= uint nrefs() const { return QGArray::nrefs(); }=0A= uint size() const { return QGArray::size()/sizeof(type); }=0A= uint count() const { return size(); }=0A= bool isEmpty() const { return QGArray::size() =3D=3D 0; }=0A= bool isNull() const { return QGArray::data() =3D=3D 0; }=0A= bool resize( uint size ) { return = QGArray::resize(size*sizeof(type)); }=0A= bool truncate( uint pos ) { return = QGArray::resize(pos*sizeof(type)); }=0A= bool fill( const type &d, int size =3D -1 )=0A= { return QGArray::fill((char*)&d,size,sizeof(type) ); }=0A= void detach() { QGArray::detach(); }=0A= QMemArray copy() const=0A= { QMemArray tmp; return tmp.duplicate(*this); }=0A= QMemArray& assign( const QMemArray& a )=0A= { return (QMemArray&)QGArray::assign(a); }=0A= QMemArray& assign( const type *a, uint n )=0A= { return = (QMemArray&)QGArray::assign((char*)a,n*sizeof(type)); }=0A= QMemArray& duplicate( const QMemArray& a )=0A= { return (QMemArray&)QGArray::duplicate(a); }=0A= QMemArray& duplicate( const type *a, uint n )=0A= { return = (QMemArray&)QGArray::duplicate((char*)a,n*sizeof(type)); }=0A= QMemArray& setRawData( const type *a, uint n )=0A= { return (QMemArray&)QGArray::setRawData((char*)a,=0A= n*sizeof(type)); }=0A= void resetRawData( const type *a, uint n )=0A= { QGArray::resetRawData((char*)a,n*sizeof(type)); }=0A= int find( const type &d, uint i=3D0 ) const=0A= { return QGArray::find((char*)&d,i,sizeof(type)); }=0A= int contains( const type &d ) const=0A= { return QGArray::contains((char*)&d,sizeof(type)); }=0A= void sort() { QGArray::sort(sizeof(type)); }=0A= int bsearch( const type &d ) const=0A= { return QGArray::bsearch((const char*)&d,sizeof(type)); }=0A= type& operator[]( int i ) const=0A= { return (type &)(*(type *)QGArray::at(i*sizeof(type))); }=0A= type& at( uint i ) const=0A= { return (type &)(*(type *)QGArray::at(i*sizeof(type))); }=0A= operator const type*() const { return (const type = *)QGArray::data(); }=0A= bool operator=3D=3D( const QMemArray &a ) const { return = isEqual(a); }=0A= bool operator!=3D( const QMemArray &a ) const { return = !isEqual(a); }=0A= Iterator begin() { return data(); }=0A= Iterator end() { return data() + size(); }=0A= ConstIterator begin() const { return data(); }=0A= ConstIterator end() const { return data() + size(); }=0A= };=0A= # 44 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin= g.h" 2=0A= # 53 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin= g.h"=0A= void *qmemmove( void *dst, const void *src, uint len );=0A= =0A= char *qstrdup( const char * );=0A= =0A= inline uint qstrlen( const char *str )=0A= { return str ? (uint)strlen(str) : 0; }=0A= =0A= inline char *qstrcpy( char *dst, const char *src )=0A= { return src ? strcpy(dst, src) : 0; }=0A= =0A= char *qstrncpy( char *dst, const char *src, uint len );=0A= =0A= inline int qstrcmp( const char *str1, const char *str2 )=0A= {=0A= return ( str1 && str2 ) ? strcmp( str1, str2 )=0A= : ( str1 ? 1 : ( str2 ? -1 : 0 ) );=0A= }=0A= =0A= inline int qstrncmp( const char *str1, const char *str2, uint len )=0A= {=0A= return ( str1 && str2 ) ? strncmp( str1, str2, len )=0A= : ( str1 ? 1 : ( str2 ? -1 : 0 ) );=0A= }=0A= =0A= int qstricmp( const char *, const char * );=0A= =0A= int qstrnicmp( const char *, const char *, uint len );=0A= =0A= =0A= inline uint cstrlen( const char *str )=0A= { return (uint)strlen(str); }=0A= =0A= inline char *cstrcpy( char *dst, const char *src )=0A= { return strcpy(dst,src); }=0A= =0A= inline int cstrcmp( const char *str1, const char *str2 )=0A= { return strcmp(str1,str2); }=0A= =0A= inline int cstrncmp( const char *str1, const char *str2, uint len )=0A= { return strncmp(str1,str2,len); }=0A= =0A= =0A= =0A= =0A= =0A= Q_UINT16 qChecksum( const char *s, uint len );=0A= # 120 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin= g.h"=0A= typedef QMemArray QByteArray;=0A= =0A= =0A= =0A= =0A= =0A= =0A= QDataStream &operator<<( QDataStream &, const QByteArray & );=0A= QDataStream &operator>>( QDataStream &, QByteArray & );=0A= # 137 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qcstrin= g.h"=0A= class QRegExp;=0A= =0A= class QCString : public QByteArray=0A= {=0A= public:=0A= QCString() {}=0A= QCString( int size );=0A= QCString( const QCString &s ) : QByteArray( s ) {}=0A= QCString( const char *str );=0A= QCString( const char *str, uint maxlen );=0A= ~QCString();=0A= =0A= QCString &operator=3D( const QCString &s );=0A= QCString &operator=3D( const char *str );=0A= =0A= bool isNull() const;=0A= bool isEmpty() const;=0A= uint length() const;=0A= bool resize( uint newlen );=0A= bool truncate( uint pos );=0A= bool fill( char c, int len =3D -1 );=0A= =0A= QCString copy() const;=0A= =0A= QCString &sprintf( const char *format, ... );=0A= =0A= int find( char c, int index=3D0, bool cs=3DTRUE ) const;=0A= int find( const char *str, int index=3D0, bool cs=3DTRUE ) const;=0A= =0A= int find( const QRegExp &, int index=3D0 ) const;=0A= =0A= int findRev( char c, int index=3D-1, bool cs=3DTRUE) const;=0A= int findRev( const char *str, int index=3D-1, bool cs=3DTRUE) const;=0A= =0A= int findRev( const QRegExp &, int index=3D-1 ) const;=0A= =0A= int contains( char c, bool cs=3DTRUE ) const;=0A= int contains( const char *str, bool cs=3DTRUE ) const;=0A= =0A= int contains( const QRegExp & ) const;=0A= =0A= QCString left( uint len ) const;=0A= QCString right( uint len ) const;=0A= QCString mid( uint index, uint len=3D0xffffffff) const;=0A= =0A= QCString leftJustify( uint width, char fill=3D' ', bool = trunc=3DFALSE)const;=0A= QCString rightJustify( uint width, char fill=3D' ',bool = trunc=3DFALSE)const;=0A= =0A= QCString lower() const;=0A= QCString upper() const;=0A= =0A= QCString stripWhiteSpace() const;=0A= QCString simplifyWhiteSpace() const;=0A= =0A= QCString &insert( uint index, const char * );=0A= QCString &insert( uint index, char );=0A= QCString &append( const char * );=0A= QCString &prepend( const char * );=0A= QCString &remove( uint index, uint len );=0A= QCString &replace( uint index, uint len, const char * );=0A= =0A= QCString &replace( const QRegExp &, const char * );=0A= =0A= short toShort( bool *ok=3D0 ) const;=0A= ushort toUShort( bool *ok=3D0 ) const;=0A= int toInt( bool *ok=3D0 ) const;=0A= uint toUInt( bool *ok=3D0 ) const;=0A= long toLong( bool *ok=3D0 ) const;=0A= ulong toULong( bool *ok=3D0 ) const;=0A= float toFloat( bool *ok=3D0 ) const;=0A= double toDouble( bool *ok=3D0 ) const;=0A= =0A= QCString &setStr( const char *s );=0A= QCString &setNum( short );=0A= QCString &setNum( ushort );=0A= QCString &setNum( int );=0A= QCString &setNum( uint );=0A= QCString &setNum( long );=0A= QCString &setNum( ulong );=0A= QCString &setNum( float, char f=3D'g', int prec=3D6 );=0A= QCString &setNum( double, char f=3D'g', int prec=3D6 );=0A= =0A= bool setExpand( uint index, char c );=0A= =0A= operator const char *() const;=0A= QCString &operator+=3D( const char *str );=0A= QCString &operator+=3D( char c );=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= QDataStream &operator<<( QDataStream &, const QCString & );=0A= QDataStream &operator>>( QDataStream &, QCString & );=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline QCString &QCString::operator=3D( const QCString &s )=0A= { return (QCString&)assign( s ); }=0A= =0A= inline QCString &QCString::operator=3D( const char *str )=0A= { return (QCString&)duplicate( str, qstrlen(str)+1 ); }=0A= =0A= inline bool QCString::isNull() const=0A= { return data() =3D=3D 0; }=0A= =0A= inline bool QCString::isEmpty() const=0A= { return data() =3D=3D 0 || *data() =3D=3D '\0'; }=0A= =0A= inline uint QCString::length() const=0A= { return qstrlen( data() ); }=0A= =0A= inline bool QCString::truncate( uint pos )=0A= { return resize(pos+1); }=0A= =0A= inline QCString QCString::copy() const=0A= { return QCString( data() ); }=0A= =0A= inline QCString &QCString::prepend( const char *s )=0A= { return insert(0,s); }=0A= =0A= inline QCString &QCString::append( const char *s )=0A= { return operator+=3D(s); }=0A= =0A= inline QCString &QCString::setNum( short n )=0A= { return setNum((long)n); }=0A= =0A= inline QCString &QCString::setNum( ushort n )=0A= { return setNum((ulong)n); }=0A= =0A= inline QCString &QCString::setNum( int n )=0A= { return setNum((long)n); }=0A= =0A= inline QCString &QCString::setNum( uint n )=0A= { return setNum((ulong)n); }=0A= =0A= inline QCString &QCString::setNum( float n, char f, int prec )=0A= { return setNum((double)n,f,prec); }=0A= =0A= inline QCString::operator const char *() const=0A= { return (const char *)data(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline bool operator=3D=3D( const QCString &s1, const QCString &s2 )=0A= { return qstrcmp(s1.data(),s2.data()) =3D=3D 0; }=0A= =0A= inline bool operator=3D=3D( const QCString &s1, const char *s2 )=0A= { return qstrcmp(s1.data(),s2) =3D=3D 0; }=0A= =0A= inline bool operator=3D=3D( const char *s1, const QCString &s2 )=0A= { return qstrcmp(s1,s2.data()) =3D=3D 0; }=0A= =0A= inline bool operator!=3D( const QCString &s1, const QCString &s2 )=0A= { return qstrcmp(s1.data(),s2.data()) !=3D 0; }=0A= =0A= inline bool operator!=3D( const QCString &s1, const char *s2 )=0A= { return qstrcmp(s1.data(),s2) !=3D 0; }=0A= =0A= inline bool operator!=3D( const char *s1, const QCString &s2 )=0A= { return qstrcmp(s1,s2.data()) !=3D 0; }=0A= =0A= inline bool operator<( const QCString &s1, const QCString& s2 )=0A= { return qstrcmp(s1.data(),s2.data()) < 0; }=0A= =0A= inline bool operator<( const QCString &s1, const char *s2 )=0A= { return qstrcmp(s1.data(),s2) < 0; }=0A= =0A= inline bool operator<( const char *s1, const QCString &s2 )=0A= { return qstrcmp(s1,s2.data()) < 0; }=0A= =0A= inline bool operator<=3D( const QCString &s1, const char *s2 )=0A= { return qstrcmp(s1.data(),s2) <=3D 0; }=0A= =0A= inline bool operator<=3D( const char *s1, const QCString &s2 )=0A= { return qstrcmp(s1,s2.data()) <=3D 0; }=0A= =0A= inline bool operator>( const QCString &s1, const char *s2 )=0A= { return qstrcmp(s1.data(),s2) > 0; }=0A= =0A= inline bool operator>( const char *s1, const QCString &s2 )=0A= { return qstrcmp(s1,s2.data()) > 0; }=0A= =0A= inline bool operator>=3D( const QCString &s1, const char *s2 )=0A= { return qstrcmp(s1.data(),s2) >=3D 0; }=0A= =0A= inline bool operator>=3D( const char *s1, const QCString &s2 )=0A= { return qstrcmp(s1,s2.data()) >=3D 0; }=0A= =0A= inline const QCString operator+( const QCString &s1, const QCString &s2 = )=0A= {=0A= QCString tmp( s1.data() );=0A= tmp +=3D s2;=0A= return tmp;=0A= }=0A= =0A= inline const QCString operator+( const QCString &s1, const char *s2 )=0A= {=0A= QCString tmp( s1.data() );=0A= tmp +=3D s2;=0A= return tmp;=0A= }=0A= =0A= inline const QCString operator+( const char *s1, const QCString &s2 )=0A= {=0A= QCString tmp( s1 );=0A= tmp +=3D s2;=0A= return tmp;=0A= }=0A= =0A= inline const QCString operator+( const QCString &s1, char c2 )=0A= {=0A= QCString tmp( s1.data() );=0A= tmp +=3D c2;=0A= return tmp;=0A= }=0A= =0A= inline const QCString operator+( char c1, const QCString &s2 )=0A= {=0A= QCString tmp;=0A= tmp +=3D c1;=0A= tmp +=3D s2;=0A= return tmp;=0A= }=0A= # 44 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring= .h" 2=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= class QRegExp;=0A= class QString;=0A= class QCharRef;=0A= =0A= class QChar {=0A= public:=0A= QChar();=0A= QChar( char c );=0A= QChar( uchar c );=0A= QChar( uchar c, uchar r );=0A= QChar( const QChar& c );=0A= QChar( ushort rc );=0A= QChar( short rc );=0A= QChar( uint rc );=0A= QChar( int rc );=0A= =0A= static const QChar null;=0A= static const QChar replacement;=0A= static const QChar byteOrderMark;=0A= static const QChar byteOrderSwapped;=0A= static const QChar nbsp;=0A= =0A= =0A= =0A= enum Category=0A= {=0A= NoCategory,=0A= =0A= Mark_NonSpacing,=0A= Mark_SpacingCombining,=0A= Mark_Enclosing,=0A= =0A= Number_DecimalDigit,=0A= Number_Letter,=0A= Number_Other,=0A= =0A= Separator_Space,=0A= Separator_Line,=0A= Separator_Paragraph,=0A= =0A= Other_Control,=0A= Other_Format,=0A= Other_Surrogate,=0A= Other_PrivateUse,=0A= Other_NotAssigned,=0A= =0A= Letter_Uppercase,=0A= Letter_Lowercase,=0A= Letter_Titlecase,=0A= Letter_Modifier,=0A= Letter_Other,=0A= =0A= Punctuation_Connector,=0A= Punctuation_Dash,=0A= Punctuation_Dask =3D Punctuation_Dash,=0A= Punctuation_Open,=0A= Punctuation_Close,=0A= Punctuation_InitialQuote,=0A= Punctuation_FinalQuote,=0A= Punctuation_Other,=0A= =0A= Symbol_Math,=0A= Symbol_Currency,=0A= Symbol_Modifier,=0A= Symbol_Other=0A= };=0A= =0A= enum Direction=0A= {=0A= DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, = DirWS, DirON,=0A= DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN=0A= };=0A= =0A= enum Decomposition=0A= {=0A= Single, Canonical, Font, NoBreak, Initial, Medial,=0A= Final, Isolated, Circle, Super, Sub, Vertical,=0A= Wide, Narrow, Small, Square, Compat, Fraction=0A= };=0A= =0A= enum Joining=0A= {=0A= OtherJoining, Dual, Right, Center=0A= };=0A= =0A= enum CombiningClass=0A= {=0A= Combining_BelowLeftAttached =3D 200,=0A= Combining_BelowAttached =3D 202,=0A= Combining_BelowRightAttached =3D 204,=0A= Combining_LeftAttached =3D 208,=0A= Combining_RightAttached =3D 210,=0A= Combining_AboveLeftAttached =3D 212,=0A= Combining_AboveAttached =3D 214,=0A= Combining_AboveRightAttached =3D 216,=0A= =0A= Combining_BelowLeft =3D 218,=0A= Combining_Below =3D 220,=0A= Combining_BelowRight =3D 222,=0A= Combining_Left =3D 224,=0A= Combining_Right =3D 226,=0A= Combining_AboveLeft =3D 228,=0A= Combining_Above =3D 230,=0A= Combining_AboveRight =3D 232,=0A= =0A= Combining_DoubleBelow =3D 233,=0A= Combining_DoubleAbove =3D 234,=0A= Combining_IotaSubscript =3D 240=0A= };=0A= =0A= =0A= =0A= int digitValue() const;=0A= QChar lower() const;=0A= QChar upper() const;=0A= =0A= Category category() const;=0A= Direction direction() const;=0A= Joining joining() const;=0A= bool mirrored() const;=0A= QChar mirroredChar() const;=0A= const QString &decomposition() const;=0A= Decomposition decompositionTag() const;=0A= unsigned char combiningClass() const;=0A= =0A= char latin1() const { return ucs > 0xff ? 0 : (char) ucs; }=0A= ushort unicode() const { return ucs; }=0A= ushort &unicode() { return ucs; }=0A= =0A= =0A= operator char() const { return latin1(); }=0A= =0A= =0A= bool isNull() const { return unicode()=3D=3D0; }=0A= bool isPrint() const;=0A= bool isPunct() const;=0A= bool isSpace() const;=0A= bool isMark() const;=0A= bool isLetter() const;=0A= bool isNumber() const;=0A= bool isLetterOrNumber() const;=0A= bool isDigit() const;=0A= bool isSymbol() const;=0A= =0A= uchar cell() const { return ((uchar) ucs & 0xff); }=0A= uchar row() const { return ((uchar) (ucs>>8)&0xff); }=0A= void setCell( uchar cell ) { ucs =3D (ucs & 0xff00) + cell; }=0A= void setRow( uchar row ) { ucs =3D (((ushort) row)<<8) + (ucs&0xff); = }=0A= =0A= =0A= static bool networkOrdered() { return FALSE; }=0A= =0A= =0A= friend inline bool operator=3D=3D( char ch, QChar c );=0A= friend inline bool operator=3D=3D( QChar c, char ch );=0A= friend inline bool operator=3D=3D( QChar c1, QChar c2 );=0A= friend inline bool operator!=3D( QChar c1, QChar c2 );=0A= friend inline bool operator!=3D( char ch, QChar c );=0A= friend inline bool operator!=3D( QChar c, char ch );=0A= friend inline bool operator<=3D( QChar c, char ch );=0A= friend inline bool operator<=3D( char ch, QChar c );=0A= friend inline bool operator<=3D( QChar c1, QChar c2 );=0A= =0A= private:=0A= ushort ucs;=0A= =0A= =0A= =0A= } ;=0A= =0A= inline QChar::QChar()=0A= {=0A= ucs =3D 0;=0A= =0A= =0A= =0A= }=0A= inline QChar::QChar( char c )=0A= {=0A= ucs =3D (uchar)c;=0A= =0A= =0A= =0A= }=0A= inline QChar::QChar( uchar c )=0A= {=0A= ucs =3D c;=0A= =0A= =0A= =0A= }=0A= inline QChar::QChar( uchar c, uchar r )=0A= {=0A= ucs =3D (r << 8) | c;=0A= =0A= =0A= =0A= }=0A= inline QChar::QChar( const QChar& c )=0A= {=0A= ucs =3D c.ucs;=0A= =0A= =0A= =0A= }=0A= =0A= inline QChar::QChar( ushort rc )=0A= {=0A= ucs =3D rc;=0A= =0A= =0A= =0A= }=0A= inline QChar::QChar( short rc )=0A= {=0A= ucs =3D (ushort) rc;=0A= =0A= =0A= =0A= }=0A= inline QChar::QChar( uint rc )=0A= {=0A= ucs =3D (ushort ) (rc & 0xffff);=0A= =0A= =0A= =0A= }=0A= inline QChar::QChar( int rc )=0A= {=0A= ucs =3D (ushort) (rc & 0xffff);=0A= =0A= =0A= =0A= }=0A= =0A= =0A= inline bool operator=3D=3D( char ch, QChar c )=0A= {=0A= return ((uchar) ch) =3D=3D c.ucs;=0A= }=0A= =0A= inline bool operator=3D=3D( QChar c, char ch )=0A= {=0A= return ((uchar) ch) =3D=3D c.ucs;=0A= }=0A= =0A= inline bool operator=3D=3D( QChar c1, QChar c2 )=0A= {=0A= return c1.ucs =3D=3D c2.ucs;=0A= }=0A= =0A= inline bool operator!=3D( QChar c1, QChar c2 )=0A= {=0A= return c1.ucs !=3D c2.ucs;=0A= }=0A= =0A= inline bool operator!=3D( char ch, QChar c )=0A= {=0A= return ((uchar)ch) !=3D c.ucs;=0A= }=0A= =0A= inline bool operator!=3D( QChar c, char ch )=0A= {=0A= return ((uchar) ch) !=3D c.ucs;=0A= }=0A= =0A= inline bool operator<=3D( QChar c, char ch )=0A= {=0A= return c.ucs <=3D ((uchar) ch);=0A= }=0A= =0A= inline bool operator<=3D( char ch, QChar c )=0A= {=0A= return ((uchar) ch) <=3D c.ucs;=0A= }=0A= =0A= inline bool operator<=3D( QChar c1, QChar c2 )=0A= {=0A= return c1.ucs <=3D c2.ucs;=0A= }=0A= =0A= inline bool operator>=3D( QChar c, char ch ) { return ch <=3D c; }=0A= inline bool operator>=3D( char ch, QChar c ) { return c <=3D ch; }=0A= inline bool operator>=3D( QChar c1, QChar c2 ) { return c2 <=3D c1; }=0A= inline bool operator<( QChar c, char ch ) { return !(ch<=3Dc); }=0A= inline bool operator<( char ch, QChar c ) { return !(c<=3Dch); }=0A= inline bool operator<( QChar c1, QChar c2 ) { return !(c2<=3Dc1); }=0A= inline bool operator>( QChar c, char ch ) { return !(ch>=3Dc); }=0A= inline bool operator>( char ch, QChar c ) { return !(c>=3Dch); }=0A= inline bool operator>( QChar c1, QChar c2 ) { return !(c2>=3Dc1); }=0A= =0A= =0A= struct QStringData : public QShared {=0A= QStringData() :=0A= unicode(0), ascii(0), len(0), simpletext(1), maxl(0), dirty(0) { = ref(); }=0A= QStringData(QChar *u, uint l, uint m) :=0A= unicode(u), ascii(0), len(l), simpletext(1), maxl(m), dirty(1) { = }=0A= =0A= ~QStringData() { if ( unicode ) delete[] ((char*)unicode);=0A= if ( ascii ) delete[] ascii; }=0A= =0A= void deleteSelf();=0A= QChar *unicode;=0A= char *ascii;=0A= void setDirty() {=0A= if ( ascii ) {=0A= delete [] ascii;=0A= ascii =3D 0;=0A= }=0A= dirty =3D 1;=0A= }=0A= =0A= =0A= =0A= uint len : 30;=0A= =0A= uint simpletext : 1;=0A= =0A= =0A= =0A= uint maxl : 30;=0A= =0A= uint dirty : 1;=0A= };=0A= =0A= =0A= class QString=0A= {=0A= public:=0A= QString();=0A= QString( QChar );=0A= QString( const QString & );=0A= QString( const QByteArray& );=0A= QString( const QChar* unicode, uint length );=0A= =0A= QString( const char *str );=0A= =0A= ~QString();=0A= =0A= QString &operator=3D( const QString & );=0A= =0A= QString &operator=3D( const char * );=0A= =0A= QString &operator=3D( const QCString& );=0A= QString &operator=3D( QChar c );=0A= QString &operator=3D( char c );=0A= =0A= static const QString null;=0A= =0A= bool isNull() const;=0A= bool isEmpty() const;=0A= uint length() const;=0A= void truncate( uint pos );=0A= =0A= QString & fill( QChar c, int len =3D -1 );=0A= =0A= QString copy() const;=0A= =0A= QString arg( long a, int fieldwidth=3D0, int base=3D10 ) const;=0A= QString arg( ulong a, int fieldwidth=3D0, int base=3D10 ) const;=0A= QString arg( int a, int fieldwidth=3D0, int base=3D10 ) const;=0A= QString arg( uint a, int fieldwidth=3D0, int base=3D10 ) const;=0A= QString arg( short a, int fieldwidth=3D0, int base=3D10 ) const;=0A= QString arg( ushort a, int fieldwidth=3D0, int base=3D10 ) const;=0A= QString arg( char a, int fieldwidth=3D0 ) const;=0A= QString arg( QChar a, int fieldwidth=3D0 ) const;=0A= QString arg( const QString& a, int fieldwidth=3D0 ) const;=0A= QString arg( double a, int fieldwidth=3D0, char fmt=3D'g', int = prec=3D-1 ) const;=0A= =0A= =0A= QString &sprintf( const char* format, ... )=0A= =0A= __attribute__ ((format (printf, 2, 3)))=0A= =0A= ;=0A= =0A= =0A= int find( QChar c, int index=3D0, bool cs=3DTRUE ) const;=0A= int find( char c, int index=3D0, bool cs=3DTRUE ) const;=0A= int find( const QString &str, int index=3D0, bool cs=3DTRUE ) const;=0A= =0A= int find( const QRegExp &, int index=3D0 ) const;=0A= =0A= =0A= int find( const char* str, int index=3D0 ) const;=0A= =0A= int findRev( QChar c, int index=3D-1, bool cs=3DTRUE) const;=0A= int findRev( char c, int index=3D-1, bool cs=3DTRUE) const;=0A= int findRev( const QString &str, int index=3D-1, bool cs=3DTRUE) = const;=0A= =0A= int findRev( const QRegExp &, int index=3D-1 ) const;=0A= =0A= =0A= int findRev( const char* str, int index=3D-1 ) const;=0A= =0A= int contains( QChar c, bool cs=3DTRUE ) const;=0A= int contains( char c, bool cs=3DTRUE ) const=0A= { return contains(QChar(c), cs); }=0A= =0A= int contains( const char* str, bool cs=3DTRUE ) const;=0A= =0A= int contains( const QString &str, bool cs=3DTRUE ) const;=0A= =0A= int contains( const QRegExp & ) const;=0A= =0A= =0A= enum SectionFlags {=0A= SectionDefault =3D 0x00,=0A= SectionSkipEmpty =3D 0x01,=0A= SectionIncludeLeadingSep =3D 0x02,=0A= SectionIncludeTrailingSep =3D 0x04,=0A= SectionCaseInsensitiveSeps =3D 0x08=0A= };=0A= QString section( QChar sep, int start, int end =3D 0xffffffff, int = flags =3D SectionDefault ) const;=0A= QString section( char sep, int start, int end =3D 0xffffffff, int = flags =3D SectionDefault ) const;=0A= =0A= QString section( const char *in_sep, int start, int end =3D = 0xffffffff, int flags =3D SectionDefault ) const;=0A= =0A= QString section( const QString &in_sep, int start, int end =3D = 0xffffffff, int flags =3D SectionDefault ) const;=0A= =0A= QString section( const QRegExp ®, int start, int end =3D = 0xffffffff, int flags =3D SectionDefault ) const;=0A= =0A= =0A= QString left( uint len ) const;=0A= QString right( uint len ) const;=0A= QString mid( uint index, uint len=3D0xffffffff) const;=0A= =0A= QString leftJustify( uint width, QChar fill=3D' ', bool = trunc=3DFALSE)const;=0A= QString rightJustify( uint width, QChar fill=3D' ',bool = trunc=3DFALSE)const;=0A= =0A= QString lower() const;=0A= QString upper() const;=0A= =0A= QString stripWhiteSpace() const;=0A= QString simplifyWhiteSpace() const;=0A= =0A= QString &insert( uint index, const QString & );=0A= QString &insert( uint index, const QChar*, uint len );=0A= QString &insert( uint index, QChar );=0A= QString &insert( uint index, char c ) { return = insert(index,QChar(c)); }=0A= QString &append( char );=0A= QString &append( QChar );=0A= QString &append( const QString & );=0A= QString &prepend( char );=0A= QString &prepend( QChar );=0A= QString &prepend( const QString & );=0A= QString &remove( uint index, uint len );=0A= QString &replace( uint index, uint len, const QString & );=0A= QString &replace( uint index, uint len, const QChar*, uint clen );=0A= =0A= QString &replace( const QRegExp &, const QString & );=0A= =0A= short toShort( bool *ok=3D0, int base=3D10 ) const;=0A= ushort toUShort( bool *ok=3D0, int base=3D10 ) const;=0A= int toInt( bool *ok=3D0, int base=3D10 ) const;=0A= uint toUInt( bool *ok=3D0, int base=3D10 ) const;=0A= long toLong( bool *ok=3D0, int base=3D10 ) const;=0A= ulong toULong( bool *ok=3D0, int base=3D10 ) const;=0A= float toFloat( bool *ok=3D0 ) const;=0A= double toDouble( bool *ok=3D0 ) const;=0A= =0A= QString &setNum( short, int base=3D10 );=0A= QString &setNum( ushort, int base=3D10 );=0A= QString &setNum( int, int base=3D10 );=0A= QString &setNum( uint, int base=3D10 );=0A= QString &setNum( long, int base=3D10 );=0A= QString &setNum( ulong, int base=3D10 );=0A= QString &setNum( float, char f=3D'g', int prec=3D6 );=0A= QString &setNum( double, char f=3D'g', int prec=3D6 );=0A= =0A= static QString number( long, int base=3D10 );=0A= static QString number( ulong, int base=3D10);=0A= static QString number( int, int base=3D10 );=0A= static QString number( uint, int base=3D10);=0A= static QString number( double, char f=3D'g', int prec=3D6 );=0A= =0A= void setExpand( uint index, QChar c );=0A= =0A= QString &operator+=3D( const QString &str );=0A= QString &operator+=3D( QChar c );=0A= QString &operator+=3D( char c );=0A= =0A= QChar at( uint i ) const=0A= { return i < d->len ? d->unicode[i] : QChar::null; }=0A= QChar operator[]( int i ) const { return at((uint)i); }=0A= QCharRef at( uint i );=0A= QCharRef operator[]( int i );=0A= =0A= QChar constref(uint i) const=0A= { return at(i); }=0A= QChar& ref(uint i)=0A= {=0A= if ( d->count !=3D 1 || i >=3D d->len )=0A= subat( i );=0A= d->setDirty();=0A= return d->unicode[i];=0A= }=0A= =0A= const QChar* unicode() const { return d->unicode; }=0A= const char* ascii() const { return latin1(); }=0A= const char* latin1() const;=0A= static QString fromLatin1(const char*, int len=3D-1);=0A= =0A= QCString utf8() const;=0A= static QString fromUtf8(const char*, int len=3D-1);=0A= =0A= QCString local8Bit() const;=0A= static QString fromLocal8Bit(const char*, int len=3D-1);=0A= bool operator!() const;=0A= =0A= operator const char *() const { return latin1(); }=0A= =0A= =0A= QString &setUnicode( const QChar* unicode, uint len );=0A= QString &setUnicodeCodes( const ushort* unicode_as_ushorts, uint len = );=0A= QString &setLatin1( const char*, int len=3D-1 );=0A= =0A= int compare( const QString& s ) const;=0A= static int compare( const QString& s1, const QString& s2 )=0A= { return s1.compare( s2 ); }=0A= =0A= int localeAwareCompare( const QString& s ) const;=0A= static int localeAwareCompare( const QString& s1, const QString& s2 )=0A= { return s1.localeAwareCompare( s2 ); }=0A= =0A= =0A= friend QDataStream &operator>>( QDataStream &, QString & );=0A= =0A= =0A= void compose();=0A= =0A= =0A= const char* data() const { return latin1(); }=0A= =0A= =0A= bool startsWith( const QString& ) const;=0A= bool endsWith( const QString& ) const;=0A= =0A= void setLength( uint newLength );=0A= =0A= bool simpleText() const { if ( d->dirty ) checkSimpleText(); return = (bool)d->simpletext; }=0A= bool isRightToLeft() const;=0A= =0A= private:=0A= # 604 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring= .h"=0A= QString& replace( const QString &, const QString & ) { return *this; = }=0A= =0A= QString( int size, bool );=0A= =0A= void deref();=0A= void real_detach();=0A= void subat( uint );=0A= bool findArg(int& pos, int& len) const;=0A= =0A= void checkSimpleText() const;=0A= =0A= static QChar* asciiToUnicode( const char*, uint * len, uint = maxlen=3D(uint)-1 );=0A= static QChar* asciiToUnicode( const QByteArray&, uint * len );=0A= static char* unicodeToAscii( const QChar*, uint len );=0A= =0A= QStringData *d;=0A= static QStringData* shared_null;=0A= static QStringData* makeSharedNull();=0A= =0A= friend class QConstString;=0A= friend class QTextStream;=0A= QString( QStringData* dd, bool ) : d(dd) { }=0A= };=0A= =0A= class QCharRef {=0A= friend class QString;=0A= QString& s;=0A= uint p;=0A= QCharRef(QString* str, uint pos) : s(*str), p(pos) { }=0A= =0A= public:=0A= =0A= =0A= =0A= =0A= ushort unicode() const { return s.constref(p).unicode(); }=0A= char latin1() const { return s.constref(p).latin1(); }=0A= =0A= =0A= QCharRef operator=3D(char c ) { s.ref(p)=3Dc; return *this; }=0A= QCharRef operator=3D(uchar c ) { s.ref(p)=3Dc; return *this; }=0A= QCharRef operator=3D(QChar c ) { s.ref(p)=3Dc; return *this; }=0A= QCharRef operator=3D(const QCharRef& c ) { s.ref(p)=3Dc.unicode(); = return *this; }=0A= QCharRef operator=3D(ushort rc ) { s.ref(p)=3Drc; return *this; }=0A= QCharRef operator=3D(short rc ) { s.ref(p)=3Drc; return *this; }=0A= QCharRef operator=3D(uint rc ) { s.ref(p)=3Drc; return *this; }=0A= QCharRef operator=3D(int rc ) { s.ref(p)=3Drc; return *this; }=0A= =0A= operator QChar () const { return s.constref(p); }=0A= =0A= =0A= bool isNull() const { return unicode()=3D=3D0; }=0A= bool isPrint() const { return s.constref(p).isPrint(); }=0A= bool isPunct() const { return s.constref(p).isPunct(); }=0A= bool isSpace() const { return s.constref(p).isSpace(); }=0A= bool isMark() const { return s.constref(p).isMark(); }=0A= bool isLetter() const { return s.constref(p).isLetter(); }=0A= bool isNumber() const { return s.constref(p).isNumber(); }=0A= bool isLetterOrNumber() { return s.constref(p).isLetterOrNumber(); }=0A= bool isDigit() const { return s.constref(p).isDigit(); }=0A= =0A= int digitValue() const { return s.constref(p).digitValue(); }=0A= QChar lower() const { return s.constref(p).lower(); }=0A= QChar upper() const { return s.constref(p).upper(); }=0A= =0A= QChar::Category category() const { return s.constref(p).category(); }=0A= QChar::Direction direction() const { return = s.constref(p).direction(); }=0A= QChar::Joining joining() const { return s.constref(p).joining(); }=0A= bool mirrored() const { return s.constref(p).mirrored(); }=0A= QChar mirroredChar() const { return s.constref(p).mirroredChar(); }=0A= const QString &decomposition() const { return = s.constref(p).decomposition(); }=0A= QChar::Decomposition decompositionTag() const { return = s.constref(p).decompositionTag(); }=0A= unsigned char combiningClass() const { return = s.constref(p).combiningClass(); }=0A= =0A= =0A= uchar cell() const { return s.constref(p).cell(); }=0A= uchar row() const { return s.constref(p).row(); }=0A= =0A= };=0A= =0A= inline QCharRef QString::at( uint i ) { return QCharRef(this,i); }=0A= inline QCharRef QString::operator[]( int i ) { return at((uint)i); }=0A= =0A= =0A= class QConstString : private QString {=0A= public:=0A= QConstString( const QChar* unicode, uint length );=0A= ~QConstString();=0A= const QString& string() const { return *this; }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= QDataStream &operator<<( QDataStream &, const QString & );=0A= QDataStream &operator>>( QDataStream &, QString & );=0A= # 713 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qstring= .h"=0A= inline QString::QString() :=0A= d(shared_null ? shared_null : makeSharedNull())=0A= {=0A= d->ref();=0A= }=0A= =0A= inline QString::~QString()=0A= {=0A= if ( d->deref() ) {=0A= if ( d =3D=3D shared_null )=0A= shared_null =3D 0;=0A= d->deleteSelf();=0A= }=0A= }=0A= =0A= inline QString QString::section( QChar sep, int start, int end, int = flags ) const=0A= { return section(QString(sep), start, end, flags); }=0A= =0A= inline QString QString::section( char sep, int start, int end, int flags = ) const=0A= { return section(QChar(sep), start, end, flags); }=0A= =0A= =0A= inline QString QString::section( const char *in_sep, int start, int end, = int flags ) const=0A= { return section(QString(in_sep), start, end, flags); }=0A= =0A= =0A= inline QString &QString::operator=3D( QChar c )=0A= { return *this =3D QString(c); }=0A= =0A= inline QString &QString::operator=3D( char c )=0A= { return *this =3D QString(QChar(c)); }=0A= =0A= inline bool QString::isNull() const=0A= { return unicode() =3D=3D 0; }=0A= =0A= inline bool QString::operator!() const=0A= { return isNull(); }=0A= =0A= inline uint QString::length() const=0A= { return d->len; }=0A= =0A= inline bool QString::isEmpty() const=0A= { return length() =3D=3D 0; }=0A= =0A= inline QString QString::copy() const=0A= { return QString( *this ); }=0A= =0A= inline QString &QString::prepend( const QString & s )=0A= { return insert(0,s); }=0A= =0A= inline QString &QString::prepend( QChar c )=0A= { return insert(0,c); }=0A= =0A= inline QString &QString::prepend( char c )=0A= { return insert(0,c); }=0A= =0A= inline QString &QString::append( const QString & s )=0A= { return operator+=3D(s); }=0A= =0A= inline QString &QString::append( QChar c )=0A= { return operator+=3D(c); }=0A= =0A= inline QString &QString::append( char c )=0A= { return operator+=3D(c); }=0A= =0A= inline QString &QString::setNum( short n, int base )=0A= { return setNum((long)n, base); }=0A= =0A= inline QString &QString::setNum( ushort n, int base )=0A= { return setNum((ulong)n, base); }=0A= =0A= inline QString &QString::setNum( int n, int base )=0A= { return setNum((long)n, base); }=0A= =0A= inline QString &QString::setNum( uint n, int base )=0A= { return setNum((ulong)n, base); }=0A= =0A= inline QString &QString::setNum( float n, char f, int prec )=0A= { return setNum((double)n,f,prec); }=0A= =0A= inline QString QString::arg(int a, int fieldwidth, int base) const=0A= { return arg((long)a, fieldwidth, base); }=0A= =0A= inline QString QString::arg(uint a, int fieldwidth, int base) const=0A= { return arg((ulong)a, fieldwidth, base); }=0A= =0A= inline QString QString::arg(short a, int fieldwidth, int base) const=0A= { return arg((long)a, fieldwidth, base); }=0A= =0A= inline QString QString::arg(ushort a, int fieldwidth, int base) const=0A= { return arg((ulong)a, fieldwidth, base); }=0A= =0A= inline int QString::find( char c, int index, bool cs ) const=0A= { return find(QChar(c), index, cs); }=0A= =0A= inline int QString::findRev( char c, int index, bool cs) const=0A= { return findRev( QChar(c), index, cs ); }=0A= =0A= =0A= =0A= inline int QString::find( const char* str, int index ) const=0A= { return find(QString::fromLatin1(str), index); }=0A= =0A= inline int QString::findRev( const char* str, int index ) const=0A= { return findRev(QString::fromLatin1(str), index); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= bool operator!=3D( const QString &s1, const QString &s2 );=0A= bool operator<( const QString &s1, const QString &s2 );=0A= bool operator<=3D( const QString &s1, const QString &s2 );=0A= bool operator=3D=3D( const QString &s1, const QString &s2 );=0A= bool operator>( const QString &s1, const QString &s2 );=0A= bool operator>=3D( const QString &s1, const QString &s2 );=0A= =0A= bool operator!=3D( const QString &s1, const char *s2 );=0A= bool operator<( const QString &s1, const char *s2 );=0A= bool operator<=3D( const QString &s1, const char *s2 );=0A= bool operator=3D=3D( const QString &s1, const char *s2 );=0A= bool operator>( const QString &s1, const char *s2 );=0A= bool operator>=3D( const QString &s1, const char *s2 );=0A= bool operator!=3D( const char *s1, const QString &s2 );=0A= bool operator<( const char *s1, const QString &s2 );=0A= bool operator<=3D( const char *s1, const QString &s2 );=0A= bool operator=3D=3D( const char *s1, const QString &s2 );=0A= =0A= bool operator>=3D( const char *s1, const QString &s2 );=0A= =0A= =0A= inline const QString operator+( const QString &s1, const QString &s2 )=0A= {=0A= QString tmp( s1 );=0A= tmp +=3D s2;=0A= return tmp;=0A= }=0A= =0A= =0A= inline const QString operator+( const QString &s1, const char *s2 )=0A= {=0A= QString tmp( s1 );=0A= tmp +=3D QString::fromLatin1(s2);=0A= return tmp;=0A= }=0A= =0A= inline const QString operator+( const char *s1, const QString &s2 )=0A= {=0A= QString tmp =3D QString::fromLatin1( s1 );=0A= tmp +=3D s2;=0A= return tmp;=0A= }=0A= =0A= =0A= inline const QString operator+( const QString &s1, QChar c2 )=0A= {=0A= QString tmp( s1 );=0A= tmp +=3D c2;=0A= return tmp;=0A= }=0A= =0A= inline const QString operator+( const QString &s1, char c2 )=0A= {=0A= QString tmp( s1 );=0A= tmp +=3D c2;=0A= return tmp;=0A= }=0A= =0A= inline const QString operator+( QChar c1, const QString &s2 )=0A= {=0A= QString tmp;=0A= tmp +=3D c1;=0A= tmp +=3D s2;=0A= return tmp;=0A= }=0A= =0A= inline const QString operator+( char c1, const QString &s2 )=0A= {=0A= QString tmp;=0A= tmp +=3D c1;=0A= tmp +=3D s2;=0A= return tmp;=0A= }=0A= # 45 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow= defs.h" 2=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qnamesp= ace.h" 1=0A= # 46 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qnamesp= ace.h"=0A= class QColor;=0A= class QCursor;=0A= =0A= =0A= class Qt {=0A= public:=0A= static const QColor & color0;=0A= static const QColor & color1;=0A= static const QColor & black;=0A= static const QColor & white;=0A= static const QColor & darkGray;=0A= static const QColor & gray;=0A= static const QColor & lightGray;=0A= static const QColor & red;=0A= static const QColor & green;=0A= static const QColor & blue;=0A= static const QColor & cyan;=0A= static const QColor & magenta;=0A= static const QColor & yellow;=0A= static const QColor & darkRed;=0A= static const QColor & darkGreen;=0A= static const QColor & darkBlue;=0A= static const QColor & darkCyan;=0A= static const QColor & darkMagenta;=0A= static const QColor & darkYellow;=0A= =0A= =0A= enum ButtonState {=0A= NoButton =3D 0x0000,=0A= LeftButton =3D 0x0001,=0A= RightButton =3D 0x0002,=0A= MidButton =3D 0x0004,=0A= MouseButtonMask =3D 0x00ff,=0A= ShiftButton =3D 0x0100,=0A= ControlButton =3D 0x0200,=0A= AltButton =3D 0x0400,=0A= MetaButton =3D 0x0800,=0A= KeyButtonMask =3D 0x0fff,=0A= Keypad =3D 0x4000=0A= };=0A= =0A= =0A= =0A= enum Orientation {=0A= Horizontal =3D 0,=0A= Vertical=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= enum AlignmentFlags {=0A= AlignAuto =3D 0x0000,=0A= AlignLeft =3D 0x0001,=0A= AlignRight =3D 0x0002,=0A= AlignHCenter =3D 0x0004,=0A= AlignJustify =3D 0x0008,=0A= AlignHorizontal_Mask =3D AlignLeft | AlignRight | AlignHCenter | = AlignJustify,=0A= AlignTop =3D 0x0010,=0A= AlignBottom =3D 0x0020,=0A= AlignVCenter =3D 0x0040,=0A= AlignVertical_Mask =3D AlignTop | AlignBottom | AlignVCenter,=0A= AlignCenter =3D AlignVCenter | AlignHCenter=0A= };=0A= =0A= =0A= enum TextFlags {=0A= SingleLine =3D 0x0080,=0A= DontClip =3D 0x0100,=0A= ExpandTabs =3D 0x0200,=0A= ShowPrefix =3D 0x0400,=0A= WordBreak =3D 0x0800,=0A= BreakAnywhere =3D 0x1000,=0A= DontPrint =3D 0x2000,=0A= NoAccel =3D 0x4000=0A= };=0A= =0A= =0A= typedef uint WState;=0A= =0A= =0A= enum WidgetState {=0A= WState_Created =3D 0x00000001,=0A= WState_Disabled =3D 0x00000002,=0A= WState_Visible =3D 0x00000004,=0A= WState_ForceHide =3D 0x00000008,=0A= WState_OwnCursor =3D 0x00000010,=0A= WState_MouseTracking =3D 0x00000020,=0A= WState_CompressKeys =3D 0x00000040,=0A= WState_BlockUpdates =3D 0x00000080,=0A= WState_InPaintEvent =3D 0x00000100,=0A= WState_Reparented =3D 0x00000200,=0A= WState_ConfigPending =3D 0x00000400,=0A= WState_Resized =3D 0x00000800,=0A= WState_AutoMask =3D 0x00001000,=0A= WState_Polished =3D 0x00002000,=0A= WState_DND =3D 0x00004000,=0A= WState_Reserved0 =3D 0x00008000,=0A= WState_Reserved1 =3D 0x00010000,=0A= WState_Reserved2 =3D 0x00020000,=0A= WState_Reserved3 =3D 0x00040000,=0A= WState_Maximized =3D 0x00080000,=0A= WState_Minimized =3D 0x00100000,=0A= WState_ForceDisabled =3D 0x00200000,=0A= WState_Exposed =3D 0x00400000,=0A= WState_HasMouse =3D 0x00800000=0A= };=0A= =0A= =0A= typedef uint WFlags;=0A= =0A= =0A= enum WidgetFlags {=0A= WType_TopLevel =3D 0x00000001,=0A= WType_Dialog =3D 0x00000002,=0A= WType_Popup =3D 0x00000004,=0A= WType_Desktop =3D 0x00000008,=0A= WType_Mask =3D 0x0000000f,=0A= =0A= WStyle_Customize =3D 0x00000010,=0A= WStyle_NormalBorder =3D 0x00000020,=0A= WStyle_DialogBorder =3D 0x00000040,=0A= WStyle_NoBorder =3D 0x00002000,=0A= WStyle_Title =3D 0x00000080,=0A= WStyle_SysMenu =3D 0x00000100,=0A= WStyle_Minimize =3D 0x00000200,=0A= WStyle_Maximize =3D 0x00000400,=0A= WStyle_MinMax =3D WStyle_Minimize | WStyle_Maximize,=0A= WStyle_Tool =3D 0x00000800,=0A= WStyle_StaysOnTop =3D 0x00001000,=0A= WStyle_ContextHelp =3D 0x00004000,=0A= WStyle_Reserved =3D 0x00008000,=0A= WStyle_Mask =3D 0x0000fff0,=0A= =0A= WDestructiveClose =3D 0x00010000,=0A= WPaintDesktop =3D 0x00020000,=0A= WPaintUnclipped =3D 0x00040000,=0A= WPaintClever =3D 0x00080000,=0A= WResizeNoErase =3D 0x00100000,=0A= WMouseNoMask =3D 0x00200000,=0A= WStaticContents =3D 0x00400000,=0A= WRepaintNoErase =3D 0x00800000,=0A= =0A= WX11BypassWM =3D 0x01000000,=0A= WWinOwnDC =3D 0x00000000,=0A= =0A= =0A= =0A= =0A= WGroupLeader =3D 0x02000000,=0A= WShowModal =3D 0x04000000,=0A= WNoMousePropagation =3D 0x08000000,=0A= WSubWindow =3D 0x10000000=0A= =0A= ,=0A= WNorthWestGravity =3D WStaticContents,=0A= WType_Modal =3D WType_Dialog | WShowModal,=0A= WStyle_Dialog =3D WType_Dialog,=0A= WStyle_NoBorderEx =3D WStyle_NoBorder=0A= =0A= };=0A= =0A= =0A= =0A= =0A= =0A= enum ImageConversionFlags {=0A= ColorMode_Mask =3D 0x00000003,=0A= AutoColor =3D 0x00000000,=0A= ColorOnly =3D 0x00000003,=0A= MonoOnly =3D 0x00000002,=0A= =0A= =0A= AlphaDither_Mask =3D 0x0000000c,=0A= ThresholdAlphaDither =3D 0x00000000,=0A= OrderedAlphaDither =3D 0x00000004,=0A= DiffuseAlphaDither =3D 0x00000008,=0A= NoAlpha =3D 0x0000000c,=0A= =0A= Dither_Mask =3D 0x00000030,=0A= DiffuseDither =3D 0x00000000,=0A= OrderedDither =3D 0x00000010,=0A= ThresholdDither =3D 0x00000020,=0A= =0A= =0A= DitherMode_Mask =3D 0x000000c0,=0A= AutoDither =3D 0x00000000,=0A= PreferDither =3D 0x00000040,=0A= AvoidDither =3D 0x00000080=0A= };=0A= =0A= =0A= enum BGMode {=0A= TransparentMode,=0A= OpaqueMode=0A= };=0A= =0A= =0A= =0A= enum PaintUnit {=0A= PixelUnit,=0A= LoMetricUnit,=0A= HiMetricUnit,=0A= LoEnglishUnit,=0A= HiEnglishUnit,=0A= TwipsUnit=0A= };=0A= # 264 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qnamesp= ace.h"=0A= enum GUIStyle {=0A= MacStyle,=0A= WindowsStyle,=0A= Win3Style,=0A= PMStyle,=0A= MotifStyle=0A= };=0A= =0A= =0A= =0A= enum Modifier {=0A= SHIFT =3D 0x00200000,=0A= CTRL =3D 0x00400000,=0A= ALT =3D 0x00800000,=0A= MODIFIER_MASK =3D 0x00e00000,=0A= UNICODE_ACCEL =3D 0x10000000,=0A= =0A= ASCII_ACCEL =3D UNICODE_ACCEL=0A= };=0A= =0A= =0A= enum Key {=0A= Key_Escape =3D 0x1000,=0A= Key_Tab =3D 0x1001,=0A= Key_Backtab =3D 0x1002, Key_BackTab =3D Key_Backtab,=0A= Key_Backspace =3D 0x1003, Key_BackSpace =3D Key_Backspace,=0A= Key_Return =3D 0x1004,=0A= Key_Enter =3D 0x1005,=0A= Key_Insert =3D 0x1006,=0A= Key_Delete =3D 0x1007,=0A= Key_Pause =3D 0x1008,=0A= Key_Print =3D 0x1009,=0A= Key_SysReq =3D 0x100a,=0A= Key_Home =3D 0x1010,=0A= Key_End =3D 0x1011,=0A= Key_Left =3D 0x1012,=0A= Key_Up =3D 0x1013,=0A= Key_Right =3D 0x1014,=0A= Key_Down =3D 0x1015,=0A= Key_Prior =3D 0x1016, Key_PageUp =3D Key_Prior,=0A= Key_Next =3D 0x1017, Key_PageDown =3D Key_Next,=0A= Key_Shift =3D 0x1020,=0A= Key_Control =3D 0x1021,=0A= Key_Meta =3D 0x1022,=0A= Key_Alt =3D 0x1023,=0A= Key_CapsLock =3D 0x1024,=0A= Key_NumLock =3D 0x1025,=0A= Key_ScrollLock =3D 0x1026,=0A= Key_F1 =3D 0x1030,=0A= Key_F2 =3D 0x1031,=0A= Key_F3 =3D 0x1032,=0A= Key_F4 =3D 0x1033,=0A= Key_F5 =3D 0x1034,=0A= Key_F6 =3D 0x1035,=0A= Key_F7 =3D 0x1036,=0A= Key_F8 =3D 0x1037,=0A= Key_F9 =3D 0x1038,=0A= Key_F10 =3D 0x1039,=0A= Key_F11 =3D 0x103a,=0A= Key_F12 =3D 0x103b,=0A= Key_F13 =3D 0x103c,=0A= Key_F14 =3D 0x103d,=0A= Key_F15 =3D 0x103e,=0A= Key_F16 =3D 0x103f,=0A= Key_F17 =3D 0x1040,=0A= Key_F18 =3D 0x1041,=0A= Key_F19 =3D 0x1042,=0A= Key_F20 =3D 0x1043,=0A= Key_F21 =3D 0x1044,=0A= Key_F22 =3D 0x1045,=0A= Key_F23 =3D 0x1046,=0A= Key_F24 =3D 0x1047,=0A= Key_F25 =3D 0x1048,=0A= Key_F26 =3D 0x1049,=0A= Key_F27 =3D 0x104a,=0A= Key_F28 =3D 0x104b,=0A= Key_F29 =3D 0x104c,=0A= Key_F30 =3D 0x104d,=0A= Key_F31 =3D 0x104e,=0A= Key_F32 =3D 0x104f,=0A= Key_F33 =3D 0x1050,=0A= Key_F34 =3D 0x1051,=0A= Key_F35 =3D 0x1052,=0A= Key_Super_L =3D 0x1053,=0A= Key_Super_R =3D 0x1054,=0A= Key_Menu =3D 0x1055,=0A= Key_Hyper_L =3D 0x1056,=0A= Key_Hyper_R =3D 0x1057,=0A= Key_Help =3D 0x1058,=0A= Key_Direction_L =3D 0x1059,=0A= Key_Direction_R =3D 0x1060,=0A= Key_Space =3D 0x20,=0A= Key_Any =3D Key_Space,=0A= Key_Exclam =3D 0x21,=0A= Key_QuoteDbl =3D 0x22,=0A= Key_NumberSign =3D 0x23,=0A= Key_Dollar =3D 0x24,=0A= Key_Percent =3D 0x25,=0A= Key_Ampersand =3D 0x26,=0A= Key_Apostrophe =3D 0x27,=0A= Key_ParenLeft =3D 0x28,=0A= Key_ParenRight =3D 0x29,=0A= Key_Asterisk =3D 0x2a,=0A= Key_Plus =3D 0x2b,=0A= Key_Comma =3D 0x2c,=0A= Key_Minus =3D 0x2d,=0A= Key_Period =3D 0x2e,=0A= Key_Slash =3D 0x2f,=0A= Key_0 =3D 0x30,=0A= Key_1 =3D 0x31,=0A= Key_2 =3D 0x32,=0A= Key_3 =3D 0x33,=0A= Key_4 =3D 0x34,=0A= Key_5 =3D 0x35,=0A= Key_6 =3D 0x36,=0A= Key_7 =3D 0x37,=0A= Key_8 =3D 0x38,=0A= Key_9 =3D 0x39,=0A= Key_Colon =3D 0x3a,=0A= Key_Semicolon =3D 0x3b,=0A= Key_Less =3D 0x3c,=0A= Key_Equal =3D 0x3d,=0A= Key_Greater =3D 0x3e,=0A= Key_Question =3D 0x3f,=0A= Key_At =3D 0x40,=0A= Key_A =3D 0x41,=0A= Key_B =3D 0x42,=0A= Key_C =3D 0x43,=0A= Key_D =3D 0x44,=0A= Key_E =3D 0x45,=0A= Key_F =3D 0x46,=0A= Key_G =3D 0x47,=0A= Key_H =3D 0x48,=0A= Key_I =3D 0x49,=0A= Key_J =3D 0x4a,=0A= Key_K =3D 0x4b,=0A= Key_L =3D 0x4c,=0A= Key_M =3D 0x4d,=0A= Key_N =3D 0x4e,=0A= Key_O =3D 0x4f,=0A= Key_P =3D 0x50,=0A= Key_Q =3D 0x51,=0A= Key_R =3D 0x52,=0A= Key_S =3D 0x53,=0A= Key_T =3D 0x54,=0A= Key_U =3D 0x55,=0A= Key_V =3D 0x56,=0A= Key_W =3D 0x57,=0A= Key_X =3D 0x58,=0A= Key_Y =3D 0x59,=0A= Key_Z =3D 0x5a,=0A= Key_BracketLeft =3D 0x5b,=0A= Key_Backslash =3D 0x5c,=0A= Key_BracketRight =3D 0x5d,=0A= Key_AsciiCircum =3D 0x5e,=0A= Key_Underscore =3D 0x5f,=0A= Key_QuoteLeft =3D 0x60,=0A= Key_BraceLeft =3D 0x7b,=0A= Key_Bar =3D 0x7c,=0A= Key_BraceRight =3D 0x7d,=0A= Key_AsciiTilde =3D 0x7e,=0A= =0A= =0A= =0A= Key_nobreakspace =3D 0x0a0,=0A= Key_exclamdown =3D 0x0a1,=0A= Key_cent =3D 0x0a2,=0A= Key_sterling =3D 0x0a3,=0A= Key_currency =3D 0x0a4,=0A= Key_yen =3D 0x0a5,=0A= Key_brokenbar =3D 0x0a6,=0A= Key_section =3D 0x0a7,=0A= Key_diaeresis =3D 0x0a8,=0A= Key_copyright =3D 0x0a9,=0A= Key_ordfeminine =3D 0x0aa,=0A= Key_guillemotleft =3D 0x0ab,=0A= Key_notsign =3D 0x0ac,=0A= Key_hyphen =3D 0x0ad,=0A= Key_registered =3D 0x0ae,=0A= Key_macron =3D 0x0af,=0A= Key_degree =3D 0x0b0,=0A= Key_plusminus =3D 0x0b1,=0A= Key_twosuperior =3D 0x0b2,=0A= Key_threesuperior =3D 0x0b3,=0A= Key_acute =3D 0x0b4,=0A= Key_mu =3D 0x0b5,=0A= Key_paragraph =3D 0x0b6,=0A= Key_periodcentered =3D 0x0b7,=0A= Key_cedilla =3D 0x0b8,=0A= Key_onesuperior =3D 0x0b9,=0A= Key_masculine =3D 0x0ba,=0A= Key_guillemotright =3D 0x0bb,=0A= Key_onequarter =3D 0x0bc,=0A= Key_onehalf =3D 0x0bd,=0A= Key_threequarters =3D 0x0be,=0A= Key_questiondown =3D 0x0bf,=0A= Key_Agrave =3D 0x0c0,=0A= Key_Aacute =3D 0x0c1,=0A= Key_Acircumflex =3D 0x0c2,=0A= Key_Atilde =3D 0x0c3,=0A= Key_Adiaeresis =3D 0x0c4,=0A= Key_Aring =3D 0x0c5,=0A= Key_AE =3D 0x0c6,=0A= Key_Ccedilla =3D 0x0c7,=0A= Key_Egrave =3D 0x0c8,=0A= Key_Eacute =3D 0x0c9,=0A= Key_Ecircumflex =3D 0x0ca,=0A= Key_Ediaeresis =3D 0x0cb,=0A= Key_Igrave =3D 0x0cc,=0A= Key_Iacute =3D 0x0cd,=0A= Key_Icircumflex =3D 0x0ce,=0A= Key_Idiaeresis =3D 0x0cf,=0A= Key_ETH =3D 0x0d0,=0A= Key_Ntilde =3D 0x0d1,=0A= Key_Ograve =3D 0x0d2,=0A= Key_Oacute =3D 0x0d3,=0A= Key_Ocircumflex =3D 0x0d4,=0A= Key_Otilde =3D 0x0d5,=0A= Key_Odiaeresis =3D 0x0d6,=0A= Key_multiply =3D 0x0d7,=0A= Key_Ooblique =3D 0x0d8,=0A= Key_Ugrave =3D 0x0d9,=0A= Key_Uacute =3D 0x0da,=0A= Key_Ucircumflex =3D 0x0db,=0A= Key_Udiaeresis =3D 0x0dc,=0A= Key_Yacute =3D 0x0dd,=0A= Key_THORN =3D 0x0de,=0A= Key_ssharp =3D 0x0df,=0A= Key_agrave =3D 0x0e0,=0A= Key_aacute =3D 0x0e1,=0A= Key_acircumflex =3D 0x0e2,=0A= Key_atilde =3D 0x0e3,=0A= Key_adiaeresis =3D 0x0e4,=0A= Key_aring =3D 0x0e5,=0A= Key_ae =3D 0x0e6,=0A= Key_ccedilla =3D 0x0e7,=0A= Key_egrave =3D 0x0e8,=0A= Key_eacute =3D 0x0e9,=0A= Key_ecircumflex =3D 0x0ea,=0A= Key_ediaeresis =3D 0x0eb,=0A= Key_igrave =3D 0x0ec,=0A= Key_iacute =3D 0x0ed,=0A= Key_icircumflex =3D 0x0ee,=0A= Key_idiaeresis =3D 0x0ef,=0A= Key_eth =3D 0x0f0,=0A= Key_ntilde =3D 0x0f1,=0A= Key_ograve =3D 0x0f2,=0A= Key_oacute =3D 0x0f3,=0A= Key_ocircumflex =3D 0x0f4,=0A= Key_otilde =3D 0x0f5,=0A= Key_odiaeresis =3D 0x0f6,=0A= Key_division =3D 0x0f7,=0A= Key_oslash =3D 0x0f8,=0A= Key_ugrave =3D 0x0f9,=0A= Key_uacute =3D 0x0fa,=0A= Key_ucircumflex =3D 0x0fb,=0A= Key_udiaeresis =3D 0x0fc,=0A= Key_yacute =3D 0x0fd,=0A= Key_thorn =3D 0x0fe,=0A= Key_ydiaeresis =3D 0x0ff,=0A= =0A= Key_unknown =3D 0xffff=0A= };=0A= =0A= =0A= enum ArrowType {=0A= UpArrow,=0A= DownArrow,=0A= LeftArrow,=0A= RightArrow=0A= };=0A= =0A= =0A= enum RasterOp {=0A= CopyROP,=0A= OrROP,=0A= XorROP,=0A= NotAndROP, EraseROP=3DNotAndROP,=0A= NotCopyROP,=0A= NotOrROP,=0A= NotXorROP,=0A= AndROP, NotEraseROP=3DAndROP,=0A= NotROP,=0A= ClearROP,=0A= SetROP,=0A= NopROP,=0A= AndNotROP,=0A= OrNotROP,=0A= NandROP,=0A= NorROP, LastROP=3DNorROP=0A= };=0A= =0A= =0A= enum PenStyle {=0A= NoPen,=0A= SolidLine,=0A= DashLine,=0A= DotLine,=0A= DashDotLine,=0A= DashDotDotLine,=0A= MPenStyle =3D 0x0f=0A= };=0A= =0A= =0A= enum PenCapStyle {=0A= FlatCap =3D 0x00,=0A= SquareCap =3D 0x10,=0A= RoundCap =3D 0x20,=0A= MPenCapStyle =3D 0x30=0A= };=0A= =0A= =0A= enum PenJoinStyle {=0A= MiterJoin =3D 0x00,=0A= BevelJoin =3D 0x40,=0A= RoundJoin =3D 0x80,=0A= MPenJoinStyle =3D 0xc0=0A= };=0A= =0A= =0A= enum BrushStyle {=0A= NoBrush,=0A= SolidPattern,=0A= Dense1Pattern,=0A= Dense2Pattern,=0A= Dense3Pattern,=0A= Dense4Pattern,=0A= Dense5Pattern,=0A= Dense6Pattern,=0A= Dense7Pattern,=0A= HorPattern,=0A= VerPattern,=0A= CrossPattern,=0A= BDiagPattern,=0A= FDiagPattern,=0A= DiagCrossPattern,=0A= CustomPattern=3D24=0A= };=0A= =0A= =0A= enum WindowsVersion {=0A= WV_32s =3D 0x0001,=0A= WV_95 =3D 0x0002,=0A= WV_98 =3D 0x0003,=0A= WV_Me =3D 0x0004,=0A= WV_DOS_based =3D 0x000f,=0A= =0A= WV_NT =3D 0x0010,=0A= WV_2000 =3D 0x0020,=0A= WV_XP =3D 0x0030,=0A= WV_NT_based =3D 0x00f0=0A= };=0A= =0A= =0A= enum UIEffect {=0A= UI_General,=0A= UI_AnimateMenu,=0A= UI_FadeMenu,=0A= UI_AnimateCombo,=0A= UI_AnimateTooltip,=0A= UI_FadeTooltip=0A= };=0A= =0A= =0A= enum CursorShape {=0A= ArrowCursor,=0A= UpArrowCursor,=0A= CrossCursor,=0A= WaitCursor,=0A= IbeamCursor,=0A= SizeVerCursor,=0A= SizeHorCursor,=0A= SizeBDiagCursor,=0A= SizeFDiagCursor,=0A= SizeAllCursor,=0A= BlankCursor,=0A= SplitVCursor,=0A= SplitHCursor,=0A= PointingHandCursor,=0A= ForbiddenCursor,=0A= WhatsThisCursor,=0A= LastCursor =3D WhatsThisCursor,=0A= BitmapCursor =3D 24=0A= };=0A= =0A= =0A= =0A= static const QCursor & arrowCursor;=0A= static const QCursor & upArrowCursor;=0A= static const QCursor & crossCursor;=0A= static const QCursor & waitCursor;=0A= static const QCursor & ibeamCursor;=0A= static const QCursor & sizeVerCursor;=0A= static const QCursor & sizeHorCursor;=0A= static const QCursor & sizeBDiagCursor;=0A= static const QCursor & sizeFDiagCursor;=0A= static const QCursor & sizeAllCursor;=0A= static const QCursor & blankCursor;=0A= static const QCursor & splitVCursor;=0A= =0A= static const QCursor & splitHCursor;=0A= =0A= static const QCursor & pointingHandCursor;=0A= static const QCursor & forbiddenCursor;=0A= static const QCursor & whatsThisCursor;=0A= =0A= =0A= enum TextFormat {=0A= PlainText,=0A= RichText,=0A= AutoText=0A= };=0A= =0A= =0A= enum Dock {=0A= DockUnmanaged,=0A= DockTornOff,=0A= DockTop,=0A= DockBottom,=0A= DockRight,=0A= DockLeft,=0A= DockMinimized=0A= =0A= ,=0A= Unmanaged =3D DockUnmanaged,=0A= TornOff =3D DockTornOff,=0A= Top =3D DockTop,=0A= Bottom =3D DockBottom,=0A= Right =3D DockRight,=0A= Left =3D DockLeft,=0A= Minimized =3D DockMinimized=0A= =0A= };=0A= =0A= typedef Dock ToolBarDock;=0A= =0A= =0A= enum DateFormat {=0A= TextDate,=0A= ISODate,=0A= LocalDate=0A= };=0A= =0A= =0A= enum BackgroundMode {=0A= FixedColor,=0A= FixedPixmap,=0A= NoBackground,=0A= PaletteForeground,=0A= PaletteButton,=0A= PaletteLight,=0A= PaletteMidlight,=0A= PaletteDark,=0A= PaletteMid,=0A= PaletteText,=0A= PaletteBrightText,=0A= PaletteBase,=0A= PaletteBackground,=0A= PaletteShadow,=0A= PaletteHighlight,=0A= PaletteHighlightedText,=0A= PaletteButtonText,=0A= PaletteLink,=0A= PaletteLinkVisited,=0A= X11ParentRelative=0A= };=0A= =0A= typedef uint ComparisonFlags;=0A= =0A= =0A= enum StringComparisonMode {=0A= CaseSensitive =3D 0x00001,=0A= BeginsWith =3D 0x00002,=0A= EndsWith =3D 0x00004,=0A= Contains =3D 0x00008,=0A= ExactMatch =3D 0x00010=0A= };=0A= # 749 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qnamesp= ace.h"=0A= typedef unsigned long HANDLE;=0A= =0A= =0A= =0A= };=0A= =0A= =0A= class QInternal {=0A= public:=0A= enum PaintDeviceFlags {=0A= UndefinedDevice =3D 0x00,=0A= Widget =3D 0x01,=0A= Pixmap =3D 0x02,=0A= Printer =3D 0x03,=0A= Picture =3D 0x04,=0A= System =3D 0x05,=0A= DeviceTypeMask =3D 0x0f,=0A= ExternalDevice =3D 0x10,=0A= =0A= CompatibilityMode =3D 0x20=0A= };=0A= };=0A= # 46 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow= defs.h" 2=0A= =0A= =0A= # 1 = "/usr/local/gcc3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/limits.h" 1 = 3=0A= # 49 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow= defs.h" 2=0A= =0A= =0A= =0A= class QPaintDevice;=0A= class QPaintDeviceMetrics;=0A= class QWidget;=0A= class QWidgetMapper;=0A= class QDialog;=0A= class QColor;=0A= class QColorGroup;=0A= class QPalette;=0A= class QCursor;=0A= class QPoint;=0A= class QSize;=0A= class QRect;=0A= class QPointArray;=0A= class QPainter;=0A= class QRegion;=0A= class QFont;=0A= class QFontMetrics;=0A= class QFontInfo;=0A= class QPen;=0A= class QBrush;=0A= class QWMatrix;=0A= class QPixmap;=0A= class QBitmap;=0A= class QMovie;=0A= class QImage;=0A= class QImageIO;=0A= class QPicture;=0A= class QPrinter;=0A= class QAccel;=0A= class QTimer;=0A= class QTime;=0A= class QClipboard;=0A= =0A= =0A= =0A= =0A= class QWidgetList;=0A= class QWidgetListIt;=0A= # 135 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow= defs.h"=0A= typedef struct _XDisplay Display;=0A= typedef union _XEvent XEvent;=0A= typedef struct _XGC *GC;=0A= typedef struct _XRegion *Region;=0A= typedef unsigned long WId;=0A= =0A= Display *qt_xdisplay();=0A= int qt_xscreen();=0A= WId qt_xrootwin();=0A= GC qt_xget_readonly_gc( int scrn, bool monochrome );=0A= GC qt_xget_temp_gc( int scrn, bool monochrome );=0A= # 157 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qwindow= defs.h"=0A= class QApplication;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= typedef Q_INT32 QCOORD;=0A= const QCOORD QCOORD_MAX =3D 2147483647;=0A= const QCOORD QCOORD_MIN =3D -QCOORD_MAX - 1;=0A= =0A= typedef unsigned int QRgb;=0A= =0A= const char *qAppName();=0A= =0A= =0A= =0A= typedef void (*QtCleanUpFunction)();=0A= void qAddPostRoutine( QtCleanUpFunction );=0A= void qRemovePostRoutine( QtCleanUpFunction );=0A= =0A= =0A= =0A= typedef QtCleanUpFunction Q_CleanUpFunction;=0A= =0A= =0A= =0A= void *qt_find_obj_child( QObject *, const char *, const char * );=0A= # 44 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= .h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.= h" 1=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.= h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion= .h" 1=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion= .h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qrect.h= " 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qrect.h= "=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qsize.h= " 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qsize.h= "=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qpoint.= h" 1=0A= # 46 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qpoint.= h"=0A= class QPoint=0A= {=0A= public:=0A= QPoint();=0A= QPoint( int xpos, int ypos );=0A= =0A= bool isNull() const;=0A= =0A= int x() const;=0A= int y() const;=0A= void setX( int x );=0A= void setY( int y );=0A= =0A= int manhattanLength() const;=0A= =0A= QCOORD &rx();=0A= QCOORD &ry();=0A= =0A= QPoint &operator+=3D( const QPoint &p );=0A= QPoint &operator-=3D( const QPoint &p );=0A= QPoint &operator*=3D( int c );=0A= QPoint &operator*=3D( double c );=0A= QPoint &operator/=3D( int c );=0A= QPoint &operator/=3D( double c );=0A= =0A= friend inline bool operator=3D=3D( const QPoint &, const QPoint & );=0A= friend inline bool operator!=3D( const QPoint &, const QPoint & );=0A= friend inline const QPoint operator+( const QPoint &, const QPoint & = );=0A= friend inline const QPoint operator-( const QPoint &, const QPoint & = );=0A= friend inline const QPoint operator*( const QPoint &, int );=0A= friend inline const QPoint operator*( int, const QPoint & );=0A= friend inline const QPoint operator*( const QPoint &, double );=0A= friend inline const QPoint operator*( double, const QPoint & );=0A= friend inline const QPoint operator-( const QPoint & );=0A= friend inline const QPoint operator/( const QPoint &, int );=0A= friend inline const QPoint operator/( const QPoint &, double );=0A= =0A= private:=0A= static void warningDivByZero();=0A= =0A= =0A= =0A= =0A= =0A= QCOORD xp;=0A= QCOORD yp;=0A= =0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= QDataStream &operator<<( QDataStream &, const QPoint & );=0A= QDataStream &operator>>( QDataStream &, QPoint & );=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline QPoint::QPoint()=0A= { xp=3D0; yp=3D0; }=0A= =0A= inline QPoint::QPoint( int xpos, int ypos )=0A= { xp=3D(QCOORD)xpos; yp=3D(QCOORD)ypos; }=0A= =0A= inline bool QPoint::isNull() const=0A= { return xp =3D=3D 0 && yp =3D=3D 0; }=0A= =0A= inline int QPoint::x() const=0A= { return xp; }=0A= =0A= inline int QPoint::y() const=0A= { return yp; }=0A= =0A= inline void QPoint::setX( int x )=0A= { xp =3D (QCOORD)x; }=0A= =0A= inline void QPoint::setY( int y )=0A= { yp =3D (QCOORD)y; }=0A= =0A= inline QCOORD &QPoint::rx()=0A= { return xp; }=0A= =0A= inline QCOORD &QPoint::ry()=0A= { return yp; }=0A= =0A= inline QPoint &QPoint::operator+=3D( const QPoint &p )=0A= { xp+=3Dp.xp; yp+=3Dp.yp; return *this; }=0A= =0A= inline QPoint &QPoint::operator-=3D( const QPoint &p )=0A= { xp-=3Dp.xp; yp-=3Dp.yp; return *this; }=0A= =0A= inline QPoint &QPoint::operator*=3D( int c )=0A= { xp*=3D(QCOORD)c; yp*=3D(QCOORD)c; return *this; }=0A= =0A= inline QPoint &QPoint::operator*=3D( double c )=0A= { xp=3D(QCOORD)(xp*c); yp=3D(QCOORD)(yp*c); return *this; }=0A= =0A= inline bool operator=3D=3D( const QPoint &p1, const QPoint &p2 )=0A= { return p1.xp =3D=3D p2.xp && p1.yp =3D=3D p2.yp; }=0A= =0A= inline bool operator!=3D( const QPoint &p1, const QPoint &p2 )=0A= { return p1.xp !=3D p2.xp || p1.yp !=3D p2.yp; }=0A= =0A= inline const QPoint operator+( const QPoint &p1, const QPoint &p2 )=0A= { return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); }=0A= =0A= inline const QPoint operator-( const QPoint &p1, const QPoint &p2 )=0A= { return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); }=0A= =0A= inline const QPoint operator*( const QPoint &p, int c )=0A= { return QPoint(p.xp*c, p.yp*c); }=0A= =0A= inline const QPoint operator*( int c, const QPoint &p )=0A= { return QPoint(p.xp*c, p.yp*c); }=0A= =0A= inline const QPoint operator*( const QPoint &p, double c )=0A= { return QPoint((QCOORD)(p.xp*c), (QCOORD)(p.yp*c)); }=0A= =0A= inline const QPoint operator*( double c, const QPoint &p )=0A= { return QPoint((QCOORD)(p.xp*c), (QCOORD)(p.yp*c)); }=0A= =0A= inline const QPoint operator-( const QPoint &p )=0A= { return QPoint(-p.xp, -p.yp); }=0A= =0A= inline QPoint &QPoint::operator/=3D( int c )=0A= {=0A= =0A= if ( c =3D=3D 0 )=0A= warningDivByZero();=0A= =0A= xp/=3D(QCOORD)c;=0A= yp/=3D(QCOORD)c;=0A= return *this;=0A= }=0A= =0A= inline QPoint &QPoint::operator/=3D( double c )=0A= {=0A= =0A= if ( c =3D=3D 0.0 )=0A= warningDivByZero();=0A= =0A= xp=3D(QCOORD)(xp/c);=0A= yp=3D(QCOORD)(yp/c);=0A= return *this;=0A= }=0A= =0A= inline const QPoint operator/( const QPoint &p, int c )=0A= {=0A= =0A= if ( c =3D=3D 0 )=0A= QPoint::warningDivByZero();=0A= =0A= return QPoint(p.xp/c, p.yp/c);=0A= }=0A= =0A= inline const QPoint operator/( const QPoint &p, double c )=0A= {=0A= =0A= if ( c =3D=3D 0.0 )=0A= QPoint::warningDivByZero();=0A= =0A= return QPoint((QCOORD)(p.xp/c), (QCOORD)(p.yp/c));=0A= }=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qsize.h= " 2=0A= =0A= =0A= =0A= class QSize=0A= {=0A= public:=0A= QSize();=0A= QSize( int w, int h );=0A= =0A= bool isNull() const;=0A= bool isEmpty() const;=0A= bool isValid() const;=0A= =0A= int width() const;=0A= int height() const;=0A= void setWidth( int w );=0A= void setHeight( int h );=0A= void transpose();=0A= =0A= QSize expandedTo( const QSize & ) const;=0A= QSize boundedTo( const QSize & ) const;=0A= =0A= QCOORD &rwidth();=0A= QCOORD &rheight();=0A= =0A= QSize &operator+=3D( const QSize & );=0A= QSize &operator-=3D( const QSize & );=0A= QSize &operator*=3D( int c );=0A= QSize &operator*=3D( double c );=0A= QSize &operator/=3D( int c );=0A= QSize &operator/=3D( double c );=0A= =0A= friend inline bool operator=3D=3D( const QSize &, const QSize & );=0A= friend inline bool operator!=3D( const QSize &, const QSize & );=0A= friend inline const QSize operator+( const QSize &, const QSize & );=0A= friend inline const QSize operator-( const QSize &, const QSize & );=0A= friend inline const QSize operator*( const QSize &, int );=0A= friend inline const QSize operator*( int, const QSize & );=0A= friend inline const QSize operator*( const QSize &, double );=0A= friend inline const QSize operator*( double, const QSize & );=0A= friend inline const QSize operator/( const QSize &, int );=0A= friend inline const QSize operator/( const QSize &, double );=0A= =0A= private:=0A= static void warningDivByZero();=0A= =0A= QCOORD wd;=0A= QCOORD ht;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= QDataStream &operator<<( QDataStream &, const QSize & );=0A= QDataStream &operator>>( QDataStream &, QSize & );=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline QSize::QSize()=0A= { wd =3D ht =3D -1; }=0A= =0A= inline QSize::QSize( int w, int h )=0A= { wd=3D(QCOORD)w; ht=3D(QCOORD)h; }=0A= =0A= inline bool QSize::isNull() const=0A= { return wd=3D=3D0 && ht=3D=3D0; }=0A= =0A= inline bool QSize::isEmpty() const=0A= { return wd<1 || ht<1; }=0A= =0A= inline bool QSize::isValid() const=0A= { return wd>=3D0 && ht>=3D0; }=0A= =0A= inline int QSize::width() const=0A= { return wd; }=0A= =0A= inline int QSize::height() const=0A= { return ht; }=0A= =0A= inline void QSize::setWidth( int w )=0A= { wd=3D(QCOORD)w; }=0A= =0A= inline void QSize::setHeight( int h )=0A= { ht=3D(QCOORD)h; }=0A= =0A= inline QCOORD &QSize::rwidth()=0A= { return wd; }=0A= =0A= inline QCOORD &QSize::rheight()=0A= { return ht; }=0A= =0A= inline QSize &QSize::operator+=3D( const QSize &s )=0A= { wd+=3Ds.wd; ht+=3Ds.ht; return *this; }=0A= =0A= inline QSize &QSize::operator-=3D( const QSize &s )=0A= { wd-=3Ds.wd; ht-=3Ds.ht; return *this; }=0A= =0A= inline QSize &QSize::operator*=3D( int c )=0A= { wd*=3D(QCOORD)c; ht*=3D(QCOORD)c; return *this; }=0A= =0A= inline QSize &QSize::operator*=3D( double c )=0A= { wd=3D(QCOORD)(wd*c); ht=3D(QCOORD)(ht*c); return *this; }=0A= =0A= inline bool operator=3D=3D( const QSize &s1, const QSize &s2 )=0A= { return s1.wd =3D=3D s2.wd && s1.ht =3D=3D s2.ht; }=0A= =0A= inline bool operator!=3D( const QSize &s1, const QSize &s2 )=0A= { return s1.wd !=3D s2.wd || s1.ht !=3D s2.ht; }=0A= =0A= inline const QSize operator+( const QSize & s1, const QSize & s2 )=0A= { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); }=0A= =0A= inline const QSize operator-( const QSize &s1, const QSize &s2 )=0A= { return QSize(s1.wd-s2.wd, s1.ht-s2.ht); }=0A= =0A= inline const QSize operator*( const QSize &s, int c )=0A= { return QSize(s.wd*c, s.ht*c); }=0A= =0A= inline const QSize operator*( int c, const QSize &s )=0A= { return QSize(s.wd*c, s.ht*c); }=0A= =0A= inline const QSize operator*( const QSize &s, double c )=0A= { return QSize((QCOORD)(s.wd*c), (QCOORD)(s.ht*c)); }=0A= =0A= inline const QSize operator*( double c, const QSize &s )=0A= { return QSize((QCOORD)(s.wd*c), (QCOORD)(s.ht*c)); }=0A= =0A= inline QSize &QSize::operator/=3D( int c )=0A= {=0A= =0A= if ( c =3D=3D 0 )=0A= warningDivByZero();=0A= =0A= wd/=3D(QCOORD)c; ht/=3D(QCOORD)c;=0A= return *this;=0A= }=0A= =0A= inline QSize &QSize::operator/=3D( double c )=0A= {=0A= =0A= if ( c =3D=3D 0.0 )=0A= warningDivByZero();=0A= =0A= wd=3D(QCOORD)(wd/c); ht=3D(QCOORD)(ht/c);=0A= return *this;=0A= }=0A= =0A= inline const QSize operator/( const QSize &s, int c )=0A= {=0A= =0A= if ( c =3D=3D 0 )=0A= QSize::warningDivByZero();=0A= =0A= return QSize(s.wd/c, s.ht/c);=0A= }=0A= =0A= inline const QSize operator/( const QSize &s, double c )=0A= {=0A= =0A= if ( c =3D=3D 0.0 )=0A= QSize::warningDivByZero();=0A= =0A= return QSize((QCOORD)(s.wd/c), (QCOORD)(s.ht/c));=0A= }=0A= =0A= inline QSize QSize::expandedTo( const QSize & otherSize ) const=0A= {=0A= return QSize( ((otherSize.wd) < (wd) ? (wd) : (otherSize.wd)), = ((otherSize.ht) < (ht) ? (ht) : (otherSize.ht)) );=0A= }=0A= =0A= inline QSize QSize::boundedTo( const QSize & otherSize ) const=0A= {=0A= return QSize( ((wd) < (otherSize.wd) ? (wd) : (otherSize.wd)), ((ht) = < (otherSize.ht) ? (ht) : (otherSize.ht)) );=0A= }=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qrect.h= " 2=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= class QRect=0A= {=0A= public:=0A= QRect() { x1 =3D y1 =3D 0; x2 =3D y2 =3D -1; }=0A= QRect( const QPoint &topleft, const QPoint &bottomright );=0A= QRect( const QPoint &topleft, const QSize &size );=0A= QRect( int left, int top, int width, int height );=0A= =0A= bool isNull() const;=0A= bool isEmpty() const;=0A= bool isValid() const;=0A= QRect normalize() const;=0A= =0A= int left() const;=0A= int top() const;=0A= int right() const;=0A= int bottom() const;=0A= =0A= QCOORD &rLeft();=0A= QCOORD &rTop();=0A= QCOORD &rRight();=0A= QCOORD &rBottom();=0A= =0A= int x() const;=0A= int y() const;=0A= void setLeft( int pos );=0A= void setTop( int pos );=0A= void setRight( int pos );=0A= void setBottom( int pos );=0A= void setX( int x );=0A= void setY( int y );=0A= =0A= QPoint topLeft() const;=0A= QPoint bottomRight() const;=0A= QPoint topRight() const;=0A= QPoint bottomLeft() const;=0A= QPoint center() const;=0A= =0A= void rect( int *x, int *y, int *w, int *h ) const;=0A= void coords( int *x1, int *y1, int *x2, int *y2 ) const;=0A= =0A= void moveTopLeft( const QPoint &p );=0A= void moveBottomRight( const QPoint &p );=0A= void moveTopRight( const QPoint &p );=0A= void moveBottomLeft( const QPoint &p );=0A= void moveCenter( const QPoint &p );=0A= void moveBy( int dx, int dy );=0A= =0A= void setRect( int x, int y, int w, int h );=0A= void setCoords( int x1, int y1, int x2, int y2 );=0A= void addCoords( int x1, int y1, int x2, int y2 );=0A= =0A= QSize size() const;=0A= int width() const;=0A= int height() const;=0A= void setWidth( int w );=0A= void setHeight( int h );=0A= void setSize( const QSize &s );=0A= =0A= QRect operator|(const QRect &r) const;=0A= QRect operator&(const QRect &r) const;=0A= QRect& operator|=3D(const QRect &r);=0A= QRect& operator&=3D(const QRect &r);=0A= =0A= bool contains( const QPoint &p, bool proper=3DFALSE ) const;=0A= bool contains( int x, int y, bool proper=3DFALSE ) const;=0A= bool contains( const QRect &r, bool proper=3DFALSE ) const;=0A= QRect unite( const QRect &r ) const;=0A= QRect intersect( const QRect &r ) const;=0A= bool intersects( const QRect &r ) const;=0A= =0A= friend bool operator=3D=3D( const QRect &, const QRect & );=0A= friend bool operator!=3D( const QRect &, const QRect & );=0A= =0A= private:=0A= =0A= =0A= =0A= =0A= =0A= =0A= QCOORD x1;=0A= QCOORD y1;=0A= QCOORD x2;=0A= QCOORD y2;=0A= =0A= };=0A= =0A= bool operator=3D=3D( const QRect &, const QRect & );=0A= bool operator!=3D( const QRect &, const QRect & );=0A= =0A= =0A= =0A= =0A= =0A= =0A= QDataStream &operator<<( QDataStream &, const QRect & );=0A= QDataStream &operator>>( QDataStream &, QRect & );=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline QRect::QRect( int left, int top, int width, int height )=0A= {=0A= x1 =3D (QCOORD)left;=0A= y1 =3D (QCOORD)top;=0A= x2 =3D (QCOORD)(left+width-1);=0A= y2 =3D (QCOORD)(top+height-1);=0A= }=0A= =0A= inline bool QRect::isNull() const=0A= { return x2 =3D=3D x1-1 && y2 =3D=3D y1-1; }=0A= =0A= inline bool QRect::isEmpty() const=0A= { return x1 > x2 || y1 > y2; }=0A= =0A= inline bool QRect::isValid() const=0A= { return x1 <=3D x2 && y1 <=3D y2; }=0A= =0A= inline int QRect::left() const=0A= { return x1; }=0A= =0A= inline int QRect::top() const=0A= { return y1; }=0A= =0A= inline int QRect::right() const=0A= { return x2; }=0A= =0A= inline int QRect::bottom() const=0A= { return y2; }=0A= =0A= inline QCOORD &QRect::rLeft()=0A= { return x1; }=0A= =0A= inline QCOORD & QRect::rTop()=0A= { return y1; }=0A= =0A= inline QCOORD & QRect::rRight()=0A= { return x2; }=0A= =0A= inline QCOORD & QRect::rBottom()=0A= { return y2; }=0A= =0A= inline int QRect::x() const=0A= { return x1; }=0A= =0A= inline int QRect::y() const=0A= { return y1; }=0A= =0A= inline void QRect::setLeft( int pos )=0A= { x1 =3D (QCOORD)pos; }=0A= =0A= inline void QRect::setTop( int pos )=0A= { y1 =3D (QCOORD)pos; }=0A= =0A= inline void QRect::setRight( int pos )=0A= { x2 =3D (QCOORD)pos; }=0A= =0A= inline void QRect::setBottom( int pos )=0A= { y2 =3D (QCOORD)pos; }=0A= =0A= inline void QRect::setX( int x )=0A= { x1 =3D (QCOORD)x; }=0A= =0A= inline void QRect::setY( int y )=0A= { y1 =3D (QCOORD)y; }=0A= =0A= inline QPoint QRect::topLeft() const=0A= { return QPoint(x1, y1); }=0A= =0A= inline QPoint QRect::bottomRight() const=0A= { return QPoint(x2, y2); }=0A= =0A= inline QPoint QRect::topRight() const=0A= { return QPoint(x2, y1); }=0A= =0A= inline QPoint QRect::bottomLeft() const=0A= { return QPoint(x1, y2); }=0A= =0A= inline QPoint QRect::center() const=0A= { return QPoint((x1+x2)/2, (y1+y2)/2); }=0A= =0A= inline int QRect::width() const=0A= { return x2 - x1 + 1; }=0A= =0A= inline int QRect::height() const=0A= { return y2 - y1 + 1; }=0A= =0A= inline QSize QRect::size() const=0A= { return QSize(x2-x1+1, y2-y1+1); }=0A= =0A= inline bool QRect::contains( int x, int y, bool proper ) const=0A= {=0A= if ( proper )=0A= return x > x1 && x < x2 &&=0A= y > y1 && y < y2;=0A= else=0A= return x >=3D x1 && x <=3D x2 &&=0A= y >=3D y1 && y <=3D y2;=0A= }=0A= # 44 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion= .h" 2=0A= =0A= =0A= =0A= class QRegion=0A= {=0A= public:=0A= enum RegionType { Rectangle, Ellipse };=0A= =0A= QRegion();=0A= QRegion( int x, int y, int w, int h, RegionType =3D Rectangle );=0A= QRegion( const QRect &, RegionType =3D Rectangle );=0A= QRegion( const QPointArray &, bool winding=3DFALSE );=0A= QRegion( const QRegion & );=0A= QRegion( const QBitmap & );=0A= ~QRegion();=0A= QRegion &operator=3D( const QRegion & );=0A= =0A= bool isNull() const;=0A= bool isEmpty() const;=0A= =0A= bool contains( const QPoint &p ) const;=0A= bool contains( const QRect &r ) const;=0A= =0A= void translate( int dx, int dy );=0A= =0A= QRegion unite( const QRegion & ) const;=0A= QRegion intersect( const QRegion &) const;=0A= QRegion subtract( const QRegion & ) const;=0A= QRegion eor( const QRegion & ) const;=0A= =0A= QRect boundingRect() const;=0A= QMemArray rects() const;=0A= void setRects( const QRect *, int );=0A= =0A= const QRegion operator|( const QRegion & ) const;=0A= const QRegion operator+( const QRegion & ) const;=0A= const QRegion operator&( const QRegion & ) const;=0A= const QRegion operator-( const QRegion & ) const;=0A= const QRegion operator^( const QRegion & ) const;=0A= QRegion& operator|=3D( const QRegion & );=0A= QRegion& operator+=3D( const QRegion & );=0A= QRegion& operator&=3D( const QRegion & );=0A= QRegion& operator-=3D( const QRegion & );=0A= QRegion& operator^=3D( const QRegion & );=0A= =0A= bool operator=3D=3D( const QRegion & ) const;=0A= bool operator!=3D( const QRegion &r ) const=0A= { return !(operator=3D=3D(r)); }=0A= =0A= =0A= =0A= =0A= Region handle() const { return data->rgn; }=0A= # 105 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion= .h"=0A= friend QDataStream &operator<<( QDataStream &, const QRegion & );=0A= friend QDataStream &operator>>( QDataStream &, QRegion & );=0A= =0A= private:=0A= QRegion( bool );=0A= QRegion copy() const;=0A= void detach();=0A= =0A= =0A= =0A= =0A= =0A= =0A= void exec( const QByteArray &, int ver =3D 0 );=0A= struct QRegionData : public QShared {=0A= =0A= =0A= =0A= Region rgn;=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= bool is_null;=0A= } *data;=0A= };=0A= # 153 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qregion= .h"=0A= QDataStream &operator<<( QDataStream &, const QRegion & );=0A= QDataStream &operator>>( QDataStream &, QRegion & );=0A= # 44 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.= h" 2=0A= =0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmime.h= " 1=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmime.h= "=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"= 1=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qdatast= ream.h" 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qdatast= ream.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qiodevi= ce.h" 1=0A= # 95 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qiodevi= ce.h"=0A= class QIODevice=0A= {=0A= public:=0A= =0A= =0A= =0A= typedef Q_ULONG Offset;=0A= =0A= =0A= QIODevice();=0A= virtual ~QIODevice();=0A= =0A= int flags() const { return ioMode; }=0A= int mode() const { return ioMode & 0x00ff; }=0A= int state() const { return ioMode & 0xf000; }=0A= =0A= bool isDirectAccess() const { return ((ioMode & 0x0100) =3D=3D = 0x0100); }=0A= bool isSequentialAccess() const { return ((ioMode & 0x0200) =3D=3D = 0x0200); }=0A= bool isCombinedAccess() const { return ((ioMode & 0x0300) =3D=3D = 0x0300); }=0A= bool isBuffered() const { return ((ioMode & 0x0040) !=3D 0x0040); }=0A= bool isRaw() const { return ((ioMode & 0x0040) =3D=3D 0x0040); }=0A= bool isSynchronous() const { return ((ioMode & 0x0080) !=3D 0x0080); = }=0A= bool isAsynchronous() const { return ((ioMode & 0x0080) =3D=3D = 0x0080); }=0A= bool isTranslated() const { return ((ioMode & 0x0010) =3D=3D = 0x0010); }=0A= bool isReadable() const { return ((ioMode & 0x0001) =3D=3D 0x0001); }=0A= bool isWritable() const { return ((ioMode & 0x0002) =3D=3D 0x0002); }=0A= bool isReadWrite() const { return ((ioMode & 0x0003) =3D=3D 0x0003); = }=0A= bool isInactive() const { return state() =3D=3D 0; }=0A= bool isOpen() const { return state() =3D=3D 0x1000; }=0A= =0A= int status() const { return ioSt; }=0A= void resetStatus() { ioSt =3D 0; }=0A= =0A= virtual bool open( int mode ) =3D 0;=0A= virtual void close() =3D 0;=0A= virtual void flush() =3D 0;=0A= =0A= virtual Offset size() const =3D 0;=0A= virtual Offset at() const;=0A= virtual bool at( Offset );=0A= virtual bool atEnd() const;=0A= bool reset() { return at(0); }=0A= =0A= virtual Q_LONG readBlock( char *data, Q_ULONG maxlen ) =3D 0;=0A= virtual Q_LONG writeBlock( const char *data, Q_ULONG len ) =3D 0;=0A= virtual Q_LONG readLine( char *data, Q_ULONG maxlen );=0A= Q_LONG writeBlock( const QByteArray& data );=0A= virtual QByteArray readAll();=0A= =0A= virtual int getch() =3D 0;=0A= virtual int putch( int ) =3D 0;=0A= virtual int ungetch( int ) =3D 0;=0A= =0A= protected:=0A= void setFlags( int f ) { ioMode =3D f; }=0A= void setType( int );=0A= void setMode( int );=0A= void setState( int );=0A= void setStatus( int );=0A= Offset ioIndex;=0A= =0A= private:=0A= int ioMode;=0A= int ioSt;=0A= =0A= private:=0A= =0A= QIODevice( const QIODevice & );=0A= QIODevice &operator=3D( const QIODevice & );=0A= =0A= };=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qdatast= ream.h" 2=0A= =0A= =0A= =0A= =0A= class QDataStream=0A= {=0A= public:=0A= QDataStream();=0A= QDataStream( QIODevice * );=0A= QDataStream( QByteArray, int mode );=0A= virtual ~QDataStream();=0A= =0A= QIODevice *device() const;=0A= void setDevice( QIODevice * );=0A= void unsetDevice();=0A= =0A= bool atEnd() const;=0A= bool eof() const;=0A= =0A= enum ByteOrder { BigEndian, LittleEndian };=0A= int byteOrder() const;=0A= void setByteOrder( int );=0A= =0A= bool isPrintableData() const;=0A= void setPrintableData( bool );=0A= =0A= int version() const;=0A= void setVersion( int );=0A= =0A= QDataStream &operator>>( Q_INT8 &i );=0A= QDataStream &operator>>( Q_UINT8 &i );=0A= QDataStream &operator>>( Q_INT16 &i );=0A= QDataStream &operator>>( Q_UINT16 &i );=0A= QDataStream &operator>>( Q_INT32 &i );=0A= QDataStream &operator>>( Q_UINT32 &i );=0A= QDataStream &operator>>( Q_LONG &i );=0A= QDataStream &operator>>( Q_ULONG &i );=0A= =0A= QDataStream &operator>>( float &f );=0A= QDataStream &operator>>( double &f );=0A= QDataStream &operator>>( char *&str );=0A= =0A= QDataStream &operator<<( Q_INT8 i );=0A= QDataStream &operator<<( Q_UINT8 i );=0A= QDataStream &operator<<( Q_INT16 i );=0A= QDataStream &operator<<( Q_UINT16 i );=0A= QDataStream &operator<<( Q_INT32 i );=0A= QDataStream &operator<<( Q_UINT32 i );=0A= QDataStream &operator<<( Q_LONG i );=0A= QDataStream &operator<<( Q_ULONG i );=0A= QDataStream &operator<<( float f );=0A= QDataStream &operator<<( double f );=0A= QDataStream &operator<<( const char *str );=0A= =0A= QDataStream &readBytes( char *&, uint &len );=0A= QDataStream &readRawBytes( char *, uint len );=0A= =0A= QDataStream &writeBytes( const char *, uint len );=0A= QDataStream &writeRawBytes( const char *, uint len );=0A= =0A= private:=0A= QIODevice *dev;=0A= bool owndev;=0A= int byteorder;=0A= bool printable;=0A= bool noswap;=0A= int ver;=0A= =0A= private:=0A= =0A= QDataStream( const QDataStream & );=0A= QDataStream &operator=3D( const QDataStream & );=0A= =0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= inline QIODevice *QDataStream::device() const=0A= { return dev; }=0A= =0A= inline bool QDataStream::atEnd() const=0A= { return dev ? dev->atEnd() : TRUE; }=0A= =0A= inline bool QDataStream::eof() const=0A= { return atEnd(); }=0A= =0A= inline int QDataStream::byteOrder() const=0A= { return byteorder; }=0A= =0A= inline bool QDataStream::isPrintableData() const=0A= { return printable; }=0A= =0A= inline void QDataStream::setPrintableData( bool p )=0A= { printable =3D p; }=0A= =0A= inline int QDataStream::version() const=0A= { return ver; }=0A= =0A= inline void QDataStream::setVersion( int v )=0A= { ver =3D v; }=0A= =0A= inline QDataStream &QDataStream::operator>>( Q_UINT8 &i )=0A= { return *this >> (Q_INT8&)i; }=0A= =0A= inline QDataStream &QDataStream::operator>>( Q_UINT16 &i )=0A= { return *this >> (Q_INT16&)i; }=0A= =0A= inline QDataStream &QDataStream::operator>>( Q_UINT32 &i )=0A= { return *this >> (Q_INT32&)i; }=0A= =0A= inline QDataStream &QDataStream::operator>>( Q_ULONG &i )=0A= { return *this >> (Q_LONG&)i; }=0A= =0A= inline QDataStream &QDataStream::operator<<( Q_UINT8 i )=0A= { return *this << (Q_INT8)i; }=0A= =0A= inline QDataStream &QDataStream::operator<<( Q_UINT16 i )=0A= { return *this << (Q_INT16)i; }=0A= =0A= inline QDataStream &QDataStream::operator<<( Q_UINT32 i )=0A= { return *this << (Q_INT32)i; }=0A= =0A= inline QDataStream &QDataStream::operator<<( Q_ULONG i )=0A= { return *this << (Q_LONG)i; }=0A= # 44 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"= 2=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qpair.h= " 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qpair.h= "=0A= template =0A= struct QPair=0A= {=0A= typedef T1 first_type;=0A= typedef T2 second_type;=0A= =0A= QPair()=0A= : first( T1() ), second( T2() )=0A= {}=0A= QPair( const T1& t1, const T2& t2 )=0A= : first( t1 ), second( t2 )=0A= {}=0A= =0A= T1 first;=0A= T2 second;=0A= };=0A= =0A= template =0A= inline bool operator=3D=3D( const QPair& x, const QPair& = y )=0A= {=0A= return x.first =3D=3D y.first && x.second =3D=3D y.second;=0A= }=0A= =0A= template =0A= inline bool operator<( const QPair& x, const QPair& y )=0A= {=0A= =0A= =0A= =0A= return x.first < y.first || ( !( y.first < x.first ) && x.second < = y.second );=0A= }=0A= =0A= template =0A= inline QPair qMakePair( const T1& x, const T2& y )=0A= {=0A= return QPair( x, y );=0A= }=0A= # 45 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"= 2=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h" = 1=0A= # 42 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h"=0A= # 1 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtextst= ream.h" 1=0A= # 48 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtextst= ream.h"=0A= class QTextCodec;=0A= class QTextDecoder;=0A= =0A= class QTextStreamPrivate;=0A= =0A= class QTextStream=0A= {=0A= public:=0A= enum Encoding { Locale, Latin1, Unicode, UnicodeNetworkOrder,=0A= UnicodeReverse, RawUnicode, UnicodeUTF8 };=0A= =0A= void setEncoding( Encoding );=0A= =0A= void setCodec( QTextCodec* );=0A= =0A= =0A= =0A= =0A= QTextStream();=0A= QTextStream( QIODevice * );=0A= QTextStream( QString*, int mode );=0A= QTextStream( QString&, int mode );=0A= QTextStream( QByteArray, int mode );=0A= QTextStream( FILE *, int mode );=0A= virtual ~QTextStream();=0A= =0A= QIODevice *device() const;=0A= void setDevice( QIODevice * );=0A= void unsetDevice();=0A= =0A= bool atEnd() const;=0A= bool eof() const;=0A= =0A= QTextStream &operator>>( QChar & );=0A= QTextStream &operator>>( char & );=0A= QTextStream &operator>>( signed short & );=0A= QTextStream &operator>>( unsigned short & );=0A= QTextStream &operator>>( signed int & );=0A= QTextStream &operator>>( unsigned int & );=0A= QTextStream &operator>>( signed long & );=0A= QTextStream &operator>>( unsigned long & );=0A= QTextStream &operator>>( float & );=0A= QTextStream &operator>>( double & );=0A= QTextStream &operator>>( char * );=0A= QTextStream &operator>>( QString & );=0A= QTextStream &operator>>( QCString & );=0A= =0A= QTextStream &operator<<( QChar );=0A= QTextStream &operator<<( char );=0A= QTextStream &operator<<( signed short );=0A= QTextStream &operator<<( unsigned short );=0A= QTextStream &operator<<( signed int );=0A= QTextStream &operator<<( unsigned int );=0A= QTextStream &operator<<( signed long );=0A= QTextStream &operator<<( unsigned long );=0A= QTextStream &operator<<( float );=0A= QTextStream &operator<<( double );=0A= QTextStream &operator<<( const char* );=0A= QTextStream &operator<<( const QString & );=0A= QTextStream &operator<<( const QCString & );=0A= QTextStream &operator<<( void * );=0A= =0A= QTextStream &readRawBytes( char *, uint len );=0A= QTextStream &writeRawBytes( const char* , uint len );=0A= =0A= QString readLine();=0A= QString read();=0A= void skipWhiteSpace();=0A= =0A= enum {=0A= skipws =3D 0x0001,=0A= left =3D 0x0002,=0A= right =3D 0x0004,=0A= internal =3D 0x0008,=0A= bin =3D 0x0010,=0A= oct =3D 0x0020,=0A= dec =3D 0x0040,=0A= hex =3D 0x0080,=0A= showbase =3D 0x0100,=0A= showpoint =3D 0x0200,=0A= uppercase =3D 0x0400,=0A= showpos =3D 0x0800,=0A= scientific=3D 0x1000,=0A= fixed =3D 0x2000=0A= };=0A= =0A= static const int basefield;=0A= static const int adjustfield;=0A= static const int floatfield;=0A= =0A= int flags() const;=0A= int flags( int f );=0A= int setf( int bits );=0A= int setf( int bits, int mask );=0A= int unsetf( int bits );=0A= =0A= void reset();=0A= =0A= int width() const;=0A= int width( int );=0A= int fill() const;=0A= int fill( int );=0A= int precision() const;=0A= int precision( int );=0A= =0A= private:=0A= long input_int();=0A= void init();=0A= QTextStream &output_int( int, ulong, bool );=0A= QIODevice *dev;=0A= =0A= bool isNetworkOrder() { return internalOrder =3D=3D FALSE; }=0A= =0A= =0A= int fflags;=0A= int fwidth;=0A= int fillchar;=0A= int fprec;=0A= bool fstrm;=0A= bool owndev;=0A= QTextCodec *mapper;=0A= QTextStreamPrivate * d;=0A= QChar ungetcBuf;=0A= bool latin1;=0A= bool internalOrder;=0A= bool doUnicodeHeader;=0A= void *reserved_ptr;=0A= =0A= QChar eat_ws();=0A= uint ts_getline( QChar* );=0A= void ts_ungetc( QChar );=0A= QChar ts_getc();=0A= uint ts_getbuf( QChar*, uint );=0A= void ts_putc(int);=0A= void ts_putc(QChar);=0A= bool ts_isspace(QChar);=0A= bool ts_isdigit(QChar);=0A= ulong input_bin();=0A= ulong input_oct();=0A= ulong input_dec();=0A= ulong input_hex();=0A= double input_double();=0A= QTextStream &writeBlock( const char* p, uint len );=0A= QTextStream &writeBlock( const QChar* p, uint len );=0A= =0A= private:=0A= =0A= QTextStream( const QTextStream & );=0A= QTextStream &operator=3D( const QTextStream & );=0A= =0A= };=0A= =0A= typedef QTextStream QTS;=0A= =0A= class QTextIStream : public QTextStream {=0A= public:=0A= QTextIStream( const QString* s ) :=0A= QTextStream((QString*)s,0x0001) { }=0A= QTextIStream( QByteArray ba ) :=0A= QTextStream(ba,0x0001) { }=0A= QTextIStream( FILE *f ) :=0A= QTextStream(f,0x0001) { }=0A= };=0A= =0A= class QTextOStream : public QTextStream {=0A= public:=0A= QTextOStream( QString* s ) :=0A= QTextStream(s,0x0002) { }=0A= QTextOStream( QByteArray ba ) :=0A= QTextStream(ba,0x0002) { }=0A= QTextOStream( FILE *f ) :=0A= QTextStream(f,0x0002) { }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= inline QIODevice *QTextStream::device() const=0A= { return dev; }=0A= =0A= inline bool QTextStream::atEnd() const=0A= { return dev ? dev->atEnd() : FALSE; }=0A= =0A= inline bool QTextStream::eof() const=0A= { return atEnd(); }=0A= =0A= inline int QTextStream::flags() const=0A= { return fflags; }=0A= =0A= inline int QTextStream::flags( int f )=0A= { int oldf =3D fflags; fflags =3D f; return oldf; }=0A= =0A= inline int QTextStream::setf( int bits )=0A= { int oldf =3D fflags; fflags |=3D bits; return oldf; }=0A= =0A= inline int QTextStream::setf( int bits, int mask )=0A= { int oldf =3D fflags; fflags =3D (fflags & ~mask) | (bits & mask); = return oldf; }=0A= =0A= inline int QTextStream::unsetf( int bits )=0A= { int oldf =3D fflags; fflags &=3D ~bits; return oldf; }=0A= =0A= inline int QTextStream::width() const=0A= { return fwidth; }=0A= =0A= inline int QTextStream::width( int w )=0A= { int oldw =3D fwidth; fwidth =3D w; return oldw; }=0A= =0A= inline int QTextStream::fill() const=0A= { return fillchar; }=0A= =0A= inline int QTextStream::fill( int f )=0A= { int oldc =3D fillchar; fillchar =3D f; return oldc; }=0A= =0A= inline int QTextStream::precision() const=0A= { return fprec; }=0A= =0A= inline int QTextStream::precision( int p )=0A= { int oldp =3D fprec; fprec =3D p; return oldp; }=0A= =0A= =0A= =0A= =0A= inline QChar QTextStream::ts_getc()=0A= { QChar r; return ( ts_getbuf( &r,1 ) =3D=3D 1 ? r : = QChar((ushort)0xffff) ); }=0A= =0A= =0A= =0A= =0A= =0A= typedef QTextStream & (*QTSFUNC)(QTextStream &);=0A= typedef int (QTextStream::*QTSMFI)(int);=0A= =0A= class QTSManip {=0A= public:=0A= QTSManip( QTSMFI m, int a ) { mf=3Dm; arg=3Da; }=0A= void exec( QTextStream &s ) { (s.*mf)(arg); }=0A= private:=0A= QTSMFI mf;=0A= int arg;=0A= };=0A= =0A= inline QTextStream &operator>>( QTextStream &s, QTSFUNC f )=0A= { return (*f)( s ); }=0A= =0A= inline QTextStream &operator<<( QTextStream &s, QTSFUNC f )=0A= { return (*f)( s ); }=0A= =0A= inline QTextStream &operator<<( QTextStream &s, QTSManip m )=0A= { m.exec(s); return s; }=0A= =0A= QTextStream &bin( QTextStream &s );=0A= QTextStream &oct( QTextStream &s );=0A= QTextStream &dec( QTextStream &s );=0A= QTextStream &hex( QTextStream &s );=0A= QTextStream &endl( QTextStream &s );=0A= QTextStream &flush( QTextStream &s );=0A= QTextStream &ws( QTextStream &s );=0A= QTextStream &reset( QTextStream &s );=0A= =0A= inline QTSManip qSetW( int w )=0A= {=0A= QTSMFI func =3D &QTextStream::width;=0A= return QTSManip(func,w);=0A= }=0A= =0A= inline QTSManip qSetFill( int f )=0A= {=0A= QTSMFI func =3D &QTextStream::fill;=0A= return QTSManip(func,f);=0A= }=0A= =0A= inline QTSManip qSetPrecision( int p )=0A= {=0A= QTSMFI func =3D &QTextStream::precision;=0A= return QTSManip(func,p);=0A= }=0A= # 43 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h" = 2=0A= # 54 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h"=0A= template =0A= class QTextOStreamIterator=0A= {=0A= protected:=0A= QTextOStream& stream;=0A= QString separator;=0A= =0A= public:=0A= QTextOStreamIterator( QTextOStream& s) : stream( s ) {}=0A= QTextOStreamIterator( QTextOStream& s, const QString& sep )=0A= : stream( s ), separator( sep ) {}=0A= QTextOStreamIterator& operator=3D ( const T& x ) {=0A= stream << x;=0A= if ( !separator.isEmpty() )=0A= stream << separator;=0A= return *this;=0A= }=0A= QTextOStreamIterator& operator*() { return *this; }=0A= QTextOStreamIterator& operator++() { return *this; }=0A= QTextOStreamIterator& operator++(int) { return *this; }=0A= };=0A= =0A= =0A= template =0A= inline OutputIterator qCopy( InputIterator _begin, InputIterator _end,=0A= OutputIterator _dest )=0A= {=0A= while( _begin !=3D _end )=0A= *_dest++ =3D *_begin++;=0A= return _dest;=0A= }=0A= =0A= template =0A= inline BiOutputIterator qCopyBackward( BiIterator _begin, BiIterator = _end,=0A= BiOutputIterator _dest )=0A= {=0A= while ( _begin !=3D _end )=0A= *--_dest =3D *--_end;=0A= return _dest;=0A= }=0A= =0A= template =0A= inline bool qEqual( InputIterator1 first1, InputIterator1 last1, = InputIterator2 first2 )=0A= {=0A= for ( ; first1 !=3D last1; ++first1, ++first2 )=0A= if ( *first1 !=3D *first2 )=0A= return FALSE;=0A= return TRUE;=0A= }=0A= =0A= template =0A= inline void qFill( ForwardIterator first, ForwardIterator last, const T& = val )=0A= {=0A= for ( ; first !=3D last; ++first )=0A= *first =3D val;=0A= }=0A= # 126 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qtl.h"=0A= template =0A= inline InputIterator qFind( InputIterator first, InputIterator last,=0A= const T& val )=0A= {=0A= while ( first !=3D last && *first !=3D val )=0A= ++first;=0A= return first;=0A= }=0A= =0A= template =0A= inline void qCount( InputIterator first, InputIterator last, const T& = value,=0A= Size& n )=0A= {=0A= for ( ; first !=3D last; ++first )=0A= if ( *first =3D=3D value )=0A= ++n;=0A= }=0A= =0A= template =0A= inline void qSwap( T& _value1, T& _value2 )=0A= {=0A= T tmp =3D _value1;=0A= _value1 =3D _value2;=0A= _value2 =3D tmp;=0A= }=0A= =0A= =0A= template =0A= inline void qBubbleSort( InputIterator b, InputIterator e )=0A= {=0A= =0A= InputIterator last =3D e;=0A= --last;=0A= =0A= if ( last =3D=3D b )=0A= return;=0A= =0A= =0A= while( b !=3D last ) {=0A= bool swapped =3D FALSE;=0A= InputIterator swap_pos =3D b;=0A= InputIterator x =3D e;=0A= InputIterator y =3D x;=0A= y--;=0A= do {=0A= --x;=0A= --y;=0A= if ( *x < *y ) {=0A= swapped =3D TRUE;=0A= qSwap( *x, *y );=0A= swap_pos =3D y;=0A= }=0A= } while( y !=3D b );=0A= if ( !swapped )=0A= return;=0A= b =3D swap_pos;=0A= b++;=0A= }=0A= }=0A= =0A= =0A= template =0A= inline void qBubbleSort( Container &c )=0A= {=0A= qBubbleSort( c.begin(), c.end() );=0A= }=0A= =0A= =0A= template =0A= inline void qHeapSortPushDown( Value* heap, int first, int last )=0A= {=0A= int r =3D first;=0A= while( r <=3D last/2 ) {=0A= =0A= if ( last =3D=3D 2*r ) {=0A= =0A= if ( heap[r] > heap[ 2*r ] )=0A= qSwap( heap[r], heap[ 2*r ] );=0A= =0A= r =3D last;=0A= } else {=0A= if ( heap[r] > heap[ 2*r ] && heap[ 2*r ] <=3D heap[ 2*r+1 ] = ) {=0A= =0A= qSwap( heap[r], heap[ 2*r ] );=0A= r *=3D 2;=0A= } else if ( heap[r] > heap[ 2*r+1 ] &&=0A= heap[ 2*r+1 ] < heap[ 2*r ] ) {=0A= =0A= qSwap( heap[r], heap[ 2*r+1 ] );=0A= r =3D 2*r+1;=0A= } else {=0A= =0A= r =3D last;=0A= }=0A= }=0A= }=0A= }=0A= =0A= =0A= template =0A= inline void qHeapSortHelper( InputIterator b, InputIterator e, Value, = uint n )=0A= {=0A= =0A= InputIterator insert =3D b;=0A= Value* realheap =3D new Value[ n ];=0A= =0A= Value* heap =3D realheap - 1;=0A= int size =3D 0;=0A= for( ; insert !=3D e; ++insert ) {=0A= heap[++size] =3D *insert;=0A= int i =3D size;=0A= while( i > 1 && heap[i] < heap[ i / 2 ] ) {=0A= qSwap( heap[i], heap[ i / 2 ] );=0A= i /=3D 2;=0A= }=0A= }=0A= =0A= =0A= for( uint i =3D n; i > 0; i-- ) {=0A= *b++ =3D heap[1];=0A= if ( i > 1 ) {=0A= heap[1] =3D heap[i];=0A= qHeapSortPushDown( heap, 1, (int)i - 1 );=0A= }=0A= }=0A= =0A= delete[] realheap;=0A= }=0A= =0A= =0A= template =0A= inline void qHeapSort( InputIterator b, InputIterator e )=0A= {=0A= =0A= if ( b =3D=3D e )=0A= return;=0A= =0A= =0A= InputIterator it =3D b;=0A= uint n =3D 0;=0A= while ( it !=3D e ) {=0A= ++n;=0A= ++it;=0A= }=0A= =0A= =0A= =0A= qHeapSortHelper( b, e, *b, n );=0A= }=0A= =0A= =0A= template =0A= inline void qHeapSort( Container &c )=0A= {=0A= if ( c.begin() =3D=3D c.end() )=0A= return;=0A= =0A= =0A= =0A= qHeapSortHelper( c.begin(), c.end(), *(c.begin()), (uint)c.count() );=0A= }=0A= # 46 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"= 2=0A= =0A= =0A= =0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/map" 1 3=0A= # 65 "/usr/local/gcc3.1/include/g++-v3/map" 3=0A= =0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tree.h" 1 3=0A= # 91 "/usr/local/gcc3.1/include/g++-v3/bits/stl_tree.h" 3=0A= namespace std=0A= {=0A= enum _Rb_tree_color { _M_red =3D false, _M_black =3D true };=0A= =0A= struct _Rb_tree_node_base=0A= {=0A= typedef _Rb_tree_node_base* _Base_ptr;=0A= =0A= _Rb_tree_color _M_color;=0A= _Base_ptr _M_parent;=0A= _Base_ptr _M_left;=0A= _Base_ptr _M_right;=0A= =0A= static _Base_ptr=0A= _S_minimum(_Base_ptr __x)=0A= {=0A= while (__x->_M_left !=3D 0) __x =3D __x->_M_left;=0A= return __x;=0A= }=0A= =0A= static _Base_ptr=0A= _S_maximum(_Base_ptr __x)=0A= {=0A= while (__x->_M_right !=3D 0) __x =3D __x->_M_right;=0A= return __x;=0A= }=0A= };=0A= =0A= template=0A= struct _Rb_tree_node : public _Rb_tree_node_base=0A= {=0A= typedef _Rb_tree_node<_Val>* _Link_type;=0A= _Val _M_value_field;=0A= };=0A= =0A= struct _Rb_tree_base_iterator=0A= {=0A= typedef _Rb_tree_node_base::_Base_ptr _Base_ptr;=0A= typedef bidirectional_iterator_tag iterator_category;=0A= typedef ptrdiff_t difference_type;=0A= =0A= _Base_ptr _M_node;=0A= =0A= void=0A= _M_increment()=0A= {=0A= if (_M_node->_M_right !=3D 0)=0A= {=0A= _M_node =3D _M_node->_M_right;=0A= while (_M_node->_M_left !=3D 0)=0A= _M_node =3D _M_node->_M_left;=0A= }=0A= else=0A= {=0A= _Base_ptr __y =3D _M_node->_M_parent;=0A= while (_M_node =3D=3D __y->_M_right)=0A= {=0A= _M_node =3D __y;=0A= __y =3D __y->_M_parent;=0A= }=0A= if (_M_node->_M_right !=3D __y)=0A= _M_node =3D __y;=0A= }=0A= }=0A= =0A= void=0A= _M_decrement()=0A= {=0A= if (_M_node->_M_color =3D=3D _M_red=0A= && _M_node->_M_parent->_M_parent =3D=3D _M_node)=0A= _M_node =3D _M_node->_M_right;=0A= else if (_M_node->_M_left !=3D 0)=0A= {=0A= _Base_ptr __y =3D _M_node->_M_left;=0A= while (__y->_M_right !=3D 0)=0A= __y =3D __y->_M_right;=0A= _M_node =3D __y;=0A= }=0A= else=0A= {=0A= _Base_ptr __y =3D _M_node->_M_parent;=0A= while (_M_node =3D=3D __y->_M_left)=0A= {=0A= _M_node =3D __y;=0A= __y =3D __y->_M_parent;=0A= }=0A= _M_node =3D __y;=0A= }=0A= }=0A= };=0A= =0A= template=0A= struct _Rb_tree_iterator : public _Rb_tree_base_iterator=0A= {=0A= typedef _Val value_type;=0A= typedef _Ref reference;=0A= typedef _Ptr pointer;=0A= typedef _Rb_tree_iterator<_Val, _Val&, _Val*> iterator;=0A= typedef _Rb_tree_iterator<_Val, const _Val&, const _Val*>=0A= const_iterator;=0A= typedef _Rb_tree_iterator<_Val, _Ref, _Ptr> _Self;=0A= typedef _Rb_tree_node<_Val>* _Link_type;=0A= =0A= _Rb_tree_iterator() {}=0A= _Rb_tree_iterator(_Link_type __x) { _M_node =3D __x; }=0A= _Rb_tree_iterator(const iterator& __it) { _M_node =3D = __it._M_node; }=0A= =0A= reference=0A= operator*() const { return _Link_type(_M_node)->_M_value_field; }=0A= =0A= pointer=0A= operator->() const { return &(operator*()); }=0A= =0A= _Self&=0A= operator++()=0A= {=0A= _M_increment();=0A= return *this;=0A= }=0A= =0A= _Self=0A= operator++(int)=0A= {=0A= _Self __tmp =3D *this;=0A= _M_increment();=0A= return __tmp;=0A= }=0A= =0A= _Self&=0A= operator--() { _M_decrement(); return *this; }=0A= =0A= _Self=0A= operator--(int)=0A= {=0A= _Self __tmp =3D *this;=0A= _M_decrement();=0A= return __tmp;=0A= }=0A= };=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __x,=0A= const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __y)=0A= { return __x._M_node =3D=3D __y._M_node; }=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const _Rb_tree_iterator<_Val, const _Val&, const = _Val*>& __x,=0A= const _Rb_tree_iterator<_Val, _Val&, _Val*>& __y)=0A= { return __x._M_node =3D=3D __y._M_node; }=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const _Rb_tree_iterator<_Val, _Val&, _Val*>& __x,=0A= const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& = __y)=0A= { return __x._M_node =3D=3D __y._M_node; }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __x,=0A= const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __y)=0A= { return __x._M_node !=3D __y._M_node; }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const _Rb_tree_iterator<_Val, const _Val&, const = _Val*>& __x,=0A= const _Rb_tree_iterator<_Val, _Val&, _Val*>& __y)=0A= { return __x._M_node !=3D __y._M_node; }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const _Rb_tree_iterator<_Val, _Val&, _Val*>& __x,=0A= const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& = __y)=0A= { return __x._M_node !=3D __y._M_node; }=0A= =0A= inline void=0A= _Rb_tree_rotate_left(_Rb_tree_node_base* __x, _Rb_tree_node_base*& = __root)=0A= {=0A= _Rb_tree_node_base* __y =3D __x->_M_right;=0A= __x->_M_right =3D __y->_M_left;=0A= if (__y->_M_left !=3D0)=0A= __y->_M_left->_M_parent =3D __x;=0A= __y->_M_parent =3D __x->_M_parent;=0A= =0A= if (__x =3D=3D __root)=0A= __root =3D __y;=0A= else if (__x =3D=3D __x->_M_parent->_M_left)=0A= __x->_M_parent->_M_left =3D __y;=0A= else=0A= __x->_M_parent->_M_right =3D __y;=0A= __y->_M_left =3D __x;=0A= __x->_M_parent =3D __y;=0A= }=0A= =0A= inline void=0A= _Rb_tree_rotate_right(_Rb_tree_node_base* __x, _Rb_tree_node_base*& = __root)=0A= {=0A= _Rb_tree_node_base* __y =3D __x->_M_left;=0A= __x->_M_left =3D __y->_M_right;=0A= if (__y->_M_right !=3D 0)=0A= __y->_M_right->_M_parent =3D __x;=0A= __y->_M_parent =3D __x->_M_parent;=0A= =0A= if (__x =3D=3D __root)=0A= __root =3D __y;=0A= else if (__x =3D=3D __x->_M_parent->_M_right)=0A= __x->_M_parent->_M_right =3D __y;=0A= else=0A= __x->_M_parent->_M_left =3D __y;=0A= __y->_M_right =3D __x;=0A= __x->_M_parent =3D __y;=0A= }=0A= =0A= inline void=0A= _Rb_tree_rebalance(_Rb_tree_node_base* __x, _Rb_tree_node_base*& = __root)=0A= {=0A= __x->_M_color =3D _M_red;=0A= while (__x !=3D __root=0A= && __x->_M_parent->_M_color =3D=3D _M_red)=0A= {=0A= if (__x->_M_parent =3D=3D __x->_M_parent->_M_parent->_M_left)=0A= {=0A= _Rb_tree_node_base* __y =3D = __x->_M_parent->_M_parent->_M_right;=0A= if (__y && __y->_M_color =3D=3D _M_red)=0A= {=0A= __x->_M_parent->_M_color =3D _M_black;=0A= __y->_M_color =3D _M_black;=0A= __x->_M_parent->_M_parent->_M_color =3D _M_red;=0A= __x =3D __x->_M_parent->_M_parent;=0A= }=0A= else=0A= {=0A= if (__x =3D=3D __x->_M_parent->_M_right)=0A= {=0A= __x =3D __x->_M_parent;=0A= _Rb_tree_rotate_left(__x, __root);=0A= }=0A= __x->_M_parent->_M_color =3D _M_black;=0A= __x->_M_parent->_M_parent->_M_color =3D _M_red;=0A= _Rb_tree_rotate_right(__x->_M_parent->_M_parent, __root);=0A= }=0A= }=0A= else=0A= {=0A= _Rb_tree_node_base* __y =3D = __x->_M_parent->_M_parent->_M_left;=0A= if (__y && __y->_M_color =3D=3D _M_red)=0A= {=0A= __x->_M_parent->_M_color =3D _M_black;=0A= __y->_M_color =3D _M_black;=0A= __x->_M_parent->_M_parent->_M_color =3D _M_red;=0A= __x =3D __x->_M_parent->_M_parent;=0A= }=0A= else=0A= {=0A= if (__x =3D=3D __x->_M_parent->_M_left)=0A= {=0A= __x =3D __x->_M_parent;=0A= _Rb_tree_rotate_right(__x, __root);=0A= }=0A= __x->_M_parent->_M_color =3D _M_black;=0A= __x->_M_parent->_M_parent->_M_color =3D _M_red;=0A= _Rb_tree_rotate_left(__x->_M_parent->_M_parent, __root);=0A= }=0A= }=0A= }=0A= __root->_M_color =3D _M_black;=0A= }=0A= =0A= inline _Rb_tree_node_base*=0A= _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* __z,=0A= _Rb_tree_node_base*& __root,=0A= _Rb_tree_node_base*& __leftmost,=0A= _Rb_tree_node_base*& __rightmost)=0A= {=0A= _Rb_tree_node_base* __y =3D __z;=0A= _Rb_tree_node_base* __x =3D 0;=0A= _Rb_tree_node_base* __x_parent =3D 0;=0A= if (__y->_M_left =3D=3D 0)=0A= __x =3D __y->_M_right;=0A= else=0A= if (__y->_M_right =3D=3D 0)=0A= __x =3D __y->_M_left;=0A= else=0A= {=0A= =0A= __y =3D __y->_M_right;=0A= while (__y->_M_left !=3D 0)=0A= __y =3D __y->_M_left;=0A= __x =3D __y->_M_right;=0A= }=0A= if (__y !=3D __z)=0A= {=0A= =0A= __z->_M_left->_M_parent =3D __y;=0A= __y->_M_left =3D __z->_M_left;=0A= if (__y !=3D __z->_M_right)=0A= {=0A= __x_parent =3D __y->_M_parent;=0A= if (__x) __x->_M_parent =3D __y->_M_parent;=0A= __y->_M_parent->_M_left =3D __x;=0A= __y->_M_right =3D __z->_M_right;=0A= __z->_M_right->_M_parent =3D __y;=0A= }=0A= else=0A= __x_parent =3D __y;=0A= if (__root =3D=3D __z)=0A= __root =3D __y;=0A= else if (__z->_M_parent->_M_left =3D=3D __z)=0A= __z->_M_parent->_M_left =3D __y;=0A= else=0A= __z->_M_parent->_M_right =3D __y;=0A= __y->_M_parent =3D __z->_M_parent;=0A= std::swap(__y->_M_color, __z->_M_color);=0A= __y =3D __z;=0A= =0A= }=0A= else=0A= {=0A= __x_parent =3D __y->_M_parent;=0A= if (__x)=0A= __x->_M_parent =3D __y->_M_parent;=0A= if (__root =3D=3D __z)=0A= __root =3D __x;=0A= else=0A= if (__z->_M_parent->_M_left =3D=3D __z)=0A= __z->_M_parent->_M_left =3D __x;=0A= else=0A= __z->_M_parent->_M_right =3D __x;=0A= if (__leftmost =3D=3D __z)=0A= if (__z->_M_right =3D=3D 0)=0A= __leftmost =3D __z->_M_parent;=0A= =0A= else=0A= __leftmost =3D _Rb_tree_node_base::_S_minimum(__x);=0A= if (__rightmost =3D=3D __z)=0A= if (__z->_M_left =3D=3D 0)=0A= __rightmost =3D __z->_M_parent;=0A= =0A= else=0A= __rightmost =3D _Rb_tree_node_base::_S_maximum(__x);=0A= }=0A= if (__y->_M_color !=3D _M_red)=0A= {=0A= while (__x !=3D __root && (__x =3D=3D 0 || __x->_M_color =3D=3D = _M_black))=0A= if (__x =3D=3D __x_parent->_M_left)=0A= {=0A= _Rb_tree_node_base* __w =3D __x_parent->_M_right;=0A= if (__w->_M_color =3D=3D _M_red)=0A= {=0A= __w->_M_color =3D _M_black;=0A= __x_parent->_M_color =3D _M_red;=0A= _Rb_tree_rotate_left(__x_parent, __root);=0A= __w =3D __x_parent->_M_right;=0A= }=0A= if ((__w->_M_left =3D=3D 0 ||=0A= __w->_M_left->_M_color =3D=3D _M_black) &&=0A= (__w->_M_right =3D=3D 0 ||=0A= __w->_M_right->_M_color =3D=3D _M_black))=0A= {=0A= __w->_M_color =3D _M_red;=0A= __x =3D __x_parent;=0A= __x_parent =3D __x_parent->_M_parent;=0A= }=0A= else=0A= {=0A= if (__w->_M_right =3D=3D 0=0A= || __w->_M_right->_M_color =3D=3D _M_black)=0A= {=0A= if (__w->_M_left) __w->_M_left->_M_color =3D = _M_black;=0A= __w->_M_color =3D _M_red;=0A= _Rb_tree_rotate_right(__w, __root);=0A= __w =3D __x_parent->_M_right;=0A= }=0A= __w->_M_color =3D __x_parent->_M_color;=0A= __x_parent->_M_color =3D _M_black;=0A= if (__w->_M_right)=0A= __w->_M_right->_M_color =3D _M_black;=0A= _Rb_tree_rotate_left(__x_parent, __root);=0A= break;=0A= }=0A= }=0A= else=0A= {=0A= =0A= _Rb_tree_node_base* __w =3D __x_parent->_M_left;=0A= if (__w->_M_color =3D=3D _M_red)=0A= {=0A= __w->_M_color =3D _M_black;=0A= __x_parent->_M_color =3D _M_red;=0A= _Rb_tree_rotate_right(__x_parent, __root);=0A= __w =3D __x_parent->_M_left;=0A= }=0A= if ((__w->_M_right =3D=3D 0 ||=0A= __w->_M_right->_M_color =3D=3D _M_black) &&=0A= (__w->_M_left =3D=3D 0 ||=0A= __w->_M_left->_M_color =3D=3D _M_black))=0A= {=0A= __w->_M_color =3D _M_red;=0A= __x =3D __x_parent;=0A= __x_parent =3D __x_parent->_M_parent;=0A= }=0A= else=0A= {=0A= if (__w->_M_left =3D=3D 0 || __w->_M_left->_M_color = =3D=3D _M_black)=0A= {=0A= if (__w->_M_right) __w->_M_right->_M_color =3D = _M_black;=0A= __w->_M_color =3D _M_red;=0A= _Rb_tree_rotate_left(__w, __root);=0A= __w =3D __x_parent->_M_left;=0A= }=0A= __w->_M_color =3D __x_parent->_M_color;=0A= __x_parent->_M_color =3D _M_black;=0A= if (__w->_M_left)=0A= __w->_M_left->_M_color =3D _M_black;=0A= _Rb_tree_rotate_right(__x_parent, __root);=0A= break;=0A= }=0A= }=0A= if (__x) __x->_M_color =3D _M_black;=0A= }=0A= return __y;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template=0A= class _Rb_tree_alloc_base=0A= {=0A= public:=0A= typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type = allocator_type;=0A= =0A= allocator_type=0A= get_allocator() const { return _M_node_allocator; }=0A= =0A= _Rb_tree_alloc_base(const allocator_type& __a)=0A= : _M_node_allocator(__a), _M_header(0) {}=0A= =0A= protected:=0A= typename _Alloc_traits<_Rb_tree_node<_Tp>, _Alloc>::allocator_type=0A= _M_node_allocator;=0A= =0A= _Rb_tree_node<_Tp>* _M_header;=0A= =0A= _Rb_tree_node<_Tp>*=0A= _M_get_node() { return _M_node_allocator.allocate(1); }=0A= =0A= void=0A= _M_put_node(_Rb_tree_node<_Tp>* __p)=0A= { _M_node_allocator.deallocate(__p, 1); }=0A= };=0A= =0A= =0A= template=0A= class _Rb_tree_alloc_base<_Tp, _Alloc, true>=0A= {=0A= public:=0A= typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type = allocator_type;=0A= allocator_type get_allocator() const { return allocator_type(); }=0A= =0A= _Rb_tree_alloc_base(const allocator_type&) : _M_header(0) {}=0A= =0A= protected:=0A= _Rb_tree_node<_Tp>* _M_header;=0A= =0A= typedef typename _Alloc_traits<_Rb_tree_node<_Tp>, = _Alloc>::_Alloc_type=0A= _Alloc_type;=0A= =0A= _Rb_tree_node<_Tp>*=0A= _M_get_node() { return _Alloc_type::allocate(1); }=0A= =0A= void=0A= _M_put_node(_Rb_tree_node<_Tp>* __p) { = _Alloc_type::deallocate(__p, 1); }=0A= };=0A= =0A= template=0A= struct _Rb_tree_base : public _Rb_tree_alloc_base<_Tp, _Alloc,=0A= _Alloc_traits<_Tp, = _Alloc>::_S_instanceless>=0A= {=0A= typedef _Rb_tree_alloc_base<_Tp,=0A= _Alloc, _Alloc_traits<_Tp, _Alloc>::_S_instanceless> _Base;=0A= typedef typename _Base::allocator_type allocator_type;=0A= =0A= _Rb_tree_base(const allocator_type& __a)=0A= : _Base(__a) { _M_header =3D _M_get_node(); }=0A= ~_Rb_tree_base() { _M_put_node(_M_header); }=0A= };=0A= =0A= =0A= template >=0A= class _Rb_tree : protected _Rb_tree_base<_Val, _Alloc>=0A= {=0A= typedef _Rb_tree_base<_Val, _Alloc> _Base;=0A= =0A= protected:=0A= typedef _Rb_tree_node_base* _Base_ptr;=0A= typedef _Rb_tree_node<_Val> _Rb_tree_node;=0A= =0A= public:=0A= typedef _Key key_type;=0A= typedef _Val value_type;=0A= typedef value_type* pointer;=0A= typedef const value_type* const_pointer;=0A= typedef value_type& reference;=0A= typedef const value_type& const_reference;=0A= typedef _Rb_tree_node* _Link_type;=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= =0A= typedef typename _Base::allocator_type allocator_type;=0A= allocator_type get_allocator() const { return = _Base::get_allocator(); }=0A= =0A= protected:=0A= using _Base::_M_get_node;=0A= using _Base::_M_put_node;=0A= using _Base::_M_header;=0A= =0A= _Link_type=0A= _M_create_node(const value_type& __x)=0A= {=0A= _Link_type __tmp =3D _M_get_node();=0A= try=0A= { _Construct(&__tmp->_M_value_field, __x); }=0A= catch(...)=0A= {=0A= _M_put_node(__tmp);=0A= throw;=0A= }=0A= return __tmp;=0A= }=0A= =0A= _Link_type=0A= _M_clone_node(_Link_type __x)=0A= {=0A= _Link_type __tmp =3D _M_create_node(__x->_M_value_field);=0A= __tmp->_M_color =3D __x->_M_color;=0A= __tmp->_M_left =3D 0;=0A= __tmp->_M_right =3D 0;=0A= return __tmp;=0A= }=0A= =0A= void=0A= destroy_node(_Link_type __p)=0A= {=0A= _Destroy(&__p->_M_value_field);=0A= _M_put_node(__p);=0A= }=0A= =0A= size_type _M_node_count;=0A= _Compare _M_key_compare;=0A= =0A= _Link_type&=0A= _M_root() const { return (_Link_type&) _M_header->_M_parent; }=0A= =0A= _Link_type&=0A= _M_leftmost() const { return (_Link_type&) _M_header->_M_left; }=0A= =0A= _Link_type&=0A= _M_rightmost() const { return (_Link_type&) _M_header->_M_right; }=0A= =0A= static _Link_type&=0A= _S_left(_Link_type __x) { return (_Link_type&)(__x->_M_left); }=0A= =0A= static _Link_type&=0A= _S_right(_Link_type __x) { return (_Link_type&)(__x->_M_right); }=0A= =0A= static _Link_type&=0A= _S_parent(_Link_type __x) { return (_Link_type&)(__x->_M_parent); }=0A= =0A= static reference=0A= _S_value(_Link_type __x) { return __x->_M_value_field; }=0A= =0A= static const _Key&=0A= _S_key(_Link_type __x) { return _KeyOfValue()(_S_value(__x)); }=0A= =0A= static _Rb_tree_color&=0A= _S_color(_Link_type __x) { return __x->_M_color; }=0A= =0A= static _Link_type&=0A= _S_left(_Base_ptr __x) { return (_Link_type&)(__x->_M_left); }=0A= =0A= static _Link_type&=0A= _S_right(_Base_ptr __x) { return (_Link_type&)(__x->_M_right); }=0A= =0A= static _Link_type&=0A= _S_parent(_Base_ptr __x) { return (_Link_type&)(__x->_M_parent); }=0A= =0A= static reference=0A= _S_value(_Base_ptr __x) { return = ((_Link_type)__x)->_M_value_field; }=0A= =0A= static const _Key&=0A= _S_key(_Base_ptr __x) { return = _KeyOfValue()(_S_value(_Link_type(__x)));}=0A= =0A= static _Rb_tree_color&=0A= _S_color(_Base_ptr __x) { return (_Link_type(__x)->_M_color); }=0A= =0A= static _Link_type=0A= _S_minimum(_Link_type __x)=0A= { return (_Link_type) _Rb_tree_node_base::_S_minimum(__x); }=0A= =0A= static _Link_type=0A= _S_maximum(_Link_type __x)=0A= { return (_Link_type) _Rb_tree_node_base::_S_maximum(__x); }=0A= =0A= public:=0A= typedef _Rb_tree_iterator iterator;=0A= typedef _Rb_tree_iterator=0A= const_iterator;=0A= =0A= typedef reverse_iterator const_reverse_iterator;=0A= typedef reverse_iterator reverse_iterator;=0A= =0A= private:=0A= iterator=0A= _M_insert(_Base_ptr __x, _Base_ptr __y, const value_type& __v);=0A= =0A= _Link_type=0A= _M_copy(_Link_type __x, _Link_type __p);=0A= =0A= void=0A= _M_erase(_Link_type __x);=0A= =0A= public:=0A= =0A= _Rb_tree()=0A= : _Base(allocator_type()), _M_node_count(0), _M_key_compare()=0A= { _M_empty_initialize(); }=0A= =0A= _Rb_tree(const _Compare& __comp)=0A= : _Base(allocator_type()), _M_node_count(0), = _M_key_compare(__comp)=0A= { _M_empty_initialize(); }=0A= =0A= _Rb_tree(const _Compare& __comp, const allocator_type& __a)=0A= : _Base(__a), _M_node_count(0), _M_key_compare(__comp)=0A= { _M_empty_initialize(); }=0A= =0A= _Rb_tree(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __x)=0A= : _Base(__x.get_allocator()), _M_node_count(0),=0A= _M_key_compare(__x._M_key_compare)=0A= {=0A= if (__x._M_root() =3D=3D 0)=0A= _M_empty_initialize();=0A= else=0A= {=0A= _S_color(_M_header) =3D _M_red;=0A= _M_root() =3D _M_copy(__x._M_root(), _M_header);=0A= _M_leftmost() =3D _S_minimum(_M_root());=0A= _M_rightmost() =3D _S_maximum(_M_root());=0A= }=0A= _M_node_count =3D __x._M_node_count;=0A= }=0A= =0A= ~_Rb_tree() { clear(); }=0A= =0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>&=0A= operator=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __x);=0A= =0A= private:=0A= void _M_empty_initialize()=0A= {=0A= _S_color(_M_header) =3D _M_red;=0A= =0A= _M_root() =3D 0;=0A= _M_leftmost() =3D _M_header;=0A= _M_rightmost() =3D _M_header;=0A= }=0A= =0A= public:=0A= =0A= _Compare=0A= key_comp() const { return _M_key_compare; }=0A= =0A= iterator=0A= begin() { return _M_leftmost(); }=0A= =0A= const_iterator=0A= begin() const { return _M_leftmost(); }=0A= =0A= iterator=0A= end() { return _M_header; }=0A= =0A= const_iterator=0A= end() const { return _M_header; }=0A= =0A= reverse_iterator=0A= rbegin() { return reverse_iterator(end()); }=0A= =0A= const_reverse_iterator=0A= rbegin() const { return const_reverse_iterator(end()); }=0A= =0A= reverse_iterator=0A= rend() { return reverse_iterator(begin()); }=0A= =0A= const_reverse_iterator=0A= rend() const { return const_reverse_iterator(begin()); }=0A= =0A= bool=0A= empty() const { return _M_node_count =3D=3D 0; }=0A= =0A= size_type=0A= size() const { return _M_node_count; }=0A= =0A= size_type=0A= max_size() const { return size_type(-1); }=0A= =0A= void=0A= swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __t)=0A= {=0A= std::swap(_M_header, __t._M_header);=0A= std::swap(_M_node_count, __t._M_node_count);=0A= std::swap(_M_key_compare, __t._M_key_compare);=0A= }=0A= =0A= =0A= pair=0A= insert_unique(const value_type& __x);=0A= =0A= iterator=0A= insert_equal(const value_type& __x);=0A= =0A= iterator=0A= insert_unique(iterator __position, const value_type& __x);=0A= =0A= iterator=0A= insert_equal(iterator __position, const value_type& __x);=0A= =0A= template=0A= void=0A= insert_unique(_InputIterator __first, _InputIterator __last);=0A= =0A= template=0A= void=0A= insert_equal(_InputIterator __first, _InputIterator __last);=0A= =0A= void=0A= erase(iterator __position);=0A= =0A= size_type=0A= erase(const key_type& __x);=0A= =0A= void=0A= erase(iterator __first, iterator __last);=0A= =0A= void=0A= erase(const key_type* __first, const key_type* __last);=0A= =0A= void=0A= clear()=0A= {=0A= if (_M_node_count !=3D 0)=0A= {=0A= _M_erase(_M_root());=0A= _M_leftmost() =3D _M_header;=0A= _M_root() =3D 0;=0A= _M_rightmost() =3D _M_header;=0A= _M_node_count =3D 0;=0A= }=0A= }=0A= =0A= =0A= iterator=0A= find(const key_type& __x);=0A= =0A= const_iterator=0A= find(const key_type& __x) const;=0A= =0A= size_type=0A= count(const key_type& __x) const;=0A= =0A= iterator=0A= lower_bound(const key_type& __x);=0A= =0A= const_iterator=0A= lower_bound(const key_type& __x) const;=0A= =0A= iterator=0A= upper_bound(const key_type& __x);=0A= =0A= const_iterator=0A= upper_bound(const key_type& __x) const;=0A= =0A= pair=0A= equal_range(const key_type& __x);=0A= =0A= pair=0A= equal_range(const key_type& __x) const;=0A= =0A= =0A= bool=0A= __rb_verify() const;=0A= };=0A= =0A= template=0A= inline bool=0A= operator=3D=3D(const = _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x,=0A= const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __y)=0A= {=0A= return __x.size() =3D=3D __y.size() &&=0A= equal(__x.begin(), __x.end(), __y.begin());=0A= }=0A= =0A= template=0A= inline bool=0A= operator<(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x,=0A= const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y)=0A= {=0A= return lexicographical_compare(__x.begin(), __x.end(),=0A= __y.begin(), __y.end());=0A= }=0A= =0A= template=0A= inline bool=0A= operator!=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __x,=0A= const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __y)=0A= { return !(__x =3D=3D __y); }=0A= =0A= template=0A= inline bool=0A= operator>(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x,=0A= const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y)=0A= { return __y < __x; }=0A= =0A= template=0A= inline bool=0A= operator<=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __x,=0A= const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __y)=0A= { return !(__y < __x); }=0A= =0A= template=0A= inline bool=0A= operator>=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __x,=0A= const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __y)=0A= { return !(__x < __y); }=0A= =0A= template=0A= inline void=0A= swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x,=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y)=0A= { __x.swap(__y); }=0A= =0A= template=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>&=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= operator=3D(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& = __x)=0A= {=0A= if (this !=3D &__x)=0A= {=0A= =0A= clear();=0A= _M_node_count =3D 0;=0A= _M_key_compare =3D __x._M_key_compare;=0A= if (__x._M_root() =3D=3D 0)=0A= {=0A= _M_root() =3D 0;=0A= _M_leftmost() =3D _M_header;=0A= _M_rightmost() =3D _M_header;=0A= }=0A= else=0A= {=0A= _M_root() =3D _M_copy(__x._M_root(), _M_header);=0A= _M_leftmost() =3D _S_minimum(_M_root());=0A= _M_rightmost() =3D _S_maximum(_M_root());=0A= _M_node_count =3D __x._M_node_count;=0A= }=0A= }=0A= return *this;=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= _M_insert(_Base_ptr __x_, _Base_ptr __y_, const _Val& __v)=0A= {=0A= _Link_type __x =3D (_Link_type) __x_;=0A= _Link_type __y =3D (_Link_type) __y_;=0A= _Link_type __z;=0A= =0A= if (__y =3D=3D _M_header || __x !=3D 0 ||=0A= _M_key_compare(_KeyOfValue()(__v), _S_key(__y)))=0A= {=0A= __z =3D _M_create_node(__v);=0A= _S_left(__y) =3D __z;=0A= =0A= if (__y =3D=3D _M_header)=0A= {=0A= _M_root() =3D __z;=0A= _M_rightmost() =3D __z;=0A= }=0A= else if (__y =3D=3D _M_leftmost())=0A= _M_leftmost() =3D __z;=0A= }=0A= else=0A= {=0A= __z =3D _M_create_node(__v);=0A= _S_right(__y) =3D __z;=0A= =0A= if (__y =3D=3D _M_rightmost())=0A= _M_rightmost() =3D __z;=0A= }=0A= _S_parent(__z) =3D __y;=0A= _S_left(__z) =3D 0;=0A= _S_right(__z) =3D 0;=0A= _Rb_tree_rebalance(__z, _M_header->_M_parent);=0A= ++_M_node_count;=0A= return iterator(__z);=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= insert_equal(const _Val& __v)=0A= {=0A= _Link_type __y =3D _M_header;=0A= _Link_type __x =3D _M_root();=0A= while (__x !=3D 0)=0A= {=0A= __y =3D __x;=0A= __x =3D _M_key_compare(_KeyOfValue()(__v), _S_key(__x)) ?=0A= _S_left(__x) : _S_right(__x);=0A= }=0A= return _M_insert(__x, __y, __v);=0A= }=0A= =0A= template=0A= pair::iterator,=0A= bool>=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= insert_unique(const _Val& __v)=0A= {=0A= _Link_type __y =3D _M_header;=0A= _Link_type __x =3D _M_root();=0A= bool __comp =3D true;=0A= while (__x !=3D 0)=0A= {=0A= __y =3D __x;=0A= __comp =3D _M_key_compare(_KeyOfValue()(__v), _S_key(__x));=0A= __x =3D __comp ? _S_left(__x) : _S_right(__x);=0A= }=0A= iterator __j =3D iterator(__y);=0A= if (__comp)=0A= if (__j =3D=3D begin())=0A= return pair(_M_insert(__x, __y, __v), true);=0A= else=0A= --__j;=0A= if (_M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v)))=0A= return pair(_M_insert(__x, __y, __v), true);=0A= return pair(__j, false);=0A= }=0A= =0A= =0A= template=0A= typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, = _Alloc>::iterator=0A= _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::=0A= insert_unique(iterator __position, const _Val& __v)=0A= {=0A= if (__position._M_node =3D=3D _M_header->_M_left)=0A= {=0A= =0A= if (size() > 0 &&=0A= _M_key_compare(_KeyOfValue()(__v), = _S_key(__position._M_node)))=0A= return _M_insert(__position._M_node, __position._M_node, = __v);=0A= =0A= else=0A= return insert_unique(__v).first;=0A= }=0A= else if (__position._M_node =3D=3D _M_header)=0A= {=0A= =0A= if (_M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__v)))=0A= return _M_insert(0, _M_rightmost(), __v);=0A= else=0A= return insert_unique(__v).first;=0A= }=0A= else=0A= {=0A= iterator __before =3D __position;=0A= --__before;=0A= if (_M_key_compare(_S_key(__before._M_node), = _KeyOfValue()(__v))=0A= && = _M_key_compare(_KeyOfValue()(__v),_S_key(__position._M_node)))=0A= {=0A= if (_S_right(__before._M_node) =3D=3D 0)=0A= return _M_insert(0, __before._M_node, __v);=0A= else=0A= return _M_insert(__position._M_node, __position._M_node, = __v);=0A= =0A= }=0A= else=0A= return insert_unique(__v).first;=0A= }=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= insert_equal(iterator __position, const _Val& __v)=0A= {=0A= if (__position._M_node =3D=3D _M_header->_M_left)=0A= {=0A= =0A= if (size() > 0 &&=0A= !_M_key_compare(_S_key(__position._M_node), = _KeyOfValue()(__v)))=0A= return _M_insert(__position._M_node, __position._M_node, = __v);=0A= =0A= else=0A= return insert_equal(__v);=0A= }=0A= else if (__position._M_node =3D=3D _M_header)=0A= {=0A= =0A= if (!_M_key_compare(_KeyOfValue()(__v), = _S_key(_M_rightmost())))=0A= return _M_insert(0, _M_rightmost(), __v);=0A= else=0A= return insert_equal(__v);=0A= }=0A= else=0A= {=0A= iterator __before =3D __position;=0A= --__before;=0A= if (!_M_key_compare(_KeyOfValue()(__v), = _S_key(__before._M_node))=0A= && !_M_key_compare(_S_key(__position._M_node),=0A= _KeyOfValue()(__v)))=0A= {=0A= if (_S_right(__before._M_node) =3D=3D 0)=0A= return _M_insert(0, __before._M_node, __v);=0A= else=0A= return _M_insert(__position._M_node, __position._M_node, = __v);=0A= =0A= }=0A= else=0A= return insert_equal(__v);=0A= }=0A= }=0A= =0A= template=0A= template=0A= void=0A= _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>::=0A= insert_equal(_II __first, _II __last)=0A= {=0A= for ( ; __first !=3D __last; ++__first)=0A= insert_equal(*__first);=0A= }=0A= =0A= template=0A= template=0A= void=0A= _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>::=0A= insert_unique(_II __first, _II __last)=0A= {=0A= for ( ; __first !=3D __last; ++__first)=0A= insert_unique(*__first);=0A= }=0A= =0A= template=0A= inline void=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(iterator = __position)=0A= {=0A= _Link_type __y =3D=0A= (_Link_type) _Rb_tree_rebalance_for_erase(__position._M_node,=0A= _M_header->_M_parent,=0A= _M_header->_M_left,=0A= _M_header->_M_right);=0A= destroy_node(__y);=0A= --_M_node_count;=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(const _Key& = __x)=0A= {=0A= pair __p =3D equal_range(__x);=0A= size_type __n =3D distance(__p.first, __p.second);=0A= erase(__p.first, __p.second);=0A= return __n;=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type=0A= _Rb_tree<_Key,_Val,_KoV,_Compare,_Alloc>::=0A= _M_copy(_Link_type __x, _Link_type __p)=0A= {=0A= =0A= _Link_type __top =3D _M_clone_node(__x);=0A= __top->_M_parent =3D __p;=0A= =0A= try=0A= {=0A= if (__x->_M_right)=0A= __top->_M_right =3D _M_copy(_S_right(__x), __top);=0A= __p =3D __top;=0A= __x =3D _S_left(__x);=0A= =0A= while (__x !=3D 0)=0A= {=0A= _Link_type __y =3D _M_clone_node(__x);=0A= __p->_M_left =3D __y;=0A= __y->_M_parent =3D __p;=0A= if (__x->_M_right)=0A= __y->_M_right =3D _M_copy(_S_right(__x), __y);=0A= __p =3D __y;=0A= __x =3D _S_left(__x);=0A= }=0A= }=0A= catch(...)=0A= {=0A= _M_erase(__top);=0A= throw;=0A= }=0A= return __top;=0A= }=0A= =0A= template=0A= void=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::_M_erase(_Link_type = __x)=0A= {=0A= =0A= while (__x !=3D 0)=0A= {=0A= _M_erase(_S_right(__x));=0A= _Link_type __y =3D _S_left(__x);=0A= destroy_node(__x);=0A= __x =3D __y;=0A= }=0A= }=0A= =0A= template=0A= void=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= erase(iterator __first, iterator __last)=0A= {=0A= if (__first =3D=3D begin() && __last =3D=3D end())=0A= clear();=0A= else=0A= while (__first !=3D __last) erase(__first++);=0A= }=0A= =0A= template=0A= void=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= erase(const _Key* __first, const _Key* __last)=0A= {=0A= while (__first !=3D __last)=0A= erase(*__first++);=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::find(const _Key& = __k)=0A= {=0A= _Link_type __y =3D _M_header;=0A= _Link_type __x =3D _M_root();=0A= =0A= while (__x !=3D 0)=0A= if (!_M_key_compare(_S_key(__x), __k))=0A= __y =3D __x, __x =3D _S_left(__x);=0A= else=0A= __x =3D _S_right(__x);=0A= =0A= iterator __j =3D iterator(__y);=0A= return (__j =3D=3D end() || _M_key_compare(__k, = _S_key(__j._M_node))) ?=0A= end() : __j;=0A= }=0A= =0A= template=0A= typename = _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= find(const _Key& __k) const=0A= {=0A= _Link_type __y =3D _M_header;=0A= _Link_type __x =3D _M_root();=0A= =0A= while (__x !=3D 0)=0A= {=0A= if (!_M_key_compare(_S_key(__x), __k))=0A= __y =3D __x, __x =3D _S_left(__x);=0A= else=0A= __x =3D _S_right(__x);=0A= }=0A= const_iterator __j =3D const_iterator(__y);=0A= return (__j =3D=3D end() || _M_key_compare(__k, = _S_key(__j._M_node))) ?=0A= end() : __j;=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= count(const _Key& __k) const=0A= {=0A= pair __p =3D equal_range(__k);=0A= size_type __n =3D distance(__p.first, __p.second);=0A= return __n;=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= lower_bound(const _Key& __k)=0A= {=0A= _Link_type __y =3D _M_header;=0A= _Link_type __x =3D _M_root();=0A= =0A= while (__x !=3D 0)=0A= if (!_M_key_compare(_S_key(__x), __k))=0A= __y =3D __x, __x =3D _S_left(__x);=0A= else=0A= __x =3D _S_right(__x);=0A= =0A= return iterator(__y);=0A= }=0A= =0A= template=0A= typename = _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= lower_bound(const _Key& __k) const=0A= {=0A= _Link_type __y =3D _M_header;=0A= _Link_type __x =3D _M_root();=0A= =0A= while (__x !=3D 0)=0A= if (!_M_key_compare(_S_key(__x), __k))=0A= __y =3D __x, __x =3D _S_left(__x);=0A= else=0A= __x =3D _S_right(__x);=0A= =0A= return const_iterator(__y);=0A= }=0A= =0A= template=0A= typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= upper_bound(const _Key& __k)=0A= {=0A= _Link_type __y =3D _M_header;=0A= _Link_type __x =3D _M_root();=0A= =0A= while (__x !=3D 0)=0A= if (_M_key_compare(__k, _S_key(__x)))=0A= __y =3D __x, __x =3D _S_left(__x);=0A= else=0A= __x =3D _S_right(__x);=0A= =0A= return iterator(__y);=0A= }=0A= =0A= template=0A= typename = _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= upper_bound(const _Key& __k) const=0A= {=0A= _Link_type __y =3D _M_header;=0A= _Link_type __x =3D _M_root();=0A= =0A= while (__x !=3D 0)=0A= if (_M_key_compare(__k, _S_key(__x)))=0A= __y =3D __x, __x =3D _S_left(__x);=0A= else=0A= __x =3D _S_right(__x);=0A= =0A= return const_iterator(__y);=0A= }=0A= =0A= template=0A= inline=0A= pair::iterator,=0A= = typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator>=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::=0A= equal_range(const _Key& __k)=0A= { return pair(lower_bound(__k), = upper_bound(__k)); }=0A= =0A= template=0A= inline=0A= pair::const_iterator,=0A= typename = _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::const_iterator>=0A= _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>=0A= ::equal_range(const _Key& __k) const=0A= {=0A= return pair(lower_bound(__k),=0A= upper_bound(__k));=0A= }=0A= =0A= inline int=0A= __black_count(_Rb_tree_node_base* __node, _Rb_tree_node_base* __root)=0A= {=0A= if (__node =3D=3D 0)=0A= return 0;=0A= int __sum =3D 0;=0A= do=0A= {=0A= if (__node->_M_color =3D=3D _M_black)=0A= ++__sum;=0A= if (__node =3D=3D __root)=0A= break;=0A= __node =3D __node->_M_parent;=0A= }=0A= while (1);=0A= return __sum;=0A= }=0A= =0A= template=0A= bool=0A= _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const=0A= {=0A= if (_M_node_count =3D=3D 0 || begin() =3D=3D end())=0A= return _M_node_count =3D=3D 0 && begin() =3D=3D end() &&=0A= _M_header->_M_left =3D=3D _M_header && _M_header->_M_right = =3D=3D _M_header;=0A= =0A= int __len =3D __black_count(_M_leftmost(), _M_root());=0A= for (const_iterator __it =3D begin(); __it !=3D end(); ++__it)=0A= {=0A= _Link_type __x =3D (_Link_type) __it._M_node;=0A= _Link_type __L =3D _S_left(__x);=0A= _Link_type __R =3D _S_right(__x);=0A= =0A= if (__x->_M_color =3D=3D _M_red)=0A= if ((__L && __L->_M_color =3D=3D _M_red)=0A= || (__R && __R->_M_color =3D=3D _M_red))=0A= return false;=0A= =0A= if (__L && _M_key_compare(_S_key(__x), _S_key(__L)))=0A= return false;=0A= if (__R && _M_key_compare(_S_key(__R), _S_key(__x)))=0A= return false;=0A= =0A= if (!__L && !__R && __black_count(__x, _M_root()) !=3D __len)=0A= return false;=0A= }=0A= =0A= if (_M_leftmost() !=3D _Rb_tree_node_base::_S_minimum(_M_root()))=0A= return false;=0A= if (_M_rightmost() !=3D _Rb_tree_node_base::_S_maximum(_M_root()))=0A= return false;=0A= return true;=0A= }=0A= }=0A= # 67 "/usr/local/gcc3.1/include/g++-v3/map" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 1 3=0A= # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= namespace std=0A= {=0A= # 77 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= template ,=0A= class _Alloc =3D allocator > >=0A= class map=0A= {=0A= =0A= =0A= ;=0A= =0A= public:=0A= =0A= typedef _Key key_type;=0A= typedef _Tp data_type;=0A= typedef _Tp mapped_type;=0A= typedef pair value_type;=0A= typedef _Compare key_compare;=0A= =0A= class value_compare=0A= : public binary_function {=0A= friend class map<_Key,_Tp,_Compare,_Alloc>;=0A= protected :=0A= _Compare comp;=0A= value_compare(_Compare __c) : comp(__c) {}=0A= public:=0A= bool operator()(const value_type& __x, const value_type& __y) const {=0A= return comp(__x.first, __y.first);=0A= }=0A= };=0A= =0A= private:=0A= typedef _Rb_tree, key_compare, _Alloc> = _Rep_type;=0A= _Rep_type _M_t;=0A= public:=0A= typedef typename _Rep_type::pointer pointer;=0A= typedef typename _Rep_type::const_pointer const_pointer;=0A= typedef typename _Rep_type::reference reference;=0A= typedef typename _Rep_type::const_reference const_reference;=0A= typedef typename _Rep_type::iterator iterator;=0A= typedef typename _Rep_type::const_iterator const_iterator;=0A= typedef typename _Rep_type::reverse_iterator reverse_iterator;=0A= typedef typename _Rep_type::const_reverse_iterator = const_reverse_iterator;=0A= typedef typename _Rep_type::size_type size_type;=0A= typedef typename _Rep_type::difference_type difference_type;=0A= typedef typename _Rep_type::allocator_type allocator_type;=0A= =0A= =0A= =0A= map() : _M_t(_Compare(), allocator_type()) {}=0A= explicit map(const _Compare& __comp,=0A= const allocator_type& __a =3D allocator_type())=0A= : _M_t(__comp, __a) {}=0A= =0A= template =0A= map(_InputIterator __first, _InputIterator __last)=0A= : _M_t(_Compare(), allocator_type())=0A= { _M_t.insert_unique(__first, __last); }=0A= =0A= template =0A= map(_InputIterator __first, _InputIterator __last, const _Compare& = __comp,=0A= const allocator_type& __a =3D allocator_type())=0A= : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }=0A= map(const map<_Key,_Tp,_Compare,_Alloc>& __x) : _M_t(__x._M_t) {}=0A= =0A= map<_Key,_Tp,_Compare,_Alloc>&=0A= operator=3D(const map<_Key, _Tp, _Compare, _Alloc>& __x)=0A= {=0A= _M_t =3D __x._M_t;=0A= return *this;=0A= }=0A= =0A= =0A= =0A= key_compare key_comp() const { return _M_t.key_comp(); }=0A= value_compare value_comp() const { return = value_compare(_M_t.key_comp()); }=0A= allocator_type get_allocator() const { return _M_t.get_allocator(); }=0A= =0A= =0A= =0A= =0A= =0A= iterator begin() { return _M_t.begin(); }=0A= =0A= =0A= =0A= =0A= =0A= const_iterator begin() const { return _M_t.begin(); }=0A= =0A= =0A= =0A= =0A= =0A= iterator end() { return _M_t.end(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= const_iterator end() const { return _M_t.end(); }=0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator rbegin() { return _M_t.rbegin(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= const_reverse_iterator rbegin() const { return _M_t.rbegin(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator rend() { return _M_t.rend(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= const_reverse_iterator rend() const { return _M_t.rend(); }=0A= =0A= =0A= bool empty() const { return _M_t.empty(); }=0A= =0A= size_type size() const { return _M_t.size(); }=0A= =0A= size_type max_size() const { return _M_t.max_size(); }=0A= # 221 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= _Tp& operator[](const key_type& __k) {=0A= iterator __i =3D lower_bound(__k);=0A= =0A= if (__i =3D=3D end() || key_comp()(__k, (*__i).first))=0A= __i =3D insert(__i, value_type(__k, _Tp()));=0A= return (*__i).second;=0A= }=0A= =0A= void swap(map<_Key,_Tp,_Compare,_Alloc>& __x) { _M_t.swap(__x._M_t); }=0A= # 244 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= pair insert(const value_type& __x)=0A= { return _M_t.insert_unique(__x); }=0A= # 261 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= iterator insert(iterator position, const value_type& __x)=0A= { return _M_t.insert_unique(position, __x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= void insert(_InputIterator __first, _InputIterator __last) {=0A= _M_t.insert_unique(__first, __last);=0A= }=0A= # 284 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= void erase(iterator __position) { _M_t.erase(__position); }=0A= # 297 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= size_type erase(const key_type& __x) { return _M_t.erase(__x); }=0A= # 309 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= void erase(iterator __first, iterator __last)=0A= { _M_t.erase(__first, __last); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= void clear() { _M_t.clear(); }=0A= # 332 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= iterator find(const key_type& __x) { return _M_t.find(__x); }=0A= # 345 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= const_iterator find(const key_type& __x) const { return = _M_t.find(__x); }=0A= # 354 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= size_type count(const key_type& __x) const {=0A= return _M_t.find(__x) =3D=3D _M_t.end() ? 0 : 1;=0A= }=0A= # 369 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= iterator lower_bound(const key_type& __x) {return = _M_t.lower_bound(__x); }=0A= # 382 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= const_iterator lower_bound(const key_type& __x) const {=0A= return _M_t.lower_bound(__x);=0A= }=0A= # 393 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= iterator upper_bound(const key_type& __x) {return = _M_t.upper_bound(__x); }=0A= # 403 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= const_iterator upper_bound(const key_type& __x) const {=0A= return _M_t.upper_bound(__x);=0A= }=0A= # 423 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= pair equal_range(const key_type& __x) {=0A= return _M_t.equal_range(__x);=0A= }=0A= # 443 "/usr/local/gcc3.1/include/g++-v3/bits/stl_map.h" 3=0A= pair equal_range(const key_type& __x) = const {=0A= return _M_t.equal_range(__x);=0A= }=0A= =0A= template =0A= friend bool operator=3D=3D (const map<_K1, _T1, _C1, _A1>&,=0A= const map<_K1, _T1, _C1, _A1>&);=0A= template =0A= friend bool operator< (const map<_K1, _T1, _C1, _A1>&,=0A= const map<_K1, _T1, _C1, _A1>&);=0A= };=0A= =0A= template =0A= inline bool operator=3D=3D(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return __x._M_t =3D=3D __y._M_t;=0A= }=0A= =0A= template =0A= inline bool operator<(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return __x._M_t < __y._M_t;=0A= }=0A= =0A= template =0A= inline bool operator!=3D(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return !(__x =3D=3D __y);=0A= }=0A= =0A= template =0A= inline bool operator>(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return __y < __x;=0A= }=0A= =0A= template =0A= inline bool operator<=3D(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return !(__y < __x);=0A= }=0A= =0A= template =0A= inline bool operator>=3D(const map<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return !(__x < __y);=0A= }=0A= =0A= template =0A= inline void swap(map<_Key,_Tp,_Compare,_Alloc>& __x,=0A= map<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= __x.swap(__y);=0A= }=0A= =0A= }=0A= # 68 "/usr/local/gcc3.1/include/g++-v3/map" 2 3=0A= # 1 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 1 3=0A= # 66 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= namespace std=0A= {=0A= =0A= template ,=0A= class _Alloc =3D allocator > >=0A= class multimap;=0A= =0A= template =0A= inline bool operator=3D=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const multimap<_Key,_Tp,_Compare,_Alloc>& __y);=0A= =0A= template =0A= inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const multimap<_Key,_Tp,_Compare,_Alloc>& __y);=0A= # 90 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= template =0A= class multimap=0A= {=0A= =0A= =0A= ;=0A= =0A= public:=0A= =0A= =0A= =0A= typedef _Key key_type;=0A= typedef _Tp data_type;=0A= typedef _Tp mapped_type;=0A= typedef pair value_type;=0A= typedef _Compare key_compare;=0A= =0A= class value_compare : public binary_function {=0A= friend class multimap<_Key,_Tp,_Compare,_Alloc>;=0A= protected:=0A= _Compare comp;=0A= value_compare(_Compare __c) : comp(__c) {}=0A= public:=0A= bool operator()(const value_type& __x, const value_type& __y) const {=0A= return comp(__x.first, __y.first);=0A= }=0A= };=0A= =0A= private:=0A= typedef _Rb_tree, key_compare, _Alloc> _Rep_type;=0A= _Rep_type _M_t;=0A= public:=0A= typedef typename _Rep_type::pointer pointer;=0A= typedef typename _Rep_type::const_pointer const_pointer;=0A= typedef typename _Rep_type::reference reference;=0A= typedef typename _Rep_type::const_reference const_reference;=0A= typedef typename _Rep_type::iterator iterator;=0A= typedef typename _Rep_type::const_iterator const_iterator;=0A= typedef typename _Rep_type::reverse_iterator reverse_iterator;=0A= typedef typename _Rep_type::const_reverse_iterator = const_reverse_iterator;=0A= typedef typename _Rep_type::size_type size_type;=0A= typedef typename _Rep_type::difference_type difference_type;=0A= typedef typename _Rep_type::allocator_type allocator_type;=0A= =0A= =0A= =0A= multimap() : _M_t(_Compare(), allocator_type()) { }=0A= explicit multimap(const _Compare& __comp,=0A= const allocator_type& __a =3D allocator_type())=0A= : _M_t(__comp, __a) { }=0A= =0A= template =0A= multimap(_InputIterator __first, _InputIterator __last)=0A= : _M_t(_Compare(), allocator_type())=0A= { _M_t.insert_equal(__first, __last); }=0A= =0A= template =0A= multimap(_InputIterator __first, _InputIterator __last,=0A= const _Compare& __comp,=0A= const allocator_type& __a =3D allocator_type())=0A= : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }=0A= multimap(const multimap<_Key,_Tp,_Compare,_Alloc>& __x) : = _M_t(__x._M_t) { }=0A= =0A= multimap<_Key,_Tp,_Compare,_Alloc>&=0A= operator=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x) {=0A= _M_t =3D __x._M_t;=0A= return *this;=0A= }=0A= =0A= =0A= =0A= key_compare key_comp() const { return _M_t.key_comp(); }=0A= value_compare value_comp() const { return = value_compare(_M_t.key_comp()); }=0A= allocator_type get_allocator() const { return _M_t.get_allocator(); }=0A= =0A= =0A= =0A= =0A= =0A= iterator begin() { return _M_t.begin(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= const_iterator begin() const { return _M_t.begin(); }=0A= =0A= =0A= =0A= =0A= =0A= iterator end() { return _M_t.end(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= const_iterator end() const { return _M_t.end(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator rbegin() { return _M_t.rbegin(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= const_reverse_iterator rbegin() const { return _M_t.rbegin(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= reverse_iterator rend() { return _M_t.rend(); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= const_reverse_iterator rend() const { return _M_t.rend(); }=0A= =0A= =0A= bool empty() const { return _M_t.empty(); }=0A= =0A= =0A= size_type size() const { return _M_t.size(); }=0A= =0A= =0A= size_type max_size() const { return _M_t.max_size(); }=0A= =0A= void swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x) { = _M_t.swap(__x._M_t); }=0A= # 242 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= iterator insert(const value_type& __x) { return = _M_t.insert_equal(__x); }=0A= # 259 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= iterator insert(iterator __position, const value_type& __x) {=0A= return _M_t.insert_equal(__position, __x);=0A= }=0A= # 270 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= template =0A= void insert(_InputIterator __first, _InputIterator __last) {=0A= _M_t.insert_equal(__first, __last);=0A= }=0A= # 284 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= void erase(iterator __position) { _M_t.erase(__position); }=0A= # 297 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= size_type erase(const key_type& __x) { return _M_t.erase(__x); }=0A= # 309 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= void erase(iterator __first, iterator __last)=0A= { _M_t.erase(__first, __last); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= void clear() { _M_t.clear(); }=0A= # 332 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= iterator find(const key_type& __x) { return _M_t.find(__x); }=0A= # 345 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= const_iterator find(const key_type& __x) const { return = _M_t.find(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= size_type count(const key_type& __x) const { return _M_t.count(__x); }=0A= # 365 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= iterator lower_bound(const key_type& __x) {return = _M_t.lower_bound(__x); }=0A= # 378 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= const_iterator lower_bound(const key_type& __x) const {=0A= return _M_t.lower_bound(__x);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= iterator upper_bound(const key_type& __x) {return = _M_t.upper_bound(__x); }=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= const_iterator upper_bound(const key_type& __x) const {=0A= return _M_t.upper_bound(__x);=0A= }=0A= # 413 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= pair equal_range(const key_type& __x) {=0A= return _M_t.equal_range(__x);=0A= }=0A= # 431 "/usr/local/gcc3.1/include/g++-v3/bits/stl_multimap.h" 3=0A= pair equal_range(const key_type& __x) = const {=0A= return _M_t.equal_range(__x);=0A= }=0A= =0A= template =0A= friend bool operator=3D=3D (const multimap<_K1, _T1, _C1, _A1>&,=0A= const multimap<_K1, _T1, _C1, _A1>&);=0A= template =0A= friend bool operator< (const multimap<_K1, _T1, _C1, _A1>&,=0A= const multimap<_K1, _T1, _C1, _A1>&);=0A= };=0A= =0A= template =0A= inline bool operator=3D=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return __x._M_t =3D=3D __y._M_t;=0A= }=0A= =0A= template =0A= inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return __x._M_t < __y._M_t;=0A= }=0A= =0A= template =0A= inline bool operator!=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return !(__x =3D=3D __y);=0A= }=0A= =0A= template =0A= inline bool operator>(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return __y < __x;=0A= }=0A= =0A= template =0A= inline bool operator<=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return !(__y < __x);=0A= }=0A= =0A= template =0A= inline bool operator>=3D(const multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= const multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= return !(__x < __y);=0A= }=0A= =0A= template =0A= inline void swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x,=0A= multimap<_Key,_Tp,_Compare,_Alloc>& __y) {=0A= __x.swap(__y);=0A= }=0A= =0A= }=0A= # 69 "/usr/local/gcc3.1/include/g++-v3/map" 2 3=0A= # 51 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"= 2=0A= =0A= =0A= =0A= =0A= struct QMapNodeBase=0A= {=0A= enum Color { Red, Black };=0A= =0A= QMapNodeBase* left;=0A= QMapNodeBase* right;=0A= QMapNodeBase* parent;=0A= =0A= Color color;=0A= =0A= QMapNodeBase* minimum() {=0A= QMapNodeBase* x =3D this;=0A= while ( x->left )=0A= x =3D x->left;=0A= return x;=0A= }=0A= =0A= QMapNodeBase* maximum() {=0A= QMapNodeBase* x =3D this;=0A= while ( x->right )=0A= x =3D x->right;=0A= return x;=0A= }=0A= };=0A= =0A= =0A= template =0A= struct QMapNode : public QMapNodeBase=0A= {=0A= QMapNode( const K& _key, const T& _data ) { data =3D _data; key =3D = _key; }=0A= QMapNode( const K& _key ) { key =3D _key; }=0A= QMapNode( const QMapNode& _n ) { key =3D _n.key; data =3D = _n.data; }=0A= QMapNode() { }=0A= T data;=0A= K key;=0A= };=0A= =0A= =0A= template=0A= class QMapIterator=0A= {=0A= public:=0A= =0A= =0A= =0A= typedef QMapNode< K, T >* NodePtr;=0A= =0A= typedef std::bidirectional_iterator_tag iterator_category;=0A= =0A= typedef T value_type;=0A= =0A= typedef ptrdiff_t difference_type;=0A= =0A= =0A= =0A= typedef T* pointer;=0A= typedef T& reference;=0A= =0A= =0A= =0A= =0A= QMapNode* node;=0A= =0A= =0A= =0A= =0A= QMapIterator() : node( 0 ) {}=0A= QMapIterator( QMapNode* p ) : node( p ) {}=0A= QMapIterator( const QMapIterator& it ) : node( it.node ) {}=0A= =0A= bool operator=3D=3D( const QMapIterator& it ) const { return = node =3D=3D it.node; }=0A= bool operator!=3D( const QMapIterator& it ) const { return node = !=3D it.node; }=0A= T& operator*() { return node->data; }=0A= const T& operator*() const { return node->data; }=0A= =0A= =0A= =0A= const K& key() const { return node->key; }=0A= T& data() { return node->data; }=0A= const T& data() const { return node->data; }=0A= =0A= private:=0A= int inc() {=0A= QMapNodeBase* tmp =3D node;=0A= if ( tmp->right ) {=0A= tmp =3D tmp->right;=0A= while ( tmp->left )=0A= tmp =3D tmp->left;=0A= } else {=0A= QMapNodeBase* y =3D tmp->parent;=0A= while (tmp =3D=3D y->right) {=0A= tmp =3D y;=0A= y =3D y->parent;=0A= }=0A= if (tmp->right !=3D y)=0A= tmp =3D y;=0A= }=0A= node =3D (NodePtr)tmp;=0A= return 0;=0A= }=0A= =0A= int dec() {=0A= QMapNodeBase* tmp =3D node;=0A= if (tmp->color =3D=3D QMapNodeBase::Red &&=0A= tmp->parent->parent =3D=3D tmp ) {=0A= tmp =3D tmp->right;=0A= } else if (tmp->left !=3D 0) {=0A= QMapNodeBase* y =3D tmp->left;=0A= while ( y->right )=0A= y =3D y->right;=0A= tmp =3D y;=0A= } else {=0A= QMapNodeBase* y =3D tmp->parent;=0A= while (tmp =3D=3D y->left) {=0A= tmp =3D y;=0A= y =3D y->parent;=0A= }=0A= tmp =3D y;=0A= }=0A= node =3D (NodePtr)tmp;=0A= return 0;=0A= }=0A= =0A= public:=0A= QMapIterator& operator++() {=0A= inc();=0A= return *this;=0A= }=0A= =0A= QMapIterator operator++(int) {=0A= QMapIterator tmp =3D *this;=0A= inc();=0A= return tmp;=0A= }=0A= =0A= QMapIterator& operator--() {=0A= dec();=0A= return *this;=0A= }=0A= =0A= QMapIterator operator--(int) {=0A= QMapIterator tmp =3D *this;=0A= dec();=0A= return tmp;=0A= }=0A= };=0A= =0A= template=0A= class QMapConstIterator=0A= {=0A= public:=0A= =0A= =0A= =0A= typedef QMapNode< K, T >* NodePtr;=0A= =0A= typedef std::bidirectional_iterator_tag iterator_category;=0A= =0A= typedef T value_type;=0A= =0A= typedef ptrdiff_t difference_type;=0A= =0A= =0A= =0A= typedef const T* pointer;=0A= typedef const T& reference;=0A= =0A= =0A= =0A= =0A= =0A= QMapNode* node;=0A= =0A= =0A= =0A= =0A= QMapConstIterator() : node( 0 ) {}=0A= QMapConstIterator( QMapNode* p ) : node( p ) {}=0A= QMapConstIterator( const QMapConstIterator& it ) : node( = it.node ) {}=0A= QMapConstIterator( const QMapIterator& it ) : node( it.node ) {}=0A= =0A= bool operator=3D=3D( const QMapConstIterator& it ) const { = return node =3D=3D it.node; }=0A= bool operator!=3D( const QMapConstIterator& it ) const { return = node !=3D it.node; }=0A= const T& operator*() const { return node->data; }=0A= =0A= =0A= =0A= const K& key() const { return node->key; }=0A= const T& data() const { return node->data; }=0A= =0A= private:=0A= int inc() {=0A= QMapNodeBase* tmp =3D node;=0A= if ( tmp->right ) {=0A= tmp =3D tmp->right;=0A= while ( tmp->left )=0A= tmp =3D tmp->left;=0A= } else {=0A= QMapNodeBase* y =3D tmp->parent;=0A= while (tmp =3D=3D y->right) {=0A= tmp =3D y;=0A= y =3D y->parent;=0A= }=0A= if (tmp->right !=3D y)=0A= tmp =3D y;=0A= }=0A= node =3D (NodePtr)tmp;=0A= return 0;=0A= }=0A= =0A= int dec() {=0A= QMapNodeBase* tmp =3D node;=0A= if (tmp->color =3D=3D QMapNodeBase::Red &&=0A= tmp->parent->parent =3D=3D tmp ) {=0A= tmp =3D tmp->right;=0A= } else if (tmp->left !=3D 0) {=0A= QMapNodeBase* y =3D tmp->left;=0A= while ( y->right )=0A= y =3D y->right;=0A= tmp =3D y;=0A= } else {=0A= QMapNodeBase* y =3D tmp->parent;=0A= while (tmp =3D=3D y->left) {=0A= tmp =3D y;=0A= y =3D y->parent;=0A= }=0A= tmp =3D y;=0A= }=0A= node =3D (NodePtr)tmp;=0A= return 0;=0A= }=0A= =0A= public:=0A= QMapConstIterator& operator++() {=0A= inc();=0A= return *this;=0A= }=0A= =0A= QMapConstIterator operator++(int) {=0A= QMapConstIterator tmp =3D *this;=0A= inc();=0A= return tmp;=0A= }=0A= =0A= QMapConstIterator& operator--() {=0A= dec();=0A= return *this;=0A= }=0A= =0A= QMapConstIterator operator--(int) {=0A= QMapConstIterator tmp =3D *this;=0A= dec();=0A= return tmp;=0A= }=0A= };=0A= =0A= =0A= class QMapPrivateBase : public QShared=0A= {=0A= public:=0A= QMapPrivateBase() {=0A= node_count =3D 0;=0A= }=0A= QMapPrivateBase( const QMapPrivateBase* _map) {=0A= node_count =3D _map->node_count;=0A= }=0A= =0A= =0A= =0A= =0A= void rotateLeft( QMapNodeBase* x, QMapNodeBase*& root);=0A= void rotateRight( QMapNodeBase* x, QMapNodeBase*& root );=0A= void rebalance( QMapNodeBase* x, QMapNodeBase*& root );=0A= QMapNodeBase* removeAndRebalance( QMapNodeBase* z, QMapNodeBase*& = root,=0A= QMapNodeBase*& leftmost,=0A= QMapNodeBase*& rightmost );=0A= =0A= =0A= =0A= =0A= int node_count;=0A= };=0A= =0A= =0A= template =0A= class QMapPrivate : public QMapPrivateBase=0A= {=0A= public:=0A= =0A= =0A= =0A= typedef QMapIterator< Key, T > Iterator;=0A= typedef QMapConstIterator< Key, T > ConstIterator;=0A= typedef QMapNode< Key, T > Node;=0A= typedef QMapNode< Key, T >* NodePtr;=0A= =0A= =0A= =0A= =0A= QMapPrivate() {=0A= header =3D new Node;=0A= header->color =3D QMapNodeBase::Red;=0A= header->parent =3D 0;=0A= header->left =3D header->right =3D header;=0A= }=0A= QMapPrivate( const QMapPrivate< Key, T >* _map ) : QMapPrivateBase( = _map ) {=0A= header =3D new Node;=0A= header->color =3D QMapNodeBase::Red;=0A= if ( _map->header->parent =3D=3D 0 ) {=0A= header->parent =3D 0;=0A= header->left =3D header->right =3D header;=0A= } else {=0A= header->parent =3D copy( (NodePtr)(_map->header->parent) );=0A= header->parent->parent =3D header;=0A= header->left =3D header->parent->minimum();=0A= header->right =3D header->parent->maximum();=0A= }=0A= }=0A= ~QMapPrivate() { clear(); delete header; }=0A= =0A= NodePtr copy( NodePtr p ) {=0A= if ( !p )=0A= return 0;=0A= NodePtr n =3D new Node( *p );=0A= n->color =3D p->color;=0A= if ( p->left ) {=0A= n->left =3D copy( (NodePtr)(p->left) );=0A= n->left->parent =3D n;=0A= } else {=0A= n->left =3D 0;=0A= }=0A= if ( p->right ) {=0A= n->right =3D copy( (NodePtr)(p->right) );=0A= n->right->parent =3D n;=0A= } else {=0A= n->right =3D 0;=0A= }=0A= return n;=0A= }=0A= =0A= void clear() {=0A= clear( (NodePtr)(header->parent) );=0A= header->color =3D QMapNodeBase::Red;=0A= header->parent =3D 0;=0A= header->left =3D header->right =3D header;=0A= node_count =3D 0;=0A= }=0A= =0A= void clear( NodePtr p ) {=0A= while ( p !=3D 0 ) {=0A= clear( (NodePtr)p->right );=0A= NodePtr y =3D (NodePtr)p->left;=0A= delete p;=0A= p =3D y;=0A= }=0A= }=0A= =0A= Iterator begin() { return Iterator( (NodePtr)(header->left ) ); }=0A= Iterator end() { return Iterator( header ); }=0A= ConstIterator begin() const { return ConstIterator( = (NodePtr)(header->left ) ); }=0A= ConstIterator end() const { return ConstIterator( header ); }=0A= =0A= ConstIterator find(const Key& k) const {=0A= QMapNodeBase* y =3D header;=0A= QMapNodeBase* x =3D header->parent;=0A= =0A= while ( x !=3D 0 ) {=0A= =0A= if ( !( key(x) < k ) ) {=0A= y =3D x;=0A= x =3D x->left;=0A= } else {=0A= x =3D x->right;=0A= }=0A= }=0A= =0A= =0A= =0A= if ( y =3D=3D header || k < key(y) )=0A= return ConstIterator( header );=0A= return ConstIterator( (NodePtr)y );=0A= }=0A= =0A= void remove( Iterator it ) {=0A= NodePtr del =3D (NodePtr) removeAndRebalance( it.node, = header->parent, header->left, header->right );=0A= delete del;=0A= --node_count;=0A= }=0A= # 468 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=0A= Iterator insertSingle( const Key& k ) {=0A= =0A= QMapNodeBase* y =3D header;=0A= QMapNodeBase* x =3D header->parent;=0A= bool result =3D TRUE;=0A= while ( x !=3D 0 ) {=0A= result =3D ( k < key(x) );=0A= y =3D x;=0A= x =3D result ? x->left : x->right;=0A= }=0A= =0A= Iterator j( (NodePtr)y );=0A= if ( result ) {=0A= =0A= if ( j =3D=3D begin() ) {=0A= return insert(x, y, k );=0A= } else {=0A= =0A= --j;=0A= }=0A= }=0A= =0A= if ( (j.node->key) < k )=0A= return insert(x, y, k );=0A= =0A= return j;=0A= }=0A= =0A= Iterator insert( QMapNodeBase* x, QMapNodeBase* y, const Key& k ) {=0A= NodePtr z =3D new Node( k );=0A= if (y =3D=3D header || x !=3D 0 || k < key(y) ) {=0A= y->left =3D z;=0A= if ( y =3D=3D header ) {=0A= header->parent =3D z;=0A= header->right =3D z;=0A= } else if ( y =3D=3D header->left )=0A= header->left =3D z;=0A= } else {=0A= y->right =3D z;=0A= if ( y =3D=3D header->right )=0A= header->right =3D z;=0A= }=0A= z->parent =3D y;=0A= z->left =3D 0;=0A= z->right =3D 0;=0A= rebalance( z, header->parent );=0A= ++node_count;=0A= return Iterator(z);=0A= }=0A= =0A= protected:=0A= =0A= =0A= =0A= const Key& key( QMapNodeBase* b ) const { return ((NodePtr)b)->key; }=0A= =0A= =0A= =0A= =0A= NodePtr header;=0A= };=0A= # 543 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=0A= template=0A= class QMap=0A= {=0A= public:=0A= =0A= =0A= =0A= typedef Key key_type;=0A= typedef T mapped_type;=0A= typedef QPair value_type;=0A= typedef value_type* pointer;=0A= typedef const value_type* const_pointer;=0A= typedef value_type& reference;=0A= typedef const value_type& const_reference;=0A= =0A= typedef ptrdiff_t difference_type;=0A= =0A= =0A= =0A= typedef size_t size_type;=0A= typedef QMapIterator iterator;=0A= typedef QMapConstIterator const_iterator;=0A= =0A= =0A= =0A= =0A= QMap()=0A= {=0A= sh =3D new QMapPrivate< Key, T >;=0A= }=0A= QMap( const QMap& m )=0A= {=0A= sh =3D m.sh; sh->ref();=0A= }=0A= =0A= =0A= QMap( const std::map& m )=0A= {=0A= sh =3D new QMapPrivate;=0A= =0A= =0A= =0A= QMapConstIterator it =3D m.begin();=0A= =0A= for ( ; it !=3D m.end(); ++it ) {=0A= value_type p( (*it).first, (*it).second );=0A= insert( p );=0A= }=0A= }=0A= =0A= ~QMap()=0A= {=0A= if ( sh->deref() )=0A= delete sh;=0A= }=0A= QMap& operator=3D ( const QMap& m )=0A= {=0A= m.sh->ref();=0A= if ( sh->deref() )=0A= delete sh;=0A= sh =3D m.sh;=0A= return *this;=0A= }=0A= =0A= QMap& operator=3D ( const std::map& m )=0A= {=0A= clear();=0A= =0A= =0A= =0A= QMapConstIterator it =3D m.begin();=0A= =0A= for ( ; it !=3D m.end(); ++it ) {=0A= value_type p( (*it).first, (*it).second );=0A= insert( p );=0A= }=0A= return *this;=0A= }=0A= =0A= =0A= iterator begin()=0A= {=0A= detach();=0A= return sh->begin();=0A= }=0A= iterator end()=0A= {=0A= detach();=0A= return sh->end();=0A= }=0A= const_iterator begin() const=0A= {=0A= return ((const Priv*)sh)->begin();=0A= }=0A= const_iterator end() const=0A= {=0A= return ((const Priv*)sh)->end();=0A= }=0A= iterator replace( const Key& k, const T& v )=0A= {=0A= remove( k );=0A= return insert( k, v );=0A= }=0A= =0A= size_type size() const=0A= {=0A= return sh->node_count;=0A= }=0A= bool empty() const=0A= {=0A= return sh->node_count =3D=3D 0;=0A= }=0A= QPair insert( const value_type& x )=0A= {=0A= detach();=0A= size_type n =3D size();=0A= iterator it =3D sh->insertSingle( x.first );=0A= bool inserted =3D FALSE;=0A= if ( n < size() ) {=0A= inserted =3D TRUE;=0A= it.data() =3D x.second;=0A= }=0A= return QPair( it, inserted );=0A= }=0A= void erase( iterator it )=0A= {=0A= detach();=0A= sh->remove( it );=0A= }=0A= void erase( const key_type& k )=0A= {=0A= detach();=0A= iterator it( sh->find( k ).node );=0A= if ( it !=3D end() )=0A= sh->remove( it );=0A= }=0A= size_type count( const key_type& k ) const=0A= {=0A= const_iterator it( sh->find( k ).node );=0A= if ( it !=3D end() ) {=0A= size_type c =3D 0;=0A= while ( it !=3D end() ) {=0A= ++it;=0A= ++c;=0A= }=0A= return c;=0A= }=0A= return 0;=0A= }=0A= =0A= T& operator[] ( const Key& k )=0A= {=0A= detach();=0A= QMapNode* p =3D sh->find( k ).node;=0A= if ( p !=3D sh->end().node )=0A= return p->data;=0A= return insert( k, T() ).data();=0A= }=0A= =0A= void clear()=0A= {=0A= if ( sh->count =3D=3D 1 )=0A= sh->clear();=0A= else {=0A= sh->deref();=0A= sh =3D new QMapPrivate;=0A= }=0A= }=0A= =0A= typedef QMapIterator< Key, T > Iterator;=0A= typedef QMapConstIterator< Key, T > ConstIterator;=0A= typedef T ValueType;=0A= typedef QMapPrivate< Key, T > Priv;=0A= =0A= iterator find ( const Key& k )=0A= {=0A= detach();=0A= return iterator( sh->find( k ).node );=0A= }=0A= const_iterator find ( const Key& k ) const { return sh->find( k ); }=0A= =0A= const T& operator[] ( const Key& k ) const=0A= { ; return sh->find( k ).data(); }=0A= bool contains ( const Key& k ) const=0A= { return find( k ) !=3D end(); }=0A= =0A= =0A= size_type count() const { return sh->node_count; }=0A= =0A= bool isEmpty() const { return sh->node_count =3D=3D 0; }=0A= =0A= =0A= iterator insert( const Key& key, const T& value, bool overwrite =3D = TRUE ) {=0A= detach();=0A= size_type n =3D size();=0A= iterator it =3D sh->insertSingle( key );=0A= if ( overwrite || n < size() )=0A= it.data() =3D value;=0A= return it;=0A= }=0A= =0A= void remove( iterator it ) { detach(); sh->remove( it ); }=0A= void remove( const Key& k ) {=0A= detach();=0A= iterator it( sh->find( k ).node );=0A= if ( it !=3D end() )=0A= sh->remove( it );=0A= }=0A= # 759 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmap.h"=0A= protected:=0A= =0A= =0A= =0A= void detach() { if ( sh->count > 1 ) { sh->deref(); sh =3D new = QMapPrivate( sh ); } }=0A= =0A= Priv* sh;=0A= };=0A= =0A= =0A= =0A= template=0A= inline QDataStream& operator>>( QDataStream& s, QMap& m ) {=0A= m.clear();=0A= Q_UINT32 c;=0A= s >> c;=0A= for( Q_UINT32 i =3D 0; i < c; ++i ) {=0A= Key k; T t;=0A= s >> k >> t;=0A= m.insert( k, t );=0A= if ( s.atEnd() )=0A= break;=0A= }=0A= return s;=0A= }=0A= =0A= =0A= template=0A= inline QDataStream& operator<<( QDataStream& s, const QMap& m ) {=0A= s << (Q_UINT32)m.size();=0A= QMapConstIterator it =3D m.begin();=0A= for( ; it !=3D m.end(); ++it )=0A= s << it.key() << it.data();=0A= return s;=0A= }=0A= # 44 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qmime.h= " 2=0A= =0A= =0A= =0A= =0A= class QImageDrag;=0A= class QTextDrag;=0A= =0A= class QMimeSource=0A= {=0A= friend class QClipboardData;=0A= =0A= public:=0A= QMimeSource();=0A= virtual ~QMimeSource();=0A= virtual const char* format( int n =3D 0 ) const =3D 0;=0A= virtual bool provides( const char* ) const;=0A= virtual QByteArray encodedData( const char* ) const =3D 0;=0A= int serialNumber() const;=0A= =0A= private:=0A= int ser_no;=0A= enum { NoCache, Text, Graphics } cacheType;=0A= union=0A= {=0A= struct=0A= {=0A= QString *str;=0A= QCString *subtype;=0A= } txt;=0A= struct=0A= {=0A= QImage *img;=0A= QPixmap *pix;=0A= } gfx;=0A= } cache;=0A= void clearCache();=0A= =0A= =0A= friend class QImageDrag;=0A= friend class QTextDrag;=0A= =0A= };=0A= =0A= inline int QMimeSource::serialNumber() const=0A= { return ser_no; }=0A= =0A= class QStringList;=0A= class QMimeSourceFactoryData;=0A= =0A= class QMimeSourceFactory {=0A= public:=0A= QMimeSourceFactory();=0A= virtual ~QMimeSourceFactory();=0A= =0A= static QMimeSourceFactory* defaultFactory();=0A= static void setDefaultFactory( QMimeSourceFactory* );=0A= static QMimeSourceFactory* takeDefaultFactory();=0A= static void addFactory( QMimeSourceFactory *f );=0A= static void removeFactory( QMimeSourceFactory *f );=0A= =0A= virtual const QMimeSource* data(const QString& abs_name) const;=0A= virtual QString makeAbsolute(const QString& abs_or_rel_name, const = QString& context) const;=0A= const QMimeSource* data(const QString& abs_or_rel_name, const = QString& context) const;=0A= =0A= virtual void setText( const QString& abs_name, const QString& text );=0A= virtual void setImage( const QString& abs_name, const QImage& im );=0A= virtual void setPixmap( const QString& abs_name, const QPixmap& pm );=0A= virtual void setData( const QString& abs_name, QMimeSource* data );=0A= virtual void setFilePath( const QStringList& );=0A= virtual QStringList filePath() const;=0A= void addFilePath( const QString& );=0A= virtual void setExtensionType( const QString& ext, const char* = mimetype );=0A= =0A= private:=0A= QMimeSource *dataInternal(const QString& abs_name, const = QMap &extensions ) const;=0A= QMimeSourceFactoryData* d;=0A= };=0A= # 46 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.= h" 2=0A= =0A= =0A= =0A= class QEvent: public Qt=0A= {=0A= public:=0A= enum Type {=0A= =0A= =0A= =0A= =0A= =0A= =0A= None =3D 0,=0A= =0A= =0A= Timer =3D 1,=0A= MouseButtonPress =3D 2,=0A= MouseButtonRelease =3D 3,=0A= MouseButtonDblClick=3D 4,=0A= MouseMove =3D 5,=0A= KeyPress =3D 6,=0A= KeyRelease =3D 7,=0A= FocusIn =3D 8,=0A= FocusOut =3D 9,=0A= Enter =3D 10,=0A= Leave =3D 11,=0A= Paint =3D 12,=0A= Move =3D 13,=0A= Resize =3D 14,=0A= Create =3D 15,=0A= Destroy =3D 16,=0A= Show =3D 17,=0A= Hide =3D 18,=0A= Close =3D 19,=0A= Quit =3D 20,=0A= Reparent =3D 21,=0A= ShowMinimized =3D 22,=0A= ShowNormal =3D 23,=0A= WindowActivate =3D 24,=0A= WindowDeactivate =3D 25,=0A= ShowToParent =3D 26,=0A= HideToParent =3D 27,=0A= ShowMaximized =3D 28,=0A= ShowFullScreen =3D 29,=0A= Accel =3D 30,=0A= Wheel =3D 31,=0A= AccelAvailable =3D 32,=0A= CaptionChange =3D 33,=0A= IconChange =3D 34,=0A= ParentFontChange =3D 35,=0A= ApplicationFontChange =3D 36,=0A= ParentPaletteChange =3D 37,=0A= ApplicationPaletteChange =3D 38,=0A= PaletteChange =3D 39,=0A= Clipboard =3D 40,=0A= Speech =3D 42,=0A= SockAct =3D 50,=0A= AccelOverride =3D 51,=0A= DeferredDelete =3D 52,=0A= DragEnter =3D 60,=0A= DragMove =3D 61,=0A= DragLeave =3D 62,=0A= Drop =3D 63,=0A= DragResponse =3D 64,=0A= ChildInserted =3D 70,=0A= ChildRemoved =3D 71,=0A= LayoutHint =3D 72,=0A= ShowWindowRequest =3D 73,=0A= ActivateControl =3D 80,=0A= DeactivateControl =3D 81,=0A= ContextMenu =3D 82,=0A= IMStart =3D 83,=0A= IMCompose =3D 84,=0A= IMEnd =3D 85,=0A= Accessibility =3D 86,=0A= Tablet =3D 87,=0A= User =3D 1000,=0A= MaxUser =3D 65535=0A= };=0A= =0A= =0A= QEvent( Type type ) : t(type), posted(FALSE), spont(FALSE) {}=0A= virtual ~QEvent();=0A= Type type() const { return t; }=0A= bool spontaneous() const { return spont; }=0A= protected:=0A= Type t;=0A= private:=0A= uint posted : 1;=0A= uint spont : 1;=0A= =0A= =0A= friend class QApplication;=0A= friend class QBaseApplication;=0A= friend class QETWidget;=0A= };=0A= =0A= =0A= class QTimerEvent : public QEvent=0A= {=0A= public:=0A= QTimerEvent( int timerId )=0A= : QEvent(Timer), id(timerId) {}=0A= int timerId() const { return id; }=0A= protected:=0A= int id;=0A= };=0A= =0A= =0A= class QMouseEvent : public QEvent=0A= {=0A= public:=0A= QMouseEvent( Type type, const QPoint &pos, int button, int state );=0A= =0A= QMouseEvent( Type type, const QPoint &pos, const QPoint&globalPos,=0A= int button, int state )=0A= : QEvent(type), p(pos), g(globalPos), = b((ushort)button),s((ushort)state),accpt(TRUE) {};=0A= =0A= const QPoint &pos() const { return p; }=0A= const QPoint &globalPos() const { return g; }=0A= int x() const { return p.x(); }=0A= int y() const { return p.y(); }=0A= int globalX() const { return g.x(); }=0A= int globalY() const { return g.y(); }=0A= ButtonState button() const { return (ButtonState) b; }=0A= ButtonState state() const { return (ButtonState) s; }=0A= ButtonState stateAfter() const;=0A= bool isAccepted() const { return accpt; }=0A= void accept() { accpt =3D TRUE; }=0A= void ignore() { accpt =3D FALSE; }=0A= protected:=0A= QPoint p;=0A= QPoint g;=0A= ushort b;=0A= ushort s;=0A= uint accpt:1;=0A= };=0A= =0A= =0A= =0A= class QWheelEvent : public QEvent=0A= {=0A= public:=0A= QWheelEvent( const QPoint &pos, int delta, int state, Orientation = orient =3D Vertical );=0A= QWheelEvent( const QPoint &pos, const QPoint& globalPos, int delta, = int state, Orientation orient =3D Vertical )=0A= : QEvent(Wheel), p(pos), g(globalPos), d(delta), = s((ushort)state),=0A= accpt(TRUE), o(orient) {}=0A= int delta() const { return d; }=0A= const QPoint &pos() const { return p; }=0A= const QPoint &globalPos() const { return g; }=0A= int x() const { return p.x(); }=0A= int y() const { return p.y(); }=0A= int globalX() const { return g.x(); }=0A= int globalY() const { return g.y(); }=0A= ButtonState state() const { return ButtonState(s); }=0A= Orientation orientation() const { return o; }=0A= bool isAccepted() const { return accpt; }=0A= void accept() { accpt =3D TRUE; }=0A= void ignore() { accpt =3D FALSE; }=0A= protected:=0A= QPoint p;=0A= QPoint g;=0A= int d;=0A= ushort s;=0A= bool accpt;=0A= Orientation o;=0A= };=0A= =0A= =0A= class QTabletEvent : public QEvent=0A= {=0A= public:=0A= enum TabletDevice { NoDevice =3D -1, Puck, Stylus, Eraser };=0A= QTabletEvent( const QPoint &pos, int device, int pressure, int xTilt,=0A= int yTilt, const QPair &uId )=0A= : QEvent( Tablet ), mPos( pos ), mDev( device ), mPress( = pressure ),=0A= mXT( xTilt ), mYT( yTilt ), mType( uId.first ), mPhy( = uId.second )=0A= {}=0A= QTabletEvent( const QPoint &pos, const QPoint &globalPos, int device,=0A= int pressure, int xTilt, int yTilt, const = QPair &uId )=0A= : QEvent( Tablet ), mPos( pos ), mGPos( globalPos ), mDev( = device ),=0A= mPress( pressure ), mXT( xTilt ), mYT( yTilt ), mType( = uId.first ),=0A= mPhy( uId.second )=0A= {}=0A= int pressure() const { return mPress; }=0A= int xTilt() const { return mXT; }=0A= int yTilt() const { return mYT; }=0A= const QPoint &pos() const { return mPos; }=0A= const QPoint &globalPos() const { return mGPos; }=0A= int x() const { return mPos.x(); }=0A= int y() const { return mPos.y(); }=0A= int globalX() const { return mGPos.x(); }=0A= int globalY() const { return mGPos.y(); }=0A= TabletDevice device() const { return TabletDevice(mDev); }=0A= int isAccepted() const { return mbAcc; }=0A= void accept() { mbAcc =3D TRUE; }=0A= void ignore() { mbAcc =3D FALSE; }=0A= QPair uniqueId() { return QPair( mType, mPhy); }=0A= protected:=0A= QPoint mPos;=0A= QPoint mGPos;=0A= int mDev,=0A= mPress,=0A= mXT,=0A= mYT,=0A= mType,=0A= mPhy;=0A= bool mbAcc;=0A= =0A= };=0A= =0A= class QKeyEvent : public QEvent=0A= {=0A= public:=0A= QKeyEvent( Type type, int key, int ascii, int state,=0A= const QString& text=3DQString::null, bool = autorep=3DFALSE, ushort count=3D1 )=0A= : QEvent(type), txt(text), k((ushort)key), s((ushort)state),=0A= a((uchar)ascii), accpt(TRUE), autor(autorep), c(count) {}=0A= int key() const { return k; }=0A= int ascii() const { return a; }=0A= ButtonState state() const { return ButtonState(s); }=0A= ButtonState stateAfter() const;=0A= bool isAccepted() const { return accpt; }=0A= QString text() const { return txt; }=0A= bool isAutoRepeat() const { return autor; }=0A= int count() const { return int(c); }=0A= void accept() { accpt =3D TRUE; }=0A= void ignore() { accpt =3D FALSE; }=0A= =0A= protected:=0A= QString txt;=0A= ushort k, s;=0A= uchar a;=0A= uint accpt:1;=0A= uint autor:1;=0A= ushort c;=0A= };=0A= =0A= =0A= class QFocusEvent : public QEvent=0A= {=0A= public:=0A= =0A= QFocusEvent( Type type )=0A= : QEvent(type) {}=0A= =0A= bool gotFocus() const { return type() =3D=3D FocusIn; }=0A= bool lostFocus() const { return type() =3D=3D FocusOut; }=0A= =0A= enum Reason { Mouse, Tab, Backtab, ActiveWindow, Popup, Shortcut, = Other };=0A= static Reason reason();=0A= static void setReason( Reason reason );=0A= static void resetReason();=0A= =0A= private:=0A= static Reason m_reason;=0A= static Reason prev_reason;=0A= };=0A= =0A= =0A= class QPaintEvent : public QEvent=0A= {=0A= public:=0A= QPaintEvent( const QRegion& paintRegion, bool erased =3D TRUE)=0A= : QEvent(Paint),=0A= rec(paintRegion.boundingRect()),=0A= reg(paintRegion),=0A= erase(erased){}=0A= QPaintEvent( const QRect &paintRect, bool erased =3D TRUE )=0A= : QEvent(Paint),=0A= rec(paintRect),=0A= reg(paintRect),=0A= erase(erased){}=0A= const QRect &rect() const { return rec; }=0A= const QRegion ®ion() const { return reg; }=0A= bool erased() const { return erase; }=0A= protected:=0A= friend class QApplication;=0A= friend class QBaseApplication;=0A= QRect rec;=0A= QRegion reg;=0A= bool erase;=0A= };=0A= =0A= =0A= class QMoveEvent : public QEvent=0A= {=0A= public:=0A= QMoveEvent( const QPoint &pos, const QPoint &oldPos )=0A= : QEvent(Move), p(pos), oldp(oldPos) {}=0A= const QPoint &pos() const { return p; }=0A= const QPoint &oldPos()const { return oldp;}=0A= protected:=0A= QPoint p, oldp;=0A= friend class QApplication;=0A= friend class QBaseApplication;=0A= };=0A= =0A= =0A= class QResizeEvent : public QEvent=0A= {=0A= public:=0A= QResizeEvent( const QSize &size, const QSize &oldSize )=0A= : QEvent(Resize), s(size), olds(oldSize) {}=0A= const QSize &size() const { return s; }=0A= const QSize &oldSize()const { return olds;}=0A= protected:=0A= QSize s, olds;=0A= friend class QApplication;=0A= friend class QBaseApplication;=0A= };=0A= =0A= =0A= class QCloseEvent : public QEvent=0A= {=0A= public:=0A= QCloseEvent()=0A= : QEvent(Close), accpt(FALSE) {}=0A= bool isAccepted() const { return accpt; }=0A= void accept() { accpt =3D TRUE; }=0A= void ignore() { accpt =3D FALSE; }=0A= protected:=0A= bool accpt;=0A= };=0A= =0A= =0A= class QShowEvent : public QEvent=0A= {=0A= public:=0A= QShowEvent()=0A= : QEvent(Show) {}=0A= };=0A= =0A= =0A= class QHideEvent : public QEvent=0A= {=0A= public:=0A= QHideEvent()=0A= : QEvent(Hide) {}=0A= };=0A= =0A= class QContextMenuEvent : public QEvent=0A= {=0A= public:=0A= enum Reason { Mouse, Keyboard, Other };=0A= QContextMenuEvent( Reason reason, const QPoint &pos, const QPoint = &globalPos, int state )=0A= : QEvent( ContextMenu ), p( pos ), gp( globalPos ), accpt( FALSE = ), consum(FALSE),=0A= reas( reason ), s((ushort)state) {}=0A= QContextMenuEvent( Reason reason, const QPoint &pos, int state );=0A= =0A= int x() const { return p.x(); }=0A= int y() const { return p.y(); }=0A= int globalX() const { return gp.x(); }=0A= int globalY() const { return gp.y(); }=0A= =0A= const QPoint& pos() const { return p; }=0A= const QPoint& globalPos() const { return gp; }=0A= =0A= ButtonState state() const { return (ButtonState) s; }=0A= bool isAccepted() const { return accpt; }=0A= bool isConsumed() const { return consum; }=0A= void consume() { consum =3D TRUE; }=0A= void accept() { accpt =3D TRUE; consum =3D TRUE; }=0A= void ignore() { accpt =3D FALSE; consum =3D FALSE; }=0A= =0A= Reason reason() const { return Reason( reas ); }=0A= =0A= protected:=0A= QPoint p;=0A= QPoint gp;=0A= bool accpt;=0A= bool consum;=0A= uint reas:8;=0A= ushort s;=0A= };=0A= =0A= =0A= class QIMEvent : public QEvent=0A= {=0A= public:=0A= QIMEvent( Type type, const QString &text, int cursorPosition )=0A= : QEvent(type), txt(text), cpos(cursorPosition), a(FALSE) {}=0A= const QString &text() const { return txt; }=0A= int cursorPos() const { return cpos; }=0A= bool isAccepted() const { return a; }=0A= void accept() { a =3D TRUE; }=0A= void ignore() { a =3D FALSE; }=0A= private:=0A= QString txt;=0A= int cpos;=0A= bool a;=0A= };=0A= # 447 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qevent.= h"=0A= class QDropEvent : public QEvent, public QMimeSource=0A= {=0A= public:=0A= QDropEvent( const QPoint& pos, Type typ=3DDrop )=0A= : QEvent(typ), p(pos),=0A= act(0), accpt(0), accptact(0), resv(0),=0A= d(0)=0A= {}=0A= const QPoint &pos() const { return p; }=0A= bool isAccepted() const { return accpt || accptact; }=0A= void accept(bool y=3DTRUE) { accpt =3D y; }=0A= void ignore() { accpt =3D FALSE; }=0A= =0A= bool isActionAccepted() const { return accptact; }=0A= void acceptAction(bool y=3DTRUE) { accptact =3D y; }=0A= enum Action { Copy, Link, Move, Private, UserAction=3D100 };=0A= void setAction( Action a ) { act =3D (uint)a; }=0A= Action action() const { return Action(act); }=0A= =0A= QWidget* source() const;=0A= const char* format( int n =3D 0 ) const;=0A= QByteArray encodedData( const char* ) const;=0A= bool provides( const char* ) const;=0A= =0A= QByteArray data(const char* f) const { return encodedData(f); }=0A= =0A= void setPoint( const QPoint& np ) { p =3D np; }=0A= =0A= protected:=0A= QPoint p;=0A= uint act:8;=0A= uint accpt:1;=0A= uint accptact:1;=0A= uint resv:5;=0A= void * d;=0A= };=0A= =0A= =0A= =0A= class QDragMoveEvent : public QDropEvent=0A= {=0A= public:=0A= QDragMoveEvent( const QPoint& pos, Type typ=3DDragMove )=0A= : QDropEvent(pos,typ),=0A= rect( pos, QSize( 1, 1 ) ) {}=0A= QRect answerRect() const { return rect; }=0A= void accept( bool y=3DTRUE ) { QDropEvent::accept(y); }=0A= void accept( const QRect & r) { accpt =3D TRUE; rect =3D r; }=0A= void ignore( const QRect & r) { accpt =3DFALSE; rect =3D r; }=0A= void ignore() { QDropEvent::ignore(); }=0A= =0A= protected:=0A= QRect rect;=0A= };=0A= =0A= =0A= class QDragEnterEvent : public QDragMoveEvent=0A= {=0A= public:=0A= QDragEnterEvent( const QPoint& pos ) :=0A= QDragMoveEvent(pos, DragEnter) { }=0A= };=0A= =0A= =0A= =0A= class QDragResponseEvent : public QEvent=0A= {=0A= public:=0A= QDragResponseEvent( bool accepted )=0A= : QEvent(DragResponse), a(accepted) {}=0A= bool dragAccepted() const { return a; }=0A= protected:=0A= bool a;=0A= };=0A= =0A= =0A= class QDragLeaveEvent : public QEvent=0A= {=0A= public:=0A= QDragLeaveEvent()=0A= : QEvent(DragLeave) {}=0A= };=0A= =0A= =0A= =0A= class QChildEvent : public QEvent=0A= {=0A= public:=0A= QChildEvent( Type type, QObject *child )=0A= : QEvent(type), c(child) {}=0A= QObject *child() const { return c; }=0A= bool inserted() const { return t =3D=3D ChildInserted; }=0A= bool removed() const { return t =3D=3D ChildRemoved; }=0A= protected:=0A= QObject *c;=0A= };=0A= =0A= =0A= class QCustomEvent : public QEvent=0A= {=0A= public:=0A= QCustomEvent( int type );=0A= QCustomEvent( Type type, void *data )=0A= : QEvent(type), d(data) {};=0A= void *data() const { return d; }=0A= void setData( void* data ) { d =3D data; }=0A= private:=0A= void *d;=0A= };=0A= # 46 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= .h" 2=0A= =0A= =0A= =0A= =0A= =0A= =0A= class QMetaObject;=0A= class QVariant;=0A= class QMetaProperty;=0A= class QPostEventList;=0A= class QObjectPrivate;=0A= struct QUObject;=0A= =0A= class QObject: public Qt=0A= {=0A= public: virtual QMetaObject *metaObject() const { return = staticMetaObject(); } virtual const char *className() const; virtual = void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); = virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int, = int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* = qObject() { return (QObject*)this; } static QString tr( const char *, = const char * =3D 0 ); static QString trUtf8( const char *, const char * = =3D 0 ); private: static QMetaObject *metaObj;=0A= =0A= =0A= public:=0A= QObject( QObject *parent=3D0, const char *name=3D0 );=0A= virtual ~QObject();=0A= # 75 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= .h"=0A= virtual bool event( QEvent * );=0A= virtual bool eventFilter( QObject *, QEvent * );=0A= =0A= bool isA( const char * ) const;=0A= bool inherits( const char * ) const;=0A= =0A= const char *name() const;=0A= const char *name( const char * defaultName ) const;=0A= =0A= virtual void setName( const char *name );=0A= bool isWidgetType() const { return isWidget; }=0A= bool highPriority() const { return FALSE; }=0A= =0A= bool signalsBlocked() const { return blockSig; }=0A= void blockSignals( bool b );=0A= =0A= int startTimer( int interval );=0A= void killTimer( int id );=0A= void killTimers();=0A= =0A= QObject *child( const char *objName, const char *inheritsClass =3D = 0, bool recursiveSearch =3D TRUE );=0A= const QObjectList *children() const { return childObjects; }=0A= =0A= static const QObjectList *objectTrees();=0A= =0A= QObjectList *queryList( const char *inheritsClass =3D 0,=0A= const char *objName =3D 0,=0A= bool regexpMatch =3D TRUE,=0A= bool recursiveSearch =3D TRUE ) const;=0A= =0A= virtual void insertChild( QObject * );=0A= virtual void removeChild( QObject * );=0A= =0A= void installEventFilter( const QObject * );=0A= void removeEventFilter( const QObject * );=0A= =0A= static bool connect( const QObject *sender, const char *signal,=0A= const QObject *receiver, const char *member );=0A= bool connect( const QObject *sender, const char *signal,=0A= const char *member ) const;=0A= static bool disconnect( const QObject *sender, const char *signal,=0A= const QObject *receiver, const char *member = );=0A= bool disconnect( const char *signal=3D0,=0A= const QObject *receiver=3D0, const char = *member=3D0 );=0A= bool disconnect( const QObject *receiver, const char *member=3D0 );=0A= static void connectInternal( const QObject *sender, int = signal_index, const QObject *receiver,=0A= int membcode, int member_index );=0A= =0A= void dumpObjectTree();=0A= void dumpObjectInfo();=0A= =0A= =0A= virtual bool setProperty( const char *name, const QVariant& value );=0A= virtual QVariant property( const char *name ) const;=0A= # 137 = "/homes/rob/utils_install/LINUX/qt-3.0.3-LINUX.DEBUG.GCC3/include/qobject= .h"=0A= protected:=0A= void destroyed();=0A= void destroyed( QObject* obj );=0A= =0A= public:=0A= QObject *parent() const { return parentObj; }=0A= =0A= public :=0A= void deleteLater();=0A= =0A= private :=0A= void cleanupEventFilter( QObject* );=0A= =0A= protected:=0A= bool activate_filters( QEvent * );=0A= QConnectionList *receivers( const char* signal ) const;=0A= QConnectionList *receivers( int signal ) const;=0A= void activate_signal( int signal );=0A= void activate_signal( int signal, int );=0A= void activate_signal( int signal, double );=0A= void activate_signal( int signal, QString );=0A= void activate_signal_bool( int signal, bool );=0A= void activate_signal( QConnectionList *clist, QUObject *o );=0A= =0A= const QObject *sender();=0A= =0A= virtual void timerEvent( QTimerEvent * );=0A= virtual void childEvent( QChildEvent * );=0A= virtual void customEvent( QCustomEvent * );=0A= =0A= virtual void connectNotify( const char *signal );=0A= virtual void disconnectNotify( const char *signal );=0A= virtual bool checkConnectArgs( const char *signal, const QObject = *receiver,=0A= const char *member );=0A= static QCString normalizeSignalSlot( const char *signalSlot );=0A= =0A= private:=0A= uint isSignal : 1;=0A= uint isWidget : 1;=0A= uint pendTimer : 1;=0A= uint blockSig : 1;=0A= uint wasDeleted : 1;=0A= uint isTree : 1;=0A= =0A= const char *objname;=0A= QObject *parentObj;=0A= QObjectList *childObjects;=0A= QSignalVec *connections;=0A= QObjectList *senderObjects;=0A= QObjectList *eventFilters;=0A= QPostEventList *postedEvents;=0A= QObjectPrivate* d;=0A= =0A= static QMetaObject* staticQtMetaObject();=0A= =0A= friend class QApplication;=0A= friend class QBaseApplication;=0A= friend class QWidget;=0A= friend class QSignal;=0A= friend class QSenderObject;=0A= =0A= private:=0A= =0A= QObject( const QObject & );=0A= QObject &operator=3D( const QObject & );=0A= =0A= };=0A= =0A= =0A= inline bool QObject::connect( const QObject *sender, const char *signal,=0A= const char *member ) const=0A= {=0A= return connect( sender, signal, this, member );=0A= }=0A= =0A= =0A= inline bool QObject::disconnect( const char *signal,=0A= const QObject *receiver, const char = *member )=0A= {=0A= return disconnect( this, signal, receiver, member );=0A= }=0A= =0A= =0A= inline bool QObject::disconnect( const QObject *receiver, const char = *member )=0A= {=0A= return disconnect( this, 0, receiver, member );=0A= }=0A= =0A= =0A= class QSenderObject : public QObject=0A= {=0A= public:=0A= void setSender( QObject *s );=0A= };=0A= # 7 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h" 2=0A= =0A= =0A= =0A= =0A= =0A= =0A= # 1 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h" 1=0A= # 11 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h"=0A= # 1 "/usr/include/assert.h" 1 3=0A= # 65 "/usr/include/assert.h" 3=0A= extern "C" {=0A= =0A= =0A= extern void __assert_fail (__const char *__assertion, __const char = *__file,=0A= unsigned int __line, __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= extern void __assert_perror_fail (int __errnum, __const char *__file,=0A= unsigned int __line,=0A= __const char *__function)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= =0A= =0A= extern void __assert (const char *__assertion, const char *__file, int = __line)=0A= throw () __attribute__ ((__noreturn__));=0A= =0A= =0A= }=0A= # 12 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h" 2=0A= =0A= =0A= namespace nmove=0A= {=0A= =0A= namespace utilities=0A= {=0A= # 31 "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h"=0A= template =0A= class Array;=0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= class ArraySize=0A= {=0A= typedef const unsigned int (&UIntArrayN)[N];=0A= =0A= unsigned int m_Dimensions[N];=0A= =0A= ArraySize(const unsigned int (&Dimensions)[N-1],unsigned int dim)=0A= {=0A= std::copy(&Dimensions[0],&Dimensions[N-1],m_Dimensions);=0A= m_Dimensions[N-1]=3Ddim;=0A= }=0A= =0A= public:=0A= =0A= ArraySize operator () (unsigned int dim)=0A= {=0A= return ArraySize(m_Dimensions,dim);=0A= }=0A= =0A= operator UIntArrayN () const { return m_Dimensions; }=0A= =0A= friend class ArraySizes;=0A= friend class ArraySize;=0A= };=0A= =0A= =0A= class ArraySizes=0A= {=0A= unsigned int m_Dimensions[1];=0A= =0A= public:=0A= =0A= explicit ArraySizes(unsigned int dim)=0A= {=0A= m_Dimensions[0]=3Ddim;=0A= }=0A= =0A= ArraySize<2> operator () (unsigned int dim)=0A= {=0A= return ArraySize<2>(m_Dimensions,dim);=0A= }=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template =0A= class RefArray=0A= {=0A= public:=0A= =0A= =0A= typedef T value_type;=0A= typedef T & reference;=0A= typedef const T & const_reference;=0A= typedef T * pointer;=0A= typedef const T * const_pointer;=0A= typedef T * iterator;=0A= typedef const T * const_iterator;=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= =0A= =0A= enum { array_dims =3D N };=0A= =0A= private:=0A= =0A= const size_type * const m_pNDimensions;=0A= const size_type * const m_pSubArrayLen;=0A= =0A= T * const m_pElements;=0A= =0A= RefArray(T * pElements, const size_type * pNDimensions,=0A= const size_type * pSubArrayLen)=0A= :m_pElements(pElements),m_pNDimensions(pNDimensions),=0A= m_pSubArrayLen(pSubArrayLen)=0A= {=0A= (static_cast ((m_pElements && m_pNDimensions && = m_pSubArrayLen) ? 0 : (__assert_fail ("m_pElements && m_pNDimensions && = m_pSubArrayLen", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 118, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((m_pNDimensions[0]>0 && m_pSubArrayLen[0]>0) ? = 0 : (__assert_fail ("m_pNDimensions[0]>0 && m_pSubArrayLen[0]>0", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 119, = __PRETTY_FUNCTION__), 0)));=0A= }=0A= =0A= public:=0A= =0A= RefArray operator [](size_type Index)=0A= {=0A= (static_cast ((m_pElements) ? 0 : (__assert_fail = ("m_pElements", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 126, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((Index(&m_pElements[Index*m_pSubArrayLen[0]],=0A= m_pNDimensions+1,m_pSubArrayLen+1);=0A= }=0A= =0A= const RefArray operator [](size_type Index) const=0A= {=0A= (static_cast ((m_pElements) ? 0 : (__assert_fail = ("m_pElements", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 134, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((Index(&m_pElements[Index*m_pSubArrayLen[0]],=0A= m_pNDimensions+1,m_pSubArrayLen+1);=0A= }=0A= =0A= =0A= iterator begin() { return m_pElements; }=0A= const_iterator begin() const { return m_pElements; }=0A= iterator end() { return m_pElements+size(); }=0A= const_iterator end() const { return m_pElements+size(); }=0A= =0A= =0A= size_type size() const { return m_pNDimensions[0]*m_pSubArrayLen[0]; }=0A= =0A= =0A= size_type size(unsigned int Dim) const=0A= {=0A= (static_cast ((Dim>=3D1 && Dim<=3DN) ? 0 : (__assert_fail = ("Dim>=3D1 && Dim<=3DN", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 152, = __PRETTY_FUNCTION__), 0)));=0A= return m_pNDimensions[Dim-1];=0A= }=0A= =0A= =0A= unsigned int dimensions() const { return N; }=0A= =0A= protected:=0A= =0A= =0A= =0A= =0A= =0A= =0A= void copy(const RefArray & SA, const T & Init=3DT())=0A= {=0A= size_type below=3Dstd::min(size(1),SA.size(1));=0A= size_type above=3Dsize(1);=0A= =0A= =0A= for (size_type i=3D0;i=0A= friend bool operator =3D=3D (const RefArray & A, const = RefArray & B);=0A= =0A= friend class Array;=0A= friend class Array;=0A= friend class RefArray;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= class RefArray=0A= {=0A= public:=0A= =0A= =0A= typedef T value_type;=0A= typedef T & reference;=0A= typedef const T & const_reference;=0A= typedef T * pointer;=0A= typedef const T * const_pointer;=0A= typedef T * iterator;=0A= typedef const T * const_iterator;=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= =0A= =0A= enum { array_dims =3D 1 };=0A= =0A= private:=0A= =0A= const size_type * const m_pNDimensions;=0A= =0A= T * const m_pElements;=0A= =0A= RefArray(T * pElements, const size_type * pNDimensions,=0A= const size_type * pSubArrayLen)=0A= :m_pElements(pElements),m_pNDimensions(pNDimensions)=0A= {=0A= (static_cast ((m_pElements && m_pNDimensions && = pSubArrayLen) ? 0 : (__assert_fail ("m_pElements && m_pNDimensions && = pSubArrayLen", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 229, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((m_pNDimensions[0]>0 && = pSubArrayLen[0]=3D=3D1) ? 0 : (__assert_fail ("m_pNDimensions[0]>0 && = pSubArrayLen[0]=3D=3D1", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 230, = __PRETTY_FUNCTION__), 0)));=0A= }=0A= =0A= public:=0A= =0A= reference operator [](size_type Index)=0A= {=0A= (static_cast ((m_pElements) ? 0 : (__assert_fail = ("m_pElements", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 237, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((Index ((m_pElements) ? 0 : (__assert_fail = ("m_pElements", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 244, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((Index ((Dim=3D=3D1) ? 0 : (__assert_fail = ("Dim=3D=3D1", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 261, = __PRETTY_FUNCTION__), 0)));=0A= return m_pNDimensions[0];=0A= }=0A= =0A= =0A= unsigned int dimensions() const { return 1; }=0A= =0A= protected:=0A= =0A= =0A= =0A= =0A= =0A= =0A= void copy(const RefArray & SA, const T & Init=3DT())=0A= {=0A= size_type below=3Dstd::min(size(1),SA.size(1));=0A= size_type above=3Dsize(1);=0A= =0A= =0A= for (size_type i=3D0;i=0A= friend bool operator =3D=3D (const RefArray & A, const = RefArray & B);=0A= =0A= friend class Array;=0A= friend class Array;=0A= friend class RefArray;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= class Array=0A= {=0A= public:=0A= =0A= =0A= typedef T value_type;=0A= typedef T & reference;=0A= typedef const T & const_reference;=0A= typedef T * pointer;=0A= typedef const T * const_pointer;=0A= typedef T * iterator;=0A= typedef const T * const_iterator;=0A= typedef size_t size_type;=0A= typedef ptrdiff_t difference_type;=0A= =0A= =0A= enum { array_dims =3D N };=0A= =0A= private:=0A= =0A= T * m_pArrayElements;=0A= size_type m_nArrayElements;=0A= =0A= size_type m_NDimensions[N];=0A= size_type m_SubArrayLen[N];=0A= =0A= public:=0A= =0A= =0A= Array()=0A= :m_pArrayElements(__null),m_nArrayElements(0)=0A= {=0A= std::fill(m_NDimensions,m_NDimensions+N,0);=0A= std::fill(m_SubArrayLen,m_SubArrayLen+N,0);=0A= }=0A= =0A= =0A= =0A= explicit Array(const unsigned int (&Dimensions)[N], const T & = Init=3DT())=0A= :m_pArrayElements(__null),m_nArrayElements(0)=0A= {=0A= std::fill(m_NDimensions,m_NDimensions+N,0);=0A= std::fill(m_SubArrayLen,m_SubArrayLen+N,0);=0A= =0A= resize(Dimensions,Init);=0A= }=0A= =0A= =0A= Array(const Array & A)=0A= :m_pArrayElements(__null),m_nArrayElements(0)=0A= {=0A= std::fill(m_NDimensions,m_NDimensions+N,0);=0A= std::fill(m_SubArrayLen,m_SubArrayLen+N,0);=0A= =0A= Array Temp;=0A= if (!A.empty() && Temp.resize(A.m_NDimensions))=0A= std::copy(A.begin(),A.end(),Temp.begin());=0A= swap(Temp);=0A= }=0A= =0A= =0A= ~Array()=0A= {=0A= delete [] m_pArrayElements;=0A= }=0A= =0A= =0A= RefArray operator [](size_type Index)=0A= {=0A= (static_cast ((m_pArrayElements) ? 0 : (__assert_fail = ("m_pArrayElements", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 379, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((Index(&m_pArrayElements[Index*m_SubArrayLen[0]],=0A= m_NDimensions+1,m_SubArrayLen+1);=0A= }=0A= =0A= =0A= const RefArray operator [](size_type Index) const=0A= {=0A= (static_cast ((m_pArrayElements) ? 0 : (__assert_fail = ("m_pArrayElements", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 388, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((Index(&m_pArrayElements[Index*m_SubArrayLen[0]],=0A= m_NDimensions+1,m_SubArrayLen+1);=0A= }=0A= =0A= =0A= RefArray GetRefArray()=0A= {=0A= (static_cast ((m_pArrayElements) ? 0 : (__assert_fail = ("m_pArrayElements", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 397, = __PRETTY_FUNCTION__), 0)));=0A= return RefArray(m_pArrayElements,m_NDimensions,m_SubArrayLen);=0A= }=0A= =0A= =0A= const RefArray GetRefArray() const=0A= {=0A= (static_cast ((m_pArrayElements) ? 0 : (__assert_fail = ("m_pArrayElements", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 404, = __PRETTY_FUNCTION__), 0)));=0A= return RefArray(m_pArrayElements,m_NDimensions,m_SubArrayLen);=0A= }=0A= =0A= =0A= bool resize(const unsigned int (&Dimensions)[N], const T & = Init=3DT(), bool PreserveElems=3Dfalse)=0A= {=0A= Array Temp;=0A= =0A= =0A= Temp.m_nArrayElements=3D1;=0A= for (int i=3D0;ii;k--)=0A= Temp.m_SubArrayLen[i]*=3DDimensions[k];=0A= }=0A= =0A= =0A= Temp.m_pArrayElements=3Dnew T[Temp.m_nArrayElements];=0A= =0A= =0A= if (!Temp.m_pArrayElements)=0A= return false;=0A= =0A= =0A= if (PreserveElems && !empty())=0A= Temp.copy(*this,Init);=0A= =0A= else=0A= Temp.initialize(Init);=0A= =0A= =0A= swap(Temp);=0A= =0A= return true;=0A= }=0A= =0A= =0A= void clear()=0A= {=0A= delete [] m_pArrayElements;=0A= m_pArrayElements=3D__null;=0A= m_nArrayElements=3D0;=0A= =0A= std::fill(m_NDimensions,m_NDimensions+N,0);=0A= std::fill(m_SubArrayLen,m_SubArrayLen+N,0);=0A= }=0A= =0A= =0A= Array & operator =3D (const Array & A)=0A= {=0A= if (&A!=3Dthis)=0A= {=0A= Array Temp(A);=0A= swap(Temp);=0A= }=0A= return *this;=0A= }=0A= =0A= =0A= iterator begin() { return m_pArrayElements; }=0A= const_iterator begin() const { return m_pArrayElements; }=0A= iterator end() { return m_pArrayElements+m_nArrayElements; }=0A= const_iterator end() const { return = m_pArrayElements+m_nArrayElements; }=0A= =0A= =0A= size_type size() const { return m_nArrayElements; }=0A= =0A= =0A= size_type size(unsigned int Dim) const=0A= {=0A= (static_cast ((Dim>=3D1 && Dim<=3DN) ? 0 : (__assert_fail = ("Dim>=3D1 && Dim<=3DN", = "/homes/rob/dev/products/nmove/main/utilities/inc/Array.h", 480, = __PRETTY_FUNCTION__), 0)));=0A= return m_NDimensions[Dim-1];=0A= }=0A= =0A= =0A= bool empty() const { return m_nArrayElements=3D=3D0; }=0A= =0A= =0A= unsigned int dimensions() const { return N; }=0A= =0A= =0A= void swap(Array & A)=0A= {=0A= std::swap(m_pArrayElements,A.m_pArrayElements);=0A= std::swap(m_nArrayElements,A.m_nArrayElements);=0A= =0A= std::swap_ranges(m_NDimensions,m_NDimensions+N,A.m_NDimensions);=0A= std::swap_ranges(m_SubArrayLen,m_SubArrayLen+N,A.m_SubArrayLen);=0A= }=0A= =0A= protected:=0A= =0A= =0A= =0A= =0A= =0A= =0A= void copy(const Array & A, const T & Init=3DT())=0A= {=0A= size_type below=3Dstd::min(size(1),A.size(1));=0A= size_type above=3Dsize(1);=0A= =0A= =0A= for (size_type i=3D0;i=0A= friend bool operator =3D=3D (const Array & A, const = Array & B);=0A= };=0A= =0A= =0A= =0A= template =0A= bool operator =3D=3D (const Array & A, const Array & B)=0A= {=0A= return std::equal(A.m_NDimensions,A.m_NDimensions+N,B.m_NDimensions)=0A= && std::equal(A.begin(),A.end(),B.begin());=0A= }=0A= =0A= =0A= template =0A= bool operator !=3D (const Array & A, const Array & B)=0A= {=0A= return !(A=3D=3DB);=0A= }=0A= =0A= =0A= template =0A= bool operator =3D=3D (const RefArray & A, const RefArray & B)=0A= {=0A= return = std::equal(A.m_pNDimensions,A.m_pNDimensions+N,B.m_pNDimensions)=0A= && std::equal(A.begin(),A.end(),B.begin());=0A= }=0A= =0A= =0A= template =0A= bool operator !=3D (const RefArray & A, const RefArray & B)=0A= {=0A= return !(A=3D=3DB);=0A= }=0A= =0A= =0A= =0A= template =0A= class Array=0A= {=0A= };=0A= =0A= =0A= =0A= template =0A= class Array=0A= {=0A= };=0A= =0A= }=0A= =0A= }=0A= # 14 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h" 2=0A= =0A= =0A= =0A= =0A= =0A= enum IorJ {i_parallel, j_parallel };=0A= =0A= =0A= =0A= template =0A= class Grid2D=0A= {=0A= public:=0A= =0A= class PointReference;=0A= =0A= class VertexIterator;=0A= =0A= class EdgeReference;=0A= =0A= class EdgeIterator;=0A= =0A= class FaceReference;=0A= =0A= class FaceIterator;=0A= =0A= Grid2D();=0A= Grid2D(const Point & origin, N spacing_i, N spacing_j, UInt i_size, = UInt j_size);=0A= ~Grid2D();=0A= =0A= PointReference vertex(UInt i, UInt j);=0A= EdgeReference edge(UInt i, UInt j, IorJ i_or_j);=0A= =0A= VertexIterator vertex_begin();=0A= VertexIterator vertex_end();=0A= =0A= EdgeIterator edge_begin();=0A= EdgeIterator edge_end();=0A= =0A= FaceIterator face_begin();=0A= FaceIterator face_end();=0A= =0A= private:=0A= =0A= nmove::utilities::Array m_z_values;=0A= =0A= Point m_origin;=0A= =0A= N m_spacing_i;=0A= N m_spacing_j;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= class Grid2D::PointReference=0A= {=0A= public:=0A= =0A= class PointComponentReference;=0A= =0A= PointReference(UInt i, UInt j, Grid2D * outer_this);=0A= PointReference(const PointReference & other);=0A= =0A= ~PointReference();=0A= =0A= operator Point() const;=0A= PointReference & operator=3D(const Point & rhs);=0A= =0A= =0A= bool operator=3D=3D(const Point & rhs) const;=0A= bool operator!=3D(const Point & rhs) const;=0A= bool operator< (const Point & rhs) const;=0A= bool operator<=3D(const Point & rhs) const;=0A= bool operator> (const Point & rhs) const;=0A= bool operator>=3D(const Point & rhs) const;=0A= =0A= const N & x() const;=0A= const N & y() const;=0A= const N & z() const;=0A= const N & operator[](UInt c) const;=0A= =0A= =0A= =0A= =0A= =0A= =0A= PointComponentReference x();=0A= PointComponentReference y();=0A= PointComponentReference z();=0A= PointComponentReference operator[](UInt c);=0A= =0A= private:=0A= =0A= PointReference & operator=3D(const PointReference & rhs);=0A= =0A= void update_cached_point() const;=0A= void write_back() const;=0A= =0A= const UInt m_i;=0A= const UInt m_j;=0A= Grid2D * const m_outer_this;=0A= =0A= mutable Point m_cached_point;=0A= =0A= mutable bool m_first_time;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= class Grid2D::PointReference::PointComponentReference=0A= {=0A= public:=0A= PointComponentReference(PointReference * target, UInt component);=0A= =0A= PointComponentReference(const PointComponentReference & other);=0A= ~PointComponentReference();=0A= =0A= operator N() const;=0A= =0A= PointComponentReference & operator=3D (const N & rhs);=0A= PointComponentReference & operator+=3D(const N & rhs);=0A= PointComponentReference & operator-=3D(const N & rhs);=0A= PointComponentReference & operator*=3D(const N & rhs);=0A= PointComponentReference & operator/=3D(const N & rhs);=0A= =0A= bool operator=3D=3D(const N & rhs) const;=0A= bool operator!=3D(const N & rhs) const;=0A= bool operator< (const N & rhs) const;=0A= bool operator<=3D(const N & rhs) const;=0A= bool operator> (const N & rhs) const;=0A= bool operator>=3D(const N & rhs) const;=0A= =0A= =0A= =0A= private:=0A= PointComponentReference & operator=3D(const PointComponentReference = & rhs);=0A= =0A= const UInt m_component;=0A= PointReference * const m_target;=0A= };=0A= =0A= =0A= =0A= =0A= template =0A= class Grid2D::EdgeReference=0A= {=0A= public:=0A= =0A= EdgeReference(UInt i, UInt j, IorJ i_or_j, Grid2D * outer_this);=0A= EdgeReference(const EdgeReference & other);=0A= =0A= ~EdgeReference();=0A= =0A= operator Edge() const;=0A= EdgeReference & operator=3D(const Edge & rhs);=0A= =0A= bool operator=3D=3D(const Edge & rhs) const;=0A= bool operator!=3D(const Edge & rhs) const;=0A= bool operator< (const Edge & rhs) const;=0A= =0A= Point source() const;=0A= Point target() const;=0A= Point operator[](UInt c) const;=0A= =0A= Grid2D::PointReference source();=0A= Grid2D::PointReference target();=0A= Grid2D::PointReference operator[](UInt c);=0A= =0A= private:=0A= EdgeReference & operator=3D(const EdgeReference & rhs);=0A= =0A= const UInt m_i;=0A= const UInt m_j;=0A= const IorJ m_i_or_j;=0A= Grid2D * const m_outer_this;=0A= };=0A= =0A= =0A= =0A= template =0A= class Grid2D::FaceReference=0A= {=0A= public:=0A= friend class Grid2D;=0A= =0A= class VertexCirculator;=0A= =0A= class EdgeCirculator;=0A= =0A= FaceReference(UInt i, UInt j, Grid2D * outer_this);=0A= FaceReference(const FaceReference & other);=0A= =0A= ~FaceReference();=0A= =0A= operator Face() const;=0A= FaceReference & operator=3D(const Face & rhs);=0A= =0A= bool operator=3D=3D(const Face & rhs) const;=0A= bool operator!=3D(const Face & rhs) const;=0A= bool operator< (const Face & rhs) const;=0A= =0A= VertexCirculator vertex_begin();=0A= =0A= =0A= Point operator[](UInt c) const;=0A= Grid2D::PointReference operator[](UInt c);=0A= =0A= =0A= EdgeCirculator edge_begin();=0A= =0A= size_t size() const;=0A= private:=0A= FaceReference & operator=3D(const FaceReference & rhs);=0A= =0A= const UInt m_i;=0A= const UInt m_j;=0A= Grid2D * const m_outer_this;=0A= };=0A= =0A= =0A= =0A= template =0A= class Grid2D::FaceReference::VertexCirculator=0A= {=0A= public:=0A= VertexCirculator(UInt c, FaceReference * outer_this);=0A= VertexCirculator(const VertexCirculator & other);=0A= =0A= ~VertexCirculator();=0A= =0A= VertexCirculator & operator=3D(const VertexCirculator & rhs);=0A= =0A= typename Grid2D::PointReference operator*();=0A= Point operator*() const;=0A= =0A= VertexCirculator & operator++();=0A= =0A= bool operator=3D=3D(Int null) const;=0A= bool operator=3D=3D(const VertexCirculator & rhs) const;=0A= bool operator!=3D(Int null) const;=0A= bool operator!=3D(const VertexCirculator & rhs) const;=0A= =0A= =0A= =0A= private:=0A= UInt m_c;=0A= typename Grid2D::FaceReference * const m_outer_this;=0A= };=0A= =0A= =0A= =0A= template =0A= class Grid2D::FaceReference::EdgeCirculator=0A= {=0A= public:=0A= EdgeCirculator(UInt c, FaceReference * outer_this);=0A= EdgeCirculator(const EdgeCirculator & other);=0A= =0A= ~EdgeCirculator();=0A= =0A= EdgeCirculator & operator=3D(const EdgeCirculator & rhs);=0A= =0A= typename Grid2D::EdgeReference operator*();=0A= Edge operator*() const;=0A= =0A= EdgeCirculator & operator++();=0A= =0A= bool operator=3D=3D(Int null) const;=0A= bool operator=3D=3D(const EdgeCirculator & rhs) const;=0A= bool operator!=3D(Int null) const;=0A= bool operator!=3D(const EdgeCirculator & rhs) const;=0A= =0A= =0A= =0A= private:=0A= UInt m_c;=0A= typename Grid2D::FaceReference * const m_outer_this;=0A= };=0A= =0A= =0A= =0A= template =0A= class Grid2D::EdgeIterator=0A= {=0A= public:=0A= EdgeIterator();=0A= EdgeIterator(UInt i, UInt j, IorJ i_or_j, Grid2D * outer_this);=0A= EdgeIterator(const EdgeIterator & other);=0A= EdgeIterator & operator=3D(const EdgeIterator & rhs);=0A= ~EdgeIterator();=0A= =0A= EdgeReference operator*() const;=0A= EdgeIterator & operator++();=0A= =0A= bool operator=3D=3D(const EdgeIterator & rhs) const;=0A= bool operator!=3D(const EdgeIterator & rhs) const;=0A= bool operator< (const EdgeIterator & rhs) const;=0A= =0A= private:=0A= UInt m_i;=0A= UInt m_j;=0A= IorJ m_i_or_j;=0A= Grid2D * m_outer_this;=0A= };=0A= =0A= =0A= =0A= template =0A= class Grid2D::VertexIterator=0A= {=0A= public:=0A= VertexIterator();=0A= VertexIterator(UInt i, UInt j, Grid2D * outer_this);=0A= VertexIterator(const VertexIterator & other);=0A= VertexIterator & operator=3D(const VertexIterator & rhs);=0A= ~VertexIterator();=0A= =0A= PointReference operator*() const;=0A= VertexIterator & operator++();=0A= =0A= =0A= bool operator=3D=3D(const VertexIterator & rhs) const;=0A= bool operator!=3D(const VertexIterator & rhs) const;=0A= bool operator< (const VertexIterator & rhs) const;=0A= =0A= private:=0A= UInt m_i;=0A= UInt m_j;=0A= Grid2D * m_outer_this;=0A= };=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Grid2D::VertexIterator::VertexIterator() :=0A= m_i(0),=0A= m_j(0),=0A= m_outer_this(0)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::VertexIterator::VertexIterator(UInt i, UInt j, Grid2D * = outer_this) :=0A= m_i(i),=0A= m_j(j),=0A= m_outer_this(outer_this)=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 373, = __PRETTY_FUNCTION__), 0)));=0A= }=0A= =0A= template =0A= Grid2D::VertexIterator::VertexIterator(const VertexIterator & other) :=0A= m_i(other.m_i),=0A= m_j(other.m_j),=0A= m_outer_this(other.m_outer_this)=0A= {=0A= (static_cast ((other.m_outer_this) ? 0 : (__assert_fail = ("other.m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 382, = __PRETTY_FUNCTION__), 0)));=0A= }=0A= =0A= template =0A= typename Grid2D::VertexIterator & = Grid2D::VertexIterator::operator=3D(const VertexIterator & rhs)=0A= {=0A= (static_cast ((rhs.m_outer_this) ? 0 : (__assert_fail = ("rhs.m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 388, = __PRETTY_FUNCTION__), 0)));=0A= =0A= if(this !=3D &rhs)=0A= {=0A= m_i =3D rhs.m_i;=0A= m_j =3D rhs.m_j;=0A= m_outer_this =3D rhs.m_j;=0A= }=0A= }=0A= =0A= template =0A= Grid2D::VertexIterator::~VertexIterator()=0A= {=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference = Grid2D::VertexIterator::operator*() const=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 406, = __PRETTY_FUNCTION__), 0)));=0A= =0A= return PointReference(m_i, m_j, m_outer_this);=0A= }=0A= =0A= template =0A= typename Grid2D::VertexIterator & = Grid2D::VertexIterator::operator++()=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 414, = __PRETTY_FUNCTION__), 0)));=0A= =0A= ++m_i;=0A= if(m_i =3D=3D m_outer_this->m_z_values.size(1))=0A= {=0A= m_i =3D 0;=0A= ++m_j;=0A= }=0A= =0A= =0A= =0A= return *this;=0A= }=0A= =0A= template =0A= bool Grid2D::VertexIterator::operator=3D=3D(const VertexIterator & = rhs) const=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 431, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((rhs.m_outer_this) ? 0 : (__assert_fail = ("rhs.m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 432, = __PRETTY_FUNCTION__), 0)));=0A= =0A= if(this =3D=3D &rhs)=0A= {=0A= return true;=0A= }=0A= return ((m_outer_this =3D=3D rhs.m_outer_this) && (m_i =3D=3D rhs.m_i) = && (m_j =3D=3D rhs.m_j) );=0A= }=0A= =0A= template =0A= bool Grid2D::VertexIterator::operator!=3D(const VertexIterator & rhs) = const=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 444, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((rhs.m_outer_this) ? 0 : (__assert_fail = ("rhs.m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 445, = __PRETTY_FUNCTION__), 0)));=0A= return ((m_outer_this !=3D rhs.m_outer_this) || (m_i !=3D rhs.m_i) || = (m_j !=3D rhs.m_j) );=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Grid2D::EdgeIterator::EdgeIterator() :=0A= m_i(0),=0A= m_j(0),=0A= m_i_or_j(i_parallel),=0A= m_outer_this(0)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::EdgeIterator::EdgeIterator(UInt i, UInt j, IorJ i_or_j, = Grid2D* outer_this) :=0A= m_i(i),=0A= m_j(j),=0A= m_i_or_j(i_or_j),=0A= m_outer_this(outer_this)=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 469, = __PRETTY_FUNCTION__), 0)));=0A= }=0A= =0A= template =0A= Grid2D::EdgeIterator::EdgeIterator(const EdgeIterator & other) :=0A= m_i(other.m_i),=0A= m_j(other.m_j),=0A= m_i_or_j(other.m_i_or_j),=0A= m_outer_this(other.m_outer_this)=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 479, = __PRETTY_FUNCTION__), 0)));=0A= }=0A= =0A= template =0A= Grid2D::EdgeIterator::~EdgeIterator()=0A= {=0A= }=0A= =0A= template =0A= typename Grid2D::EdgeReference Grid2D::EdgeIterator::operator*() = const=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 490, = __PRETTY_FUNCTION__), 0)));=0A= =0A= return EdgeReference(m_i, m_j, m_i_or_j, m_outer_this);=0A= }=0A= =0A= template =0A= typename Grid2D::EdgeIterator & Grid2D::EdgeIterator::operator++()=0A= {=0A= =0A= =0A= =0A= =0A= =0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 503, = __PRETTY_FUNCTION__), 0)));=0A= =0A= =0A= if(i_parallel =3D=3D m_i_or_j)=0A= {=0A= if( m_j < m_outer_this->m_z_values.size(2) - 1 )=0A= {=0A= m_i_or_j =3D j_parallel;=0A= }=0A= else=0A= {=0A= ++m_i;=0A= }=0A= }=0A= else=0A= {=0A= ++m_i;=0A= =0A= UInt i_size =3D m_outer_this->m_z_values.size(1);=0A= =0A= if(m_i < i_size - 1)=0A= {=0A= m_i_or_j =3D i_parallel;=0A= }=0A= else if( m_i =3D=3D i_size - 1 )=0A= {=0A= m_i_or_j =3D j_parallel;=0A= }=0A= else=0A= {=0A= m_i =3D 0;=0A= ++m_j;=0A= m_i_or_j =3D i_parallel;=0A= }=0A= }=0A= =0A= return *this;=0A= }=0A= =0A= template =0A= bool Grid2D::EdgeIterator::operator=3D=3D(const EdgeIterator & rhs) = const=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 545, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((rhs.m_outer_this) ? 0 : (__assert_fail = ("rhs.m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 546, = __PRETTY_FUNCTION__), 0)));=0A= =0A= if(this =3D=3D &rhs)=0A= {=0A= return true;=0A= }=0A= return (m_outer_this =3D=3D rhs.m_outer_this)=0A= && ( m_i =3D=3D rhs.m_i )=0A= && ( m_j =3D=3D rhs.m_j )=0A= && ( m_i_or_j =3D=3D rhs.m_i_or_j );=0A= }=0A= =0A= template =0A= bool Grid2D::EdgeIterator::operator!=3D(const EdgeIterator & rhs) = const=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 561, = __PRETTY_FUNCTION__), 0)));=0A= (static_cast ((rhs.m_outer_this) ? 0 : (__assert_fail = ("rhs.m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 562, = __PRETTY_FUNCTION__), 0)));=0A= =0A= return (m_outer_this !=3D rhs.m_outer_this)=0A= || ( m_i !=3D rhs.m_i )=0A= || ( m_j !=3D rhs.m_j )=0A= || ( m_i_or_j !=3D rhs.m_i_or_j );=0A= =0A= }=0A= =0A= =0A= =0A= =0A= =0A= IorJ & operator++(IorJ & i_or_j)=0A= {=0A= if(i_parallel =3D=3D i_or_j)=0A= {=0A= i_or_j =3D j_parallel;=0A= return i_or_j;=0A= }=0A= i_or_j =3D i_parallel;=0A= return i_or_j;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Grid2D::Grid2D()=0A= {=0A= =0A= }=0A= =0A= template =0A= Grid2D::Grid2D(const Point & origin, N spacing_i, N spacing_j, = UInt i_size, UInt j_size) :=0A= m_origin(origin),=0A= m_spacing_i(spacing_i),=0A= m_spacing_j(spacing_j)=0A= {=0A= UInt dimensions[2];=0A= dimensions[0] =3D i_size;=0A= dimensions[1] =3D j_size;=0A= m_z_values.resize(dimensions, origin.z() );=0A= }=0A= =0A= template =0A= Grid2D::~Grid2D()=0A= {=0A= =0A= }=0A= =0A= template =0A= typename Grid2D::PointReference Grid2D::vertex(UInt i, UInt j)=0A= {=0A= =0A= return PointReference(i, j, this);=0A= }=0A= =0A= template =0A= typename Grid2D::EdgeReference Grid2D::edge(UInt i, UInt j, IorJ = i_or_j)=0A= {=0A= =0A= return EdgeReference(i, j, i_or_j, this);=0A= }=0A= =0A= template =0A= typename Grid2D::VertexIterator Grid2D::vertex_begin()=0A= {=0A= =0A= return VertexIterator(0, 0, this);=0A= }=0A= =0A= template =0A= typename Grid2D::VertexIterator Grid2D::vertex_end()=0A= {=0A= =0A= return VertexIterator(0, m_z_values.size(2), this);=0A= }=0A= =0A= template =0A= typename Grid2D::EdgeIterator Grid2D::edge_begin()=0A= {=0A= return EdgeIterator(0, 0, i_parallel, this);=0A= }=0A= =0A= template =0A= typename Grid2D::EdgeIterator Grid2D::edge_end()=0A= {=0A= return EdgeIterator(m_z_values.size(1) - 1, m_z_values.size(2) - 1, = i_parallel, this);=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Grid2D::PointReference::PointReference(UInt i, UInt j, Grid2D * = outer_this) :=0A= m_i(i),=0A= m_j(j),=0A= m_outer_this(outer_this),=0A= m_first_time(true)=0A= {=0A= update_cached_point();=0A= }=0A= =0A= template =0A= Grid2D::PointReference::PointReference(const PointReference & other) :=0A= m_i(other.m_i),=0A= m_j(other.m_j),=0A= m_outer_this(other.m_outer_this),=0A= m_cached_point(other.m_cached_point),=0A= m_first_time(other.m_first_time)=0A= {=0A= =0A= }=0A= =0A= template =0A= Grid2D::PointReference::~PointReference()=0A= {=0A= }=0A= =0A= template =0A= Grid2D::PointReference::operator Point() const=0A= {=0A= =0A= update_cached_point();=0A= return m_cached_point;=0A= }=0A= # 701 "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h"=0A= template =0A= typename Grid2D::PointReference & = Grid2D::PointReference::operator=3D(const Point & rhs)=0A= {=0A= =0A= m_cached_point =3D rhs;=0A= write_back();=0A= }=0A= =0A= template =0A= bool Grid2D::PointReference::operator=3D=3D(const Point & rhs) = const=0A= {=0A= update_cached_point();=0A= return (m_cached_point.m_components =3D=3D rhs.m_components);=0A= }=0A= =0A= template =0A= bool Grid2D::PointReference::operator!=3D(const Point & rhs) const=0A= {=0A= update_cached_point();=0A= return (m_cached_point.m_components !=3D rhs.m_components);=0A= }=0A= =0A= template =0A= bool Grid2D::PointReference::operator<(const Point & rhs) const=0A= {=0A= update_cached_point();=0A= return (m_cached_point.m_components < rhs.m_components);=0A= }=0A= =0A= template =0A= bool Grid2D::PointReference::operator<=3D(const Point & rhs) const=0A= {=0A= update_cached_point();=0A= return (m_cached_point.m_components <=3D rhs.m_components);=0A= }=0A= =0A= template =0A= bool Grid2D::PointReference::operator>(const Point & rhs) const=0A= {=0A= update_cached_point();=0A= return (m_cached_point.m_components > rhs.m_components);=0A= }=0A= =0A= template =0A= bool Grid2D::PointReference::operator>=3D(const Point & rhs) const=0A= {=0A= update_cached_point();=0A= return (m_cached_point.m_components >=3D rhs.m_components);=0A= }=0A= =0A= template =0A= const N & Grid2D::PointReference::x() const=0A= {=0A= update_cached_point();=0A= return m_cached_point.m_components[0];=0A= }=0A= =0A= template =0A= const N & Grid2D::PointReference::y() const=0A= {=0A= update_cached_point();=0A= return m_cached_point.m_components[1];=0A= }=0A= =0A= template =0A= const N & Grid2D::PointReference::z() const=0A= {=0A= update_cached_point();=0A= return m_cached_point.m_components[2];=0A= }=0A= =0A= template =0A= const N & Grid2D::PointReference::operator[](UInt c) const=0A= {=0A= (static_cast ((c >=3D 0 && c <=3D 2) ? 0 : (__assert_fail ("c = >=3D 0 && c <=3D 2", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 775, = __PRETTY_FUNCTION__), 0)));=0A= update_cached_point();=0A= return m_cached_point.m_components[c];=0A= }=0A= =0A= =0A= =0A= =0A= =0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference = Grid2D::PointReference::x()=0A= {=0A= return PointComponentReference(this, 0);=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference = Grid2D::PointReference::y()=0A= {=0A= return PointComponentReference(this, 1);=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference = Grid2D::PointReference::z()=0A= {=0A= return PointComponentReference(this, 2);=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference = Grid2D::PointReference::operator[](UInt c)=0A= {=0A= return PointComponentReference(this, c);=0A= }=0A= =0A= template =0A= void Grid2D::PointReference::update_cached_point() const=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 812, = __PRETTY_FUNCTION__), 0)));=0A= if(m_first_time)=0A= {=0A= =0A= =0A= m_cached_point.x() =3D m_outer_this->m_origin.x() + = m_outer_this->m_spacing_i * m_i;=0A= m_cached_point.y() =3D m_outer_this->m_origin.y() + = m_outer_this->m_spacing_j * m_j;=0A= m_first_time =3D false;=0A= }=0A= =0A= m_cached_point.z() =3D m_outer_this->m_z_values[m_i][m_j];=0A= =0A= }=0A= =0A= template =0A= void Grid2D::PointReference::write_back() const=0A= {=0A= (static_cast ((m_outer_this) ? 0 : (__assert_fail = ("m_outer_this", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 829, = __PRETTY_FUNCTION__), 0)));=0A= =0A= N correct_x =3D m_outer_this->m_origin.x() + m_outer_this->m_spacing_i = * m_i;=0A= if(m_cached_point.x() !=3D correct_x)=0A= {=0A= =0A= =0A= =0A= std::cerr << "Cannot modify x co-ordinate of grid point\n";=0A= exit(1);=0A= }=0A= =0A= N correct_y =3D m_outer_this->m_origin.y() + m_outer_this->m_spacing_j = * m_j;=0A= if(m_cached_point.y() !=3D correct_y)=0A= {=0A= =0A= =0A= =0A= std::cerr << "Cannot modify y co-ordinate of grid point\n";=0A= exit(1);=0A= }=0A= =0A= m_outer_this->m_z_values[m_i][m_j] =3D m_cached_point.z();=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Grid2D::PointReference::PointComponentReference::~PointComponentRefere= nce()=0A= {=0A= }=0A= =0A= template =0A= Grid2D::PointReference::PointComponentReference::PointComponentReferen= ce(const PointComponentReference & other) :=0A= m_component(other.m_component),=0A= m_target(other.m_target)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::PointReference::PointComponentReference::operator N() const=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 873, = __PRETTY_FUNCTION__), 0)));=0A= =0A= m_target->update_cached_point();=0A= return m_target->m_cached_point[m_component];=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference & = Grid2D::PointReference::PointComponentReference::operator=3D(const N = & rhs)=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 882, = __PRETTY_FUNCTION__), 0)));=0A= =0A= m_target->m_cached_point[m_component] =3D rhs;=0A= m_target->write_back();=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference & = Grid2D::PointReference::PointComponentReference::operator+=3D(const N = & rhs)=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 891, = __PRETTY_FUNCTION__), 0)));=0A= =0A= m_target->m_cached_point[m_component] +=3D rhs;=0A= m_target->write_back();=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference & = Grid2D::PointReference::PointComponentReference::operator-=3D(const N = & rhs)=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 900, = __PRETTY_FUNCTION__), 0)));=0A= =0A= m_target->m_cached_point[m_component] -=3D rhs;=0A= m_target->write_back();=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference & = Grid2D::PointReference::PointComponentReference::operator*=3D(const N = & rhs)=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 909, = __PRETTY_FUNCTION__), 0)));=0A= =0A= m_target->m_cached_point[m_component] *=3D rhs;=0A= m_target->write_back();=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference::PointComponentReference & = Grid2D::PointReference::PointComponentReference::operator/=3D(const N = & rhs)=0A= {=0A= =0A= m_target->m_cached_point[m_component] /=3D rhs;=0A= m_target->write_back();=0A= }=0A= =0A= template =0A= bool = Grid2D::PointReference::PointComponentReference::operator=3D=3D(const = N & rhs) const=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 926, = __PRETTY_FUNCTION__), 0)));=0A= return ( m_target->m_cached_point[m_component] =3D=3D rhs);=0A= }=0A= =0A= template =0A= bool = Grid2D::PointReference::PointComponentReference::operator!=3D(const N = & rhs) const=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 933, = __PRETTY_FUNCTION__), 0)));=0A= return ( m_target->m_cached_point[m_component] !=3D rhs);=0A= }=0A= =0A= template =0A= bool Grid2D::PointReference::PointComponentReference::operator< = (const N & rhs) const=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 940, = __PRETTY_FUNCTION__), 0)));=0A= return ( m_target->m_cached_point[m_component] < rhs);=0A= }=0A= =0A= template =0A= bool = Grid2D::PointReference::PointComponentReference::operator<=3D(const N = & rhs) const=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 947, = __PRETTY_FUNCTION__), 0)));=0A= return ( m_target->m_cached_point[m_component] <=3D rhs);=0A= }=0A= =0A= template =0A= bool Grid2D::PointReference::PointComponentReference::operator> = (const N & rhs) const=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 954, = __PRETTY_FUNCTION__), 0)));=0A= return ( m_target->m_cached_point[m_component] > rhs);=0A= }=0A= =0A= template =0A= bool = Grid2D::PointReference::PointComponentReference::operator>=3D(const N = & rhs) const=0A= {=0A= (static_cast ((m_target) ? 0 : (__assert_fail ("m_target", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", 961, = __PRETTY_FUNCTION__), 0)));=0A= return ( m_target->m_cached_point[m_component] >=3D rhs);=0A= }=0A= =0A= template =0A= Grid2D::PointReference::PointComponentReference::PointComponentReferen= ce(PointReference * const target, UInt component) :=0A= m_component(component),=0A= m_target(target)=0A= {=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Grid2D::EdgeReference::EdgeReference(UInt i, UInt j, IorJ i_or_j, = Grid2D * outer_this) :=0A= m_i(i),=0A= m_j(j),=0A= m_i_or_j(i_or_j),=0A= m_outer_this(outer_this)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::EdgeReference::EdgeReference(const EdgeReference & other) :=0A= m_i(other.m_i),=0A= m_j(other.m_j),=0A= m_i_or_j(other.m_i_or_j),=0A= m_outer_this(other.m_outer_this)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::EdgeReference::~EdgeReference()=0A= {=0A= }=0A= =0A= template =0A= Grid2D::EdgeReference::operator Edge() const=0A= {=0A= =0A= return Edge( m_outer_this->vertex(m_i, m_j)=0A= , (i_parallel =3D=3D m_i_or_j) ? = m_outer_this->vertex(m_i + 1, m_j) : m_outer_this->vertex(m_i, m_j + 1) = );=0A= }=0A= =0A= template =0A= typename Grid2D::EdgeReference & = Grid2D::EdgeReference::operator=3D(const Edge & rhs)=0A= {=0A= =0A= m_outer_this->vertex(m_i, m_j) =3D rhs.source();=0A= =0A= if(i_parallel =3D=3D m_i_or_j)=0A= {=0A= m_outer_this->vertex(m_i + 1, m_j) =3D rhs.target();=0A= }=0A= else=0A= {=0A= m_outer_this->vertex(m_i, m_j + 1) =3D rhs.target();=0A= }=0A= }=0A= =0A= template =0A= bool Grid2D::EdgeReference::operator=3D=3D(const Edge & rhs) const=0A= {=0A= return ( (source() =3D=3D rhs.source() ) && ( target() =3D=3D = rhs.target() ) );=0A= }=0A= =0A= template =0A= bool Grid2D::EdgeReference::operator!=3D(const Edge & rhs) const=0A= {=0A= return ( (source() !=3D rhs.source() ) || ( target() !=3D rhs.target() = ) );=0A= }=0A= =0A= template =0A= bool Grid2D::EdgeReference::operator< (const Edge & rhs) const=0A= {=0A= if( source() < rhs.source() )=0A= {=0A= return true;=0A= }=0A= else if(source() =3D=3D rhs.source())=0A= {=0A= if( target() < rhs.target() )=0A= {=0A= return true;=0A= }=0A= else=0A= {=0A= return false;=0A= }=0A= }=0A= else=0A= {=0A= return false;=0A= }=0A= =0A= }=0A= =0A= template =0A= Point Grid2D::EdgeReference::source() const=0A= {=0A= =0A= return m_outer_this->vertex(m_i, m_j);=0A= }=0A= =0A= template =0A= Point Grid2D::EdgeReference::target() const=0A= {=0A= if(i_parallel =3D=3D m_i_or_j)=0A= {=0A= return m_outer_this->vertex(m_i + 1, m_j);=0A= }=0A= else=0A= {=0A= return m_outer_this->vertex(m_i, m_j + 1);=0A= }=0A= }=0A= =0A= template =0A= Point Grid2D::EdgeReference::operator[](UInt c) const=0A= {=0A= (static_cast ((0 =3D=3D c || 1 =3D=3D c) ? 0 : (__assert_fail = ("0 =3D=3D c || 1 =3D=3D c", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1083, __PRETTY_FUNCTION__), 0)));=0A= if(0 =3D=3D c)=0A= {=0A= return m_outer_this->vertex(m_i, m_j);=0A= }=0A= else=0A= {=0A= if(i_parallel =3D=3D m_i_or_j)=0A= {=0A= return m_outer_this->vertex(m_i + 1, m_j);=0A= }=0A= else=0A= {=0A= return m_outer_this->vertex(m_i, m_j + 1);=0A= }=0A= }=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference Grid2D::EdgeReference::source()=0A= {=0A= return m_outer_this->vertex(m_i, m_j);=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference Grid2D::EdgeReference::target()=0A= {=0A= if(i_parallel =3D=3D m_i_or_j)=0A= {=0A= return m_outer_this->vertex(m_i + 1, m_j);=0A= }=0A= else=0A= {=0A= return m_outer_this->vertex(m_i, m_j + 1);=0A= }=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference = Grid2D::EdgeReference::operator[](UInt c)=0A= {=0A= (static_cast ((0 =3D=3D c || 1 =3D=3D c) ? 0 : (__assert_fail = ("0 =3D=3D c || 1 =3D=3D c", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1123, __PRETTY_FUNCTION__), 0)));=0A= if(0 =3D=3D c)=0A= {=0A= return m_outer_this->vertex(m_i, m_j);=0A= }=0A= else=0A= {=0A= if(i_parallel =3D=3D m_i_or_j)=0A= {=0A= return m_outer_this->vertex(m_i + 1, m_j);=0A= }=0A= else=0A= {=0A= return m_outer_this->vertex(m_i, m_j + 1);=0A= }=0A= }=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Grid2D::FaceReference::FaceReference(UInt i, UInt j, Grid2D * = outer_this) :=0A= m_i(i),=0A= m_j(j),=0A= m_outer_this(outer_this)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::FaceReference::FaceReference(const FaceReference & other) :=0A= m_i(other.m_i),=0A= m_j(other.m_j),=0A= m_outer_this(outer_this)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::FaceReference::~FaceReference()=0A= {=0A= }=0A= =0A= template =0A= Grid2D::FaceReference::operator Face() const=0A= {=0A= return Face( vertex_begin() );=0A= }=0A= =0A= template =0A= typename Grid2D::FaceReference & = Grid2D::FaceReference::operator=3D(const Face & rhs)=0A= {=0A= =0A= =0A= if(rhs.size() !=3D 4)=0A= {=0A= (static_cast ((0) ? 0 : (__assert_fail ("0", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1179, __PRETTY_FUNCTION__), 0)));=0A= =0A= }=0A= =0A= VertexCirculator this_c =3D vertex_begin();=0A= VertexCirculator this_c_end =3D this_c;=0A= =0A= VertexCirculator rhs_c =3D rhs.vertex_begin();=0A= =0A= do=0A= {=0A= *this_c =3D *rhs_c;=0A= =0A= ++rhs_c;=0A= ++this_c;=0A= }=0A= while (this_c !=3D this_c_end);=0A= =0A= return *this;=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::operator=3D=3D(const Face & rhs) const=0A= {=0A= if(rhs.size() !=3D 4)=0A= {=0A= return false;=0A= }=0A= =0A= =0A= VertexCirculator this_c =3D vertex_begin();=0A= VertexCirculator this_c_end =3D this_c;=0A= =0A= VertexCirculator rhs_c =3D rhs.vertex_begin();=0A= =0A= do=0A= {=0A= if(*this_c !=3D *rhs_c)=0A= {=0A= return false;=0A= }=0A= ++rhs_c;=0A= ++this_c;=0A= }=0A= while (this_c !=3D this_c_end);=0A= =0A= return true;=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::operator!=3D(const Face & rhs) const=0A= {=0A= if(rhs.size !=3D 4)=0A= {=0A= return true;=0A= }=0A= =0A= VertexCirculator this_c =3D vertex_begin();=0A= VertexCirculator this_c_end =3D this_c;=0A= =0A= VertexCirculator rhs_c =3D rhs.vertex_begin();=0A= =0A= do=0A= {=0A= if(*this_c !=3D *rhs_c)=0A= {=0A= return true;=0A= }=0A= ++rhs_c;=0A= ++this_c;=0A= }=0A= while (this_c !=3D this_c_end);=0A= =0A= return false;=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::operator< (const Face & rhs) const=0A= {=0A= =0A= =0A= =0A= VertexCirculator this_c =3D vertex_begin();=0A= VertexCirculator this_c_end =3D this_c;=0A= =0A= VertexCirculator rhs_c =3D rhs.vertex_begin();=0A= VertexCirculator rhs_c_end =3D rhs_c;=0A= =0A= do=0A= {=0A= if(*this_c < *rhs_c)=0A= {=0A= return true;=0A= }=0A= else if(*this_c > *rhs_c)=0A= {=0A= return false;=0A= }=0A= }=0A= while ( (this_c !=3D this_c_end) && (rhs_c !=3D rhs_c_end) );=0A= =0A= =0A= return false;=0A= =0A= }=0A= =0A= template =0A= typename Grid2D::FaceReference::VertexCirculator = Grid2D::FaceReference::vertex_begin()=0A= {=0A= return VertexCirculator(0, this);=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference = Grid2D::FaceReference::operator[](UInt c)=0A= {=0A= (static_cast ((c >=3D 0 && c < 4) ? 0 : (__assert_fail ("c = >=3D 0 && c < 4", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1294, __PRETTY_FUNCTION__), 0)));=0A= switch(c)=0A= {=0A= case 0 :=0A= return Grid2D::PointReference(m_i, m_j, m_outer_this);=0A= case 1 :=0A= return Grid2D::PointReference(m_i + 1, m_j, m_outer_this);=0A= case 2 :=0A= return Grid2D::PointReference(m_i + 1, m_j + 1, m_outer_this);=0A= default :=0A= return Grid2D::PointReference(m_i, m_j + 1, m_outer_this);=0A= }=0A= }=0A= =0A= template =0A= Point Grid2D::FaceReference::operator[](UInt c) const=0A= {=0A= (static_cast ((c >=3D 0 && c < 4) ? 0 : (__assert_fail ("c = >=3D 0 && c < 4", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1311, __PRETTY_FUNCTION__), 0)));=0A= switch(c)=0A= {=0A= case 0 :=0A= return Grid2D::PointReference(m_i, m_j, m_outer_this);=0A= case 1 :=0A= return Grid2D::PointReference(m_i + 1, m_j, m_outer_this);=0A= case 2 :=0A= return Grid2D::PointReference(m_i + 1, m_j + 1, m_outer_this);=0A= default :=0A= return Grid2D::PointReference(m_i, m_j + 1, m_outer_this);=0A= }=0A= }=0A= =0A= template =0A= typename Grid2D::FaceReference::EdgeCirculator = Grid2D::FaceReference::edge_begin()=0A= {=0A= return EdgeCirculator(0, this);=0A= }=0A= =0A= template =0A= size_t Grid2D::FaceReference::size() const=0A= {=0A= return 4;=0A= }=0A= =0A= =0A= =0A= =0A= =0A= template =0A= Grid2D::FaceReference::VertexCirculator::VertexCirculator(UInt c, = FaceReference * outer_this) :=0A= m_c(c),=0A= m_outer_this(outer_this)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::FaceReference::VertexCirculator::VertexCirculator(const = VertexCirculator & other) :=0A= m_c(other.m_c),=0A= m_outer_this(other.m_outer_this)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::FaceReference::VertexCirculator::~VertexCirculator()=0A= {=0A= }=0A= =0A= template =0A= typename Grid2D::FaceReference::VertexCirculator & = Grid2D::FaceReference::VertexCirculator::operator=3D(const = VertexCirculator & rhs)=0A= {=0A= if(this !=3D &rhs)=0A= {=0A= m_c =3D rhs.m_c;=0A= m_outer_this =3D rhs.m_outer_this;=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= typename Grid2D::PointReference = Grid2D::FaceReference::VertexCirculator::operator*()=0A= {=0A= return m_outer_this->operator[](m_c);=0A= }=0A= =0A= template =0A= Point Grid2D::FaceReference::VertexCirculator::operator*() const=0A= {=0A= return m_outer_this->operator[](m_c);=0A= }=0A= =0A= template =0A= typename Grid2D::FaceReference::VertexCirculator & = Grid2D::FaceReference::VertexCirculator::operator++()=0A= {=0A= ++m_c;=0A= if(4 =3D=3D m_c)=0A= {=0A= m_c =3D 0;=0A= }=0A= return *this;=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::VertexCirculator::operator=3D=3D(Int = null) const=0A= {=0A= (static_cast ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D = null", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1397, __PRETTY_FUNCTION__), 0)));=0A= return (m_outer_this->size() =3D=3D 0);=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::VertexCirculator::operator=3D=3D(const = VertexCirculator & rhs) const=0A= {=0A= return (m_outer_this =3D=3D rhs.m_outer_this)=0A= && ( m_c =3D=3D rhs.m_c );=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::VertexCirculator::operator!=3D(Int null) = const=0A= {=0A= (static_cast ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D = null", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1411, __PRETTY_FUNCTION__), 0)));=0A= return (m_outer_this->size() !=3D 0);=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::VertexCirculator::operator!=3D(const = VertexCirculator & rhs) const=0A= {=0A= return (m_outer_this !=3D rhs.m_outer_this)=0A= || ( m_c !=3D rhs.m_c );=0A= }=0A= =0A= =0A= =0A= template =0A= Grid2D::FaceReference::EdgeCirculator::EdgeCirculator(UInt c, = FaceReference * outer_this) :=0A= m_c(c),=0A= m_outer_this(outer_this)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::FaceReference::EdgeCirculator::EdgeCirculator(const = EdgeCirculator & other) :=0A= m_c(other.m_c),=0A= m_outer_this(other.m_outer_this)=0A= {=0A= }=0A= =0A= template =0A= Grid2D::FaceReference::EdgeCirculator::~EdgeCirculator()=0A= {=0A= }=0A= =0A= template =0A= typename Grid2D::FaceReference::EdgeCirculator & = Grid2D::FaceReference::EdgeCirculator::operator=3D(const = EdgeCirculator & rhs)=0A= {=0A= m_c =3D rhs.m_c;=0A= m_outer_this =3D rhs.m_outer_this;=0A= return *this;=0A= }=0A= =0A= template =0A= typename Grid2D::EdgeReference = Grid2D::FaceReference::EdgeCirculator::operator*()=0A= {=0A= (static_cast ((m_c >=3D 0 && c < 4) ? 0 : (__assert_fail ("m_c = >=3D 0 && c < 4", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1454, __PRETTY_FUNCTION__), 0)));=0A= =0A= =0A= switch(c)=0A= {=0A= case 0 :=0A= return Grid2D::EdgeReference(m_outer_this->m_i, = m_outer_this->m_j, i_parallel, m_outer_this->m_outer_this);=0A= case 1 :=0A= return Grid2D::EdgeReference(m_outer_this->m_i + 1, = m_outer_this->m_j, j_parallel, m_outer_this->m_outer_this);=0A= case 2 :=0A= return Grid2D::EdgeReference(m_outer_this->m_i, = m_outer_this->m_j + 1, i_parallel, m_outer_this->m_outer_this);=0A= default :=0A= return Grid2D::EdgeReference(m_outer_this->m_i, = m_outer_this->m_j, j_parallel, m_outer_this->m_outer_this);=0A= }=0A= }=0A= =0A= template =0A= Edge Grid2D::FaceReference::EdgeCirculator::operator*() const=0A= {=0A= Grid2D::FaceReference::VertexCirculator p(m_c, m_outer_this);=0A= =0A= return Edge( *p, boost::next(*p) );=0A= }=0A= =0A= template =0A= typename Grid2D::FaceReference::EdgeCirculator & = Grid2D::FaceReference::EdgeCirculator::operator++()=0A= {=0A= ++m_c;=0A= =0A= if(4 =3D=3D m_c)=0A= {=0A= m_c =3D 0;=0A= }=0A= =0A= return *this;=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::EdgeCirculator::operator=3D=3D(Int null) = const=0A= {=0A= (static_cast ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D = null", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1494, __PRETTY_FUNCTION__), 0)));=0A= =0A= return false;=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::EdgeCirculator::operator=3D=3D(const = EdgeCirculator & rhs) const=0A= {=0A= return (m_outer_this =3D=3D rhs.m_outer_this)=0A= && ( m_c =3D=3D rhs.m_c );=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::EdgeCirculator::operator!=3D(Int null) = const=0A= {=0A= (static_cast ((0 =3D=3D null) ? 0 : (__assert_fail ("0 =3D=3D = null", = "/homes/rob/dev/products/nmove/main/model/egs/grid2d/inc/Grid2D.h", = 1509, __PRETTY_FUNCTION__), 0)));=0A= =0A= return true;=0A= }=0A= =0A= template =0A= bool Grid2D::FaceReference::EdgeCirculator::operator!=3D(const = EdgeCirculator & rhs) const=0A= {=0A= return (m_outer_this !=3D rhs.m_outer_this)=0A= || (m_outer_this !=3D rhs.m_outer_this);=0A= }=0A= # 9 "main.cxx" 2=0A= =0A= # 1 "/homes/rob/dev/products/nmove/main/inc/nmove_epilog.cxx" 1=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= static void* operator new( size_t size, const char* file, int line )=0A= {=0A= void* result =3D ::operator new( size );=0A= return result;=0A= }=0A= # 11 "main.cxx" 2=0A= =0A= =0A= =0A= int main()=0A= {=0A= =0A= Grid2D my_grid( Point(10.0f, 20.0f, 30.0f), 5.0f, = 5.0f, 20, 20);=0A= =0A= =0A= Point my_point =3D my_grid.vertex(3, 4);=0A= std::cout << "my_point =3D (" << my_point.x() << ", " << = my_point.y() << ", " << my_point.z() << ")" << std::endl;=0A= =0A= =0A= my_point.z() =3D 35.0f;=0A= std::cout << "my_point =3D (" << my_point.x() << ", " << = my_point.y() << ", " << my_point.z() << ")" << std::endl;=0A= =0A= =0A= my_grid.vertex(3, 4) =3D my_point;=0A= =0A= =0A= float my_z1 =3D my_grid.vertex(3, 4).z();=0A= std::cout << "my_z1 =3D " << my_z1 << std::endl;=0A= =0A= =0A= my_grid.vertex(6, 3).z() =3D 10.0f;=0A= =0A= =0A= float my_z2 =3D my_grid.vertex(6, 3).z();=0A= std::cout << "my_z2 =3D " << my_z2 << std::endl;=0A= =0A= my_grid.vertex(3, 2).z() +=3D 2.4f;=0A= =0A= =0A= =0A= =0A= Edge my_edge =3D my_grid.edge(2, 3, i_parallel);=0A= =0A= Point my_edge_source =3D my_edge.source();=0A= =0A= std::cerr << "my_edge_source =3D (" << my_edge_source.x() << ", " << = my_edge_source.y() << ", " << my_edge_source.z() << ")" << std::endl;=0A= =0A= my_grid.edge(1, 3, j_parallel).target().z() =3D 145.0f;=0A= =0A= =0A= =0A= =0A= =0A= Grid2D::VertexIterator i =3D my_grid.vertex_begin();=0A= Grid2D::VertexIterator i_end =3D my_grid.vertex_end();=0A= =0A= (*i).z() =3D 50.9f;=0A= =0A= std::cout << "Grid contents\n";=0A= =0A= while(i !=3D i_end)=0A= {=0A= Point ip =3D *i;=0A= =0A= std::cout << "ip =3D (" << ip.x() << ", " << ip.y() << ", " << = ip.z() << ")" << std::endl;=0A= =0A= ++i;=0A= }=0A= =0A= =0A= =0A= Grid2D::EdgeIterator r =3D my_grid.edge_begin();=0A= Grid2D::EdgeIterator r_end =3D my_grid.edge_end();=0A= =0A= (*r).target().z() =3D 123.4f;=0A= =0A= std::cout << "All the edges\n";=0A= while(r !=3D r_end)=0A= {=0A= std::cout << "Edge (" << (*r).source().x() << ", " << = (*r).source().y() << ", " << (*r).source().z() << ")"=0A= << " -> (" << (*r).target().x() << ", " << = (*r).target().y() << ", " << (*r).target().z() << ")\n";=0A= ++r;=0A= }=0A= =0A= return 0;=0A= }=0A= ------=_NextPart_000_0004_01C24AB4.7CD7C780--