// /usr/lib/gcc/i686-linux-gnu/4.6/cc1plus -quiet -I /usr/include/python2.7 -I /usr/include/python2.7 -I ./include -I ./out -I ../flower/include -I ../flower/./out -I ../flower/include -I /usr/include/freetype2 -I /usr/include/pango-1.0 -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib/i386-linux-gnu/glib-2.0/include -imultilib . -imultiarch i386-linux-gnu -D_GNU_SOURCE -D_REENTRANT -D HAVE_CONFIG_H part-combine-iterator.cc -quiet -dumpbase part-combine-iterator.cc -mtune=generic -march=i686 -auxbase-strip out/part-combine-iterator.o -g -g -g -Woverloaded-virtual -Wno-pmf-conversions -Wextra -Wall -Wconversion -fno-strict-aliasing -fwrapv -fstack-protector -fno-optimize-sibling-calls --param ssp-buffer-size=4 -fstack-protector -o - -frandom-seed=0 # 1 "part-combine-iterator.cc" # 1 "/usr/local/tmp/lilypond/lily//" # 1 "" # 1 "" # 1 "part-combine-iterator.cc" # 20 "part-combine-iterator.cc" # 1 "./include/context.hh" 1 # 23 "./include/context.hh" # 1 "./include/duration.hh" 1 # 23 "./include/duration.hh" # 1 "./include/moment.hh" 1 # 23 "./include/moment.hh" # 1 "./include/smobs.hh" 1 # 23 "./include/smobs.hh" # 1 "./include/lily-guile.hh" 1 # 27 "./include/lily-guile.hh" # 1 "/usr/include/libguile.h" 1 3 4 # 24 "/usr/include/libguile.h" 3 4 # 1 "/usr/include/gmp.h" 1 3 4 # 47 "/usr/include/gmp.h" 3 4 # 1 "/usr/include/gmp-i386.h" 1 3 4 # 24 "/usr/include/gmp-i386.h" 3 4 # 1 "/usr/include/c++/4.6/iosfwd" 1 3 4 # 38 "/usr/include/c++/4.6/iosfwd" 3 4 # 39 "/usr/include/c++/4.6/iosfwd" 3 # 1 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h" 1 3 # 153 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h" 3 namespace std { typedef unsigned int size_t; typedef int ptrdiff_t; } # 393 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h" 3 # 1 "/usr/include/c++/4.6/i686-linux-gnu/./bits/os_defines.h" 1 3 # 40 "/usr/include/c++/4.6/i686-linux-gnu/./bits/os_defines.h" 3 # 1 "/usr/include/features.h" 1 3 4 # 324 "/usr/include/features.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/predefs.h" 1 3 4 # 325 "/usr/include/features.h" 2 3 4 # 357 "/usr/include/features.h" 3 4 # 1 "/usr/include/i386-linux-gnu/sys/cdefs.h" 1 3 4 # 378 "/usr/include/i386-linux-gnu/sys/cdefs.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/wordsize.h" 1 3 4 # 379 "/usr/include/i386-linux-gnu/sys/cdefs.h" 2 3 4 # 358 "/usr/include/features.h" 2 3 4 # 389 "/usr/include/features.h" 3 4 # 1 "/usr/include/i386-linux-gnu/gnu/stubs.h" 1 3 4 # 1 "/usr/include/i386-linux-gnu/bits/wordsize.h" 1 3 4 # 5 "/usr/include/i386-linux-gnu/gnu/stubs.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/gnu/stubs-32.h" 1 3 4 # 8 "/usr/include/i386-linux-gnu/gnu/stubs.h" 2 3 4 # 390 "/usr/include/features.h" 2 3 4 # 41 "/usr/include/c++/4.6/i686-linux-gnu/./bits/os_defines.h" 2 3 # 394 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h" 2 3 # 1 "/usr/include/c++/4.6/i686-linux-gnu/./bits/cpu_defines.h" 1 3 # 397 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h" 2 3 # 41 "/usr/include/c++/4.6/iosfwd" 2 3 # 1 "/usr/include/c++/4.6/bits/stringfwd.h" 1 3 # 39 "/usr/include/c++/4.6/bits/stringfwd.h" 3 # 40 "/usr/include/c++/4.6/bits/stringfwd.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template class allocator; template struct char_traits; template, typename _Alloc = allocator<_CharT> > class basic_string; template<> struct char_traits; typedef basic_string string; template<> struct char_traits; typedef basic_string wstring; # 85 "/usr/include/c++/4.6/bits/stringfwd.h" 3 } # 42 "/usr/include/c++/4.6/iosfwd" 2 3 # 1 "/usr/include/c++/4.6/bits/postypes.h" 1 3 # 40 "/usr/include/c++/4.6/bits/postypes.h" 3 # 41 "/usr/include/c++/4.6/bits/postypes.h" 3 # 1 "/usr/include/c++/4.6/cwchar" 1 3 # 41 "/usr/include/c++/4.6/cwchar" 3 # 42 "/usr/include/c++/4.6/cwchar" 3 # 1 "/usr/include/wchar.h" 1 3 4 # 37 "/usr/include/wchar.h" 3 4 # 1 "/usr/include/stdio.h" 1 3 4 # 45 "/usr/include/stdio.h" 3 4 struct _IO_FILE; typedef struct _IO_FILE FILE; # 65 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 38 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stdarg.h" 1 3 4 # 40 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 41 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/wchar.h" 1 3 4 # 43 "/usr/include/wchar.h" 2 3 4 # 52 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 212 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 3 4 typedef unsigned int size_t; # 353 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 3 4 typedef unsigned int wint_t; # 53 "/usr/include/wchar.h" 2 3 4 # 83 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { unsigned int __wch; char __wchb[4]; } __value; } __mbstate_t; # 104 "/usr/include/wchar.h" 3 4 typedef __mbstate_t mbstate_t; # 129 "/usr/include/wchar.h" 3 4 extern "C" { struct tm; extern wchar_t *wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern wchar_t *wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) throw () __attribute__ ((__pure__)); extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); # 1 "/usr/include/xlocale.h" 1 3 4 # 28 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; typedef __locale_t locale_t; # 178 "/usr/include/wchar.h" 2 3 4 extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, __locale_t __loc) throw (); extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n, __locale_t __loc) throw (); extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern size_t wcsxfrm (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2, __locale_t __loc) throw (); extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2, size_t __n, __locale_t __loc) throw (); extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__)); extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcschr") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcschr") __attribute__ ((__pure__)); extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcsrchr") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcsrchr") __attribute__ ((__pure__)); extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc) throw () __attribute__ ((__pure__)); extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject) throw () __attribute__ ((__pure__)); extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, __const wchar_t *__accept) throw () __asm ("wcspbrk") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept) throw () __asm ("wcspbrk") __attribute__ ((__pure__)); extern "C++" wchar_t *wcsstr (wchar_t *__haystack, __const wchar_t *__needle) throw () __asm ("wcsstr") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle) throw () __asm ("wcsstr") __attribute__ ((__pure__)); extern wchar_t *wcstok (wchar_t *__restrict __s, __const wchar_t *__restrict __delim, wchar_t **__restrict __ptr) throw (); extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wcswcs (wchar_t *__haystack, __const wchar_t *__needle) throw () __asm ("wcswcs") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle) throw () __asm ("wcswcs") __attribute__ ((__pure__)); # 303 "/usr/include/wchar.h" 3 4 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm ("wmemchr") __attribute__ ((__pure__)); extern "C++" __const wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n) throw () __asm ("wmemchr") __attribute__ ((__pure__)); extern int wmemcmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern wchar_t *wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); extern wchar_t *wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern wint_t btowc (int __c) throw (); extern int wctob (wint_t __c) throw (); extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__)); extern size_t mbrtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n, mbstate_t *__p) throw (); extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, mbstate_t *__restrict __ps) throw (); extern size_t __mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); extern size_t mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); # 402 "/usr/include/wchar.h" 3 4 extern size_t mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw (); extern int wcwidth (wchar_t __c) throw (); extern int wcswidth (__const wchar_t *__s, size_t __n) throw (); extern double wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern float wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long double wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long int wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoll (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); # 527 "/usr/include/wchar.h" 3 4 extern long int wcstol_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern long long int wcstoll_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); extern double wcstod_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern float wcstof_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern long double wcstold_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern wchar_t *wcpcpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcpncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); extern int fwide (__FILE *__fp, int __mode) throw (); extern int fwprintf (__FILE *__restrict __stream, __const wchar_t *__restrict __format, ...) ; extern int wprintf (__const wchar_t *__restrict __format, ...) ; extern int swprintf (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __format, ...) throw () ; extern int vfwprintf (__FILE *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vwprintf (__const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vswprintf (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () ; extern int fwscanf (__FILE *__restrict __stream, __const wchar_t *__restrict __format, ...) ; extern int wscanf (__const wchar_t *__restrict __format, ...) ; extern int swscanf (__const wchar_t *__restrict __s, __const wchar_t *__restrict __format, ...) throw () ; # 677 "/usr/include/wchar.h" 3 4 extern int vfwscanf (__FILE *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vwscanf (__const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vswscanf (__const wchar_t *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () ; # 733 "/usr/include/wchar.h" 3 4 extern wint_t fgetwc (__FILE *__stream); extern wint_t getwc (__FILE *__stream); extern wint_t getwchar (void); extern wint_t fputwc (wchar_t __wc, __FILE *__stream); extern wint_t putwc (wchar_t __wc, __FILE *__stream); extern wint_t putwchar (wchar_t __wc); extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, __FILE *__restrict __stream); extern int fputws (__const wchar_t *__restrict __ws, __FILE *__restrict __stream); extern wint_t ungetwc (wint_t __wc, __FILE *__stream); # 798 "/usr/include/wchar.h" 3 4 extern wint_t getwc_unlocked (__FILE *__stream); extern wint_t getwchar_unlocked (void); extern wint_t fgetwc_unlocked (__FILE *__stream); extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); # 824 "/usr/include/wchar.h" 3 4 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); extern wint_t putwchar_unlocked (wchar_t __wc); # 834 "/usr/include/wchar.h" 3 4 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, __FILE *__restrict __stream); extern int fputws_unlocked (__const wchar_t *__restrict __ws, __FILE *__restrict __stream); extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, __const wchar_t *__restrict __format, __const struct tm *__restrict __tp) throw (); extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, __const wchar_t *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) throw (); # 888 "/usr/include/wchar.h" 3 4 } # 47 "/usr/include/c++/4.6/cwchar" 2 3 # 64 "/usr/include/c++/4.6/cwchar" 3 namespace std { using ::mbstate_t; } # 137 "/usr/include/c++/4.6/cwchar" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::wint_t; using ::btowc; using ::fgetwc; using ::fgetws; using ::fputwc; using ::fputws; using ::fwide; using ::fwprintf; using ::fwscanf; using ::getwc; using ::getwchar; using ::mbrlen; using ::mbrtowc; using ::mbsinit; using ::mbsrtowcs; using ::putwc; using ::putwchar; using ::swprintf; using ::swscanf; using ::ungetwc; using ::vfwprintf; using ::vfwscanf; using ::vswprintf; using ::vswscanf; using ::vwprintf; using ::vwscanf; using ::wcrtomb; using ::wcscat; using ::wcscmp; using ::wcscoll; using ::wcscpy; using ::wcscspn; using ::wcsftime; using ::wcslen; using ::wcsncat; using ::wcsncmp; using ::wcsncpy; using ::wcsrtombs; using ::wcsspn; using ::wcstod; using ::wcstof; using ::wcstok; using ::wcstol; using ::wcstoul; using ::wcsxfrm; using ::wctob; using ::wmemcmp; using ::wmemcpy; using ::wmemmove; using ::wmemset; using ::wprintf; using ::wscanf; using ::wcschr; using ::wcspbrk; using ::wcsrchr; using ::wcsstr; using ::wmemchr; # 234 "/usr/include/c++/4.6/cwchar" 3 } namespace __gnu_cxx { using ::wcstold; # 259 "/usr/include/c++/4.6/cwchar" 3 using ::wcstoll; using ::wcstoull; } namespace std { using ::__gnu_cxx::wcstold; using ::__gnu_cxx::wcstoll; using ::__gnu_cxx::wcstoull; } # 43 "/usr/include/c++/4.6/bits/postypes.h" 2 3 # 70 "/usr/include/c++/4.6/bits/postypes.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 92 "/usr/include/c++/4.6/bits/postypes.h" 3 typedef long long streamoff; typedef ptrdiff_t streamsize; # 113 "/usr/include/c++/4.6/bits/postypes.h" 3 template class fpos { private: streamoff _M_off; _StateT _M_state; public: fpos() : _M_off(0), _M_state() { } # 135 "/usr/include/c++/4.6/bits/postypes.h" 3 fpos(streamoff __off) : _M_off(__off), _M_state() { } operator streamoff() const { return _M_off; } void state(_StateT __st) { _M_state = __st; } _StateT state() const { return _M_state; } fpos& operator+=(streamoff __off) { _M_off += __off; return *this; } fpos& operator-=(streamoff __off) { _M_off -= __off; return *this; } fpos operator+(streamoff __off) const { fpos __pos(*this); __pos += __off; return __pos; } fpos operator-(streamoff __off) const { fpos __pos(*this); __pos -= __off; return __pos; } streamoff operator-(const fpos& __other) const { return _M_off - __other._M_off; } }; template inline bool operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) { return streamoff(__lhs) == streamoff(__rhs); } template inline bool operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) { return streamoff(__lhs) != streamoff(__rhs); } typedef fpos streampos; typedef fpos wstreampos; # 241 "/usr/include/c++/4.6/bits/postypes.h" 3 } # 43 "/usr/include/c++/4.6/iosfwd" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 76 "/usr/include/c++/4.6/iosfwd" 3 class ios_base; template > class basic_ios; template > class basic_streambuf; template > class basic_istream; template > class basic_ostream; template > class basic_iostream; template, typename _Alloc = allocator<_CharT> > class basic_stringbuf; template, typename _Alloc = allocator<_CharT> > class basic_istringstream; template, typename _Alloc = allocator<_CharT> > class basic_ostringstream; template, typename _Alloc = allocator<_CharT> > class basic_stringstream; template > class basic_filebuf; template > class basic_ifstream; template > class basic_ofstream; template > class basic_fstream; template > class istreambuf_iterator; template > class ostreambuf_iterator; typedef basic_ios ios; typedef basic_streambuf streambuf; typedef basic_istream istream; typedef basic_ostream ostream; typedef basic_iostream iostream; typedef basic_stringbuf stringbuf; typedef basic_istringstream istringstream; typedef basic_ostringstream ostringstream; typedef basic_stringstream stringstream; typedef basic_filebuf filebuf; typedef basic_ifstream ifstream; typedef basic_ofstream ofstream; typedef basic_fstream fstream; typedef basic_ios wios; typedef basic_streambuf wstreambuf; typedef basic_istream wistream; typedef basic_ostream wostream; typedef basic_iostream wiostream; typedef basic_stringbuf wstringbuf; typedef basic_istringstream wistringstream; typedef basic_ostringstream wostringstream; typedef basic_stringstream wstringstream; typedef basic_filebuf wfilebuf; typedef basic_ifstream wifstream; typedef basic_ofstream wofstream; typedef basic_fstream wfstream; } # 25 "/usr/include/gmp-i386.h" 2 3 4 # 1 "/usr/include/c++/4.6/cstdio" 1 3 4 # 41 "/usr/include/c++/4.6/cstdio" 3 4 # 42 "/usr/include/c++/4.6/cstdio" 3 # 1 "/usr/include/stdio.h" 1 3 4 # 30 "/usr/include/stdio.h" 3 4 extern "C" { # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 35 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/types.h" 1 3 4 # 28 "/usr/include/i386-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/wordsize.h" 1 3 4 # 29 "/usr/include/i386-linux-gnu/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 131 "/usr/include/i386-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/typesizes.h" 1 3 4 # 132 "/usr/include/i386-linux-gnu/bits/types.h" 2 3 4 __extension__ typedef __u_quad_t __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef __u_quad_t __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef __quad_t __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef __u_quad_t __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef void * __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef __quad_t __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef __u_quad_t __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef __u_quad_t __fsfilcnt64_t; __extension__ typedef int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 37 "/usr/include/stdio.h" 2 3 4 # 75 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/libio.h" 1 3 4 # 32 "/usr/include/libio.h" 3 4 # 1 "/usr/include/_G_config.h" 1 3 4 # 15 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 16 "/usr/include/_G_config.h" 2 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 21 "/usr/include/_G_config.h" 2 3 4 typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; # 53 "/usr/include/_G_config.h" 3 4 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); # 33 "/usr/include/libio.h" 2 3 4 # 53 "/usr/include/libio.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stdarg.h" 1 3 4 # 54 "/usr/include/libio.h" 2 3 4 # 172 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 182 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 205 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 273 "/usr/include/libio.h" 3 4 struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 321 "/usr/include/libio.h" 3 4 __off64_t _offset; # 330 "/usr/include/libio.h" 3 4 void *__pad1; void *__pad2; void *__pad3; void *__pad4; size_t __pad5; int _mode; char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; }; struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_2_1_stdin_; extern struct _IO_FILE_plus _IO_2_1_stdout_; extern struct _IO_FILE_plus _IO_2_1_stderr_; # 366 "/usr/include/libio.h" 3 4 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, size_t __n); typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); typedef int __io_close_fn (void *__cookie); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern "C" { extern int __underflow (_IO_FILE *); extern int __uflow (_IO_FILE *); extern int __overflow (_IO_FILE *, int); # 462 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp); extern int _IO_putc (int __c, _IO_FILE *__fp); extern int _IO_feof (_IO_FILE *__fp) throw (); extern int _IO_ferror (_IO_FILE *__fp) throw (); extern int _IO_peekc_locked (_IO_FILE *__fp); extern void _IO_flockfile (_IO_FILE *) throw (); extern void _IO_funlockfile (_IO_FILE *) throw (); extern int _IO_ftrylockfile (_IO_FILE *) throw (); # 492 "/usr/include/libio.h" 3 4 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict); extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list); extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); extern void _IO_free_backup_area (_IO_FILE *) throw (); # 554 "/usr/include/libio.h" 3 4 } # 76 "/usr/include/stdio.h" 2 3 4 typedef __gnuc_va_list va_list; # 91 "/usr/include/stdio.h" 3 4 typedef __off_t off_t; typedef __off64_t off64_t; typedef __ssize_t ssize_t; typedef _G_fpos_t fpos_t; typedef _G_fpos64_t fpos64_t; # 165 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/stdio_lim.h" 1 3 4 # 166 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (__const char *__filename) throw (); extern int rename (__const char *__old, __const char *__new) throw (); extern int renameat (int __oldfd, __const char *__old, int __newfd, __const char *__new) throw (); extern FILE *tmpfile (void) ; # 206 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile64 (void) ; extern char *tmpnam (char *__s) throw () ; extern char *tmpnam_r (char *__s) throw () ; # 228 "/usr/include/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) throw () __attribute__ ((__malloc__)) ; extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 253 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 263 "/usr/include/stdio.h" 3 4 extern int fcloseall (void); extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) ; extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) ; # 296 "/usr/include/stdio.h" 3 4 extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes) ; extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) ; extern FILE *fdopen (int __fd, __const char *__modes) throw () ; extern FILE *fopencookie (void *__restrict __magic_cookie, __const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) throw () ; extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) throw () ; extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ; extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) throw (); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) throw (); extern void setlinebuf (FILE *__stream) throw (); extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...); extern int printf (__const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) throw (); extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw (); extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 2, 0))) ; extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; # 418 "/usr/include/stdio.h" 3 4 extern int vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) ; extern int scanf (__const char *__restrict __format, ...) ; extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) throw (); # 469 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) ; extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) ; extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__scanf__, 2, 0))); # 528 "/usr/include/stdio.h" 3 4 extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 556 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 567 "/usr/include/stdio.h" 3 4 extern int fgetc_unlocked (FILE *__stream); extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); # 600 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) ; extern char *gets (char *__s) ; # 646 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) ; # 662 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) ; extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); extern int puts (__const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ; extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); # 723 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream); # 734 "/usr/include/stdio.h" 3 4 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ; extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern int fseek (FILE *__stream, long int __off, int __whence); extern long int ftell (FILE *__stream) ; extern void rewind (FILE *__stream); # 770 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream) ; # 789 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, __const fpos_t *__pos); # 812 "/usr/include/stdio.h" 3 4 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream) ; extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); extern void clearerr (FILE *__stream) throw (); extern int feof (FILE *__stream) throw () ; extern int ferror (FILE *__stream) throw () ; extern void clearerr_unlocked (FILE *__stream) throw (); extern int feof_unlocked (FILE *__stream) throw () ; extern int ferror_unlocked (FILE *__stream) throw () ; extern void perror (__const char *__s); # 1 "/usr/include/i386-linux-gnu/bits/sys_errlist.h" 1 3 4 # 27 "/usr/include/i386-linux-gnu/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern __const char *__const sys_errlist[]; extern int _sys_nerr; extern __const char *__const _sys_errlist[]; # 851 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) throw () ; extern int fileno_unlocked (FILE *__stream) throw () ; # 870 "/usr/include/stdio.h" 3 4 extern FILE *popen (__const char *__command, __const char *__modes) ; extern int pclose (FILE *__stream); extern char *ctermid (char *__s) throw (); extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __format, __gnuc_va_list __args) throw () __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) throw (); extern int ftrylockfile (FILE *__stream) throw () ; extern void funlockfile (FILE *__stream) throw (); # 940 "/usr/include/stdio.h" 3 4 } # 45 "/usr/include/c++/4.6/cstdio" 2 3 # 92 "/usr/include/c++/4.6/cstdio" 3 namespace std { using ::FILE; using ::fpos_t; using ::clearerr; using ::fclose; using ::feof; using ::ferror; using ::fflush; using ::fgetc; using ::fgetpos; using ::fgets; using ::fopen; using ::fprintf; using ::fputc; using ::fputs; using ::fread; using ::freopen; using ::fscanf; using ::fseek; using ::fsetpos; using ::ftell; using ::fwrite; using ::getc; using ::getchar; using ::gets; using ::perror; using ::printf; using ::putc; using ::putchar; using ::puts; using ::remove; using ::rename; using ::rewind; using ::scanf; using ::setbuf; using ::setvbuf; using ::sprintf; using ::sscanf; using ::tmpfile; using ::tmpnam; using ::ungetc; using ::vfprintf; using ::vprintf; using ::vsprintf; } # 148 "/usr/include/c++/4.6/cstdio" 3 namespace __gnu_cxx { # 166 "/usr/include/c++/4.6/cstdio" 3 using ::snprintf; using ::vfscanf; using ::vscanf; using ::vsnprintf; using ::vsscanf; } namespace std { using ::__gnu_cxx::snprintf; using ::__gnu_cxx::vfscanf; using ::__gnu_cxx::vscanf; using ::__gnu_cxx::vsnprintf; using ::__gnu_cxx::vsscanf; } # 26 "/usr/include/gmp-i386.h" 2 3 4 # 50 "/usr/include/gmp-i386.h" 3 4 # 1 "/usr/include/c++/4.6/cstddef" 1 3 4 # 41 "/usr/include/c++/4.6/cstddef" 3 4 # 42 "/usr/include/c++/4.6/cstddef" 3 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 44 "/usr/include/c++/4.6/cstddef" 2 3 # 51 "/usr/include/gmp-i386.h" 2 3 4 # 193 "/usr/include/gmp-i386.h" 3 4 typedef unsigned long int mp_limb_t; typedef long int mp_limb_signed_t; typedef unsigned long int mp_bitcnt_t; typedef struct { int _mp_alloc; int _mp_size; mp_limb_t *_mp_d; } __mpz_struct; typedef __mpz_struct MP_INT; typedef __mpz_struct mpz_t[1]; typedef mp_limb_t * mp_ptr; typedef const mp_limb_t * mp_srcptr; typedef long int mp_size_t; typedef long int mp_exp_t; typedef struct { __mpz_struct _mp_num; __mpz_struct _mp_den; } __mpq_struct; typedef __mpq_struct MP_RAT; typedef __mpq_struct mpq_t[1]; typedef struct { int _mp_prec; int _mp_size; mp_exp_t _mp_exp; mp_limb_t *_mp_d; } __mpf_struct; typedef __mpf_struct mpf_t[1]; typedef enum { GMP_RAND_ALG_DEFAULT = 0, GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT } gmp_randalg_t; typedef struct { mpz_t _mp_seed; gmp_randalg_t _mp_alg; union { void *_mp_lc; } _mp_algdata; } __gmp_randstate_struct; typedef __gmp_randstate_struct gmp_randstate_t[1]; typedef const __mpz_struct *mpz_srcptr; typedef __mpz_struct *mpz_ptr; typedef const __mpf_struct *mpf_srcptr; typedef __mpf_struct *mpf_ptr; typedef const __mpq_struct *mpq_srcptr; typedef __mpq_struct *mpq_ptr; # 537 "/usr/include/gmp-i386.h" 3 4 extern "C" { using std::FILE; void __gmp_set_memory_functions (void *(*) (size_t), void *(*) (void *, size_t, size_t), void (*) (void *, size_t)) throw (); void __gmp_get_memory_functions (void *(**) (size_t), void *(**) (void *, size_t, size_t), void (**) (void *, size_t)) throw (); extern const int __gmp_bits_per_limb; extern int __gmp_errno; extern const char * const __gmp_version; void __gmp_randinit (gmp_randstate_t, gmp_randalg_t, ...); void __gmp_randinit_default (gmp_randstate_t); void __gmp_randinit_lc_2exp (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t) ; int __gmp_randinit_lc_2exp_size (gmp_randstate_t, mp_bitcnt_t); void __gmp_randinit_mt (gmp_randstate_t); void __gmp_randinit_set (gmp_randstate_t, const __gmp_randstate_struct *); void __gmp_randseed (gmp_randstate_t, mpz_srcptr); void __gmp_randseed_ui (gmp_randstate_t, unsigned long int); void __gmp_randclear (gmp_randstate_t); unsigned long __gmp_urandomb_ui (gmp_randstate_t, unsigned long); unsigned long __gmp_urandomm_ui (gmp_randstate_t, unsigned long); int __gmp_asprintf (char **, const char *, ...); int __gmp_fprintf (FILE *, const char *, ...); # 621 "/usr/include/gmp-i386.h" 3 4 int __gmp_printf (const char *, ...); int __gmp_snprintf (char *, size_t, const char *, ...); int __gmp_sprintf (char *, const char *, ...); # 659 "/usr/include/gmp-i386.h" 3 4 int __gmp_fscanf (FILE *, const char *, ...); int __gmp_scanf (const char *, ...); int __gmp_sscanf (const char *, const char *, ...); # 688 "/usr/include/gmp-i386.h" 3 4 void *__gmpz_realloc (mpz_ptr, mp_size_t); void __gmpz_abs (mpz_ptr, mpz_srcptr); void __gmpz_add (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_add_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_addmul (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_addmul_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_and (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_array_init (mpz_ptr, mp_size_t, mp_size_t); void __gmpz_bin_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_bin_uiui (mpz_ptr, unsigned long int, unsigned long int); void __gmpz_cdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_cdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); unsigned long int __gmpz_cdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_cdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); unsigned long int __gmpz_cdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_cdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_cdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); unsigned long int __gmpz_cdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); unsigned long int __gmpz_cdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); void __gmpz_clear (mpz_ptr); void __gmpz_clears (mpz_ptr, ...); void __gmpz_clrbit (mpz_ptr, mp_bitcnt_t); int __gmpz_cmp (mpz_srcptr, mpz_srcptr) throw () __attribute__ ((__pure__)); int __gmpz_cmp_d (mpz_srcptr, double) __attribute__ ((__pure__)); int __gmpz_cmp_si (mpz_srcptr, signed long int) throw () __attribute__ ((__pure__)); int __gmpz_cmp_ui (mpz_srcptr, unsigned long int) throw () __attribute__ ((__pure__)); int __gmpz_cmpabs (mpz_srcptr, mpz_srcptr) throw () __attribute__ ((__pure__)); int __gmpz_cmpabs_d (mpz_srcptr, double) __attribute__ ((__pure__)); int __gmpz_cmpabs_ui (mpz_srcptr, unsigned long int) throw () __attribute__ ((__pure__)); void __gmpz_com (mpz_ptr, mpz_srcptr); void __gmpz_combit (mpz_ptr, mp_bitcnt_t); int __gmpz_congruent_p (mpz_srcptr, mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); int __gmpz_congruent_2exp_p (mpz_srcptr, mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); int __gmpz_congruent_ui_p (mpz_srcptr, unsigned long, unsigned long) __attribute__ ((__pure__)); void __gmpz_divexact (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_divexact_ui (mpz_ptr, mpz_srcptr, unsigned long); int __gmpz_divisible_p (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); int __gmpz_divisible_ui_p (mpz_srcptr, unsigned long) __attribute__ ((__pure__)); int __gmpz_divisible_2exp_p (mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); void __gmpz_dump (mpz_srcptr); void *__gmpz_export (void *, size_t *, int, size_t, int, size_t, mpz_srcptr); void __gmpz_fac_ui (mpz_ptr, unsigned long int); void __gmpz_fdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_fdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); unsigned long int __gmpz_fdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_fdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); unsigned long int __gmpz_fdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_fdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_fdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); unsigned long int __gmpz_fdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); unsigned long int __gmpz_fdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); void __gmpz_fib_ui (mpz_ptr, unsigned long int); void __gmpz_fib2_ui (mpz_ptr, mpz_ptr, unsigned long int); int __gmpz_fits_sint_p (mpz_srcptr) throw () __attribute__ ((__pure__)); int __gmpz_fits_slong_p (mpz_srcptr) throw () __attribute__ ((__pure__)); int __gmpz_fits_sshort_p (mpz_srcptr) throw () __attribute__ ((__pure__)); int __gmpz_fits_uint_p (mpz_srcptr) throw () __attribute__ ((__pure__)); int __gmpz_fits_ulong_p (mpz_srcptr) throw () __attribute__ ((__pure__)); int __gmpz_fits_ushort_p (mpz_srcptr) throw () __attribute__ ((__pure__)); void __gmpz_gcd (mpz_ptr, mpz_srcptr, mpz_srcptr); unsigned long int __gmpz_gcd_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_gcdext (mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); double __gmpz_get_d (mpz_srcptr) __attribute__ ((__pure__)); double __gmpz_get_d_2exp (signed long int *, mpz_srcptr); long int __gmpz_get_si (mpz_srcptr) throw () __attribute__ ((__pure__)); char *__gmpz_get_str (char *, int, mpz_srcptr); unsigned long int __gmpz_get_ui (mpz_srcptr) throw () __attribute__ ((__pure__)); mp_limb_t __gmpz_getlimbn (mpz_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); mp_bitcnt_t __gmpz_hamdist (mpz_srcptr, mpz_srcptr) throw () __attribute__ ((__pure__)); void __gmpz_import (mpz_ptr, size_t, int, size_t, int, size_t, const void *); void __gmpz_init (mpz_ptr); void __gmpz_init2 (mpz_ptr, mp_bitcnt_t); void __gmpz_inits (mpz_ptr, ...); void __gmpz_init_set (mpz_ptr, mpz_srcptr); void __gmpz_init_set_d (mpz_ptr, double); void __gmpz_init_set_si (mpz_ptr, signed long int); int __gmpz_init_set_str (mpz_ptr, const char *, int); void __gmpz_init_set_ui (mpz_ptr, unsigned long int); size_t __gmpz_inp_raw (mpz_ptr, FILE *); size_t __gmpz_inp_str (mpz_ptr, FILE *, int); int __gmpz_invert (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_ior (mpz_ptr, mpz_srcptr, mpz_srcptr); int __gmpz_jacobi (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__)); int __gmpz_kronecker_si (mpz_srcptr, long) __attribute__ ((__pure__)); int __gmpz_kronecker_ui (mpz_srcptr, unsigned long) __attribute__ ((__pure__)); int __gmpz_si_kronecker (long, mpz_srcptr) __attribute__ ((__pure__)); int __gmpz_ui_kronecker (unsigned long, mpz_srcptr) __attribute__ ((__pure__)); void __gmpz_lcm (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_lcm_ui (mpz_ptr, mpz_srcptr, unsigned long); void __gmpz_lucnum_ui (mpz_ptr, unsigned long int); void __gmpz_lucnum2_ui (mpz_ptr, mpz_ptr, unsigned long int); int __gmpz_millerrabin (mpz_srcptr, int) __attribute__ ((__pure__)); void __gmpz_mod (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_mul (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_mul_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); void __gmpz_mul_si (mpz_ptr, mpz_srcptr, long int); void __gmpz_mul_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_neg (mpz_ptr, mpz_srcptr); void __gmpz_nextprime (mpz_ptr, mpz_srcptr); size_t __gmpz_out_raw (FILE *, mpz_srcptr); size_t __gmpz_out_str (FILE *, int, mpz_srcptr); int __gmpz_perfect_power_p (mpz_srcptr) __attribute__ ((__pure__)); int __gmpz_perfect_square_p (mpz_srcptr) __attribute__ ((__pure__)); mp_bitcnt_t __gmpz_popcount (mpz_srcptr) throw () __attribute__ ((__pure__)); void __gmpz_pow_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_powm (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr); void __gmpz_powm_sec (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr); void __gmpz_powm_ui (mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr); int __gmpz_probab_prime_p (mpz_srcptr, int) __attribute__ ((__pure__)); void __gmpz_random (mpz_ptr, mp_size_t); void __gmpz_random2 (mpz_ptr, mp_size_t); void __gmpz_realloc2 (mpz_ptr, mp_bitcnt_t); mp_bitcnt_t __gmpz_remove (mpz_ptr, mpz_srcptr, mpz_srcptr); int __gmpz_root (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_rootrem (mpz_ptr,mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_rrandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t); mp_bitcnt_t __gmpz_scan0 (mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); mp_bitcnt_t __gmpz_scan1 (mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); void __gmpz_set (mpz_ptr, mpz_srcptr); void __gmpz_set_d (mpz_ptr, double); void __gmpz_set_f (mpz_ptr, mpf_srcptr); void __gmpz_set_q (mpz_ptr, mpq_srcptr); void __gmpz_set_si (mpz_ptr, signed long int); int __gmpz_set_str (mpz_ptr, const char *, int); void __gmpz_set_ui (mpz_ptr, unsigned long int); void __gmpz_setbit (mpz_ptr, mp_bitcnt_t); size_t __gmpz_size (mpz_srcptr) throw () __attribute__ ((__pure__)); size_t __gmpz_sizeinbase (mpz_srcptr, int) throw () __attribute__ ((__pure__)); void __gmpz_sqrt (mpz_ptr, mpz_srcptr); void __gmpz_sqrtrem (mpz_ptr, mpz_ptr, mpz_srcptr); void __gmpz_sub (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_sub_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_ui_sub (mpz_ptr, unsigned long int, mpz_srcptr); void __gmpz_submul (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_submul_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_swap (mpz_ptr, mpz_ptr) throw (); unsigned long int __gmpz_tdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__)); void __gmpz_tdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_tdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); unsigned long int __gmpz_tdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_tdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); unsigned long int __gmpz_tdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); void __gmpz_tdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpz_tdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); unsigned long int __gmpz_tdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); int __gmpz_tstbit (mpz_srcptr, mp_bitcnt_t) throw () __attribute__ ((__pure__)); void __gmpz_ui_pow_ui (mpz_ptr, unsigned long int, unsigned long int); void __gmpz_urandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t); void __gmpz_urandomm (mpz_ptr, gmp_randstate_t, mpz_srcptr); void __gmpz_xor (mpz_ptr, mpz_srcptr, mpz_srcptr); void __gmpq_abs (mpq_ptr, mpq_srcptr); void __gmpq_add (mpq_ptr, mpq_srcptr, mpq_srcptr); void __gmpq_canonicalize (mpq_ptr); void __gmpq_clear (mpq_ptr); void __gmpq_clears (mpq_ptr, ...); int __gmpq_cmp (mpq_srcptr, mpq_srcptr) __attribute__ ((__pure__)); int __gmpq_cmp_si (mpq_srcptr, long, unsigned long) __attribute__ ((__pure__)); int __gmpq_cmp_ui (mpq_srcptr, unsigned long int, unsigned long int) __attribute__ ((__pure__)); void __gmpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr); void __gmpq_div_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); int __gmpq_equal (mpq_srcptr, mpq_srcptr) throw () __attribute__ ((__pure__)); void __gmpq_get_num (mpz_ptr, mpq_srcptr); void __gmpq_get_den (mpz_ptr, mpq_srcptr); double __gmpq_get_d (mpq_srcptr) __attribute__ ((__pure__)); char *__gmpq_get_str (char *, int, mpq_srcptr); void __gmpq_init (mpq_ptr); void __gmpq_inits (mpq_ptr, ...); size_t __gmpq_inp_str (mpq_ptr, FILE *, int); void __gmpq_inv (mpq_ptr, mpq_srcptr); void __gmpq_mul (mpq_ptr, mpq_srcptr, mpq_srcptr); void __gmpq_mul_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); void __gmpq_neg (mpq_ptr, mpq_srcptr); size_t __gmpq_out_str (FILE *, int, mpq_srcptr); void __gmpq_set (mpq_ptr, mpq_srcptr); void __gmpq_set_d (mpq_ptr, double); void __gmpq_set_den (mpq_ptr, mpz_srcptr); void __gmpq_set_f (mpq_ptr, mpf_srcptr); void __gmpq_set_num (mpq_ptr, mpz_srcptr); void __gmpq_set_si (mpq_ptr, signed long int, unsigned long int); int __gmpq_set_str (mpq_ptr, const char *, int); void __gmpq_set_ui (mpq_ptr, unsigned long int, unsigned long int); void __gmpq_set_z (mpq_ptr, mpz_srcptr); void __gmpq_sub (mpq_ptr, mpq_srcptr, mpq_srcptr); void __gmpq_swap (mpq_ptr, mpq_ptr) throw (); void __gmpf_abs (mpf_ptr, mpf_srcptr); void __gmpf_add (mpf_ptr, mpf_srcptr, mpf_srcptr); void __gmpf_add_ui (mpf_ptr, mpf_srcptr, unsigned long int); void __gmpf_ceil (mpf_ptr, mpf_srcptr); void __gmpf_clear (mpf_ptr); void __gmpf_clears (mpf_ptr, ...); int __gmpf_cmp (mpf_srcptr, mpf_srcptr) throw () __attribute__ ((__pure__)); int __gmpf_cmp_d (mpf_srcptr, double) __attribute__ ((__pure__)); int __gmpf_cmp_si (mpf_srcptr, signed long int) throw () __attribute__ ((__pure__)); int __gmpf_cmp_ui (mpf_srcptr, unsigned long int) throw () __attribute__ ((__pure__)); void __gmpf_div (mpf_ptr, mpf_srcptr, mpf_srcptr); void __gmpf_div_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t); void __gmpf_div_ui (mpf_ptr, mpf_srcptr, unsigned long int); void __gmpf_dump (mpf_srcptr); int __gmpf_eq (mpf_srcptr, mpf_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); int __gmpf_fits_sint_p (mpf_srcptr) throw () __attribute__ ((__pure__)); int __gmpf_fits_slong_p (mpf_srcptr) throw () __attribute__ ((__pure__)); int __gmpf_fits_sshort_p (mpf_srcptr) throw () __attribute__ ((__pure__)); int __gmpf_fits_uint_p (mpf_srcptr) throw () __attribute__ ((__pure__)); int __gmpf_fits_ulong_p (mpf_srcptr) throw () __attribute__ ((__pure__)); int __gmpf_fits_ushort_p (mpf_srcptr) throw () __attribute__ ((__pure__)); void __gmpf_floor (mpf_ptr, mpf_srcptr); double __gmpf_get_d (mpf_srcptr) __attribute__ ((__pure__)); double __gmpf_get_d_2exp (signed long int *, mpf_srcptr); mp_bitcnt_t __gmpf_get_default_prec (void) throw () __attribute__ ((__pure__)); mp_bitcnt_t __gmpf_get_prec (mpf_srcptr) throw () __attribute__ ((__pure__)); long __gmpf_get_si (mpf_srcptr) throw () __attribute__ ((__pure__)); char *__gmpf_get_str (char *, mp_exp_t *, int, size_t, mpf_srcptr); unsigned long __gmpf_get_ui (mpf_srcptr) throw () __attribute__ ((__pure__)); void __gmpf_init (mpf_ptr); void __gmpf_init2 (mpf_ptr, mp_bitcnt_t); void __gmpf_inits (mpf_ptr, ...); void __gmpf_init_set (mpf_ptr, mpf_srcptr); void __gmpf_init_set_d (mpf_ptr, double); void __gmpf_init_set_si (mpf_ptr, signed long int); int __gmpf_init_set_str (mpf_ptr, const char *, int); void __gmpf_init_set_ui (mpf_ptr, unsigned long int); size_t __gmpf_inp_str (mpf_ptr, FILE *, int); int __gmpf_integer_p (mpf_srcptr) throw () __attribute__ ((__pure__)); void __gmpf_mul (mpf_ptr, mpf_srcptr, mpf_srcptr); void __gmpf_mul_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t); void __gmpf_mul_ui (mpf_ptr, mpf_srcptr, unsigned long int); void __gmpf_neg (mpf_ptr, mpf_srcptr); size_t __gmpf_out_str (FILE *, int, size_t, mpf_srcptr); void __gmpf_pow_ui (mpf_ptr, mpf_srcptr, unsigned long int); void __gmpf_random2 (mpf_ptr, mp_size_t, mp_exp_t); void __gmpf_reldiff (mpf_ptr, mpf_srcptr, mpf_srcptr); void __gmpf_set (mpf_ptr, mpf_srcptr); void __gmpf_set_d (mpf_ptr, double); void __gmpf_set_default_prec (mp_bitcnt_t) throw (); void __gmpf_set_prec (mpf_ptr, mp_bitcnt_t); void __gmpf_set_prec_raw (mpf_ptr, mp_bitcnt_t) throw (); void __gmpf_set_q (mpf_ptr, mpq_srcptr); void __gmpf_set_si (mpf_ptr, signed long int); int __gmpf_set_str (mpf_ptr, const char *, int); void __gmpf_set_ui (mpf_ptr, unsigned long int); void __gmpf_set_z (mpf_ptr, mpz_srcptr); size_t __gmpf_size (mpf_srcptr) throw () __attribute__ ((__pure__)); void __gmpf_sqrt (mpf_ptr, mpf_srcptr); void __gmpf_sqrt_ui (mpf_ptr, unsigned long int); void __gmpf_sub (mpf_ptr, mpf_srcptr, mpf_srcptr); void __gmpf_sub_ui (mpf_ptr, mpf_srcptr, unsigned long int); void __gmpf_swap (mpf_ptr, mpf_ptr) throw (); void __gmpf_trunc (mpf_ptr, mpf_srcptr); void __gmpf_ui_div (mpf_ptr, unsigned long int, mpf_srcptr); void __gmpf_ui_sub (mpf_ptr, unsigned long int, mpf_srcptr); void __gmpf_urandomb (mpf_t, gmp_randstate_t, mp_bitcnt_t); # 1501 "/usr/include/gmp-i386.h" 3 4 mp_limb_t __gmpn_add (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t); mp_limb_t __gmpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) throw (); mp_limb_t __gmpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); mp_limb_t __gmpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); int __gmpn_cmp (mp_srcptr, mp_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); mp_limb_t __gmpn_divexact_by3c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); mp_limb_t __gmpn_divrem (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t); mp_limb_t __gmpn_divrem_1 (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t); mp_limb_t __gmpn_divrem_2 (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr); mp_size_t __gmpn_gcd (mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t); mp_limb_t __gmpn_gcd_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__)); mp_limb_t __gmpn_gcdext_1 (mp_limb_signed_t *, mp_limb_signed_t *, mp_limb_t, mp_limb_t); mp_size_t __gmpn_gcdext (mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t); size_t __gmpn_get_str (unsigned char *, int, mp_ptr, mp_size_t); mp_bitcnt_t __gmpn_hamdist (mp_srcptr, mp_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); mp_limb_t __gmpn_lshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); mp_limb_t __gmpn_mod_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__)); mp_limb_t __gmpn_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); mp_limb_t __gmpn_mul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); void __gmpn_mul_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_sqr (mp_ptr, mp_srcptr, mp_size_t); mp_limb_t __gmpn_neg (mp_ptr, mp_srcptr, mp_size_t); void __gmpn_com (mp_ptr, mp_srcptr, mp_size_t); int __gmpn_perfect_square_p (mp_srcptr, mp_size_t) __attribute__ ((__pure__)); int __gmpn_perfect_power_p (mp_srcptr, mp_size_t) __attribute__ ((__pure__)); mp_bitcnt_t __gmpn_popcount (mp_srcptr, mp_size_t) throw () __attribute__ ((__pure__)); mp_size_t __gmpn_pow_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr); mp_limb_t __gmpn_preinv_mod_1 (mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t) __attribute__ ((__pure__)); void __gmpn_random (mp_ptr, mp_size_t); void __gmpn_random2 (mp_ptr, mp_size_t); mp_limb_t __gmpn_rshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); mp_bitcnt_t __gmpn_scan0 (mp_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); mp_bitcnt_t __gmpn_scan1 (mp_srcptr, mp_bitcnt_t) __attribute__ ((__pure__)); mp_size_t __gmpn_set_str (mp_ptr, const unsigned char *, size_t, int); mp_size_t __gmpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t); mp_limb_t __gmpn_sub (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t); mp_limb_t __gmpn_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) throw (); mp_limb_t __gmpn_sub_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); mp_limb_t __gmpn_submul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); void __gmpn_tdiv_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); void __gmpn_and_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_andn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_nand_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_ior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_iorn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_nior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_xor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_xnor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); void __gmpn_copyi (mp_ptr, mp_srcptr, mp_size_t); void __gmpn_copyd (mp_ptr, mp_srcptr, mp_size_t); void __gmpn_zero (mp_ptr, mp_size_t); # 1681 "/usr/include/gmp-i386.h" 3 4 extern __inline__ void __gmpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) { if (__gmp_w != __gmp_u) __gmpz_set (__gmp_w, __gmp_u); __gmp_w->_mp_size = ((__gmp_w->_mp_size) >= 0 ? (__gmp_w->_mp_size) : -(__gmp_w->_mp_size)); } # 1705 "/usr/include/gmp-i386.h" 3 4 extern __inline__ int __gmpz_fits_uint_p (mpz_srcptr __gmp_z) throw () { mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (~ (unsigned) 0)));; } extern __inline__ int __gmpz_fits_ulong_p (mpz_srcptr __gmp_z) throw () { mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= (~ (unsigned long) 0)));; } extern __inline__ int __gmpz_fits_ushort_p (mpz_srcptr __gmp_z) throw () { mp_size_t __gmp_n = __gmp_z->_mp_size; mp_ptr __gmp_p = __gmp_z->_mp_d; return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= ((unsigned short) ~0)));; } extern __inline__ unsigned long __gmpz_get_ui (mpz_srcptr __gmp_z) throw () { mp_ptr __gmp_p = __gmp_z->_mp_d; mp_size_t __gmp_n = __gmp_z->_mp_size; mp_limb_t __gmp_l = __gmp_p[0]; return (__gmp_n != 0 ? __gmp_l : 0); # 1761 "/usr/include/gmp-i386.h" 3 4 } extern __inline__ mp_limb_t __gmpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n) throw () { mp_limb_t __gmp_result = 0; if (__builtin_expect ((__gmp_n >= 0 && __gmp_n < ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size))) != 0, 1)) __gmp_result = __gmp_z->_mp_d[__gmp_n]; return __gmp_result; } extern __inline__ void __gmpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) { if (__gmp_w != __gmp_u) __gmpz_set (__gmp_w, __gmp_u); __gmp_w->_mp_size = - __gmp_w->_mp_size; } extern __inline__ int __gmpz_perfect_square_p (mpz_srcptr __gmp_a) { mp_size_t __gmp_asize; int __gmp_result; __gmp_asize = __gmp_a->_mp_size; __gmp_result = (__gmp_asize >= 0); if (__builtin_expect ((__gmp_asize > 0) != 0, 1)) __gmp_result = __gmpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize); return __gmp_result; } extern __inline__ mp_bitcnt_t __gmpz_popcount (mpz_srcptr __gmp_u) throw () { mp_size_t __gmp_usize; mp_bitcnt_t __gmp_result; __gmp_usize = __gmp_u->_mp_size; __gmp_result = (__gmp_usize < 0 ? (~ (unsigned long) 0) : 0); if (__builtin_expect ((__gmp_usize > 0) != 0, 1)) __gmp_result = __gmpn_popcount (__gmp_u->_mp_d, __gmp_usize); return __gmp_result; } extern __inline__ void __gmpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u) { __gmpz_tdiv_q (__gmp_w, (&((__gmp_u)->_mp_num)), (&((__gmp_u)->_mp_den))); } extern __inline__ size_t __gmpz_size (mpz_srcptr __gmp_z) throw () { return ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size)); } extern __inline__ void __gmpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) { if (__gmp_w != __gmp_u) __gmpq_set (__gmp_w, __gmp_u); __gmp_w->_mp_num._mp_size = ((__gmp_w->_mp_num._mp_size) >= 0 ? (__gmp_w->_mp_num._mp_size) : -(__gmp_w->_mp_num._mp_size)); } extern __inline__ void __gmpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) { if (__gmp_w != __gmp_u) __gmpq_set (__gmp_w, __gmp_u); __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size; } # 2103 "/usr/include/gmp-i386.h" 3 4 extern __inline__ mp_limb_t __gmpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) { mp_limb_t __gmp_c; do { mp_size_t __gmp_i; mp_limb_t __gmp_x; __gmp_i = (__gmp_ysize); if (__gmp_i != 0) { if (__gmpn_add_n (__gmp_wp, __gmp_xp, __gmp_yp, __gmp_i)) { do { if (__gmp_i >= (__gmp_xsize)) { (__gmp_c) = 1; goto __gmp_done; } __gmp_x = (__gmp_xp)[__gmp_i]; } while ((((__gmp_wp)[__gmp_i++] = (__gmp_x + 1) & ((~ (static_cast (0))) >> 0)) == 0)); } } if ((__gmp_wp) != (__gmp_xp)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_xsize); __gmp_j++) (__gmp_wp)[__gmp_j] = (__gmp_xp)[__gmp_j]; } while (0); (__gmp_c) = 0; __gmp_done: ; } while (0); return __gmp_c; } extern __inline__ mp_limb_t __gmpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) throw () { mp_limb_t __gmp_c; do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_r; __gmp_x = (__gmp_src)[0]; __gmp_r = __gmp_x + (__gmp_n); (__gmp_dst)[0] = __gmp_r; if (((__gmp_r) < ((__gmp_n)))) { (__gmp_c) = 1; for (__gmp_i = 1; __gmp_i < (__gmp_size);) { __gmp_x = (__gmp_src)[__gmp_i]; __gmp_r = __gmp_x + 1; (__gmp_dst)[__gmp_i] = __gmp_r; ++__gmp_i; if (!((__gmp_r) < (1))) { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; break; } } } else { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (1); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; } } while (0); return __gmp_c; } extern __inline__ int __gmpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) throw () { int __gmp_result; do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_y; (__gmp_result) = 0; __gmp_i = (__gmp_size); while (--__gmp_i >= 0) { __gmp_x = (__gmp_xp)[__gmp_i]; __gmp_y = (__gmp_yp)[__gmp_i]; if (__gmp_x != __gmp_y) { (__gmp_result) = (__gmp_x > __gmp_y ? 1 : -1); break; } } } while (0); return __gmp_result; } extern __inline__ mp_limb_t __gmpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) { mp_limb_t __gmp_c; do { mp_size_t __gmp_i; mp_limb_t __gmp_x; __gmp_i = (__gmp_ysize); if (__gmp_i != 0) { if (__gmpn_sub_n (__gmp_wp, __gmp_xp, __gmp_yp, __gmp_i)) { do { if (__gmp_i >= (__gmp_xsize)) { (__gmp_c) = 1; goto __gmp_done; } __gmp_x = (__gmp_xp)[__gmp_i]; } while ((((__gmp_wp)[__gmp_i++] = (__gmp_x - 1) & ((~ (static_cast (0))) >> 0)), __gmp_x == 0)); } } if ((__gmp_wp) != (__gmp_xp)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_xsize); __gmp_j++) (__gmp_wp)[__gmp_j] = (__gmp_xp)[__gmp_j]; } while (0); (__gmp_c) = 0; __gmp_done: ; } while (0); return __gmp_c; } extern __inline__ mp_limb_t __gmpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) throw () { mp_limb_t __gmp_c; do { mp_size_t __gmp_i; mp_limb_t __gmp_x, __gmp_r; __gmp_x = (__gmp_src)[0]; __gmp_r = __gmp_x - (__gmp_n); (__gmp_dst)[0] = __gmp_r; if (((__gmp_x) < ((__gmp_n)))) { (__gmp_c) = 1; for (__gmp_i = 1; __gmp_i < (__gmp_size);) { __gmp_x = (__gmp_src)[__gmp_i]; __gmp_r = __gmp_x - 1; (__gmp_dst)[__gmp_i] = __gmp_r; ++__gmp_i; if (!((__gmp_x) < (1))) { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (__gmp_i); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; break; } } } else { if ((__gmp_src) != (__gmp_dst)) do { mp_size_t __gmp_j; ; for (__gmp_j = (1); __gmp_j < (__gmp_size); __gmp_j++) (__gmp_dst)[__gmp_j] = (__gmp_src)[__gmp_j]; } while (0); (__gmp_c) = 0; } } while (0); return __gmp_c; } extern __inline__ mp_limb_t __gmpn_neg (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n) { mp_limb_t __gmp_ul, __gmp_cy; __gmp_cy = 0; do { __gmp_ul = *__gmp_up++; *__gmp_rp++ = -__gmp_ul - __gmp_cy; __gmp_cy |= __gmp_ul != 0; } while (--__gmp_n != 0); return __gmp_cy; } } # 2229 "/usr/include/gmp-i386.h" 3 4 std::ostream& operator<< (std::ostream &, mpz_srcptr); std::ostream& operator<< (std::ostream &, mpq_srcptr); std::ostream& operator<< (std::ostream &, mpf_srcptr); std::istream& operator>> (std::istream &, mpz_ptr); std::istream& operator>> (std::istream &, mpq_ptr); std::istream& operator>> (std::istream &, mpf_ptr); # 2260 "/usr/include/gmp-i386.h" 3 4 enum { GMP_ERROR_NONE = 0, GMP_ERROR_UNSUPPORTED_ARGUMENT = 1, GMP_ERROR_DIVISION_BY_ZERO = 2, GMP_ERROR_SQRT_OF_NEGATIVE = 4, GMP_ERROR_INVALID_ARGUMENT = 8 }; # 48 "/usr/include/gmp.h" 2 3 4 # 25 "/usr/include/libguile.h" 2 3 4 extern "C" { # 1 "/usr/include/libguile/__scm.h" 1 3 4 # 52 "/usr/include/libguile/__scm.h" 3 4 # 1 "/usr/include/libguile/scmconfig.h" 1 3 4 # 23 "/usr/include/libguile/scmconfig.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stdint.h" 1 3 4 # 1 "/usr/include/stdint.h" 1 3 4 # 28 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/wordsize.h" 1 3 4 # 29 "/usr/include/stdint.h" 2 3 4 # 37 "/usr/include/stdint.h" 3 4 typedef signed char int8_t; typedef short int int16_t; typedef int int32_t; __extension__ typedef long long int int64_t; typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; __extension__ typedef unsigned long long int uint64_t; typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; __extension__ typedef long long int int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; __extension__ typedef unsigned long long int uint_least64_t; typedef signed char int_fast8_t; typedef int int_fast16_t; typedef int int_fast32_t; __extension__ typedef long long int int_fast64_t; typedef unsigned char uint_fast8_t; typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast32_t; __extension__ typedef unsigned long long int uint_fast64_t; # 126 "/usr/include/stdint.h" 3 4 typedef int intptr_t; typedef unsigned int uintptr_t; # 138 "/usr/include/stdint.h" 3 4 __extension__ typedef long long int intmax_t; __extension__ typedef unsigned long long int uintmax_t; # 4 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stdint.h" 2 3 4 # 24 "/usr/include/libguile/scmconfig.h" 2 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h" 1 3 4 # 34 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h" 1 3 4 # 169 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 145 "/usr/include/limits.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/posix1_lim.h" 1 3 4 # 157 "/usr/include/i386-linux-gnu/bits/posix1_lim.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/local_lim.h" 1 3 4 # 39 "/usr/include/i386-linux-gnu/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 40 "/usr/include/i386-linux-gnu/bits/local_lim.h" 2 3 4 # 158 "/usr/include/i386-linux-gnu/bits/posix1_lim.h" 2 3 4 # 146 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/posix2_lim.h" 1 3 4 # 150 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/xopen_lim.h" 1 3 4 # 34 "/usr/include/i386-linux-gnu/bits/xopen_lim.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/stdio_lim.h" 1 3 4 # 35 "/usr/include/i386-linux-gnu/bits/xopen_lim.h" 2 3 4 # 154 "/usr/include/limits.h" 2 3 4 # 170 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h" 2 3 4 # 8 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/syslimits.h" 2 3 4 # 35 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h" 2 3 4 # 25 "/usr/include/libguile/scmconfig.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/sys/time.h" 1 3 4 # 27 "/usr/include/i386-linux-gnu/sys/time.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 74 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 28 "/usr/include/i386-linux-gnu/sys/time.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/time.h" 1 3 4 # 31 "/usr/include/i386-linux-gnu/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 30 "/usr/include/i386-linux-gnu/sys/time.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/sys/select.h" 1 3 4 # 31 "/usr/include/i386-linux-gnu/sys/select.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/select.h" 1 3 4 # 32 "/usr/include/i386-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/sigset.h" 1 3 4 # 24 "/usr/include/i386-linux-gnu/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "/usr/include/i386-linux-gnu/sys/select.h" 2 3 4 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 4 # 120 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 45 "/usr/include/i386-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/time.h" 1 3 4 # 47 "/usr/include/i386-linux-gnu/sys/select.h" 2 3 4 typedef __suseconds_t suseconds_t; typedef long int __fd_mask; # 65 "/usr/include/i386-linux-gnu/sys/select.h" 3 4 typedef struct { __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 97 "/usr/include/i386-linux-gnu/sys/select.h" 3 4 extern "C" { # 107 "/usr/include/i386-linux-gnu/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 119 "/usr/include/i386-linux-gnu/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 132 "/usr/include/i386-linux-gnu/sys/select.h" 3 4 } # 32 "/usr/include/i386-linux-gnu/sys/time.h" 2 3 4 extern "C" { # 57 "/usr/include/i386-linux-gnu/sys/time.h" 3 4 struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct timezone *__restrict __timezone_ptr_t; # 73 "/usr/include/i386-linux-gnu/sys/time.h" 3 4 extern int gettimeofday (struct timeval *__restrict __tv, __timezone_ptr_t __tz) throw () __attribute__ ((__nonnull__ (1))); extern int settimeofday (__const struct timeval *__tv, __const struct timezone *__tz) throw () __attribute__ ((__nonnull__ (1))); extern int adjtime (__const struct timeval *__delta, struct timeval *__olddelta) throw (); enum __itimer_which { ITIMER_REAL = 0, ITIMER_VIRTUAL = 1, ITIMER_PROF = 2 }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; typedef int __itimer_which_t; extern int getitimer (__itimer_which_t __which, struct itimerval *__value) throw (); extern int setitimer (__itimer_which_t __which, __const struct itimerval *__restrict __new, struct itimerval *__restrict __old) throw (); extern int utimes (__const char *__file, __const struct timeval __tvp[2]) throw () __attribute__ ((__nonnull__ (1))); extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) throw () __attribute__ ((__nonnull__ (1))); extern int futimes (int __fd, __const struct timeval __tvp[2]) throw (); extern int futimesat (int __fd, __const char *__file, __const struct timeval __tvp[2]) throw (); # 191 "/usr/include/i386-linux-gnu/sys/time.h" 3 4 } # 26 "/usr/include/libguile/scmconfig.h" 2 3 4 # 1 "/usr/include/time.h" 1 3 4 # 30 "/usr/include/time.h" 3 4 extern "C" { # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 39 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/time.h" 1 3 4 # 86 "/usr/include/i386-linux-gnu/bits/time.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/timex.h" 1 3 4 # 24 "/usr/include/i386-linux-gnu/bits/timex.h" 3 4 struct timex { unsigned int modes; long int offset; long int freq; long int maxerror; long int esterror; int status; long int constant; long int precision; long int tolerance; struct timeval time; long int tick; long int ppsfreq; long int jitter; int shift; long int stabil; long int jitcnt; long int calcnt; long int errcnt; long int stbcnt; int tai; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; }; # 87 "/usr/include/i386-linux-gnu/bits/time.h" 2 3 4 extern "C" { extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); } # 43 "/usr/include/time.h" 2 3 4 # 58 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 92 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 104 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 131 "/usr/include/time.h" 3 4 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; __const char *tm_zone; }; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct sigevent; typedef __pid_t pid_t; extern clock_t clock (void) throw (); extern time_t time (time_t *__timer) throw (); extern double difftime (time_t __time1, time_t __time0) throw () __attribute__ ((__const__)); extern time_t mktime (struct tm *__tp) throw (); extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) throw (); extern char *strptime (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp) throw (); extern size_t strftime_l (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) throw (); extern char *strptime_l (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp, __locale_t __loc) throw (); extern struct tm *gmtime (__const time_t *__timer) throw (); extern struct tm *localtime (__const time_t *__timer) throw (); extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) throw (); extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) throw (); extern char *asctime (__const struct tm *__tp) throw (); extern char *ctime (__const time_t *__timer) throw (); extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) throw (); extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) throw (); extern char *__tzname[2]; extern int __daylight; extern long int __timezone; extern char *tzname[2]; extern void tzset (void) throw (); extern int daylight; extern long int timezone; extern int stime (__const time_t *__when) throw (); # 313 "/usr/include/time.h" 3 4 extern time_t timegm (struct tm *__tp) throw (); extern time_t timelocal (struct tm *__tp) throw (); extern int dysize (int __year) throw () __attribute__ ((__const__)); # 328 "/usr/include/time.h" 3 4 extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining); extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) throw (); extern int clock_nanosleep (clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem); extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) throw (); extern int timer_delete (timer_t __timerid) throw (); extern int timer_settime (timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) throw (); extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) throw (); extern int timer_getoverrun (timer_t __timerid) throw (); # 390 "/usr/include/time.h" 3 4 extern int getdate_err; # 399 "/usr/include/time.h" 3 4 extern struct tm *getdate (__const char *__string); # 413 "/usr/include/time.h" 3 4 extern int getdate_r (__const char *__restrict __string, struct tm *__restrict __resbufp); } # 27 "/usr/include/libguile/scmconfig.h" 2 3 4 # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 34 "/usr/include/stdlib.h" 2 3 4 extern "C" { # 1 "/usr/include/i386-linux-gnu/bits/waitflags.h" 1 3 4 # 43 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/waitstatus.h" 1 3 4 # 65 "/usr/include/i386-linux-gnu/bits/waitstatus.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/endian.h" 1 3 4 # 38 "/usr/include/endian.h" 2 3 4 # 61 "/usr/include/endian.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/byteswap.h" 1 3 4 # 62 "/usr/include/endian.h" 2 3 4 # 66 "/usr/include/i386-linux-gnu/bits/waitstatus.h" 2 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; # 44 "/usr/include/stdlib.h" 2 3 4 # 96 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 140 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) throw () ; extern double atof (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern int atoi (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern long int atol (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int atoll (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ; extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ; extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ; extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))) ; # 240 "/usr/include/stdlib.h" 3 4 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))) ; extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))) ; extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))) ; # 311 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) throw () ; extern long int a64l (__const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; # 1 "/usr/include/i386-linux-gnu/sys/types.h" 1 3 4 # 28 "/usr/include/i386-linux-gnu/sys/types.h" 3 4 extern "C" { typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; # 105 "/usr/include/i386-linux-gnu/sys/types.h" 3 4 typedef __id_t id_t; # 116 "/usr/include/i386-linux-gnu/sys/types.h" 3 4 typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 137 "/usr/include/i386-linux-gnu/sys/types.h" 3 4 typedef __useconds_t useconds_t; # 147 "/usr/include/i386-linux-gnu/sys/types.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 148 "/usr/include/i386-linux-gnu/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 201 "/usr/include/i386-linux-gnu/sys/types.h" 3 4 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 223 "/usr/include/i386-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/i386-linux-gnu/sys/sysmacros.h" 1 3 4 # 30 "/usr/include/i386-linux-gnu/sys/sysmacros.h" 3 4 extern "C" { __extension__ extern unsigned int gnu_dev_major (unsigned long long int __dev) throw () __attribute__ ((__const__)); __extension__ extern unsigned int gnu_dev_minor (unsigned long long int __dev) throw () __attribute__ ((__const__)); __extension__ extern unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () __attribute__ ((__const__)); # 64 "/usr/include/i386-linux-gnu/sys/sysmacros.h" 3 4 } # 224 "/usr/include/i386-linux-gnu/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 263 "/usr/include/i386-linux-gnu/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 1 "/usr/include/i386-linux-gnu/bits/pthreadtypes.h" 1 3 4 # 36 "/usr/include/i386-linux-gnu/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; typedef union { char __size[36]; long int __align; } pthread_attr_t; typedef struct __pthread_internal_slist { struct __pthread_internal_slist *__next; } __pthread_slist_t; typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; int __kind; unsigned int __nusers; __extension__ union { int __spins; __pthread_slist_t __list; }; } __data; char __size[24]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; long int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; long int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; unsigned char __flags; unsigned char __shared; unsigned char __pad1; unsigned char __pad2; int __writer; } __data; char __size[32]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[20]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 272 "/usr/include/i386-linux-gnu/sys/types.h" 2 3 4 } # 321 "/usr/include/stdlib.h" 2 3 4 extern long int random (void) throw (); extern void srandom (unsigned int __seed) throw (); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) throw () __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) throw () __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) throw (); extern void srand (unsigned int __seed) throw (); extern int rand_r (unsigned int *__seed) throw (); extern double drand48 (void) throw (); extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) throw (); extern long int nrand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) throw (); extern long int jrand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) throw (); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) throw () __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ; extern void *calloc (size_t __nmemb, size_t __size) throw () __attribute__ ((__malloc__)) ; extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) throw (); extern void cfree (void *__ptr) throw (); # 1 "/usr/include/alloca.h" 1 3 4 # 25 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern "C" { extern void *alloca (size_t __size) throw (); } # 498 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ; extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) throw () __attribute__ ((__nonnull__ (1))) ; extern void abort (void) throw () __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); extern "C++" int at_quick_exit (void (*__func) (void)) throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) throw () __attribute__ ((__nonnull__ (1))); extern void exit (int __status) throw () __attribute__ ((__noreturn__)); extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; extern char *__secure_getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); extern int setenv (__const char *__name, __const char *__value, int __replace) throw () __attribute__ ((__nonnull__ (2))); extern int unsetenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); extern int clearenv (void) throw (); # 606 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; # 620 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; # 630 "/usr/include/stdlib.h" 3 4 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; # 642 "/usr/include/stdlib.h" 3 4 extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; # 652 "/usr/include/stdlib.h" 3 4 extern int mkstemps64 (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; # 663 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; # 674 "/usr/include/stdlib.h" 3 4 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; # 684 "/usr/include/stdlib.h" 3 4 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; # 694 "/usr/include/stdlib.h" 3 4 extern int mkostemps (char *__template, int __suffixlen, int __flags) __attribute__ ((__nonnull__ (1))) ; # 706 "/usr/include/stdlib.h" 3 4 extern int mkostemps64 (char *__template, int __suffixlen, int __flags) __attribute__ ((__nonnull__ (1))) ; extern int system (__const char *__command) ; extern char *canonicalize_file_name (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; # 734 "/usr/include/stdlib.h" 3 4 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) throw () ; typedef int (*__compar_fn_t) (__const void *, __const void *); typedef __compar_fn_t comparison_fn_t; typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *); extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) ; extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); extern void qsort_r (void *__base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void *__arg) __attribute__ ((__nonnull__ (1, 4))); extern int abs (int __x) throw () __attribute__ ((__const__)) ; extern long int labs (long int __x) throw () __attribute__ ((__const__)) ; __extension__ extern long long int llabs (long long int __x) throw () __attribute__ ((__const__)) ; extern div_t div (int __numer, int __denom) throw () __attribute__ ((__const__)) ; extern ldiv_t ldiv (long int __numer, long int __denom) throw () __attribute__ ((__const__)) ; __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) throw () __attribute__ ((__const__)) ; # 808 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *gcvt (double __value, int __ndigit, char *__buf) throw () __attribute__ ((__nonnull__ (3))) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) throw () __attribute__ ((__nonnull__ (3))) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (__const char *__s, size_t __n) throw () ; extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) throw () ; extern int wctomb (char *__s, wchar_t __wchar) throw () ; extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) throw (); extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) throw (); extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ; # 896 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) throw () __attribute__ ((__nonnull__ (1, 2, 3))) ; extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1))); extern int posix_openpt (int __oflag) ; extern int grantpt (int __fd) throw (); extern int unlockpt (int __fd) throw (); extern char *ptsname (int __fd) throw () ; extern int ptsname_r (int __fd, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) throw () __attribute__ ((__nonnull__ (1))); # 964 "/usr/include/stdlib.h" 3 4 } # 30 "/usr/include/libguile/scmconfig.h" 2 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 150 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 3 4 typedef int ptrdiff_t; # 32 "/usr/include/libguile/scmconfig.h" 2 3 4 # 83 "/usr/include/libguile/scmconfig.h" 3 4 typedef long long long_long; typedef unsigned long long ulong_long; typedef int8_t scm_t_int8; typedef uint8_t scm_t_uint8; typedef int16_t scm_t_int16; typedef uint16_t scm_t_uint16; typedef int32_t scm_t_int32; typedef uint32_t scm_t_uint32; typedef intmax_t scm_t_intmax; typedef uintmax_t scm_t_uintmax; typedef int64_t scm_t_int64; typedef uint64_t scm_t_uint64; typedef ptrdiff_t scm_t_ptrdiff; # 114 "/usr/include/libguile/scmconfig.h" 3 4 typedef struct timespec scm_t_timespec; # 53 "/usr/include/libguile/__scm.h" 2 3 4 # 382 "/usr/include/libguile/__scm.h" 3 4 # 1 "/usr/include/libguile/tags.h" 1 3 4 # 31 "/usr/include/libguile/tags.h" 3 4 # 1 "/usr/include/libguile/__scm.h" 1 3 4 # 32 "/usr/include/libguile/tags.h" 2 3 4 # 88 "/usr/include/libguile/tags.h" 3 4 typedef signed long scm_t_signed_bits; typedef unsigned long scm_t_bits; # 109 "/usr/include/libguile/tags.h" 3 4 typedef struct scm_unused_struct * SCM; # 497 "/usr/include/libguile/tags.h" 3 4 enum scm_tc8_tags { scm_tc8_flag = 4 + 0x00, scm_tc8_char = 4 + 0x08, scm_tc8_isym = 4 + 0x10, scm_tc8_iloc = 4 + 0x18 }; # 383 "/usr/include/libguile/__scm.h" 2 3 4 # 418 "/usr/include/libguile/__scm.h" 3 4 # 1 "/usr/include/setjmp.h" 1 3 4 # 28 "/usr/include/setjmp.h" 3 4 extern "C" { # 1 "/usr/include/i386-linux-gnu/bits/setjmp.h" 1 3 4 # 29 "/usr/include/i386-linux-gnu/bits/setjmp.h" 3 4 typedef int __jmp_buf[6]; # 31 "/usr/include/setjmp.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/sigset.h" 1 3 4 # 32 "/usr/include/setjmp.h" 2 3 4 struct __jmp_buf_tag { __jmp_buf __jmpbuf; int __mask_was_saved; __sigset_t __saved_mask; }; typedef struct __jmp_buf_tag jmp_buf[1]; extern int setjmp (jmp_buf __env) throw (); extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) throw (); extern int _setjmp (struct __jmp_buf_tag __env[1]) throw (); # 78 "/usr/include/setjmp.h" 3 4 extern void longjmp (struct __jmp_buf_tag __env[1], int __val) throw () __attribute__ ((__noreturn__)); extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) throw () __attribute__ ((__noreturn__)); typedef struct __jmp_buf_tag sigjmp_buf[1]; # 110 "/usr/include/setjmp.h" 3 4 extern void siglongjmp (sigjmp_buf __env, int __val) throw () __attribute__ ((__noreturn__)); # 120 "/usr/include/setjmp.h" 3 4 } # 419 "/usr/include/libguile/__scm.h" 2 3 4 # 460 "/usr/include/libguile/__scm.h" 3 4 typedef long SCM_STACKITEM; # 536 "/usr/include/libguile/__scm.h" 3 4 extern SCM scm_call_generic_0 (SCM gf); # 546 "/usr/include/libguile/__scm.h" 3 4 extern SCM scm_call_generic_1 (SCM gf, SCM a1); # 556 "/usr/include/libguile/__scm.h" 3 4 extern SCM scm_call_generic_2 (SCM gf, SCM a1, SCM a2); # 568 "/usr/include/libguile/__scm.h" 3 4 extern SCM scm_apply_generic (SCM gf, SCM args); # 31 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/alist.h" 1 3 4 # 29 "/usr/include/libguile/alist.h" 3 4 extern SCM scm_acons (SCM w, SCM x, SCM y); extern SCM scm_sloppy_assq (SCM x, SCM alist); extern SCM scm_sloppy_assv (SCM x, SCM alist); extern SCM scm_sloppy_assoc (SCM x, SCM alist); extern SCM scm_assq (SCM x, SCM alist); extern SCM scm_assv (SCM x, SCM alist); extern SCM scm_assoc (SCM x, SCM alist); extern SCM scm_assq_ref (SCM alist, SCM key); extern SCM scm_assv_ref (SCM alist, SCM key); extern SCM scm_assoc_ref (SCM alist, SCM key); extern SCM scm_assq_set_x (SCM alist, SCM key, SCM val); extern SCM scm_assv_set_x (SCM alist, SCM key, SCM val); extern SCM scm_assoc_set_x (SCM alist, SCM key, SCM val); extern SCM scm_assq_remove_x (SCM alist, SCM key); extern SCM scm_assv_remove_x (SCM alist, SCM key); extern SCM scm_assoc_remove_x (SCM alist, SCM key); extern void scm_init_alist (void); # 32 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/arbiters.h" 1 3 4 # 29 "/usr/include/libguile/arbiters.h" 3 4 extern SCM scm_make_arbiter (SCM name); extern SCM scm_try_arbiter (SCM arb); extern SCM scm_release_arbiter (SCM arb); extern void scm_init_arbiters (void); # 33 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/async.h" 1 3 4 # 26 "/usr/include/libguile/async.h" 3 4 # 1 "/usr/include/libguile/root.h" 1 3 4 # 26 "/usr/include/libguile/root.h" 3 4 # 1 "/usr/include/libguile/debug.h" 1 3 4 # 28 "/usr/include/libguile/debug.h" 3 4 # 1 "/usr/include/libguile/options.h" 1 3 4 # 29 "/usr/include/libguile/options.h" 3 4 typedef struct scm_t_option { unsigned int type; const char *name; scm_t_bits val; char *doc; } scm_t_option; extern SCM scm_options (SCM, scm_t_option [], unsigned int, const char*); extern void scm_init_opts (SCM (*) (SCM), scm_t_option [], unsigned int n); extern void scm_init_options (void); # 29 "/usr/include/libguile/debug.h" 2 3 4 # 45 "/usr/include/libguile/debug.h" 3 4 extern scm_t_option scm_debug_opts[]; # 63 "/usr/include/libguile/debug.h" 3 4 extern int scm_debug_mode_p; extern int scm_check_entry_p; extern int scm_check_apply_p; extern int scm_check_exit_p; # 83 "/usr/include/libguile/debug.h" 3 4 typedef union scm_t_debug_info { struct { SCM exp, env; } e; struct { SCM proc, args; } a; SCM id; } scm_t_debug_info; extern long scm_debug_eframe_size; typedef struct scm_t_debug_frame { struct scm_t_debug_frame *prev; long status; scm_t_debug_info *vect; scm_t_debug_info *info; } scm_t_debug_frame; # 132 "/usr/include/libguile/debug.h" 3 4 extern scm_t_bits scm_tc16_debugobj; # 143 "/usr/include/libguile/debug.h" 3 4 extern scm_t_bits scm_tc16_memoized; extern SCM scm_debug_object_p (SCM obj); extern SCM scm_local_eval (SCM exp, SCM env); extern SCM scm_reverse_lookup (SCM env, SCM data); extern SCM scm_start_stack (SCM info_id, SCM exp, SCM env); extern SCM scm_procedure_environment (SCM proc); extern SCM scm_procedure_source (SCM proc); extern SCM scm_procedure_name (SCM proc); extern SCM scm_memoized_environment (SCM m); extern SCM scm_make_memoized (SCM exp, SCM env); extern SCM scm_memoized_p (SCM obj); extern SCM scm_with_traps (SCM thunk); extern SCM scm_evaluator_traps (SCM setting); extern SCM scm_debug_options (SCM setting); extern SCM scm_make_debugobj (scm_t_debug_frame *debug); extern SCM scm_i_unmemoize_expr (SCM memoized); extern void scm_init_debug (void); # 27 "/usr/include/libguile/root.h" 2 3 4 # 1 "/usr/include/libguile/throw.h" 1 3 4 # 29 "/usr/include/libguile/throw.h" 3 4 typedef SCM (*scm_t_catch_body) (void *data); typedef SCM (*scm_t_catch_handler) (void *data, SCM tag, SCM throw_args); extern SCM scm_c_catch (SCM tag, scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data, scm_t_catch_handler pre_unwind_handler, void *pre_unwind_handler_data); extern SCM scm_c_with_throw_handler (SCM tag, scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data, int lazy_catch_p); extern SCM scm_internal_catch (SCM tag, scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data); extern SCM scm_internal_lazy_catch (SCM tag, scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data); extern SCM scm_internal_stack_catch (SCM tag, scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data); struct scm_body_thunk_data { SCM tag; SCM body_proc; }; extern SCM scm_body_thunk (void *); extern SCM scm_handle_by_proc (void *, SCM, SCM); extern SCM scm_handle_by_proc_catching_all (void *, SCM, SCM); extern SCM scm_handle_by_message (void *, SCM, SCM); extern SCM scm_handle_by_message_noexit (void *, SCM, SCM); extern SCM scm_handle_by_throw (void *, SCM, SCM); extern int scm_exit_status (SCM args); extern SCM scm_catch_with_pre_unwind_handler (SCM tag, SCM thunk, SCM handler, SCM lazy_handler); extern SCM scm_catch (SCM tag, SCM thunk, SCM handler); extern SCM scm_with_throw_handler (SCM tag, SCM thunk, SCM handler); extern SCM scm_lazy_catch (SCM tag, SCM thunk, SCM handler); extern SCM scm_ithrow (SCM key, SCM args, int noreturn); extern SCM scm_throw (SCM key, SCM args); extern void scm_init_throw (void); # 28 "/usr/include/libguile/root.h" 2 3 4 # 46 "/usr/include/libguile/root.h" 3 4 extern SCM scm_sys_protects[]; extern SCM scm_internal_cwdr (scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data, SCM_STACKITEM *stack_start); extern SCM scm_call_with_dynamic_root (SCM thunk, SCM handler); extern SCM scm_dynamic_root (void); extern SCM scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM handler); extern void scm_init_root (void); # 27 "/usr/include/libguile/async.h" 2 3 4 # 1 "/usr/include/libguile/threads.h" 1 3 4 # 26 "/usr/include/libguile/threads.h" 3 4 # 1 "/usr/include/libguile/procs.h" 1 3 4 # 33 "/usr/include/libguile/procs.h" 3 4 typedef struct { SCM handle; SCM name; SCM *generic; SCM properties; } scm_t_subr_entry; # 133 "/usr/include/libguile/procs.h" 3 4 extern scm_t_subr_entry *scm_subr_table; extern long scm_subr_table_size; extern long scm_subr_table_room; extern void scm_mark_subr_table (void); extern void scm_free_subr_entry (SCM subr); extern SCM scm_c_make_subr (const char *name, long type, SCM (*fcn)()); extern SCM scm_c_make_subr_with_generic (const char *name, long type, SCM (*fcn)(), SCM *gf); extern SCM scm_c_define_subr (const char *name, long type, SCM (*fcn)()); extern SCM scm_c_define_subr_with_generic (const char *name, long type, SCM (*fcn)(), SCM *gf); extern SCM scm_makcclo (SCM proc, size_t len); extern SCM scm_procedure_p (SCM obj); extern SCM scm_closure_p (SCM obj); extern SCM scm_thunk_p (SCM obj); extern int scm_subr_p (SCM obj); extern SCM scm_procedure_documentation (SCM proc); extern SCM scm_procedure_with_setter_p (SCM obj); extern SCM scm_make_procedure_with_setter (SCM procedure, SCM setter); extern SCM scm_procedure (SCM proc); extern SCM scm_setter (SCM proc); extern void scm_init_subr_table (void); extern void scm_init_procs (void); # 27 "/usr/include/libguile/threads.h" 2 3 4 # 1 "/usr/include/libguile/iselect.h" 1 3 4 # 60 "/usr/include/libguile/iselect.h" 3 4 extern int scm_std_select (int fds, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *timeout); # 30 "/usr/include/libguile/threads.h" 2 3 4 # 1 "/usr/include/libguile/dynwind.h" 1 3 4 # 29 "/usr/include/libguile/dynwind.h" 3 4 typedef void (*scm_t_guard) (void *); typedef SCM (*scm_t_inner) (void *); extern SCM scm_dynamic_wind (SCM thunk1, SCM thunk2, SCM thunk3); extern SCM scm_internal_dynamic_wind (scm_t_guard before, scm_t_inner inner, scm_t_guard after, void *inner_data, void *guard_data); extern void scm_dowinds (SCM to, long delta); extern void scm_i_dowinds (SCM to, long delta, void (*turn_func) (void *), void *data); extern void scm_init_dynwind (void); extern void scm_swap_bindings (SCM vars, SCM vals); typedef enum { SCM_F_DYNWIND_REWINDABLE = (1 << 0) } scm_t_dynwind_flags; typedef enum { SCM_F_WIND_EXPLICITLY = (1 << 0) } scm_t_wind_flags; extern void scm_dynwind_begin (scm_t_dynwind_flags); extern void scm_dynwind_end (void); extern void scm_dynwind_unwind_handler (void (*func) (void *), void *data, scm_t_wind_flags); extern void scm_dynwind_rewind_handler (void (*func) (void *), void *data, scm_t_wind_flags); extern void scm_dynwind_unwind_handler_with_scm (void (*func) (SCM), SCM data, scm_t_wind_flags); extern void scm_dynwind_rewind_handler_with_scm (void (*func) (SCM), SCM data, scm_t_wind_flags); extern void scm_dynwind_free (void *mem); # 31 "/usr/include/libguile/threads.h" 2 3 4 # 1 "/usr/include/libguile/continuations.h" 1 3 4 # 41 "/usr/include/libguile/continuations.h" 3 4 extern scm_t_bits scm_tc16_continuation; typedef struct { SCM throw_value; jmp_buf jmpbuf; SCM dynenv; size_t num_stack_items; SCM root; # 63 "/usr/include/libguile/continuations.h" 3 4 scm_t_ptrdiff offset; struct scm_t_debug_frame *dframe; SCM_STACKITEM stack[1]; } scm_t_contregs; # 88 "/usr/include/libguile/continuations.h" 3 4 extern SCM scm_make_continuation (int *first); extern void *scm_c_with_continuation_barrier (void *(*func)(void*), void *); extern SCM scm_with_continuation_barrier (SCM proc); extern SCM scm_i_with_continuation_barrier (scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data, scm_t_catch_handler pre_unwind_handler, void *pre_unwind_handler_data); extern void scm_init_continuations (void); # 32 "/usr/include/libguile/threads.h" 2 3 4 # 1 "/usr/include/libguile/pthread-threads.h" 1 3 4 # 28 "/usr/include/libguile/pthread-threads.h" 3 4 # 1 "/usr/include/pthread.h" 1 3 4 # 25 "/usr/include/pthread.h" 3 4 # 1 "/usr/include/sched.h" 1 3 4 # 30 "/usr/include/sched.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 31 "/usr/include/sched.h" 2 3 4 # 43 "/usr/include/sched.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/sched.h" 1 3 4 # 74 "/usr/include/i386-linux-gnu/bits/sched.h" 3 4 struct sched_param { int __sched_priority; }; extern "C" { extern int clone (int (*__fn) (void *__arg), void *__child_stack, int __flags, void *__arg, ...) throw (); extern int unshare (int __flags) throw (); extern int sched_getcpu (void) throw (); extern int setns (int __fd, int __nstype) throw (); } struct __sched_param { int __sched_priority; }; # 120 "/usr/include/i386-linux-gnu/bits/sched.h" 3 4 typedef unsigned long int __cpu_mask; typedef struct { __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; } cpu_set_t; # 203 "/usr/include/i386-linux-gnu/bits/sched.h" 3 4 extern "C" { extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) throw (); extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ; extern void __sched_cpufree (cpu_set_t *__set) throw (); } # 44 "/usr/include/sched.h" 2 3 4 extern "C" { extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) throw (); extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); extern int sched_setscheduler (__pid_t __pid, int __policy, __const struct sched_param *__param) throw (); extern int sched_getscheduler (__pid_t __pid) throw (); extern int sched_yield (void) throw (); extern int sched_get_priority_max (int __algorithm) throw (); extern int sched_get_priority_min (int __algorithm) throw (); extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); # 118 "/usr/include/sched.h" 3 4 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, __const cpu_set_t *__cpuset) throw (); extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, cpu_set_t *__cpuset) throw (); } # 26 "/usr/include/pthread.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/wordsize.h" 1 3 4 # 31 "/usr/include/pthread.h" 2 3 4 enum { PTHREAD_CREATE_JOINABLE, PTHREAD_CREATE_DETACHED }; enum { PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_ADAPTIVE_NP , PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP }; enum { PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_ROBUST, PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST }; enum { PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT }; # 115 "/usr/include/pthread.h" 3 4 enum { PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP }; # 147 "/usr/include/pthread.h" 3 4 enum { PTHREAD_INHERIT_SCHED, PTHREAD_EXPLICIT_SCHED }; enum { PTHREAD_SCOPE_SYSTEM, PTHREAD_SCOPE_PROCESS }; enum { PTHREAD_PROCESS_PRIVATE, PTHREAD_PROCESS_SHARED }; # 182 "/usr/include/pthread.h" 3 4 struct _pthread_cleanup_buffer { void (*__routine) (void *); void *__arg; int __canceltype; struct _pthread_cleanup_buffer *__prev; }; enum { PTHREAD_CANCEL_ENABLE, PTHREAD_CANCEL_DISABLE }; enum { PTHREAD_CANCEL_DEFERRED, PTHREAD_CANCEL_ASYNCHRONOUS }; # 220 "/usr/include/pthread.h" 3 4 extern "C" { extern int pthread_create (pthread_t *__restrict __newthread, __const pthread_attr_t *__restrict __attr, void *(*__start_routine) (void *), void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); extern int pthread_join (pthread_t __th, void **__thread_return); extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, __const struct timespec *__abstime); extern int pthread_detach (pthread_t __th) throw (); extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw (); extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_destroy (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, int *__detachstate) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr, size_t *__guardsize) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, __const struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict __attr, int *__restrict __policy) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict __attr, int *__restrict __inherit) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, int __inherit) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, int *__restrict __scope) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr, size_t *__restrict __stacksize) throw () __attribute__ ((__nonnull__ (1, 2, 3))); extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, size_t __cpusetsize, __const cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr, size_t __cpusetsize, cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_setschedparam (pthread_t __target_thread, int __policy, __const struct sched_param *__param) throw () __attribute__ ((__nonnull__ (3))); extern int pthread_getschedparam (pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (2, 3))); extern int pthread_setschedprio (pthread_t __target_thread, int __prio) throw (); extern int pthread_getname_np (pthread_t __target_thread, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_setname_np (pthread_t __target_thread, __const char *__name) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_getconcurrency (void) throw (); extern int pthread_setconcurrency (int __level) throw (); extern int pthread_yield (void) throw (); extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, __const cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (3))); extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (3))); # 478 "/usr/include/pthread.h" 3 4 extern int pthread_once (pthread_once_t *__once_control, void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); # 490 "/usr/include/pthread.h" 3 4 extern int pthread_setcancelstate (int __state, int *__oldstate); extern int pthread_setcanceltype (int __type, int *__oldtype); extern int pthread_cancel (pthread_t __th); extern void pthread_testcancel (void); typedef struct { struct { __jmp_buf __cancel_jmp_buf; int __mask_was_saved; } __cancel_jmp_buf[1]; void *__pad[4]; } __pthread_unwind_buf_t __attribute__ ((__aligned__)); # 524 "/usr/include/pthread.h" 3 4 struct __pthread_cleanup_frame { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; }; class __pthread_cleanup_class { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; public: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } void __setdoit (int __newval) { __do_it = __newval; } void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &__cancel_type); } void __restore () const { pthread_setcanceltype (__cancel_type, 0); } }; # 726 "/usr/include/pthread.h" 3 4 struct __jmp_buf_tag; extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); extern int pthread_mutex_init (pthread_mutex_t *__mutex, __const pthread_mutexattr_t *__mutexattr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_getprioceiling (__const pthread_mutex_t * __restrict __mutex, int *__restrict __prioceiling) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); # 790 "/usr/include/pthread.h" 3 4 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __protocol) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, int __protocol) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __prioceiling) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, int __prioceiling) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr, int *__robustness) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, int *__robustness) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, int __robustness) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, int __robustness) throw () __attribute__ ((__nonnull__ (1))); # 872 "/usr/include/pthread.h" 3 4 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, __const pthread_rwlockattr_t *__restrict __attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pref) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, int __pref) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_init (pthread_cond_t *__restrict __cond, __const pthread_condattr_t *__restrict __cond_attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_destroy (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_signal (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __attribute__ ((__nonnull__ (1, 2))); # 984 "/usr/include/pthread.h" 3 4 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__ ((__nonnull__ (1, 2, 3))); extern int pthread_condattr_init (pthread_condattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_getpshared (__const pthread_condattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_getclock (__const pthread_condattr_t * __restrict __attr, __clockid_t *__restrict __clock_id) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_condattr_setclock (pthread_condattr_t *__attr, __clockid_t __clock_id) throw () __attribute__ ((__nonnull__ (1))); # 1028 "/usr/include/pthread.h" 3 4 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, __const pthread_barrierattr_t *__restrict __attr, unsigned int __count) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); # 1095 "/usr/include/pthread.h" 3 4 extern int pthread_key_create (pthread_key_t *__key, void (*__destr_function) (void *)) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_key_delete (pthread_key_t __key) throw (); extern void *pthread_getspecific (pthread_key_t __key) throw (); extern int pthread_setspecific (pthread_key_t __key, __const void *__pointer) throw () ; extern int pthread_getcpuclockid (pthread_t __thread_id, __clockid_t *__clock_id) throw () __attribute__ ((__nonnull__ (2))); # 1129 "/usr/include/pthread.h" 3 4 extern int pthread_atfork (void (*__prepare) (void), void (*__parent) (void), void (*__child) (void)) throw (); # 1143 "/usr/include/pthread.h" 3 4 } # 29 "/usr/include/libguile/pthread-threads.h" 2 3 4 # 57 "/usr/include/libguile/pthread-threads.h" 3 4 extern pthread_mutexattr_t scm_i_pthread_mutexattr_recursive[1]; # 35 "/usr/include/libguile/threads.h" 2 3 4 # 44 "/usr/include/libguile/threads.h" 3 4 extern scm_t_bits scm_tc16_thread; extern scm_t_bits scm_tc16_mutex; extern scm_t_bits scm_tc16_condvar; typedef struct scm_i_thread { struct scm_i_thread *next_thread; SCM handle; pthread_t pthread; SCM join_queue; SCM result; int exited; SCM sleep_object; pthread_mutex_t *sleep_mutex; pthread_cond_t sleep_cond; int sleep_fd, sleep_pipe[2]; pthread_mutex_t heap_mutex; SCM freelist, freelist2; int clear_freelists_p; int gc_running_p; SCM dynamic_state; scm_t_debug_frame *last_debug_frame; SCM dynwinds; SCM active_asyncs; unsigned int block_asyncs; unsigned int pending_asyncs; # 104 "/usr/include/libguile/threads.h" 3 4 SCM continuation_root; SCM_STACKITEM *continuation_base; SCM_STACKITEM *base; SCM_STACKITEM *top; jmp_buf regs; int critical_section_level; } scm_i_thread; # 131 "/usr/include/libguile/threads.h" 3 4 extern SCM scm_spawn_thread (scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data); extern void *scm_without_guile (void *(*func)(void *), void *data); extern void *scm_with_guile (void *(*func)(void *), void *data); extern void *scm_i_with_guile_and_parent (void *(*func)(void *), void *data, SCM parent); extern int scm_i_thread_go_to_sleep; void scm_i_thread_put_to_sleep (void); void scm_i_thread_wake_up (void); void scm_i_thread_invalidate_freelists (void); void scm_i_thread_sleep_for_gc (void); void scm_threads_prehistory (SCM_STACKITEM *); void scm_threads_init_first_thread (void); extern void scm_threads_mark_stacks (void); extern void scm_init_threads (void); extern void scm_init_thread_procs (void); extern void scm_init_threads_default_dynamic_state (void); # 162 "/usr/include/libguile/threads.h" 3 4 extern SCM scm_call_with_new_thread (SCM thunk, SCM handler); extern SCM scm_yield (void); extern SCM scm_join_thread (SCM t); extern SCM scm_make_mutex (void); extern SCM scm_make_recursive_mutex (void); extern SCM scm_lock_mutex (SCM m); extern void scm_dynwind_lock_mutex (SCM mutex); extern SCM scm_try_mutex (SCM m); extern SCM scm_unlock_mutex (SCM m); extern SCM scm_make_condition_variable (void); extern SCM scm_wait_condition_variable (SCM cond, SCM mutex); extern SCM scm_timed_wait_condition_variable (SCM cond, SCM mutex, SCM abstime); extern SCM scm_signal_condition_variable (SCM cond); extern SCM scm_broadcast_condition_variable (SCM cond); extern SCM scm_current_thread (void); extern SCM scm_all_threads (void); extern int scm_c_thread_exited_p (SCM thread); extern SCM scm_thread_exited_p (SCM thread); extern void scm_dynwind_critical_section (SCM mutex); extern pthread_key_t scm_i_thread_key; extern pthread_mutex_t scm_i_misc_mutex; extern int scm_pthread_mutex_lock (pthread_mutex_t *mutex); extern void scm_dynwind_pthread_mutex_lock (pthread_mutex_t *mutex); extern int scm_pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex); extern int scm_pthread_cond_timedwait (pthread_cond_t *cond, pthread_mutex_t *mutex, const scm_t_timespec *abstime); extern unsigned int scm_std_sleep (unsigned int); extern unsigned long scm_std_usleep (unsigned long); # 28 "/usr/include/libguile/async.h" 2 3 4 extern void scm_async_click (void); extern void scm_switch (void); extern SCM scm_async (SCM thunk); extern SCM scm_async_mark (SCM a); extern SCM scm_system_async_mark (SCM a); extern SCM scm_system_async_mark_for_thread (SCM a, SCM thread); extern void scm_i_queue_async_cell (SCM cell, scm_i_thread *); extern int scm_i_setup_sleep (scm_i_thread *, SCM obj, pthread_mutex_t *m, int fd); extern void scm_i_reset_sleep (scm_i_thread *); extern SCM scm_run_asyncs (SCM list_of_a); extern SCM scm_noop (SCM args); extern SCM scm_call_with_blocked_asyncs (SCM proc); extern SCM scm_call_with_unblocked_asyncs (SCM proc); void *scm_c_call_with_blocked_asyncs (void *(*p) (void *d), void *d); void *scm_c_call_with_unblocked_asyncs (void *(*p) (void *d), void *d); void scm_dynwind_block_asyncs (void); void scm_dynwind_unblock_asyncs (void); # 62 "/usr/include/libguile/async.h" 3 4 extern pthread_mutex_t scm_i_critical_section_mutex; # 78 "/usr/include/libguile/async.h" 3 4 extern void scm_init_async (void); extern SCM scm_system_async (SCM thunk); extern SCM scm_unmask_signals (void); extern SCM scm_mask_signals (void); # 34 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/boolean.h" 1 3 4 # 37 "/usr/include/libguile/boolean.h" 3 4 extern int scm_is_bool (SCM x); extern int scm_to_bool (SCM x); extern SCM scm_not (SCM x); extern SCM scm_boolean_p (SCM obj); extern void scm_init_boolean (void); # 35 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/chars.h" 1 3 4 # 36 "/usr/include/libguile/chars.h" 3 4 extern char *const scm_charnames[]; extern int scm_n_charnames; extern const char scm_charnums[]; extern SCM scm_char_p (SCM x); extern SCM scm_char_eq_p (SCM x, SCM y); extern SCM scm_char_less_p (SCM x, SCM y); extern SCM scm_char_leq_p (SCM x, SCM y); extern SCM scm_char_gr_p (SCM x, SCM y); extern SCM scm_char_geq_p (SCM x, SCM y); extern SCM scm_char_ci_eq_p (SCM x, SCM y); extern SCM scm_char_ci_less_p (SCM x, SCM y); extern SCM scm_char_ci_leq_p (SCM x, SCM y); extern SCM scm_char_ci_gr_p (SCM x, SCM y); extern SCM scm_char_ci_geq_p (SCM x, SCM y); extern SCM scm_char_alphabetic_p (SCM chr); extern SCM scm_char_numeric_p (SCM chr); extern SCM scm_char_whitespace_p (SCM chr); extern SCM scm_char_upper_case_p (SCM chr); extern SCM scm_char_lower_case_p (SCM chr); extern SCM scm_char_is_both_p (SCM chr); extern SCM scm_char_to_integer (SCM chr); extern SCM scm_integer_to_char (SCM n); extern SCM scm_char_upcase (SCM chr); extern SCM scm_char_downcase (SCM chr); extern int scm_c_upcase (unsigned int c); extern int scm_c_downcase (unsigned int c); extern void scm_init_chars (void); # 36 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/continuations.h" 1 3 4 # 37 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/dynl.h" 1 3 4 # 29 "/usr/include/libguile/dynl.h" 3 4 extern SCM scm_dynamic_link (SCM fname); extern SCM scm_dynamic_unlink (SCM dobj); extern SCM scm_dynamic_object_p (SCM obj); extern SCM scm_dynamic_func (SCM symb, SCM dobj); extern SCM scm_dynamic_call (SCM symb, SCM dobj); extern SCM scm_dynamic_args_call (SCM symb, SCM dobj, SCM args); extern void scm_init_dynamic_linking (void); # 38 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/dynwind.h" 1 3 4 # 39 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/eq.h" 1 3 4 # 29 "/usr/include/libguile/eq.h" 3 4 extern SCM scm_eq_p (SCM x, SCM y); extern SCM scm_eqv_p (SCM x, SCM y); extern SCM scm_equal_p (SCM x, SCM y); extern void scm_init_eq (void); # 40 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/error.h" 1 3 4 # 28 "/usr/include/libguile/error.h" 3 4 extern SCM scm_system_error_key; extern SCM scm_num_overflow_key; extern SCM scm_out_of_range_key; extern SCM scm_args_number_key; extern SCM scm_arg_type_key; extern SCM scm_memory_alloc_key; extern SCM scm_misc_error_key; extern void scm_error (SCM key, const char *subr, const char *message, SCM args, SCM rest) __attribute__ ((noreturn)); extern SCM scm_error_scm (SCM key, SCM subr, SCM message, SCM args, SCM rest) __attribute__ ((noreturn)); extern SCM scm_strerror (SCM err); extern void scm_syserror (const char *subr) __attribute__ ((noreturn)); extern void scm_syserror_msg (const char *subr, const char *message, SCM args, int eno) __attribute__ ((noreturn)); extern void scm_num_overflow (const char *subr) __attribute__ ((noreturn)); extern void scm_out_of_range (const char *subr, SCM bad_value) __attribute__ ((noreturn)); extern void scm_out_of_range_pos (const char *subr, SCM bad_value, SCM pos) __attribute__ ((noreturn)); extern void scm_wrong_num_args (SCM proc) __attribute__ ((noreturn)); extern void scm_error_num_args_subr (const char* subr) __attribute__ ((noreturn)); extern void scm_wrong_type_arg (const char *subr, int pos, SCM bad_value) __attribute__ ((noreturn)); extern void scm_wrong_type_arg_msg (const char *subr, int pos, SCM bad_value, const char *sz) __attribute__ ((noreturn)); extern void scm_memory_error (const char *subr) __attribute__ ((noreturn)); extern void scm_misc_error (const char *subr, const char *message, SCM args) __attribute__ ((noreturn)); extern void scm_init_error (void); # 41 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/eval.h" 1 3 4 # 28 "/usr/include/libguile/eval.h" 3 4 # 1 "/usr/include/libguile/struct.h" 1 3 4 # 26 "/usr/include/libguile/struct.h" 3 4 # 1 "/usr/include/libguile/print.h" 1 3 4 # 29 "/usr/include/libguile/print.h" 3 4 extern scm_t_option scm_print_opts[]; # 63 "/usr/include/libguile/print.h" 3 4 typedef struct scm_print_state { SCM handle; int revealed; unsigned long writingp; unsigned long fancyp; unsigned long level; unsigned long length; SCM hot_ref; unsigned long list_offset; unsigned long top; unsigned long ceiling; SCM ref_vect; SCM highlight_objects; } scm_print_state; extern SCM scm_print_state_vtable; extern scm_t_bits scm_tc16_port_with_ps; extern SCM scm_print_options (SCM setting); extern SCM scm_make_print_state (void); extern void scm_free_print_state (SCM print_state); SCM scm_i_port_with_print_state (SCM port, SCM print_state); extern void scm_intprint (scm_t_intmax n, int radix, SCM port); extern void scm_uintprint (scm_t_uintmax n, int radix, SCM port); extern void scm_ipruk (char *hdr, SCM ptr, SCM port); extern void scm_iprlist (char *hdr, SCM exp, int tlr, SCM port, scm_print_state *pstate); extern void scm_print_symbol_name (const char *str, size_t len, SCM port); extern void scm_prin1 (SCM exp, SCM port, int writingp); extern void scm_iprin1 (SCM exp, SCM port, scm_print_state *pstate); extern SCM scm_write (SCM obj, SCM port); extern SCM scm_display (SCM obj, SCM port); extern SCM scm_simple_format (SCM port, SCM message, SCM args); extern SCM scm_newline (SCM port); extern SCM scm_write_char (SCM chr, SCM port); extern SCM scm_printer_apply (SCM proc, SCM exp, SCM port, scm_print_state *); extern SCM scm_port_with_print_state (SCM port, SCM pstate); extern SCM scm_get_print_state (SCM port); extern int scm_valid_oport_value_p (SCM val); extern void scm_init_print (void); # 27 "/usr/include/libguile/struct.h" 2 3 4 # 50 "/usr/include/libguile/struct.h" 3 4 typedef void (*scm_t_struct_free) (scm_t_bits * vtable, scm_t_bits * data); # 78 "/usr/include/libguile/struct.h" 3 4 extern SCM scm_struct_table; extern SCM scm_i_structs_to_free; extern scm_t_bits * scm_alloc_struct (int n_words, int n_extra, const char *what); extern void scm_struct_free_0 (scm_t_bits * vtable, scm_t_bits * data); extern void scm_struct_free_light (scm_t_bits * vtable, scm_t_bits * data); extern void scm_struct_free_standard (scm_t_bits * vtable, scm_t_bits * data); extern void scm_struct_free_entity (scm_t_bits * vtable, scm_t_bits * data); extern SCM scm_make_struct_layout (SCM fields); extern SCM scm_struct_p (SCM x); extern SCM scm_struct_vtable_p (SCM x); extern SCM scm_make_struct (SCM vtable, SCM tail_array_size, SCM init); extern SCM scm_make_vtable (SCM fields, SCM printer); extern SCM scm_make_vtable_vtable (SCM extra_fields, SCM tail_array_size, SCM init); extern SCM scm_i_struct_equalp (SCM s1, SCM s2); extern SCM scm_struct_ref (SCM handle, SCM pos); extern SCM scm_struct_set_x (SCM handle, SCM pos, SCM val); extern SCM scm_struct_vtable (SCM handle); extern SCM scm_struct_vtable_tag (SCM handle); extern unsigned long scm_struct_ihashq (SCM obj, unsigned long n); extern SCM scm_struct_create_handle (SCM obj); extern SCM scm_struct_vtable_name (SCM vtable); extern SCM scm_set_struct_vtable_name_x (SCM vtable, SCM name); extern void scm_print_struct (SCM exp, SCM port, scm_print_state *); extern void scm_struct_prehistory (void); extern void scm_init_struct (void); # 29 "/usr/include/libguile/eval.h" 2 3 4 extern scm_t_option scm_eval_opts[]; extern long scm_eval_stack; extern scm_t_option scm_evaluator_trap_table[]; extern SCM scm_eval_options_interface (SCM setting); # 79 "/usr/include/libguile/eval.h" 3 4 extern scm_t_bits scm_tc16_promise; typedef SCM (*scm_t_trampoline_0) (SCM proc); typedef SCM (*scm_t_trampoline_1) (SCM proc, SCM arg1); typedef SCM (*scm_t_trampoline_2) (SCM proc, SCM arg1, SCM arg2); # 100 "/usr/include/libguile/eval.h" 3 4 extern SCM scm_sym_and; extern SCM scm_sym_begin; extern SCM scm_sym_case; extern SCM scm_sym_cond; extern SCM scm_sym_define; extern SCM scm_sym_do; extern SCM scm_sym_if; extern SCM scm_sym_lambda; extern SCM scm_sym_let; extern SCM scm_sym_letstar; extern SCM scm_sym_letrec; extern SCM scm_sym_quote; extern SCM scm_sym_quasiquote; extern SCM scm_sym_unquote; extern SCM scm_sym_uq_splicing; extern SCM scm_sym_atapply; extern SCM scm_sym_atcall_cc; extern SCM scm_sym_at_call_with_values; extern SCM scm_sym_delay; extern SCM scm_sym_arrow; extern SCM scm_sym_else; extern SCM scm_sym_apply; extern SCM scm_sym_set_x; extern SCM scm_sym_args; extern SCM * scm_ilookup (SCM iloc, SCM env); extern SCM * scm_lookupcar (SCM vloc, SCM genv, int check); extern SCM scm_eval_car (SCM pair, SCM env); extern SCM scm_eval_body (SCM code, SCM env); extern SCM scm_eval_args (SCM i, SCM env, SCM proc); extern SCM scm_m_quote (SCM xorig, SCM env); extern SCM scm_m_begin (SCM xorig, SCM env); extern SCM scm_m_if (SCM xorig, SCM env); extern SCM scm_m_set_x (SCM xorig, SCM env); extern SCM scm_m_vref (SCM xorig, SCM env); extern SCM scm_m_vset (SCM xorig, SCM env); extern SCM scm_m_and (SCM xorig, SCM env); extern SCM scm_m_or (SCM xorig, SCM env); extern SCM scm_m_case (SCM xorig, SCM env); extern SCM scm_m_cond (SCM xorig, SCM env); extern SCM scm_m_lambda (SCM xorig, SCM env); extern SCM scm_m_letstar (SCM xorig, SCM env); extern SCM scm_m_do (SCM xorig, SCM env); extern SCM scm_m_quasiquote (SCM xorig, SCM env); extern SCM scm_m_delay (SCM xorig, SCM env); extern SCM scm_m_generalized_set_x (SCM xorig, SCM env); extern SCM scm_m_future (SCM xorig, SCM env); extern SCM scm_m_define (SCM x, SCM env); extern SCM scm_m_letrec (SCM xorig, SCM env); extern SCM scm_m_let (SCM xorig, SCM env); extern SCM scm_m_apply (SCM xorig, SCM env); extern SCM scm_m_cont (SCM xorig, SCM env); extern SCM scm_m_nil_cond (SCM xorig, SCM env); extern SCM scm_m_atfop (SCM xorig, SCM env); extern SCM scm_m_atbind (SCM xorig, SCM env); extern SCM scm_m_atslot_ref (SCM xorig, SCM env); extern SCM scm_m_atslot_set_x (SCM xorig, SCM env); extern SCM scm_m_atdispatch (SCM xorig, SCM env); extern SCM scm_m_at_call_with_values (SCM xorig, SCM env); extern int scm_badargsp (SCM formals, SCM args); extern SCM scm_call_0 (SCM proc); extern SCM scm_call_1 (SCM proc, SCM arg1); extern SCM scm_call_2 (SCM proc, SCM arg1, SCM arg2); extern SCM scm_call_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3); extern SCM scm_call_4 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4); extern SCM scm_apply_0 (SCM proc, SCM args); extern SCM scm_apply_1 (SCM proc, SCM arg1, SCM args); extern SCM scm_apply_2 (SCM proc, SCM arg1, SCM arg2, SCM args); extern SCM scm_apply_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM args); extern SCM scm_i_call_closure_0 (SCM proc); extern scm_t_trampoline_0 scm_trampoline_0 (SCM proc); extern scm_t_trampoline_1 scm_trampoline_1 (SCM proc); extern scm_t_trampoline_2 scm_trampoline_2 (SCM proc); extern SCM scm_nconc2last (SCM lst); extern SCM scm_apply (SCM proc, SCM arg1, SCM args); extern SCM scm_dapply (SCM proc, SCM arg1, SCM args); extern SCM scm_map (SCM proc, SCM arg1, SCM args); extern SCM scm_for_each (SCM proc, SCM arg1, SCM args); extern SCM scm_closure (SCM code, SCM env); extern SCM scm_makprom (SCM code); extern SCM scm_force (SCM x); extern SCM scm_promise_p (SCM x); extern SCM scm_cons_source (SCM xorig, SCM x, SCM y); extern SCM scm_copy_tree (SCM obj); extern SCM scm_i_eval_x (SCM exp, SCM env); extern SCM scm_i_eval (SCM exp, SCM env); extern SCM scm_primitive_eval (SCM exp); extern SCM scm_primitive_eval_x (SCM exp); extern SCM scm_eval (SCM exp, SCM module); extern SCM scm_eval_x (SCM exp, SCM module); extern void scm_i_print_iloc (SCM , SCM ); extern void scm_i_print_isym (SCM , SCM ); extern SCM scm_i_unmemocopy_expr (SCM expr, SCM env); extern SCM scm_i_unmemocopy_body (SCM forms, SCM env); extern void scm_init_eval (void); extern SCM scm_m_undefine (SCM x, SCM env); extern SCM scm_m_expand_body (SCM xorig, SCM env); extern SCM scm_unmemocar (SCM form, SCM env); extern SCM scm_macroexp (SCM x, SCM env); extern SCM scm_ceval (SCM x, SCM env); extern SCM scm_deval (SCM x, SCM env); extern SCM (*scm_ceval_ptr) (SCM x, SCM env); # 42 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/evalext.h" 1 3 4 # 29 "/usr/include/libguile/evalext.h" 3 4 extern SCM scm_defined_p (SCM sym, SCM env); extern SCM scm_self_evaluating_p (SCM obj); extern void scm_init_evalext (void); # 43 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/extensions.h" 1 3 4 # 29 "/usr/include/libguile/extensions.h" 3 4 extern void scm_c_register_extension (const char *lib, const char *init, void (*func) (void *), void *data); extern void scm_c_load_extension (const char *lib, const char *init); extern SCM scm_load_extension (SCM lib, SCM init); extern void scm_init_extensions (void); # 44 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/feature.h" 1 3 4 # 27 "/usr/include/libguile/feature.h" 3 4 extern void scm_add_feature (const char* str); extern SCM scm_program_arguments (void); extern void scm_set_program_arguments (int argc, char **argv, char *first); extern SCM scm_set_program_arguments_scm (SCM lst); extern void scm_init_feature (void); # 45 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/filesys.h" 1 3 4 # 29 "/usr/include/libguile/filesys.h" 3 4 extern scm_t_bits scm_tc16_dir; # 38 "/usr/include/libguile/filesys.h" 3 4 extern SCM scm_chown (SCM object, SCM owner, SCM group); extern SCM scm_chmod (SCM object, SCM mode); extern SCM scm_umask (SCM mode); extern SCM scm_open_fdes (SCM path, SCM flags, SCM mode); extern SCM scm_open (SCM path, SCM flags, SCM mode); extern SCM scm_close (SCM fd_or_port); extern SCM scm_close_fdes (SCM fd); extern SCM scm_stat (SCM object); extern SCM scm_link (SCM oldpath, SCM newpath); extern SCM scm_rename (SCM oldname, SCM newname); extern SCM scm_delete_file (SCM str); extern SCM scm_mkdir (SCM path, SCM mode); extern SCM scm_rmdir (SCM path); extern SCM scm_directory_stream_p (SCM obj); extern SCM scm_opendir (SCM dirname); extern SCM scm_readdir (SCM port); extern SCM scm_rewinddir (SCM port); extern SCM scm_closedir (SCM port); extern SCM scm_chdir (SCM str); extern SCM scm_getcwd (void); extern SCM scm_select (SCM reads, SCM writes, SCM excepts, SCM secs, SCM msecs); extern SCM scm_fcntl (SCM object, SCM cmd, SCM value); extern SCM scm_fsync (SCM object); extern SCM scm_symlink (SCM oldpath, SCM newpath); extern SCM scm_readlink (SCM path); extern SCM scm_lstat (SCM str); extern SCM scm_copy_file (SCM oldfile, SCM newfile); extern SCM scm_dirname (SCM filename); extern SCM scm_basename (SCM filename, SCM suffix); extern void scm_init_filesys (void); # 46 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/fluids.h" 1 3 4 # 27 "/usr/include/libguile/fluids.h" 3 4 # 1 "/usr/include/libguile/vectors.h" 1 3 4 # 26 "/usr/include/libguile/vectors.h" 3 4 # 1 "/usr/include/libguile/unif.h" 1 3 4 # 37 "/usr/include/libguile/unif.h" 3 4 typedef struct scm_t_array_dim { ssize_t lbnd; ssize_t ubnd; ssize_t inc; } scm_t_array_dim; extern SCM scm_array_p (SCM v, SCM prot); extern SCM scm_typed_array_p (SCM v, SCM type); extern SCM scm_make_array (SCM fill, SCM bounds); extern SCM scm_make_typed_array (SCM type, SCM fill, SCM bounds); extern SCM scm_array_rank (SCM ra); extern size_t scm_c_array_rank (SCM ra); extern SCM scm_array_dimensions (SCM ra); extern SCM scm_shared_array_root (SCM ra); extern SCM scm_shared_array_offset (SCM ra); extern SCM scm_shared_array_increments (SCM ra); extern SCM scm_make_shared_array (SCM oldra, SCM mapfunc, SCM dims); extern SCM scm_transpose_array (SCM ra, SCM args); extern SCM scm_enclose_array (SCM ra, SCM axes); extern SCM scm_array_in_bounds_p (SCM v, SCM args); extern SCM scm_array_ref (SCM v, SCM args); extern SCM scm_array_set_x (SCM v, SCM obj, SCM args); extern SCM scm_array_contents (SCM ra, SCM strict); extern SCM scm_uniform_array_read_x (SCM ra, SCM port_or_fd, SCM start, SCM end); extern SCM scm_uniform_array_write (SCM v, SCM port_or_fd, SCM start, SCM end); extern SCM scm_array_to_list (SCM v); extern SCM scm_list_to_array (SCM ndim, SCM lst); extern SCM scm_list_to_typed_array (SCM type, SCM ndim, SCM lst); extern SCM scm_array_type (SCM ra); extern int scm_is_array (SCM obj); extern int scm_is_typed_array (SCM obj, SCM type); extern SCM scm_ra2contig (SCM ra, int copy); struct scm_t_array_handle; typedef SCM (*scm_i_t_array_ref) (struct scm_t_array_handle *, ssize_t); typedef void (*scm_i_t_array_set) (struct scm_t_array_handle *, ssize_t, SCM); typedef struct scm_t_array_handle { SCM array; size_t base; scm_t_array_dim *dims; scm_t_array_dim dim0; scm_i_t_array_ref ref; scm_i_t_array_set set; const void *elements; void *writable_elements; } scm_t_array_handle; extern void scm_array_get_handle (SCM array, scm_t_array_handle *h); extern size_t scm_array_handle_rank (scm_t_array_handle *h); extern scm_t_array_dim *scm_array_handle_dims (scm_t_array_handle *h); extern ssize_t scm_array_handle_pos (scm_t_array_handle *h, SCM indices); extern const SCM *scm_array_handle_elements (scm_t_array_handle *h); extern SCM *scm_array_handle_writable_elements (scm_t_array_handle *h); extern void scm_array_handle_release (scm_t_array_handle *h); extern SCM scm_bitvector_p (SCM vec); extern SCM scm_bitvector (SCM bits); extern SCM scm_make_bitvector (SCM len, SCM fill); extern SCM scm_bitvector_length (SCM vec); extern SCM scm_bitvector_ref (SCM vec, SCM idx); extern SCM scm_bitvector_set_x (SCM vec, SCM idx, SCM val); extern SCM scm_list_to_bitvector (SCM list); extern SCM scm_bitvector_to_list (SCM vec); extern SCM scm_bitvector_fill_x (SCM vec, SCM val); extern SCM scm_bit_count (SCM item, SCM seq); extern SCM scm_bit_position (SCM item, SCM v, SCM k); extern SCM scm_bit_set_star_x (SCM v, SCM kv, SCM obj); extern SCM scm_bit_count_star (SCM v, SCM kv, SCM obj); extern SCM scm_bit_invert_x (SCM v); extern SCM scm_istr2bve (SCM str); extern int scm_is_bitvector (SCM obj); extern SCM scm_c_make_bitvector (size_t len, SCM fill); extern size_t scm_c_bitvector_length (SCM vec); extern SCM scm_c_bitvector_ref (SCM vec, size_t idx); extern void scm_c_bitvector_set_x (SCM vec, size_t idx, SCM val); extern const scm_t_uint32 *scm_array_handle_bit_elements (scm_t_array_handle *h); extern scm_t_uint32 *scm_array_handle_bit_writable_elements (scm_t_array_handle *h); extern size_t scm_array_handle_bit_elements_offset (scm_t_array_handle *h); extern const scm_t_uint32 *scm_bitvector_elements (SCM vec, scm_t_array_handle *h, size_t *offp, size_t *lenp, ssize_t *incp); extern scm_t_uint32 *scm_bitvector_writable_elements (SCM vec, scm_t_array_handle *h, size_t *offp, size_t *lenp, ssize_t *incp); typedef struct scm_i_t_array { SCM v; unsigned long base; } scm_i_t_array; extern scm_t_bits scm_i_tc16_array; extern scm_t_bits scm_i_tc16_enclosed_array; # 165 "/usr/include/libguile/unif.h" 3 4 extern SCM scm_i_make_ra (int ndim, int enclosed); extern SCM scm_i_cvref (SCM v, size_t p, int enclosed); extern SCM scm_i_read_array (SCM port, int c); extern SCM scm_make_uve (long k, SCM prot); extern SCM scm_array_prototype (SCM ra); extern SCM scm_list_to_uniform_array (SCM ndim, SCM prot, SCM lst); extern SCM scm_dimensions_to_uniform_array (SCM dims, SCM prot, SCM fill); extern SCM scm_make_ra (int ndim); extern SCM scm_shap2ra (SCM args, const char *what); extern SCM scm_cvref (SCM v, unsigned long pos, SCM last); extern void scm_ra_set_contp (SCM ra); extern long scm_aind (SCM ra, SCM args, const char *what); extern int scm_raprin1 (SCM exp, SCM port, scm_print_state *pstate); extern void scm_init_unif (void); # 27 "/usr/include/libguile/vectors.h" 2 3 4 extern SCM scm_vector_p (SCM x); extern SCM scm_vector_length (SCM v); extern SCM scm_vector (SCM l); extern SCM scm_vector_ref (SCM v, SCM k); extern SCM scm_vector_set_x (SCM v, SCM k, SCM obj); extern SCM scm_make_vector (SCM k, SCM fill); extern SCM scm_vector_to_list (SCM v); extern SCM scm_vector_fill_x (SCM v, SCM fill_x); extern SCM scm_vector_move_left_x (SCM vec1, SCM start1, SCM end1, SCM vec2, SCM start2); extern SCM scm_vector_move_right_x (SCM vec1, SCM start1, SCM end1, SCM vec2, SCM start2); extern SCM scm_vector_copy (SCM vec); extern int scm_is_vector (SCM obj); extern int scm_is_simple_vector (SCM obj); extern SCM scm_c_make_vector (size_t len, SCM fill); extern size_t scm_c_vector_length (SCM vec); extern SCM scm_c_vector_ref (SCM vec, size_t k); extern void scm_c_vector_set_x (SCM vec, size_t k, SCM obj); extern const SCM *scm_vector_elements (SCM vec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM *scm_vector_writable_elements (SCM vec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); # 65 "/usr/include/libguile/vectors.h" 3 4 extern SCM scm_generalized_vector_p (SCM v); extern SCM scm_generalized_vector_length (SCM v); extern SCM scm_generalized_vector_ref (SCM v, SCM idx); extern SCM scm_generalized_vector_set_x (SCM v, SCM idx, SCM val); extern SCM scm_generalized_vector_to_list (SCM v); extern int scm_is_generalized_vector (SCM obj); extern size_t scm_c_generalized_vector_length (SCM v); extern SCM scm_c_generalized_vector_ref (SCM v, size_t idx); extern void scm_c_generalized_vector_set_x (SCM v, size_t idx, SCM val); extern void scm_generalized_vector_get_handle (SCM vec, scm_t_array_handle *h); # 85 "/usr/include/libguile/vectors.h" 3 4 extern void scm_i_vector_free (SCM vec); extern SCM scm_i_vector_equal_p (SCM x, SCM y); # 102 "/usr/include/libguile/vectors.h" 3 4 extern SCM scm_i_allocate_weak_vector (scm_t_bits type, SCM size, SCM fill); extern void scm_init_vectors (void); # 28 "/usr/include/libguile/fluids.h" 2 3 4 # 57 "/usr/include/libguile/fluids.h" 3 4 extern SCM scm_make_fluid (void); extern int scm_is_fluid (SCM obj); extern SCM scm_fluid_p (SCM fl); extern SCM scm_fluid_ref (SCM fluid); extern SCM scm_fluid_set_x (SCM fluid, SCM value); extern size_t scm_i_fluid_num (SCM fl); extern SCM scm_i_fast_fluid_ref (size_t n); extern void scm_i_fast_fluid_set_x (size_t n, SCM val); extern SCM scm_c_with_fluids (SCM fluids, SCM vals, SCM (*cproc)(void *), void *cdata); extern SCM scm_c_with_fluid (SCM fluid, SCM val, SCM (*cproc)(void *), void *cdata); extern SCM scm_with_fluids (SCM fluids, SCM vals, SCM thunk); extern SCM scm_with_fluid (SCM fluid, SCM val, SCM thunk); extern void scm_dynwind_fluid (SCM fluid, SCM value); extern SCM scm_make_dynamic_state (SCM parent); extern SCM scm_dynamic_state_p (SCM obj); extern int scm_is_dynamic_state (SCM obj); extern SCM scm_current_dynamic_state (void); extern SCM scm_set_current_dynamic_state (SCM state); extern void scm_dynwind_current_dynamic_state (SCM state); extern void *scm_c_with_dynamic_state (SCM state, void *(*func)(void *), void *data); extern SCM scm_with_dynamic_state (SCM state, SCM proc); extern SCM scm_i_make_initial_dynamic_state (void); extern void scm_fluids_prehistory (void); extern void scm_init_fluids (void); # 47 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/fports.h" 1 3 4 # 27 "/usr/include/libguile/fports.h" 3 4 # 1 "/usr/include/libguile/ports.h" 1 3 4 # 39 "/usr/include/libguile/ports.h" 3 4 typedef enum scm_t_port_rw_active { SCM_PORT_NEITHER = 0, SCM_PORT_READ = 1, SCM_PORT_WRITE = 2 } scm_t_port_rw_active; typedef struct { SCM port; long entry; int revealed; scm_t_bits stream; SCM file_name; long line_number; int column_number; # 70 "/usr/include/libguile/ports.h" 3 4 unsigned char *read_buf; const unsigned char *read_pos; unsigned char *read_end; off_t read_buf_size; unsigned char *saved_read_buf; const unsigned char *saved_read_pos; unsigned char *saved_read_end; off_t saved_read_buf_size; unsigned char *write_buf; unsigned char *write_pos; unsigned char *write_end; off_t write_buf_size; unsigned char shortbuf; int rw_random; scm_t_port_rw_active rw_active; unsigned char *putback_buf; size_t putback_buf_size; } scm_t_port; extern scm_t_port **scm_i_port_table; extern long scm_i_port_table_size; extern pthread_mutex_t scm_i_port_table_mutex; # 168 "/usr/include/libguile/ports.h" 3 4 typedef struct scm_t_ptob_descriptor { char *name; SCM (*mark) (SCM); size_t (*free) (SCM); int (*print) (SCM exp, SCM port, scm_print_state *pstate); SCM (*equalp) (SCM, SCM); int (*close) (SCM port); void (*write) (SCM port, const void *data, size_t size); void (*flush) (SCM port); void (*end_input) (SCM port, int offset); int (*fill_input) (SCM port); int (*input_waiting) (SCM port); off_t (*seek) (SCM port, off_t OFFSET, int WHENCE); void (*truncate) (SCM port, off_t length); } scm_t_ptob_descriptor; # 196 "/usr/include/libguile/ports.h" 3 4 extern scm_t_ptob_descriptor *scm_ptobs; extern long scm_numptob; extern long scm_i_port_table_room; extern SCM scm_markstream (SCM ptr); extern scm_t_bits scm_make_port_type (char *name, int (*fill_input) (SCM port), void (*write) (SCM port, const void *data, size_t size)); extern void scm_set_port_mark (scm_t_bits tc, SCM (*mark) (SCM)); extern void scm_set_port_free (scm_t_bits tc, size_t (*free) (SCM)); extern void scm_set_port_print (scm_t_bits tc, int (*print) (SCM exp, SCM port, scm_print_state *pstate)); extern void scm_set_port_equalp (scm_t_bits tc, SCM (*equalp) (SCM, SCM)); extern void scm_set_port_close (scm_t_bits tc, int (*close) (SCM)); extern void scm_set_port_flush (scm_t_bits tc, void (*flush) (SCM port)); extern void scm_set_port_end_input (scm_t_bits tc, void (*end_input) (SCM port, int offset)); extern void scm_set_port_seek (scm_t_bits tc, off_t (*seek) (SCM port, off_t OFFSET, int WHENCE)); extern void scm_set_port_truncate (scm_t_bits tc, void (*truncate) (SCM port, off_t length)); extern void scm_set_port_input_waiting (scm_t_bits tc, int (*input_waiting) (SCM)); extern SCM scm_char_ready_p (SCM port); size_t scm_take_from_input_buffers (SCM port, char *dest, size_t read_len); extern SCM scm_drain_input (SCM port); extern SCM scm_current_input_port (void); extern SCM scm_current_output_port (void); extern SCM scm_current_error_port (void); extern SCM scm_current_load_port (void); extern SCM scm_set_current_input_port (SCM port); extern SCM scm_set_current_output_port (SCM port); extern SCM scm_set_current_error_port (SCM port); extern void scm_dynwind_current_input_port (SCM port); extern void scm_dynwind_current_output_port (SCM port); extern void scm_dynwind_current_error_port (SCM port); extern SCM scm_new_port_table_entry (scm_t_bits tag); extern void scm_remove_from_port_table (SCM port); extern void scm_grow_port_cbuf (SCM port, size_t requested); extern SCM scm_pt_size (void); extern SCM scm_pt_member (SCM member); extern void scm_port_non_buffer (scm_t_port *pt); extern int scm_revealed_count (SCM port); extern SCM scm_port_revealed (SCM port); extern SCM scm_set_port_revealed_x (SCM port, SCM rcount); extern long scm_mode_bits (char *modes); extern SCM scm_port_mode (SCM port); extern SCM scm_close_input_port (SCM port); extern SCM scm_close_output_port (SCM port); extern SCM scm_close_port (SCM port); extern SCM scm_port_for_each (SCM proc); extern void scm_c_port_for_each (void (*proc)(void *data, SCM p), void *data); extern SCM scm_input_port_p (SCM x); extern SCM scm_output_port_p (SCM x); extern SCM scm_port_p (SCM x); extern SCM scm_port_closed_p (SCM port); extern SCM scm_eof_object_p (SCM x); extern SCM scm_force_output (SCM port); extern SCM scm_flush_all_ports (void); extern SCM scm_read_char (SCM port); extern size_t scm_c_read (SCM port, void *buffer, size_t size); extern void scm_c_write (SCM port, const void *buffer, size_t size); extern void scm_lfwrite (const char *ptr, size_t size, SCM port); extern void scm_flush (SCM port); extern void scm_end_input (SCM port); extern int scm_fill_input (SCM port); extern void scm_ungetc (int c, SCM port); extern void scm_ungets (const char *s, int n, SCM port); extern SCM scm_peek_char (SCM port); extern SCM scm_unread_char (SCM cobj, SCM port); extern SCM scm_unread_string (SCM str, SCM port); extern SCM scm_seek (SCM object, SCM offset, SCM whence); extern SCM scm_truncate_file (SCM object, SCM length); extern SCM scm_port_line (SCM port); extern SCM scm_set_port_line_x (SCM port, SCM line); extern SCM scm_port_column (SCM port); extern SCM scm_set_port_column_x (SCM port, SCM line); extern SCM scm_port_filename (SCM port); extern SCM scm_set_port_filename_x (SCM port, SCM filename); extern int scm_port_print (SCM exp, SCM port, scm_print_state *); extern void scm_print_port_mode (SCM exp, SCM port); extern void scm_ports_prehistory (void); extern SCM scm_void_port (char * mode_str); extern SCM scm_sys_make_void_port (SCM mode); extern void scm_init_ports (void); extern scm_t_port * scm_add_to_port_table (SCM port); # 305 "/usr/include/libguile/ports.h" 3 4 extern long scm_i_mode_bits (SCM modes); extern void scm_i_dynwind_current_load_port (SCM port); # 28 "/usr/include/libguile/fports.h" 2 3 4 typedef struct scm_t_fport { int fdes; } scm_t_fport; extern scm_t_bits scm_tc16_fport; # 50 "/usr/include/libguile/fports.h" 3 4 extern SCM scm_setbuf0 (SCM port); extern SCM scm_setvbuf (SCM port, SCM mode, SCM size); extern void scm_evict_ports (int fd); extern SCM scm_open_file (SCM filename, SCM modes); extern SCM scm_fdes_to_port (int fdes, char *mode, SCM name); extern SCM scm_file_port_p (SCM obj); extern void scm_init_fports (void); extern SCM scm_i_fdes_to_port (int fdes, long mode_bits, SCM name); extern int scm_i_fport_truncate (SCM, SCM); extern SCM scm_i_fport_seek (SCM, SCM, int); # 48 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/futures.h" 1 3 4 # 49 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/gc.h" 1 3 4 # 27 "/usr/include/libguile/gc.h" 3 4 # 1 "/usr/include/libguile/hooks.h" 1 3 4 # 36 "/usr/include/libguile/hooks.h" 3 4 typedef enum scm_t_c_hook_type { SCM_C_HOOK_NORMAL, SCM_C_HOOK_OR, SCM_C_HOOK_AND } scm_t_c_hook_type; typedef void *(*scm_t_c_hook_function) (void *hook_data, void *fn_data, void *data); typedef struct scm_t_c_hook_entry { struct scm_t_c_hook_entry *next; scm_t_c_hook_function func; void *data; } scm_t_c_hook_entry; typedef struct scm_t_c_hook { scm_t_c_hook_entry *first; scm_t_c_hook_type type; void *data; } scm_t_c_hook; extern void scm_c_hook_init (scm_t_c_hook *hook, void *hook_data, scm_t_c_hook_type type); extern void scm_c_hook_add (scm_t_c_hook *hook, scm_t_c_hook_function func, void *fn_data, int appendp); extern void scm_c_hook_remove (scm_t_c_hook *hook, scm_t_c_hook_function func, void *fn_data); extern void *scm_c_hook_run (scm_t_c_hook *hook, void *data); extern scm_t_bits scm_tc16_hook; extern SCM scm_make_hook (SCM n_args); extern SCM scm_hook_p (SCM x); extern SCM scm_hook_empty_p (SCM hook); extern SCM scm_add_hook_x (SCM hook, SCM thunk, SCM appendp); extern SCM scm_remove_hook_x (SCM hook, SCM thunk); extern SCM scm_reset_hook_x (SCM hook); extern SCM scm_run_hook (SCM hook, SCM args); extern void scm_c_run_hook (SCM hook, SCM args); extern SCM scm_hook_to_list (SCM hook); extern void scm_init_hooks (void); # 28 "/usr/include/libguile/gc.h" 2 3 4 # 60 "/usr/include/libguile/gc.h" 3 4 typedef struct scm_t_cell { SCM word_0; SCM word_1; } scm_t_cell; # 136 "/usr/include/libguile/gc.h" 3 4 typedef unsigned long scm_t_c_bvec_long; # 244 "/usr/include/libguile/gc.h" 3 4 extern pthread_mutex_t scm_i_gc_admin_mutex; extern pthread_mutex_t scm_i_sweep_mutex; # 257 "/usr/include/libguile/gc.h" 3 4 extern size_t scm_default_init_heap_size_1; extern int scm_default_min_yield_1; extern size_t scm_default_init_heap_size_2; extern int scm_default_min_yield_2; extern size_t scm_default_max_segment_size; # 271 "/usr/include/libguile/gc.h" 3 4 extern size_t scm_max_segment_size; extern pthread_key_t scm_i_freelist; extern pthread_key_t scm_i_freelist2; extern struct scm_t_cell_type_statistics scm_i_master_freelist; extern struct scm_t_cell_type_statistics scm_i_master_freelist2; extern unsigned long scm_gc_cells_swept; extern unsigned long scm_gc_cells_collected; extern unsigned long scm_gc_malloc_collected; extern unsigned long scm_gc_ports_collected; extern unsigned long scm_cells_allocated; extern unsigned long scm_last_cells_allocated; extern int scm_gc_cell_yield_percentage; extern int scm_gc_malloc_yield_percentage; extern unsigned long scm_mallocated; extern unsigned long scm_mtrigger; extern double scm_gc_cells_allocated_acc; extern SCM scm_after_gc_hook; extern scm_t_c_hook scm_before_gc_c_hook; extern scm_t_c_hook scm_before_mark_c_hook; extern scm_t_c_hook scm_before_sweep_c_hook; extern scm_t_c_hook scm_after_sweep_c_hook; extern scm_t_c_hook scm_after_gc_c_hook; # 326 "/usr/include/libguile/gc.h" 3 4 extern SCM scm_set_debug_cell_accesses_x (SCM flag); extern SCM scm_object_address (SCM obj); extern SCM scm_gc_stats (void); extern SCM scm_gc_live_object_stats (void); extern SCM scm_gc (void); extern void scm_gc_for_alloc (struct scm_t_cell_type_statistics *freelist); extern SCM scm_gc_for_newcell (struct scm_t_cell_type_statistics *master, SCM *freelist); extern void scm_i_gc (const char *what); extern void scm_gc_mark (SCM p); extern void scm_gc_mark_dependencies (SCM p); extern void scm_mark_locations (SCM_STACKITEM x[], unsigned long n); extern int scm_in_heap_p (SCM value); extern void scm_gc_sweep (void); extern void *scm_malloc (size_t size); extern void *scm_calloc (size_t size); extern void *scm_realloc (void *mem, size_t size); extern char *scm_strdup (const char *str); extern char *scm_strndup (const char *str, size_t n); extern void scm_gc_register_collectable_memory (void *mem, size_t size, const char *what); extern void scm_gc_unregister_collectable_memory (void *mem, size_t size, const char *what); extern void *scm_gc_calloc (size_t size, const char *what); extern void *scm_gc_malloc (size_t size, const char *what); extern void *scm_gc_realloc (void *mem, size_t old_size, size_t new_size, const char *what); extern void scm_gc_free (void *mem, size_t size, const char *what); extern char *scm_gc_strdup (const char *str, const char *what); extern char *scm_gc_strndup (const char *str, size_t n, const char *what); extern void scm_remember_upto_here_1 (SCM obj); extern void scm_remember_upto_here_2 (SCM obj1, SCM obj2); extern void scm_remember_upto_here (SCM obj1, ...); # 387 "/usr/include/libguile/gc.h" 3 4 extern SCM scm_return_first (SCM elt, ...); extern int scm_return_first_int (int x, ...); extern SCM scm_permanent_object (SCM obj); extern SCM scm_gc_protect_object (SCM obj); extern SCM scm_gc_unprotect_object (SCM obj); extern void scm_gc_register_root (SCM *p); extern void scm_gc_unregister_root (SCM *p); extern void scm_gc_register_roots (SCM *b, unsigned long n); extern void scm_gc_unregister_roots (SCM *b, unsigned long n); extern void scm_storage_prehistory (void); extern int scm_init_storage (void); extern void *scm_get_stack_base (void); extern void scm_init_gc (void); extern SCM scm_deprecated_newcell (void); extern SCM scm_deprecated_newcell2 (void); extern void * scm_must_malloc (size_t len, const char *what); extern void * scm_must_realloc (void *where, size_t olen, size_t len, const char *what); extern char *scm_must_strdup (const char *str); extern char *scm_must_strndup (const char *str, size_t n); extern void scm_done_malloc (long size); extern void scm_done_free (long size); extern void scm_must_free (void *obj); # 50 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/gdbint.h" 1 3 4 # 29 "/usr/include/libguile/gdbint.h" 3 4 extern int scm_print_carefully_p; extern void scm_init_gdbint (void); # 51 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/goops.h" 1 3 4 # 34 "/usr/include/libguile/goops.h" 3 4 # 1 "/usr/include/libguile/validate.h" 1 3 4 # 35 "/usr/include/libguile/goops.h" 2 3 4 # 68 "/usr/include/libguile/goops.h" 3 4 typedef struct scm_t_method { SCM generic_function; SCM specializers; SCM procedure; } scm_t_method; # 157 "/usr/include/libguile/goops.h" 3 4 extern SCM scm_class_boolean; extern SCM scm_class_char; extern SCM scm_class_pair; extern SCM scm_class_procedure; extern SCM scm_class_string; extern SCM scm_class_symbol; extern SCM scm_class_procedure_with_setter; extern SCM scm_class_primitive_generic; extern SCM scm_class_vector, scm_class_null; extern SCM scm_class_real; extern SCM scm_class_complex; extern SCM scm_class_integer; extern SCM scm_class_fraction; extern SCM scm_class_unknown; extern SCM *scm_port_class; extern SCM *scm_smob_class; extern SCM scm_class_top; extern SCM scm_class_object; extern SCM scm_class_class; extern SCM scm_class_applicable; extern SCM scm_class_entity; extern SCM scm_class_entity_with_setter; extern SCM scm_class_generic; extern SCM scm_class_generic_with_setter; extern SCM scm_class_accessor; extern SCM scm_class_extended_generic; extern SCM scm_class_extended_generic_with_setter; extern SCM scm_class_extended_accessor; extern SCM scm_class_method; extern SCM scm_class_simple_method; extern SCM scm_class_accessor_method; extern SCM scm_class_procedure_class; extern SCM scm_class_operator_class; extern SCM scm_class_operator_with_setter_class; extern SCM scm_class_entity_class; extern SCM scm_class_number; extern SCM scm_class_list; extern SCM scm_class_keyword; extern SCM scm_class_port; extern SCM scm_class_input_output_port; extern SCM scm_class_input_port; extern SCM scm_class_output_port; extern SCM scm_class_foreign_class; extern SCM scm_class_foreign_object; extern SCM scm_class_foreign_slot; extern SCM scm_class_self; extern SCM scm_class_protected; extern SCM scm_class_opaque; extern SCM scm_class_read_only; extern SCM scm_class_protected_opaque; extern SCM scm_class_protected_read_only; extern SCM scm_class_scm; extern SCM scm_class_int; extern SCM scm_class_float; extern SCM scm_class_double; extern const char *scm_s_slot_set_x; extern SCM scm_no_applicable_method; extern SCM scm_module_goops; extern SCM scm_goops_version (void); extern SCM scm_oldfmt (SCM); extern char *scm_c_oldfmt0 (char *); extern char *scm_c_oldfmt (char *, int n); extern void scm_load_goops (void); extern SCM scm_make_foreign_object (SCM cls, SCM initargs); extern SCM scm_make_class (SCM meta, char *s_name, SCM supers, size_t size, void * (*constructor) (SCM initargs), size_t (*destructor) (void *)); extern void scm_add_slot (SCM c, char *slot, SCM slot_class, SCM (*getter) (SCM obj), SCM (*setter) (SCM obj, SCM x), char *accessor_name); extern SCM scm_wrap_object (SCM c, void *); extern SCM scm_wrap_component (SCM c, SCM obj, void *); extern SCM scm_ensure_accessor (SCM name); extern void scm_add_method (SCM gf, SCM m); extern SCM scm_class_of (SCM obj); extern SCM scm_make_next_method (SCM methods, SCM args, SCM gf); extern SCM scm_basic_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots); extern SCM scm_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots); extern SCM scm_sys_allocate_instance (SCM c, SCM initargs); extern SCM scm_sys_set_object_setter_x (SCM obj, SCM setter); extern SCM scm_slot_ref (SCM obj, SCM slot_name); extern SCM scm_slot_set_x (SCM obj, SCM slot_name, SCM value); extern SCM scm_compute_applicable_methods (SCM gf, SCM args, long len, int scm_find_method); extern SCM scm_sys_compute_applicable_methods (SCM gf, SCM args); extern SCM scm_sys_compute_slots (SCM c); extern SCM scm_i_get_keyword (SCM key, SCM l, long len, SCM default_value, const char *subr); extern SCM scm_get_keyword (SCM key, SCM l, SCM default_value); extern SCM scm_sys_initialize_object (SCM obj, SCM initargs); extern SCM scm_sys_prep_layout_x (SCM c); extern SCM scm_sys_inherit_magic_x (SCM c, SCM dsupers); extern SCM scm_instance_p (SCM obj); extern SCM scm_class_name (SCM obj); extern SCM scm_class_direct_supers (SCM obj); extern SCM scm_class_direct_slots (SCM obj); extern SCM scm_class_direct_subclasses (SCM obj); extern SCM scm_class_direct_methods (SCM obj); extern SCM scm_class_precedence_list (SCM obj); extern SCM scm_class_slots (SCM obj); extern SCM scm_class_environment (SCM obj); extern SCM scm_generic_function_name (SCM obj); extern SCM scm_generic_function_methods (SCM obj); extern SCM scm_method_generic_function (SCM obj); extern SCM scm_method_specializers (SCM obj); extern SCM scm_method_procedure (SCM obj); extern SCM scm_accessor_method_slot_definition (SCM obj); extern SCM scm_sys_tag_body (SCM body); extern SCM scm_sys_fast_slot_ref (SCM obj, SCM index); extern SCM scm_sys_fast_slot_set_x (SCM obj, SCM index, SCM value); extern SCM scm_slot_ref_using_class (SCM cls, SCM obj, SCM slot_name); extern SCM scm_slot_set_using_class_x (SCM cls, SCM obj, SCM slot_name, SCM value); extern SCM scm_slot_bound_using_class_p (SCM cls, SCM obj, SCM slot_name); extern SCM scm_slot_exists_using_class_p (SCM cls, SCM obj, SCM slot_name); extern SCM scm_slot_bound_p (SCM obj, SCM slot_name); extern SCM scm_slot_exists_p (SCM obj, SCM slot_name); extern SCM scm_sys_modify_instance (SCM old, SCM newinst); extern SCM scm_sys_modify_class (SCM old, SCM newcls); extern SCM scm_sys_invalidate_class (SCM cls); extern SCM scm_make_method_cache (SCM gf); extern SCM scm_sys_invalidate_method_cache_x (SCM gf); extern SCM scm_generic_capability_p (SCM proc); extern SCM scm_enable_primitive_generic_x (SCM subrs); extern SCM scm_primitive_generic_generic (SCM subr); extern void scm_c_extend_primitive_generic (SCM subr, SCM extension); extern SCM stklos_version (void); extern SCM scm_make (SCM args); extern SCM scm_find_method (SCM args); extern SCM scm_sys_method_more_specific_p (SCM m1, SCM m2, SCM targs); extern SCM scm_init_goops_builtins (void); extern void scm_init_goops (void); # 52 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/gsubr.h" 1 3 4 # 40 "/usr/include/libguile/gsubr.h" 3 4 extern SCM scm_f_gsubr_apply; extern SCM scm_c_make_gsubr (const char *name, int req, int opt, int rst, SCM (*fcn) ()); extern SCM scm_c_make_gsubr_with_generic (const char *name, int req, int opt, int rst, SCM (*fcn) (), SCM *gf); extern SCM scm_c_define_gsubr (const char *name, int req, int opt, int rst, SCM (*fcn) ()); extern SCM scm_c_define_gsubr_with_generic (const char *name, int req, int opt, int rst, SCM (*fcn) (), SCM *gf); extern SCM scm_gsubr_apply (SCM args); extern void scm_init_gsubr (void); # 53 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/guardians.h" 1 3 4 # 27 "/usr/include/libguile/guardians.h" 3 4 extern SCM scm_make_guardian (void); extern void scm_i_init_guardians_for_gc (void); extern void scm_i_identify_inaccessible_guardeds (void); extern int scm_i_mark_inaccessible_guardeds (void); extern void scm_init_guardians (void); # 54 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/hash.h" 1 3 4 # 29 "/usr/include/libguile/hash.h" 3 4 extern unsigned long scm_string_hash (const unsigned char *str, size_t len); extern unsigned long scm_hasher (SCM obj, unsigned long n, size_t d); extern unsigned long scm_ihashq (SCM obj, unsigned long n); extern SCM scm_hashq (SCM obj, SCM n); extern unsigned long scm_ihashv (SCM obj, unsigned long n); extern SCM scm_hashv (SCM obj, SCM n); extern unsigned long scm_ihash (SCM obj, unsigned long n); extern SCM scm_hash (SCM obj, SCM n); extern void scm_init_hash (void); # 55 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/hashtab.h" 1 3 4 # 27 "/usr/include/libguile/hashtab.h" 3 4 # 1 "/usr/include/libguile/weaks.h" 1 3 4 # 56 "/usr/include/libguile/weaks.h" 3 4 extern SCM scm_make_weak_vector (SCM k, SCM fill); extern SCM scm_weak_vector (SCM l); extern SCM scm_weak_vector_p (SCM x); extern SCM scm_make_weak_key_alist_vector (SCM k); extern SCM scm_make_weak_value_alist_vector (SCM k); extern SCM scm_make_doubly_weak_alist_vector (SCM k); extern SCM scm_weak_key_alist_vector_p (SCM x); extern SCM scm_weak_value_alist_vector_p (SCM x); extern SCM scm_doubly_weak_alist_vector_p (SCM x); extern SCM scm_init_weaks_builtins (void); extern void scm_init_weaks (void); extern void scm_i_init_weak_vectors_for_gc (void); extern void scm_i_mark_weak_vector (SCM w); extern int scm_i_mark_weak_vectors_non_weaks (void); extern void scm_i_remove_weaks_from_weak_vectors (void); # 28 "/usr/include/libguile/hashtab.h" 2 3 4 extern scm_t_bits scm_tc16_hashtable; # 69 "/usr/include/libguile/hashtab.h" 3 4 typedef struct scm_t_hashtable { int flags; unsigned long n_items; unsigned long lower; unsigned long upper; int size_index; int min_size_index; unsigned long (*hash_fn) (); } scm_t_hashtable; # 87 "/usr/include/libguile/hashtab.h" 3 4 extern SCM scm_vector_to_hash_table (SCM vector); extern SCM scm_c_make_hash_table (unsigned long k); extern SCM scm_make_hash_table (SCM n); extern SCM scm_make_weak_key_hash_table (SCM k); extern SCM scm_make_weak_value_hash_table (SCM k); extern SCM scm_make_doubly_weak_hash_table (SCM k); extern SCM scm_hash_table_p (SCM h); extern SCM scm_weak_key_hash_table_p (SCM h); extern SCM scm_weak_value_hash_table_p (SCM h); extern SCM scm_doubly_weak_hash_table_p (SCM h); extern void scm_i_rehash (SCM table, unsigned long (*hash_fn)(), void *closure, const char*func_name); extern void scm_i_scan_weak_hashtables (void); extern SCM scm_hash_fn_get_handle (SCM table, SCM obj, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); extern SCM scm_hash_fn_create_handle_x (SCM table, SCM obj, SCM init, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); extern SCM scm_hash_fn_ref (SCM table, SCM obj, SCM dflt, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); extern SCM scm_hash_fn_set_x (SCM table, SCM obj, SCM val, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); extern SCM scm_hash_fn_remove_x (SCM table, SCM obj, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); extern SCM scm_internal_hash_fold (SCM (*fn) (), void *closure, SCM init, SCM table); extern void scm_internal_hash_for_each_handle (SCM (*fn) (), void *closure, SCM table); extern SCM scm_hash_clear_x (SCM table); extern SCM scm_hashq_get_handle (SCM table, SCM obj); extern SCM scm_hashq_create_handle_x (SCM table, SCM obj, SCM init); extern SCM scm_hashq_ref (SCM table, SCM obj, SCM dflt); extern SCM scm_hashq_set_x (SCM table, SCM obj, SCM val); extern SCM scm_hashq_remove_x (SCM table, SCM obj); extern SCM scm_hashv_get_handle (SCM table, SCM obj); extern SCM scm_hashv_create_handle_x (SCM table, SCM obj, SCM init); extern SCM scm_hashv_ref (SCM table, SCM obj, SCM dflt); extern SCM scm_hashv_set_x (SCM table, SCM obj, SCM val); extern SCM scm_hashv_remove_x (SCM table, SCM obj); extern SCM scm_hash_get_handle (SCM table, SCM obj); extern SCM scm_hash_create_handle_x (SCM table, SCM obj, SCM init); extern SCM scm_hash_ref (SCM table, SCM obj, SCM dflt); extern SCM scm_hash_set_x (SCM table, SCM obj, SCM val); extern SCM scm_hash_remove_x (SCM table, SCM obj); extern SCM scm_hashx_get_handle (SCM hash, SCM assoc, SCM table, SCM obj); extern SCM scm_hashx_create_handle_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM init); extern SCM scm_hashx_ref (SCM hash, SCM assoc, SCM table, SCM obj, SCM dflt); extern SCM scm_hashx_set_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM val); extern SCM scm_hashx_remove_x (SCM hash, SCM assoc, SCM table, SCM obj); extern SCM scm_hash_fold (SCM proc, SCM init, SCM hash); extern SCM scm_hash_for_each (SCM proc, SCM hash); extern SCM scm_hash_for_each_handle (SCM proc, SCM hash); extern SCM scm_hash_map_to_list (SCM proc, SCM hash); extern void scm_hashtab_prehistory (void); extern void scm_init_hashtab (void); # 56 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/init.h" 1 3 4 # 29 "/usr/include/libguile/init.h" 3 4 extern pthread_mutex_t scm_i_init_mutex; extern int scm_initialized_p; extern void scm_init_guile (void); extern void scm_boot_guile (int argc, char **argv, void (*main_func) (void *closure, int argc, char **argv), void *closure); extern void scm_i_init_guile (SCM_STACKITEM *base); extern void scm_load_startup_files (void); # 57 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/ioext.h" 1 3 4 # 29 "/usr/include/libguile/ioext.h" 3 4 extern SCM scm_ftell (SCM object); extern SCM scm_redirect_port (SCM into_pt, SCM from_pt); extern SCM scm_dup_to_fdes (SCM fd_or_port, SCM newfd); extern SCM scm_dup2 (SCM oldfd, SCM newfd); extern SCM scm_fileno (SCM port); extern SCM scm_isatty_p (SCM port); extern SCM scm_fdopen (SCM fdes, SCM modes); extern SCM scm_primitive_move_to_fdes (SCM port, SCM fd); extern SCM scm_fdes_to_ports (SCM fd); extern void scm_init_ioext (void); # 58 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/rdelim.h" 1 3 4 # 27 "/usr/include/libguile/rdelim.h" 3 4 extern SCM scm_read_delimited_x (SCM delims, SCM buf, SCM gobble, SCM port, SCM offset, SCM length); extern SCM scm_read_line (SCM port); extern SCM scm_write_line (SCM obj, SCM port); extern SCM scm_init_rdelim_builtins (void); extern void scm_init_rdelim (void); # 59 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/rw.h" 1 3 4 # 27 "/usr/include/libguile/rw.h" 3 4 extern SCM scm_read_string_x_partial (SCM str, SCM port_or_fdes, SCM start, SCM end); extern SCM scm_write_string_partial (SCM str, SCM port_or_fdes, SCM start, SCM end); extern SCM scm_init_rw_builtins (void); extern void scm_init_rw (void); # 60 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/keywords.h" 1 3 4 # 29 "/usr/include/libguile/keywords.h" 3 4 extern scm_t_bits scm_tc16_keyword; extern SCM scm_keyword_p (SCM obj); extern SCM scm_symbol_to_keyword (SCM symbol); extern SCM scm_keyword_to_symbol (SCM keyword); extern int scm_is_keyword (SCM val); extern SCM scm_from_locale_keyword (const char *str); extern SCM scm_from_locale_keywordn (const char *str, size_t len); extern void scm_init_keywords (void); # 61 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/list.h" 1 3 4 # 30 "/usr/include/libguile/list.h" 3 4 extern SCM scm_list_1 (SCM e1); extern SCM scm_list_2 (SCM e1, SCM e2); extern SCM scm_list_3 (SCM e1, SCM e2, SCM e3); extern SCM scm_list_4 (SCM e1, SCM e2, SCM e3, SCM e4); extern SCM scm_list_5 (SCM e1, SCM e2, SCM e3, SCM e4, SCM e5); extern SCM scm_list_n (SCM elt, ...); extern SCM scm_list (SCM objs); extern SCM scm_list_head (SCM lst, SCM k); extern SCM scm_make_list (SCM n, SCM init); extern SCM scm_cons_star (SCM arg, SCM objs); extern SCM scm_null_p (SCM x); extern SCM scm_list_p (SCM x); extern long scm_ilength (SCM sx); extern SCM scm_length (SCM x); extern SCM scm_append (SCM args); extern SCM scm_append_x (SCM args); extern SCM scm_reverse (SCM lst); extern SCM scm_reverse_x (SCM lst, SCM newtail); extern SCM scm_list_ref (SCM lst, SCM k); extern SCM scm_list_set_x (SCM lst, SCM k, SCM val); extern SCM scm_list_cdr_set_x (SCM lst, SCM k, SCM val); extern SCM scm_last_pair (SCM sx); extern SCM scm_list_tail (SCM lst, SCM k); extern SCM scm_c_memq (SCM x, SCM lst); extern SCM scm_memq (SCM x, SCM lst); extern SCM scm_memv (SCM x, SCM lst); extern SCM scm_member (SCM x, SCM lst); extern SCM scm_delq_x (SCM item, SCM lst); extern SCM scm_delv_x (SCM item, SCM lst); extern SCM scm_delete_x (SCM item, SCM lst); extern SCM scm_list_copy (SCM lst); extern SCM scm_delq (SCM item, SCM lst); extern SCM scm_delv (SCM item, SCM lst); extern SCM scm_delete (SCM item, SCM lst); extern SCM scm_delq1_x (SCM item, SCM lst); extern SCM scm_delv1_x (SCM item, SCM lst); extern SCM scm_delete1_x (SCM item, SCM lst); extern SCM scm_filter (SCM pred, SCM list); extern SCM scm_filter_x (SCM pred, SCM list); extern SCM scm_i_finite_list_copy (SCM ); extern void scm_init_list (void); # 62 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/load.h" 1 3 4 # 28 "/usr/include/libguile/load.h" 3 4 extern SCM scm_parse_path (SCM path, SCM tail); extern void scm_init_load_path (void); extern SCM scm_primitive_load (SCM filename); extern SCM scm_c_primitive_load (const char *filename); extern SCM scm_sys_package_data_dir (void); extern SCM scm_sys_library_dir (void); extern SCM scm_sys_site_dir (void); extern SCM scm_search_path (SCM path, SCM filename, SCM exts); extern SCM scm_sys_search_load_path (SCM filename); extern SCM scm_primitive_load_path (SCM filename); extern SCM scm_c_primitive_load_path (const char *filename); extern void scm_init_load (void); # 63 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/macros.h" 1 3 4 # 37 "/usr/include/libguile/macros.h" 3 4 extern scm_t_bits scm_tc16_macro; extern SCM scm_i_makbimacro (SCM code); extern SCM scm_makmmacro (SCM code); extern SCM scm_makacro (SCM code); extern SCM scm_macro_p (SCM obj); extern SCM scm_macro_type (SCM m); extern SCM scm_macro_name (SCM m); extern SCM scm_macro_transformer (SCM m); extern SCM scm_make_synt (const char *name, SCM (*macroizer) (SCM), SCM (*fcn) ()); extern void scm_init_macros (void); extern SCM scm_makmacro (SCM code); # 64 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/mallocs.h" 1 3 4 # 28 "/usr/include/libguile/mallocs.h" 3 4 extern scm_t_bits scm_tc16_malloc; extern SCM scm_malloc_obj (size_t n); extern void scm_init_mallocs (void); # 65 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/modules.h" 1 3 4 # 31 "/usr/include/libguile/modules.h" 3 4 extern int scm_module_system_booted_p; extern scm_t_bits scm_module_tag; # 60 "/usr/include/libguile/modules.h" 3 4 extern scm_t_bits scm_tc16_eval_closure; extern SCM scm_current_module (void); extern SCM scm_interaction_environment (void); extern SCM scm_set_current_module (SCM module); extern SCM scm_c_call_with_current_module (SCM module, SCM (*func)(void *), void *data); extern void scm_dynwind_current_module (SCM module); extern SCM scm_c_lookup (const char *name); extern SCM scm_c_define (const char *name, SCM val); extern SCM scm_lookup (SCM symbol); extern SCM scm_define (SCM symbol, SCM val); extern SCM scm_c_module_lookup (SCM module, const char *name); extern SCM scm_c_module_define (SCM module, const char *name, SCM val); extern SCM scm_module_lookup (SCM module, SCM symbol); extern SCM scm_module_define (SCM module, SCM symbol, SCM val); extern SCM scm_module_reverse_lookup (SCM module, SCM variable); extern SCM scm_c_resolve_module (const char *name); extern SCM scm_resolve_module (SCM name); extern SCM scm_c_define_module (const char *name, void (*init)(void *), void *data); extern void scm_c_use_module (const char *name); extern void scm_c_export (const char *name, ...); extern SCM scm_sym2var (SCM sym, SCM thunk, SCM definep); extern SCM scm_module_import_interface (SCM module, SCM sym); extern SCM scm_module_lookup_closure (SCM module); extern SCM scm_module_transformer (SCM module); extern SCM scm_current_module_lookup_closure (void); extern SCM scm_current_module_transformer (void); extern SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep); extern SCM scm_standard_eval_closure (SCM module); extern SCM scm_standard_interface_eval_closure (SCM module); extern SCM scm_get_pre_modules_obarray (void); extern SCM scm_lookup_closure_module (SCM proc); extern SCM scm_env_top_level (SCM env); extern SCM scm_env_module (SCM env); extern SCM scm_top_level_env (SCM thunk); extern SCM scm_system_module_env_p (SCM env); extern void scm_modules_prehistory (void); extern void scm_init_modules (void); # 66 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/net_db.h" 1 3 4 # 29 "/usr/include/libguile/net_db.h" 3 4 extern SCM scm_gethost (SCM host); extern SCM scm_getnet (SCM name); extern SCM scm_getproto (SCM name); extern SCM scm_getserv (SCM name, SCM proto); extern SCM scm_sethost (SCM arg); extern SCM scm_setnet (SCM arg); extern SCM scm_setproto (SCM arg); extern SCM scm_setserv (SCM arg); extern void scm_init_net_db (void); # 67 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/numbers.h" 1 3 4 # 25 "/usr/include/libguile/numbers.h" 3 4 # 1 "/usr/include/gmp.h" 1 3 4 # 26 "/usr/include/libguile/numbers.h" 2 3 4 # 92 "/usr/include/libguile/numbers.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/float.h" 1 3 4 # 93 "/usr/include/libguile/numbers.h" 2 3 4 # 163 "/usr/include/libguile/numbers.h" 3 4 typedef struct scm_t_double { SCM type; SCM pad; double real; } scm_t_double; typedef struct scm_t_complex { double real; double imag; } scm_t_complex; extern SCM scm_exact_p (SCM x); extern SCM scm_odd_p (SCM n); extern SCM scm_even_p (SCM n); extern SCM scm_inf_p (SCM n); extern SCM scm_nan_p (SCM n); extern SCM scm_inf (void); extern SCM scm_nan (void); extern SCM scm_abs (SCM x); extern SCM scm_quotient (SCM x, SCM y); extern SCM scm_remainder (SCM x, SCM y); extern SCM scm_modulo (SCM x, SCM y); extern SCM scm_gcd (SCM x, SCM y); extern SCM scm_lcm (SCM n1, SCM n2); extern SCM scm_logand (SCM n1, SCM n2); extern SCM scm_logior (SCM n1, SCM n2); extern SCM scm_logxor (SCM n1, SCM n2); extern SCM scm_logtest (SCM n1, SCM n2); extern SCM scm_logbit_p (SCM n1, SCM n2); extern SCM scm_lognot (SCM n); extern SCM scm_modulo_expt (SCM n, SCM k, SCM m); extern SCM scm_integer_expt (SCM z1, SCM z2); extern SCM scm_ash (SCM n, SCM cnt); extern SCM scm_bit_extract (SCM n, SCM start, SCM end); extern SCM scm_logcount (SCM n); extern SCM scm_integer_length (SCM n); extern size_t scm_iint2str (scm_t_intmax num, int rad, char *p); extern size_t scm_iuint2str (scm_t_uintmax num, int rad, char *p); extern SCM scm_number_to_string (SCM x, SCM radix); extern int scm_print_real (SCM sexp, SCM port, scm_print_state *pstate); extern int scm_print_complex (SCM sexp, SCM port, scm_print_state *pstate); extern int scm_bigprint (SCM exp, SCM port, scm_print_state *pstate); extern SCM scm_c_locale_stringn_to_number (const char *mem, size_t len, unsigned int radix); extern SCM scm_string_to_number (SCM str, SCM radix); extern SCM scm_bigequal (SCM x, SCM y); extern SCM scm_real_equalp (SCM x, SCM y); extern SCM scm_complex_equalp (SCM x, SCM y); extern SCM scm_number_p (SCM x); extern SCM scm_complex_p (SCM x); extern SCM scm_real_p (SCM x); extern SCM scm_rational_p (SCM z); extern SCM scm_integer_p (SCM x); extern SCM scm_inexact_p (SCM x); extern SCM scm_num_eq_p (SCM x, SCM y); extern SCM scm_less_p (SCM x, SCM y); extern SCM scm_gr_p (SCM x, SCM y); extern SCM scm_leq_p (SCM x, SCM y); extern SCM scm_geq_p (SCM x, SCM y); extern SCM scm_zero_p (SCM z); extern SCM scm_positive_p (SCM x); extern SCM scm_negative_p (SCM x); extern SCM scm_max (SCM x, SCM y); extern SCM scm_min (SCM x, SCM y); extern SCM scm_sum (SCM x, SCM y); extern SCM scm_oneplus (SCM x); extern SCM scm_difference (SCM x, SCM y); extern SCM scm_oneminus (SCM x); extern SCM scm_product (SCM x, SCM y); extern SCM scm_divide (SCM x, SCM y); extern SCM scm_floor (SCM x); extern SCM scm_ceiling (SCM x); extern double scm_asinh (double x); extern double scm_acosh (double x); extern double scm_atanh (double x); extern double scm_c_truncate (double x); extern double scm_c_round (double x); extern SCM scm_truncate_number (SCM x); extern SCM scm_round_number (SCM x); extern SCM scm_sys_expt (SCM z1, SCM z2); extern SCM scm_sys_atan2 (SCM z1, SCM z2); extern SCM scm_make_rectangular (SCM z1, SCM z2); extern SCM scm_make_polar (SCM z1, SCM z2); extern SCM scm_real_part (SCM z); extern SCM scm_imag_part (SCM z); extern SCM scm_magnitude (SCM z); extern SCM scm_angle (SCM z); extern SCM scm_exact_to_inexact (SCM z); extern SCM scm_inexact_to_exact (SCM z); extern SCM scm_trunc (SCM x); extern SCM scm_log (SCM z); extern SCM scm_log10 (SCM z); extern SCM scm_exp (SCM z); extern SCM scm_sqrt (SCM z); extern SCM scm_i_mkbig (void); extern SCM scm_i_normbig (SCM x); extern int scm_i_bigcmp (SCM a, SCM b); extern SCM scm_i_dbl2big (double d); extern SCM scm_i_dbl2num (double d); extern double scm_i_big2dbl (SCM b); extern SCM scm_i_long2big (long n); extern SCM scm_i_ulong2big (unsigned long n); extern SCM scm_i_clonebig (SCM src_big, int same_sign_p); extern SCM scm_rationalize (SCM x, SCM err); extern SCM scm_numerator (SCM z); extern SCM scm_denominator (SCM z); extern double scm_i_fraction2double (SCM z); extern SCM scm_i_fraction_equalp (SCM x, SCM y); extern int scm_i_print_fraction (SCM sexp, SCM port, scm_print_state *pstate); extern void scm_i_print_double (double val, SCM port); extern void scm_i_print_complex (double real, double imag, SCM port); extern int scm_is_integer (SCM val); extern int scm_is_signed_integer (SCM val, scm_t_intmax min, scm_t_intmax max); extern int scm_is_unsigned_integer (SCM val, scm_t_uintmax min, scm_t_uintmax max); extern SCM scm_from_signed_integer (scm_t_intmax val); extern SCM scm_from_unsigned_integer (scm_t_uintmax val); extern scm_t_intmax scm_to_signed_integer (SCM val, scm_t_intmax min, scm_t_intmax max); extern scm_t_uintmax scm_to_unsigned_integer (SCM val, scm_t_uintmax min, scm_t_uintmax max); extern scm_t_int8 scm_to_int8 (SCM x); extern SCM scm_from_int8 (scm_t_int8 x); extern scm_t_uint8 scm_to_uint8 (SCM x); extern SCM scm_from_uint8 (scm_t_uint8 x); extern scm_t_int16 scm_to_int16 (SCM x); extern SCM scm_from_int16 (scm_t_int16 x); extern scm_t_uint16 scm_to_uint16 (SCM x); extern SCM scm_from_uint16 (scm_t_uint16 x); extern scm_t_int32 scm_to_int32 (SCM x); extern SCM scm_from_int32 (scm_t_int32 x); extern scm_t_uint32 scm_to_uint32 (SCM x); extern SCM scm_from_uint32 (scm_t_uint32 x); extern scm_t_int64 scm_to_int64 (SCM x); extern SCM scm_from_int64 (scm_t_int64 x); extern scm_t_uint64 scm_to_uint64 (SCM x); extern SCM scm_from_uint64 (scm_t_uint64 x); extern void scm_to_mpz (SCM x, mpz_t rop); extern SCM scm_from_mpz (mpz_t rop); # 462 "/usr/include/libguile/numbers.h" 3 4 extern int scm_is_real (SCM val); extern int scm_is_rational (SCM val); extern double scm_to_double (SCM val); extern SCM scm_from_double (double val); extern int scm_is_complex (SCM val); extern SCM scm_c_make_rectangular (double re, double im); extern SCM scm_c_make_polar (double mag, double ang); extern double scm_c_real_part (SCM z); extern double scm_c_imag_part (SCM z); extern double scm_c_magnitude (SCM z); extern double scm_c_angle (SCM z); extern int scm_is_number (SCM val); extern void scm_init_numbers (void); # 68 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/objects.h" 1 3 4 # 115 "/usr/include/libguile/objects.h" 3 4 struct scm_metaclass_standard { SCM layout; SCM vcell; SCM vtable; SCM print; }; struct scm_metaclass_operator { SCM layout; SCM vcell; SCM vtable; SCM print; SCM procedure; SCM setter; }; # 158 "/usr/include/libguile/objects.h" 3 4 typedef struct scm_effective_slot_definition { SCM name; long location; SCM init_value; SCM (*get) (SCM obj, SCM slotdef); SCM (*set) (SCM obj, SCM slotdef, SCM value); } scm_effective_slot_definition; # 179 "/usr/include/libguile/objects.h" 3 4 extern SCM scm_metaclass_standard; extern SCM scm_metaclass_operator; extern SCM scm_make_extended_class (char const *type_name, int applicablep); extern void scm_i_inherit_applicable (SCM c); extern void scm_make_port_classes (long ptobnum, char *type_name); extern void scm_change_object_class (SCM, SCM, SCM); extern SCM scm_memoize_method (SCM x, SCM args); extern SCM scm_mcache_lookup_cmethod (SCM cache, SCM args); extern SCM scm_mcache_compute_cmethod (SCM cache, SCM args); extern SCM scm_call_generic_3 (SCM gf, SCM a1, SCM a2, SCM a3); extern SCM scm_entity_p (SCM obj); extern SCM scm_operator_p (SCM obj); extern SCM scm_valid_object_procedure_p (SCM proc); extern SCM scm_set_object_procedure_x (SCM obj, SCM proc); extern SCM scm_make_class_object (SCM metaclass, SCM layout); extern SCM scm_make_subclass_object (SCM c, SCM layout); extern SCM scm_i_make_class_object (SCM metaclass, SCM layout_string, unsigned long flags); extern void scm_init_objects (void); # 69 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/objprop.h" 1 3 4 # 29 "/usr/include/libguile/objprop.h" 3 4 extern SCM scm_object_properties (SCM obj); extern SCM scm_set_object_properties_x (SCM obj, SCM plist); extern SCM scm_object_property (SCM obj, SCM key); extern SCM scm_set_object_property_x (SCM obj, SCM key, SCM val); extern void scm_init_objprop (void); # 70 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/options.h" 1 3 4 # 71 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/pairs.h" 1 3 4 # 81 "/usr/include/libguile/pairs.h" 3 4 extern SCM scm_cons (SCM x, SCM y); extern SCM scm_cons2 (SCM w, SCM x, SCM y); extern SCM scm_pair_p (SCM x); extern SCM scm_car (SCM x); extern SCM scm_cdr (SCM x); extern SCM scm_set_car_x (SCM pair, SCM value); extern SCM scm_set_cdr_x (SCM pair, SCM value); # 120 "/usr/include/libguile/pairs.h" 3 4 extern SCM scm_i_chase_pairs (SCM x, scm_t_uint32 pattern); # 151 "/usr/include/libguile/pairs.h" 3 4 extern void scm_init_pairs (void); # 72 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/ports.h" 1 3 4 # 73 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/posix.h" 1 3 4 # 32 "/usr/include/libguile/posix.h" 3 4 extern SCM scm_tcsetpgrp (SCM port, SCM pgid); extern SCM scm_tcgetpgrp (SCM port); extern SCM scm_ctermid (void); extern SCM scm_setsid (void); extern SCM scm_setpgid (SCM pid, SCM pgid); extern SCM scm_pipe (void); extern SCM scm_getgroups (void); extern SCM scm_setgroups (SCM groups); extern SCM scm_getpgrp (void); extern SCM scm_getpwuid (SCM user); extern SCM scm_setpwent (SCM arg); extern SCM scm_getgrgid (SCM name); extern SCM scm_setgrent (SCM arg); extern SCM scm_kill (SCM pid, SCM sig); extern SCM scm_waitpid (SCM pid, SCM options); extern SCM scm_status_exit_val (SCM status); extern SCM scm_status_term_sig (SCM status); extern SCM scm_status_stop_sig (SCM status); extern SCM scm_getppid (void); extern SCM scm_getuid (void); extern SCM scm_getgid (void); extern SCM scm_geteuid (void); extern SCM scm_getegid (void); extern SCM scm_setuid (SCM uid); extern SCM scm_setgid (SCM gid); extern SCM scm_seteuid (SCM euid); extern SCM scm_setegid (SCM egid); extern SCM scm_ttyname (SCM port); extern SCM scm_execl (SCM filename, SCM args); extern SCM scm_execlp (SCM filename, SCM args); extern SCM scm_execle (SCM filename, SCM env, SCM args); extern SCM scm_fork (void); extern SCM scm_uname (void); extern SCM scm_environ (SCM env); extern SCM scm_tmpnam (void); extern SCM scm_mkstemp (SCM tmpl); extern SCM scm_open_pipe (SCM pipestr, SCM modes); extern SCM scm_close_pipe (SCM port); extern SCM scm_utime (SCM pathname, SCM actime, SCM modtime); extern SCM scm_access (SCM path, SCM how); extern SCM scm_getpid (void); extern SCM scm_putenv (SCM str); extern SCM scm_setlocale (SCM category, SCM locale); extern SCM scm_mknod (SCM path, SCM type, SCM perms, SCM dev); extern SCM scm_nice (SCM incr); extern SCM scm_sync (void); extern SCM scm_crypt (SCM key, SCM salt); extern SCM scm_chroot (SCM path); extern SCM scm_getlogin (void); extern SCM scm_cuserid (void); extern SCM scm_getpriority (SCM which, SCM who); extern SCM scm_setpriority (SCM which, SCM who, SCM prio); extern SCM scm_getpass (SCM prompt); extern SCM scm_flock (SCM file, SCM operation); extern SCM scm_sethostname (SCM name); extern SCM scm_gethostname (void); extern void scm_init_posix (void); # 74 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/print.h" 1 3 4 # 75 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/procprop.h" 1 3 4 # 29 "/usr/include/libguile/procprop.h" 3 4 extern SCM scm_sym_name; extern SCM scm_sym_arity; extern SCM scm_sym_system_procedure; extern SCM scm_i_procedure_arity (SCM proc); extern SCM scm_procedure_properties (SCM proc); extern SCM scm_set_procedure_properties_x (SCM proc, SCM new_val); extern SCM scm_procedure_property (SCM p, SCM k); extern SCM scm_set_procedure_property_x (SCM p, SCM k, SCM v); extern void scm_init_procprop (void); # 76 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/properties.h" 1 3 4 # 27 "/usr/include/libguile/properties.h" 3 4 extern SCM scm_primitive_make_property (SCM not_found_proc); extern SCM scm_primitive_property_ref (SCM prop, SCM obj); extern SCM scm_primitive_property_set_x (SCM prop, SCM obj, SCM val); extern SCM scm_primitive_property_del_x (SCM prop, SCM obj); extern void scm_init_properties (void); # 77 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/procs.h" 1 3 4 # 78 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/ramap.h" 1 3 4 # 29 "/usr/include/libguile/ramap.h" 3 4 extern int scm_ra_matchp (SCM ra0, SCM ras); extern int scm_ramapc (int (*cproc) (), SCM data, SCM ra0, SCM lra, const char *what); extern int scm_array_fill_int (SCM ra, SCM fill, SCM ignore); extern SCM scm_array_fill_x (SCM ra, SCM fill); extern SCM scm_array_copy_x (SCM src, SCM dst); extern int scm_ra_eqp (SCM ra0, SCM ras); extern int scm_ra_lessp (SCM ra0, SCM ras); extern int scm_ra_leqp (SCM ra0, SCM ras); extern int scm_ra_grp (SCM ra0, SCM ras); extern int scm_ra_greqp (SCM ra0, SCM ras); extern int scm_ra_sum (SCM ra0, SCM ras); extern int scm_ra_difference (SCM ra0, SCM ras); extern int scm_ra_product (SCM ra0, SCM ras); extern int scm_ra_divide (SCM ra0, SCM ras); extern int scm_array_identity (SCM src, SCM dst); extern SCM scm_array_map_x (SCM ra0, SCM proc, SCM lra); extern SCM scm_array_for_each (SCM proc, SCM ra0, SCM lra); extern SCM scm_array_index_map_x (SCM ra, SCM proc); extern SCM scm_raequal (SCM ra0, SCM ra1); extern SCM scm_array_equal_p (SCM ra0, SCM ra1); extern void scm_init_ramap (void); # 79 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/random.h" 1 3 4 # 40 "/usr/include/libguile/random.h" 3 4 typedef struct scm_t_rstate { int reserved0; double reserved1; } scm_t_rstate; typedef struct scm_t_rng { size_t rstate_size; unsigned long (*random_bits) (scm_t_rstate *state); void (*init_rstate) (scm_t_rstate *state, const char *seed, int n); scm_t_rstate *(*copy_rstate) (scm_t_rstate *state); } scm_t_rng; extern scm_t_rng scm_the_rng; typedef struct scm_t_i_rstate { scm_t_rstate rstate; unsigned long w; unsigned long c; } scm_t_i_rstate; extern unsigned long scm_i_uniform32 (scm_t_i_rstate *); extern void scm_i_init_rstate (scm_t_i_rstate *, const char *seed, int n); extern scm_t_i_rstate *scm_i_copy_rstate (scm_t_i_rstate *); extern scm_t_rstate *scm_c_make_rstate (const char *, int); extern scm_t_rstate *scm_c_default_rstate (void); extern double scm_c_uniform01 (scm_t_rstate *); extern double scm_c_normal01 (scm_t_rstate *); extern double scm_c_exp1 (scm_t_rstate *); extern unsigned long scm_c_random (scm_t_rstate *, unsigned long m); extern scm_t_uint64 scm_c_random64 (scm_t_rstate *state, scm_t_uint64 m); extern SCM scm_c_random_bignum (scm_t_rstate *, SCM m); extern scm_t_bits scm_tc16_rstate; extern unsigned char scm_masktab[256]; extern SCM scm_var_random_state; extern SCM scm_random (SCM n, SCM state); extern SCM scm_copy_random_state (SCM state); extern SCM scm_seed_to_random_state (SCM seed); extern SCM scm_random_uniform (SCM state); extern SCM scm_random_solid_sphere_x (SCM v, SCM state); extern SCM scm_random_hollow_sphere_x (SCM v, SCM state); extern SCM scm_random_normal (SCM state); extern SCM scm_random_normal_vector_x (SCM v, SCM state); extern SCM scm_random_exp (SCM state); extern void scm_init_random (void); # 80 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/read.h" 1 3 4 # 48 "/usr/include/libguile/read.h" 3 4 extern scm_t_option scm_read_opts[]; # 64 "/usr/include/libguile/read.h" 3 4 extern SCM scm_sym_dot; extern SCM scm_read_options (SCM setting); extern SCM scm_read (SCM port); extern size_t scm_read_token (int ic, SCM * tok_buf, SCM port, int weird); extern SCM scm_read_hash_extend (SCM chr, SCM proc); extern void scm_i_input_error (const char *func, SCM port, const char *message, SCM arg) __attribute__ ((noreturn)); extern void scm_init_read (void); # 81 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/root.h" 1 3 4 # 82 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/scmsigs.h" 1 3 4 # 29 "/usr/include/libguile/scmsigs.h" 3 4 extern SCM scm_sigaction (SCM signum, SCM handler, SCM flags); extern SCM scm_sigaction_for_thread (SCM signum, SCM handler, SCM flags, SCM thread); extern SCM scm_restore_signals (void); extern SCM scm_alarm (SCM i); extern SCM scm_setitimer (SCM which_timer, SCM interval_seconds, SCM interval_microseconds, SCM value_seconds, SCM value_microseconds); extern SCM scm_getitimer (SCM which_timer); extern SCM scm_pause (void); extern SCM scm_sleep (SCM i); extern SCM scm_usleep (SCM i); extern SCM scm_raise (SCM sig); extern void scm_init_scmsigs (void); # 83 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/script.h" 1 3 4 # 28 "/usr/include/libguile/script.h" 3 4 extern char *scm_find_executable (const char *name); extern char *scm_find_impl_file (char *exec_path, const char *generic_name, const char *initname, const char *sep); extern char **scm_get_meta_args (int argc, char **argv); extern int scm_count_argv (char **argv); extern void scm_shell_usage (int fatal, char *message); extern SCM scm_compile_shell_switches (int argc, char **argv); extern void scm_shell (int argc, char **argv); extern char *scm_usage_name; extern void scm_init_script (void); # 84 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/simpos.h" 1 3 4 # 29 "/usr/include/libguile/simpos.h" 3 4 extern SCM scm_system (SCM cmd); extern SCM scm_system_star (SCM cmds); extern SCM scm_getenv (SCM nam); extern SCM scm_primitive_exit (SCM status); extern SCM scm_primitive__exit (SCM status); extern void scm_init_simpos (void); # 85 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/smob.h" 1 3 4 # 31 "/usr/include/libguile/smob.h" 3 4 typedef struct scm_smob_descriptor { char const *name; size_t size; SCM (*mark) (SCM); size_t (*free) (SCM); int (*print) (SCM exp, SCM port, scm_print_state *pstate); SCM (*equalp) (SCM, SCM); SCM (*apply) (); SCM (*apply_0) (SCM); SCM (*apply_1) (SCM, SCM); SCM (*apply_2) (SCM, SCM, SCM); SCM (*apply_3) (SCM, SCM, SCM, SCM); int gsubr_type; } scm_smob_descriptor; # 115 "/usr/include/libguile/smob.h" 3 4 extern long scm_numsmob; extern scm_smob_descriptor scm_smobs[]; extern void scm_i_set_smob_flags (SCM x, scm_t_bits data); extern SCM scm_mark0 (SCM ptr); extern SCM scm_markcdr (SCM ptr); extern size_t scm_free0 (SCM ptr); extern size_t scm_smob_free (SCM obj); extern int scm_smob_print (SCM exp, SCM port, scm_print_state *pstate); # 136 "/usr/include/libguile/smob.h" 3 4 extern scm_t_bits scm_make_smob_type (char const *name, size_t size); extern void scm_set_smob_mark (scm_t_bits tc, SCM (*mark) (SCM)); extern void scm_set_smob_free (scm_t_bits tc, size_t (*free) (SCM)); extern void scm_set_smob_print (scm_t_bits tc, int (*print) (SCM, SCM, scm_print_state*)); extern void scm_set_smob_equalp (scm_t_bits tc, SCM (*equalp) (SCM, SCM)); extern void scm_set_smob_apply (scm_t_bits tc, SCM (*apply) (), unsigned int req, unsigned int opt, unsigned int rst); extern void scm_assert_smob_type (scm_t_bits tag, SCM val); extern SCM scm_make_smob (scm_t_bits tc); extern void scm_smob_prehistory (void); # 86 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/snarf.h" 1 3 4 # 87 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/socket.h" 1 3 4 # 29 "/usr/include/libguile/socket.h" 3 4 extern SCM scm_htons (SCM in); extern SCM scm_ntohs (SCM in); extern SCM scm_htonl (SCM in); extern SCM scm_ntohl (SCM in); extern SCM scm_inet_aton (SCM address); extern SCM scm_inet_ntoa (SCM inetid); extern SCM scm_inet_netof (SCM address); extern SCM scm_lnaof (SCM address); extern SCM scm_inet_makeaddr (SCM net, SCM lna); extern SCM scm_inet_pton (SCM family, SCM address); extern SCM scm_inet_ntop (SCM family, SCM address); extern SCM scm_socket (SCM family, SCM style, SCM proto); extern SCM scm_socketpair (SCM family, SCM style, SCM proto); extern SCM scm_getsockopt (SCM sfd, SCM level, SCM optname); extern SCM scm_setsockopt (SCM sfd, SCM level, SCM optname, SCM value); extern SCM scm_shutdown (SCM sfd, SCM how); extern SCM scm_connect (SCM sockfd, SCM fam, SCM address, SCM args); extern SCM scm_bind (SCM sockfd, SCM fam, SCM address, SCM args); extern SCM scm_listen (SCM sfd, SCM backlog); extern SCM scm_accept (SCM sockfd); extern SCM scm_getsockname (SCM sockfd); extern SCM scm_getpeername (SCM sockfd); extern SCM scm_recv (SCM sockfd, SCM buff_or_size, SCM flags); extern SCM scm_send (SCM sockfd, SCM message, SCM flags); extern SCM scm_recvfrom (SCM sockfd, SCM buff_or_size, SCM flags, SCM offset, SCM length); extern SCM scm_sendto (SCM sockfd, SCM message, SCM fam, SCM address, SCM args_and_flags); extern void scm_init_socket (void); struct sockaddr; extern SCM scm_from_sockaddr (const struct sockaddr *address, unsigned addr_size); extern struct sockaddr *scm_to_sockaddr (SCM address, size_t *adress_size); extern struct sockaddr *scm_c_make_socket_address (SCM family, SCM address, SCM args, size_t *address_size); extern SCM scm_make_socket_address (SCM family, SCM address, SCM args); # 88 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/sort.h" 1 3 4 # 29 "/usr/include/libguile/sort.h" 3 4 extern SCM scm_restricted_vector_sort_x (SCM vec, SCM less, SCM startpos, SCM endpos); extern SCM scm_sorted_p (SCM ls, SCM less); extern SCM scm_merge (SCM ls1, SCM ls2, SCM less); extern SCM scm_merge_x (SCM ls1, SCM ls2, SCM less); extern SCM scm_sort (SCM ls, SCM less); extern SCM scm_sort_x (SCM ls, SCM less); extern SCM scm_stable_sort (SCM ls, SCM less); extern SCM scm_stable_sort_x (SCM ls, SCM less); extern SCM scm_sort_list (SCM ls, SCM less); extern SCM scm_sort_list_x (SCM ls, SCM less); extern void scm_init_sort (void); # 89 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/srcprop.h" 1 3 4 # 55 "/usr/include/libguile/srcprop.h" 3 4 extern scm_t_bits scm_tc16_srcprops; extern SCM scm_sym_filename; extern SCM scm_sym_copy; extern SCM scm_sym_line; extern SCM scm_sym_column; extern SCM scm_sym_breakpoint; extern int scm_c_source_property_breakpoint_p (SCM form); extern SCM scm_srcprops_to_plist (SCM obj); extern SCM scm_make_srcprops (long line, int col, SCM fname, SCM copy, SCM plist); extern SCM scm_source_property (SCM obj, SCM key); extern SCM scm_set_source_property_x (SCM obj, SCM key, SCM datum); extern SCM scm_source_properties (SCM obj); extern SCM scm_set_source_properties_x (SCM obj, SCM props); extern void scm_finish_srcprop (void); extern void scm_init_srcprop (void); # 90 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/stackchk.h" 1 3 4 # 56 "/usr/include/libguile/stackchk.h" 3 4 extern int scm_stack_checking_enabled_p; extern void scm_report_stack_overflow (void); extern long scm_stack_size (SCM_STACKITEM *start); extern void scm_stack_report (void); extern SCM scm_sys_get_stack_size (void); extern void scm_init_stackchk (void); # 91 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/stime.h" 1 3 4 # 27 "/usr/include/libguile/stime.h" 3 4 # 1 "/usr/include/unistd.h" 1 3 4 # 28 "/usr/include/unistd.h" 3 4 extern "C" { # 203 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/posix_opt.h" 1 3 4 # 204 "/usr/include/unistd.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/environments.h" 1 3 4 # 208 "/usr/include/unistd.h" 2 3 4 # 227 "/usr/include/unistd.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 228 "/usr/include/unistd.h" 2 3 4 # 275 "/usr/include/unistd.h" 3 4 typedef __socklen_t socklen_t; # 288 "/usr/include/unistd.h" 3 4 extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); extern int euidaccess (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); extern int eaccess (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); extern int faccessat (int __fd, __const char *__file, int __type, int __flag) throw () __attribute__ ((__nonnull__ (2))) ; # 335 "/usr/include/unistd.h" 3 4 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw (); # 346 "/usr/include/unistd.h" 3 4 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) throw (); extern int close (int __fd); extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; extern ssize_t write (int __fd, __const void *__buf, size_t __n) ; # 377 "/usr/include/unistd.h" 3 4 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) ; extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, __off_t __offset) ; # 405 "/usr/include/unistd.h" 3 4 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) ; extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, __off64_t __offset) ; extern int pipe (int __pipedes[2]) throw () ; extern int pipe2 (int __pipedes[2], int __flags) throw () ; # 433 "/usr/include/unistd.h" 3 4 extern unsigned int alarm (unsigned int __seconds) throw (); # 445 "/usr/include/unistd.h" 3 4 extern unsigned int sleep (unsigned int __seconds); extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) throw (); extern int usleep (__useconds_t __useconds); # 470 "/usr/include/unistd.h" 3 4 extern int pause (void); extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) throw () __attribute__ ((__nonnull__ (1))) ; extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ; extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) throw () __attribute__ ((__nonnull__ (1))) ; extern int fchownat (int __fd, __const char *__file, __uid_t __owner, __gid_t __group, int __flag) throw () __attribute__ ((__nonnull__ (2))) ; extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ; extern int fchdir (int __fd) throw () ; # 512 "/usr/include/unistd.h" 3 4 extern char *getcwd (char *__buf, size_t __size) throw () ; extern char *get_current_dir_name (void) throw (); extern char *getwd (char *__buf) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ; extern int dup (int __fd) throw () ; extern int dup2 (int __fd, int __fd2) throw (); extern int dup3 (int __fd, int __fd2, int __flags) throw (); extern char **__environ; extern char **environ; extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1, 2))); extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) throw () __attribute__ ((__nonnull__ (2))); extern int execv (__const char *__path, char *__const __argv[]) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execle (__const char *__path, __const char *__arg, ...) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execl (__const char *__path, __const char *__arg, ...) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execvp (__const char *__file, char *__const __argv[]) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execlp (__const char *__file, __const char *__arg, ...) throw () __attribute__ ((__nonnull__ (1, 2))); extern int execvpe (__const char *__file, char *__const __argv[], char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1, 2))); extern int nice (int __inc) throw () ; extern void _exit (int __status) __attribute__ ((__noreturn__)); # 1 "/usr/include/i386-linux-gnu/bits/confname.h" 1 3 4 # 26 "/usr/include/i386-linux-gnu/bits/confname.h" 3 4 enum { _PC_LINK_MAX, _PC_MAX_CANON, _PC_MAX_INPUT, _PC_NAME_MAX, _PC_PATH_MAX, _PC_PIPE_BUF, _PC_CHOWN_RESTRICTED, _PC_NO_TRUNC, _PC_VDISABLE, _PC_SYNC_IO, _PC_ASYNC_IO, _PC_PRIO_IO, _PC_SOCK_MAXBUF, _PC_FILESIZEBITS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, _PC_SYMLINK_MAX, _PC_2_SYMLINKS }; enum { _SC_ARG_MAX, _SC_CHILD_MAX, _SC_CLK_TCK, _SC_NGROUPS_MAX, _SC_OPEN_MAX, _SC_STREAM_MAX, _SC_TZNAME_MAX, _SC_JOB_CONTROL, _SC_SAVED_IDS, _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_AIO_LISTIO_MAX, _SC_AIO_MAX, _SC_AIO_PRIO_DELTA_MAX, _SC_DELAYTIMER_MAX, _SC_MQ_OPEN_MAX, _SC_MQ_PRIO_MAX, _SC_VERSION, _SC_PAGESIZE, _SC_RTSIG_MAX, _SC_SEM_NSEMS_MAX, _SC_SEM_VALUE_MAX, _SC_SIGQUEUE_MAX, _SC_TIMER_MAX, _SC_BC_BASE_MAX, _SC_BC_DIM_MAX, _SC_BC_SCALE_MAX, _SC_BC_STRING_MAX, _SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_EXPR_NEST_MAX, _SC_LINE_MAX, _SC_RE_DUP_MAX, _SC_CHARCLASS_NAME_MAX, _SC_2_VERSION, _SC_2_C_BIND, _SC_2_C_DEV, _SC_2_FORT_DEV, _SC_2_FORT_RUN, _SC_2_SW_DEV, _SC_2_LOCALEDEF, _SC_PII, _SC_PII_XTI, _SC_PII_SOCKET, _SC_PII_INTERNET, _SC_PII_OSI, _SC_POLL, _SC_SELECT, _SC_UIO_MAXIOV, _SC_IOV_MAX = _SC_UIO_MAXIOV, _SC_PII_INTERNET_STREAM, _SC_PII_INTERNET_DGRAM, _SC_PII_OSI_COTS, _SC_PII_OSI_CLTS, _SC_PII_OSI_M, _SC_T_IOV_MAX, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_GETGR_R_SIZE_MAX, _SC_GETPW_R_SIZE_MAX, _SC_LOGIN_NAME_MAX, _SC_TTY_NAME_MAX, _SC_THREAD_DESTRUCTOR_ITERATIONS, _SC_THREAD_KEYS_MAX, _SC_THREAD_STACK_MIN, _SC_THREAD_THREADS_MAX, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED, _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES, _SC_AVPHYS_PAGES, _SC_ATEXIT_MAX, _SC_PASS_MAX, _SC_XOPEN_VERSION, _SC_XOPEN_XCU_VERSION, _SC_XOPEN_UNIX, _SC_XOPEN_CRYPT, _SC_XOPEN_ENH_I18N, _SC_XOPEN_SHM, _SC_2_CHAR_TERM, _SC_2_C_VERSION, _SC_2_UPE, _SC_XOPEN_XPG2, _SC_XOPEN_XPG3, _SC_XOPEN_XPG4, _SC_CHAR_BIT, _SC_CHAR_MAX, _SC_CHAR_MIN, _SC_INT_MAX, _SC_INT_MIN, _SC_LONG_BIT, _SC_WORD_BIT, _SC_MB_LEN_MAX, _SC_NZERO, _SC_SSIZE_MAX, _SC_SCHAR_MAX, _SC_SCHAR_MIN, _SC_SHRT_MAX, _SC_SHRT_MIN, _SC_UCHAR_MAX, _SC_UINT_MAX, _SC_ULONG_MAX, _SC_USHRT_MAX, _SC_NL_ARGMAX, _SC_NL_LANGMAX, _SC_NL_MSGMAX, _SC_NL_NMAX, _SC_NL_SETMAX, _SC_NL_TEXTMAX, _SC_XBS5_ILP32_OFF32, _SC_XBS5_ILP32_OFFBIG, _SC_XBS5_LP64_OFF64, _SC_XBS5_LPBIG_OFFBIG, _SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME, _SC_XOPEN_REALTIME_THREADS, _SC_ADVISORY_INFO, _SC_BARRIERS, _SC_BASE, _SC_C_LANG_SUPPORT, _SC_C_LANG_SUPPORT_R, _SC_CLOCK_SELECTION, _SC_CPUTIME, _SC_THREAD_CPUTIME, _SC_DEVICE_IO, _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, _SC_PIPE, _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, _SC_MONOTONIC_CLOCK, _SC_MULTI_PROCESS, _SC_SINGLE_PROCESS, _SC_NETWORKING, _SC_READER_WRITER_LOCKS, _SC_SPIN_LOCKS, _SC_REGEXP, _SC_REGEX_VERSION, _SC_SHELL, _SC_SIGNALS, _SC_SPAWN, _SC_SPORADIC_SERVER, _SC_THREAD_SPORADIC_SERVER, _SC_SYSTEM_DATABASE, _SC_SYSTEM_DATABASE_R, _SC_TIMEOUTS, _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, _SC_SYMLOOP_MAX, _SC_STREAMS, _SC_2_PBS_CHECKPOINT, _SC_V6_ILP32_OFF32, _SC_V6_ILP32_OFFBIG, _SC_V6_LP64_OFF64, _SC_V6_LPBIG_OFFBIG, _SC_HOST_NAME_MAX, _SC_TRACE, _SC_TRACE_EVENT_FILTER, _SC_TRACE_INHERIT, _SC_TRACE_LOG, _SC_LEVEL1_ICACHE_SIZE, _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC, _SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE, _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC, _SC_LEVEL3_CACHE_LINESIZE, _SC_LEVEL4_CACHE_SIZE, _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE, _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, _SC_RAW_SOCKETS, _SC_V7_ILP32_OFF32, _SC_V7_ILP32_OFFBIG, _SC_V7_LP64_OFF64, _SC_V7_LPBIG_OFFBIG, _SC_SS_REPL_MAX, _SC_TRACE_EVENT_NAME_MAX, _SC_TRACE_NAME_MAX, _SC_TRACE_SYS_MAX, _SC_TRACE_USER_EVENT_MAX, _SC_XOPEN_STREAMS, _SC_THREAD_ROBUST_PRIO_INHERIT, _SC_THREAD_ROBUST_PRIO_PROTECT }; enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _CS_V5_WIDTH_RESTRICTED_ENVS, _CS_V7_WIDTH_RESTRICTED_ENVS, _CS_LFS_CFLAGS = 1000, _CS_LFS_LDFLAGS, _CS_LFS_LIBS, _CS_LFS_LINTFLAGS, _CS_LFS64_CFLAGS, _CS_LFS64_LDFLAGS, _CS_LFS64_LIBS, _CS_LFS64_LINTFLAGS, _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, _CS_XBS5_ILP32_OFF32_LDFLAGS, _CS_XBS5_ILP32_OFF32_LIBS, _CS_XBS5_ILP32_OFF32_LINTFLAGS, _CS_XBS5_ILP32_OFFBIG_CFLAGS, _CS_XBS5_ILP32_OFFBIG_LDFLAGS, _CS_XBS5_ILP32_OFFBIG_LIBS, _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, _CS_XBS5_LP64_OFF64_CFLAGS, _CS_XBS5_LP64_OFF64_LDFLAGS, _CS_XBS5_LP64_OFF64_LIBS, _CS_XBS5_LP64_OFF64_LINTFLAGS, _CS_XBS5_LPBIG_OFFBIG_CFLAGS, _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, _CS_XBS5_LPBIG_OFFBIG_LIBS, _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V7_ILP32_OFF32_CFLAGS, _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, _CS_POSIX_V7_ILP32_OFF32_LIBS, _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_LIBS, _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V7_LP64_OFF64_CFLAGS, _CS_POSIX_V7_LP64_OFF64_LDFLAGS, _CS_POSIX_V7_LP64_OFF64_LIBS, _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, _CS_V6_ENV, _CS_V7_ENV }; # 611 "/usr/include/unistd.h" 2 3 4 extern long int pathconf (__const char *__path, int __name) throw () __attribute__ ((__nonnull__ (1))); extern long int fpathconf (int __fd, int __name) throw (); extern long int sysconf (int __name) throw (); extern size_t confstr (int __name, char *__buf, size_t __len) throw (); extern __pid_t getpid (void) throw (); extern __pid_t getppid (void) throw (); extern __pid_t getpgrp (void) throw (); # 647 "/usr/include/unistd.h" 3 4 extern __pid_t __getpgid (__pid_t __pid) throw (); extern __pid_t getpgid (__pid_t __pid) throw (); extern int setpgid (__pid_t __pid, __pid_t __pgid) throw (); # 673 "/usr/include/unistd.h" 3 4 extern int setpgrp (void) throw (); # 690 "/usr/include/unistd.h" 3 4 extern __pid_t setsid (void) throw (); extern __pid_t getsid (__pid_t __pid) throw (); extern __uid_t getuid (void) throw (); extern __uid_t geteuid (void) throw (); extern __gid_t getgid (void) throw (); extern __gid_t getegid (void) throw (); extern int getgroups (int __size, __gid_t __list[]) throw () ; extern int group_member (__gid_t __gid) throw (); extern int setuid (__uid_t __uid) throw (); extern int setreuid (__uid_t __ruid, __uid_t __euid) throw (); extern int seteuid (__uid_t __uid) throw (); extern int setgid (__gid_t __gid) throw (); extern int setregid (__gid_t __rgid, __gid_t __egid) throw (); extern int setegid (__gid_t __gid) throw (); extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) throw (); extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) throw (); extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) throw (); extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) throw (); extern __pid_t fork (void) throw (); extern __pid_t vfork (void) throw (); extern char *ttyname (int __fd) throw (); extern int ttyname_r (int __fd, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))) ; extern int isatty (int __fd) throw (); extern int ttyslot (void) throw (); extern int link (__const char *__from, __const char *__to) throw () __attribute__ ((__nonnull__ (1, 2))) ; extern int linkat (int __fromfd, __const char *__from, int __tofd, __const char *__to, int __flags) throw () __attribute__ ((__nonnull__ (2, 4))) ; extern int symlink (__const char *__from, __const char *__to) throw () __attribute__ ((__nonnull__ (1, 2))) ; extern ssize_t readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (1, 2))) ; extern int symlinkat (__const char *__from, int __tofd, __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ; extern ssize_t readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (2, 3))) ; extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); extern int unlinkat (int __fd, __const char *__name, int __flag) throw () __attribute__ ((__nonnull__ (2))); extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); extern __pid_t tcgetpgrp (int __fd) throw (); extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw (); extern char *getlogin (void); extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); # 894 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/getopt.h" 1 3 4 # 50 "/usr/include/getopt.h" 3 4 extern "C" { # 59 "/usr/include/getopt.h" 3 4 extern char *optarg; # 73 "/usr/include/getopt.h" 3 4 extern int optind; extern int opterr; extern int optopt; # 152 "/usr/include/getopt.h" 3 4 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) throw (); # 187 "/usr/include/getopt.h" 3 4 } # 895 "/usr/include/unistd.h" 2 3 4 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))); extern int sethostname (__const char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))) ; extern int sethostid (long int __id) throw () ; extern int getdomainname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))) ; extern int setdomainname (__const char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))) ; extern int vhangup (void) throw (); extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ; extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) throw () __attribute__ ((__nonnull__ (1))); extern int acct (__const char *__name) throw (); extern char *getusershell (void) throw (); extern void endusershell (void) throw (); extern void setusershell (void) throw (); extern int daemon (int __nochdir, int __noclose) throw () ; extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ; extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); # 980 "/usr/include/unistd.h" 3 4 extern int fsync (int __fd); extern int syncfs (int __fd) throw (); extern long int gethostid (void); extern void sync (void) throw (); extern int getpagesize (void) throw () __attribute__ ((__const__)); extern int getdtablesize (void) throw (); # 1018 "/usr/include/unistd.h" 3 4 extern int truncate (__const char *__file, __off_t __length) throw () __attribute__ ((__nonnull__ (1))) ; # 1030 "/usr/include/unistd.h" 3 4 extern int truncate64 (__const char *__file, __off64_t __length) throw () __attribute__ ((__nonnull__ (1))) ; # 1040 "/usr/include/unistd.h" 3 4 extern int ftruncate (int __fd, __off_t __length) throw () ; # 1050 "/usr/include/unistd.h" 3 4 extern int ftruncate64 (int __fd, __off64_t __length) throw () ; # 1061 "/usr/include/unistd.h" 3 4 extern int brk (void *__addr) throw () ; extern void *sbrk (intptr_t __delta) throw (); # 1082 "/usr/include/unistd.h" 3 4 extern long int syscall (long int __sysno, ...) throw (); # 1105 "/usr/include/unistd.h" 3 4 extern int lockf (int __fd, int __cmd, __off_t __len) ; # 1115 "/usr/include/unistd.h" 3 4 extern int lockf64 (int __fd, int __cmd, __off64_t __len) ; # 1136 "/usr/include/unistd.h" 3 4 extern int fdatasync (int __fildes); extern char *crypt (__const char *__key, __const char *__salt) throw () __attribute__ ((__nonnull__ (1, 2))); extern void encrypt (char *__libc_block, int __edflag) throw () __attribute__ ((__nonnull__ (1))); extern void swab (__const void *__restrict __from, void *__restrict __to, ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *ctermid (char *__s) throw (); # 1174 "/usr/include/unistd.h" 3 4 } # 28 "/usr/include/libguile/stime.h" 2 3 4 # 55 "/usr/include/libguile/stime.h" 3 4 extern long scm_c_get_internal_run_time (void); extern SCM scm_get_internal_real_time (void); extern SCM scm_get_internal_run_time (void); extern SCM scm_current_time (void); extern SCM scm_gettimeofday (void); extern SCM scm_localtime (SCM time, SCM zone); extern SCM scm_gmtime (SCM time); extern SCM scm_mktime (SCM sbd_time, SCM zone); extern SCM scm_tzset (void); extern SCM scm_times (void); extern SCM scm_strftime (SCM format, SCM stime); extern SCM scm_strptime (SCM format, SCM string); extern void scm_init_stime (void); # 92 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/strings.h" 1 3 4 # 79 "/usr/include/libguile/strings.h" 3 4 extern SCM scm_string_p (SCM x); extern SCM scm_string (SCM chrs); extern SCM scm_make_string (SCM k, SCM chr); extern SCM scm_string_length (SCM str); extern SCM scm_string_ref (SCM str, SCM k); extern SCM scm_string_set_x (SCM str, SCM k, SCM chr); extern SCM scm_substring (SCM str, SCM start, SCM end); extern SCM scm_substring_read_only (SCM str, SCM start, SCM end); extern SCM scm_substring_shared (SCM str, SCM start, SCM end); extern SCM scm_substring_copy (SCM str, SCM start, SCM end); extern SCM scm_string_append (SCM args); extern SCM scm_c_make_string (size_t len, SCM chr); extern size_t scm_c_string_length (SCM str); extern size_t scm_c_symbol_length (SCM sym); extern SCM scm_c_string_ref (SCM str, size_t pos); extern void scm_c_string_set_x (SCM str, size_t pos, SCM chr); extern SCM scm_c_substring (SCM str, size_t start, size_t end); extern SCM scm_c_substring_read_only (SCM str, size_t start, size_t end); extern SCM scm_c_substring_shared (SCM str, size_t start, size_t end); extern SCM scm_c_substring_copy (SCM str, size_t start, size_t end); extern int scm_is_string (SCM x); extern SCM scm_from_locale_string (const char *str); extern SCM scm_from_locale_stringn (const char *str, size_t len); extern SCM scm_take_locale_string (char *str); extern SCM scm_take_locale_stringn (char *str, size_t len); extern char *scm_to_locale_string (SCM str); extern char *scm_to_locale_stringn (SCM str, size_t *lenp); extern size_t scm_to_locale_stringbuf (SCM str, char *buf, size_t max_len); extern SCM scm_makfromstrs (int argc, char **argv); extern SCM scm_i_make_string (size_t len, char **datap); extern SCM scm_i_substring (SCM str, size_t start, size_t end); extern SCM scm_i_substring_read_only (SCM str, size_t start, size_t end); extern SCM scm_i_substring_shared (SCM str, size_t start, size_t end); extern SCM scm_i_substring_copy (SCM str, size_t start, size_t end); extern size_t scm_i_string_length (SCM str); extern const char *scm_i_string_chars (SCM str); extern char *scm_i_string_writable_chars (SCM str); extern void scm_i_string_stop_writing (void); extern SCM scm_i_make_symbol (SCM name, scm_t_bits flags, unsigned long hash, SCM props); extern SCM scm_i_c_make_symbol (const char *name, size_t len, scm_t_bits flags, unsigned long hash, SCM props); extern SCM scm_i_c_take_symbol (char *name, size_t len, scm_t_bits flags, unsigned long hash, SCM props); extern const char *scm_i_symbol_chars (SCM sym); extern size_t scm_i_symbol_length (SCM sym); extern SCM scm_i_symbol_substring (SCM sym, size_t start, size_t end); extern SCM scm_i_string_mark (SCM str); extern SCM scm_i_stringbuf_mark (SCM buf); extern SCM scm_i_symbol_mark (SCM buf); extern void scm_i_string_free (SCM str); extern void scm_i_stringbuf_free (SCM buf); extern void scm_i_symbol_free (SCM sym); extern char **scm_i_allocate_string_pointers (SCM list); extern void scm_i_free_string_pointers (char **pointers); extern void scm_i_get_substring_spec (size_t len, SCM start, size_t *cstart, SCM end, size_t *cend); extern SCM scm_i_take_stringbufn (char *str, size_t len); extern int scm_i_deprecated_stringp (SCM obj); extern char *scm_i_deprecated_string_chars (SCM str); extern size_t scm_i_deprecated_string_length (SCM str); # 171 "/usr/include/libguile/strings.h" 3 4 extern void scm_init_strings (void); # 93 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/srfi-13.h" 1 3 4 # 26 "/usr/include/libguile/srfi-13.h" 3 4 extern SCM scm_string_null_p (SCM s); extern SCM scm_string_any (SCM pred, SCM s, SCM start, SCM end); extern SCM scm_string_every (SCM pred, SCM s, SCM start, SCM end); extern SCM scm_string_tabulate (SCM proc, SCM len); extern SCM scm_string_to_list (SCM str); extern SCM scm_substring_to_list (SCM str, SCM start, SCM end); extern SCM scm_reverse_list_to_string (SCM chrs); extern SCM scm_string_join (SCM ls, SCM delimiter, SCM grammar); extern SCM scm_string_copy (SCM str); extern SCM scm_string_copy_x (SCM target, SCM tstart, SCM s, SCM start, SCM end); extern SCM scm_substring_move_x (SCM str1, SCM start1, SCM end1, SCM str2, SCM start2); extern SCM scm_string_take (SCM s, SCM n); extern SCM scm_string_drop (SCM s, SCM n); extern SCM scm_string_take_right (SCM s, SCM n); extern SCM scm_string_drop_right (SCM s, SCM n); extern SCM scm_string_pad (SCM s, SCM len, SCM chr, SCM start, SCM end); extern SCM scm_string_pad_right (SCM s, SCM len, SCM chr, SCM start, SCM end); extern SCM scm_string_trim (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_trim_right (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_trim_both (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_substring_fill_x (SCM str, SCM chr, SCM start, SCM end); extern SCM scm_string_fill_x (SCM str, SCM chr); extern SCM scm_string_compare (SCM s1, SCM s2, SCM proc_lt, SCM proc_eq, SCM proc_gt, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_compare_ci (SCM s1, SCM s2, SCM proc_lt, SCM proc_eq, SCM proc_gt, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_eq (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_neq (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_lt (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_gt (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_le (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_ge (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_ci_eq (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_ci_neq (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_ci_lt (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_ci_gt (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_ci_le (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_ci_ge (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_substring_hash (SCM s, SCM bound, SCM start, SCM end); extern SCM scm_substring_hash_ci (SCM s, SCM bound, SCM start, SCM end); extern SCM scm_string_prefix_length (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_prefix_length_ci (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_suffix_length (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_suffix_length_ci (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_prefix_p (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_prefix_ci_p (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_suffix_p (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_suffix_ci_p (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_index (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_index_right (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_rindex (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_skip (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_skip_right (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_count (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_contains (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_contains_ci (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_substring_upcase_x (SCM str, SCM start, SCM end); extern SCM scm_substring_upcase (SCM str, SCM start, SCM end); extern SCM scm_string_upcase_x (SCM str); extern SCM scm_string_upcase (SCM str); extern SCM scm_substring_downcase_x (SCM str, SCM start, SCM end); extern SCM scm_substring_downcase (SCM str, SCM start, SCM end); extern SCM scm_string_downcase_x (SCM str); extern SCM scm_string_downcase (SCM str); extern SCM scm_string_titlecase_x (SCM str, SCM start, SCM end); extern SCM scm_string_titlecase (SCM str, SCM start, SCM end); extern SCM scm_string_capitalize_x (SCM str); extern SCM scm_string_capitalize (SCM str); extern SCM scm_string_reverse (SCM str, SCM start, SCM end); extern SCM scm_string_reverse_x (SCM str, SCM start, SCM end); extern SCM scm_string_append_shared (SCM ls); extern SCM scm_string_concatenate (SCM ls); extern SCM scm_string_concatenate_shared (SCM ls); extern SCM scm_string_concatenate_reverse (SCM ls, SCM final_string, SCM end); extern SCM scm_string_concatenate_reverse_shared (SCM ls, SCM final_string, SCM end); extern SCM scm_string_map (SCM proc, SCM s, SCM start, SCM end); extern SCM scm_string_map_x (SCM proc, SCM s, SCM start, SCM end); extern SCM scm_string_fold (SCM kons, SCM knil, SCM s, SCM start, SCM end); extern SCM scm_string_fold_right (SCM kons, SCM knil, SCM s, SCM start, SCM end); extern SCM scm_string_unfold (SCM p, SCM f, SCM g, SCM seed, SCM base, SCM make_final); extern SCM scm_string_unfold_right (SCM p, SCM f, SCM g, SCM seed, SCM base, SCM make_final); extern SCM scm_string_for_each (SCM proc, SCM s, SCM start, SCM end); extern SCM scm_string_for_each_index (SCM proc, SCM s, SCM start, SCM end); extern SCM scm_xsubstring (SCM s, SCM from, SCM to, SCM start, SCM end); extern SCM scm_string_xcopy_x (SCM target, SCM tstart, SCM s, SCM sfrom, SCM sto, SCM start, SCM end); extern SCM scm_string_replace (SCM s1, SCM s2, SCM start1, SCM end1, SCM start2, SCM end2); extern SCM scm_string_tokenize (SCM s, SCM token_char, SCM start, SCM end); extern SCM scm_string_split (SCM s, SCM chr); extern SCM scm_string_filter (SCM s, SCM char_pred, SCM start, SCM end); extern SCM scm_string_delete (SCM s, SCM char_pred, SCM start, SCM end); extern void scm_init_srfi_13 (void); extern void scm_init_srfi_13_14 (void); # 94 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/srfi-14.h" 1 3 4 # 41 "/usr/include/libguile/srfi-14.h" 3 4 extern int scm_tc16_charset; extern SCM scm_char_set_p (SCM obj); extern SCM scm_char_set_eq (SCM char_sets); extern SCM scm_char_set_leq (SCM char_sets); extern SCM scm_char_set_hash (SCM cs, SCM bound); extern SCM scm_char_set_cursor (SCM cs); extern SCM scm_char_set_ref (SCM cs, SCM cursor); extern SCM scm_char_set_cursor_next (SCM cs, SCM cursor); extern SCM scm_end_of_char_set_p (SCM cursor); extern SCM scm_char_set_fold (SCM kons, SCM knil, SCM cs); extern SCM scm_char_set_unfold (SCM p, SCM f, SCM g, SCM seed, SCM base_cs); extern SCM scm_char_set_unfold_x (SCM p, SCM f, SCM g, SCM seed, SCM base_cs); extern SCM scm_char_set_for_each (SCM proc, SCM cs); extern SCM scm_char_set_map (SCM proc, SCM cs); extern SCM scm_char_set_copy (SCM cs); extern SCM scm_char_set (SCM rest); extern SCM scm_list_to_char_set (SCM list, SCM base_cs); extern SCM scm_list_to_char_set_x (SCM list, SCM base_cs); extern SCM scm_string_to_char_set (SCM str, SCM base_cs); extern SCM scm_string_to_char_set_x (SCM str, SCM base_cs); extern SCM scm_char_set_filter (SCM pred, SCM cs, SCM base_cs); extern SCM scm_char_set_filter_x (SCM pred, SCM cs, SCM base_cs); extern SCM scm_ucs_range_to_char_set (SCM lower, SCM upper, SCM error, SCM base_cs); extern SCM scm_ucs_range_to_char_set_x (SCM lower, SCM upper, SCM error, SCM base_cs); extern SCM scm_to_char_set (SCM x); extern SCM scm_char_set_size (SCM cs); extern SCM scm_char_set_count (SCM pred, SCM cs); extern SCM scm_char_set_to_list (SCM cs); extern SCM scm_char_set_to_string (SCM cs); extern SCM scm_char_set_contains_p (SCM cs, SCM ch); extern SCM scm_char_set_every (SCM pred, SCM cs); extern SCM scm_char_set_any (SCM pred, SCM cs); extern SCM scm_char_set_adjoin (SCM cs, SCM rest); extern SCM scm_char_set_delete (SCM cs, SCM rest); extern SCM scm_char_set_adjoin_x (SCM cs, SCM rest); extern SCM scm_char_set_delete_x (SCM cs, SCM rest); extern SCM scm_char_set_complement (SCM cs); extern SCM scm_char_set_union (SCM rest); extern SCM scm_char_set_intersection (SCM rest); extern SCM scm_char_set_difference (SCM cs1, SCM rest); extern SCM scm_char_set_xor (SCM rest); extern SCM scm_char_set_diff_plus_intersection (SCM cs1, SCM rest); extern SCM scm_char_set_complement_x (SCM cs); extern SCM scm_char_set_union_x (SCM cs1, SCM rest); extern SCM scm_char_set_intersection_x (SCM cs1, SCM rest); extern SCM scm_char_set_difference_x (SCM cs1, SCM rest); extern SCM scm_char_set_xor_x (SCM cs1, SCM rest); extern SCM scm_char_set_diff_plus_intersection_x (SCM cs1, SCM cs2, SCM rest); extern SCM scm_char_set_lower_case; extern SCM scm_char_set_upper_case; extern SCM scm_char_set_title_case; extern SCM scm_char_set_letter; extern SCM scm_char_set_digit; extern SCM scm_char_set_letter_and_digit; extern SCM scm_char_set_graphic; extern SCM scm_char_set_printing; extern SCM scm_char_set_whitespace; extern SCM scm_char_set_iso_control; extern SCM scm_char_set_punctuation; extern SCM scm_char_set_symbol; extern SCM scm_char_set_hex_digit; extern SCM scm_char_set_blank; extern SCM scm_char_set_ascii; extern SCM scm_char_set_empty; extern SCM scm_char_set_full; extern void scm_srfi_14_compute_char_sets (void); extern void scm_init_srfi_14 (void); # 95 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/strorder.h" 1 3 4 # 29 "/usr/include/libguile/strorder.h" 3 4 extern SCM scm_string_equal_p (SCM s1, SCM s2); extern SCM scm_string_ci_equal_p (SCM s1, SCM s2); extern SCM scm_string_less_p (SCM s1, SCM s2); extern SCM scm_string_leq_p (SCM s1, SCM s2); extern SCM scm_string_gr_p (SCM s1, SCM s2); extern SCM scm_string_geq_p (SCM s1, SCM s2); extern SCM scm_string_ci_less_p (SCM s1, SCM s2); extern SCM scm_string_ci_leq_p (SCM s1, SCM s2); extern SCM scm_string_ci_gr_p (SCM s1, SCM s2); extern SCM scm_string_ci_geq_p (SCM s1, SCM s2); extern void scm_init_strorder (void); # 96 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/strports.h" 1 3 4 # 41 "/usr/include/libguile/strports.h" 3 4 extern scm_t_bits scm_tc16_strport; extern SCM scm_mkstrport (SCM pos, SCM str, long modes, const char * caller); extern SCM scm_strport_to_string (SCM port); extern SCM scm_object_to_string (SCM obj, SCM printer); extern SCM scm_call_with_output_string (SCM proc); extern SCM scm_call_with_input_string (SCM str, SCM proc); extern SCM scm_open_input_string (SCM str); extern SCM scm_open_output_string (void); extern SCM scm_get_output_string (SCM port); extern SCM scm_c_read_string (const char *expr); extern SCM scm_c_eval_string (const char *expr); extern SCM scm_c_eval_string_in_module (const char *expr, SCM module); extern SCM scm_eval_string (SCM string); extern SCM scm_eval_string_in_module (SCM string, SCM module); extern void scm_init_strports (void); # 97 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/struct.h" 1 3 4 # 98 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/symbols.h" 1 3 4 # 42 "/usr/include/libguile/symbols.h" 3 4 extern SCM scm_symbol_p (SCM x); extern SCM scm_symbol_interned_p (SCM sym); extern SCM scm_make_symbol (SCM name); extern SCM scm_symbol_to_string (SCM s); extern SCM scm_string_to_symbol (SCM s); extern SCM scm_string_ci_to_symbol (SCM s); extern SCM scm_symbol_fref (SCM s); extern SCM scm_symbol_pref (SCM s); extern SCM scm_symbol_fset_x (SCM s, SCM val); extern SCM scm_symbol_pset_x (SCM s, SCM val); extern SCM scm_symbol_hash (SCM s); extern SCM scm_gensym (SCM prefix); extern SCM scm_from_locale_symbol (const char *str); extern SCM scm_from_locale_symboln (const char *str, size_t len); extern SCM scm_take_locale_symbol (char *sym); extern SCM scm_take_locale_symboln (char *sym, size_t len); extern unsigned long scm_i_hash_symbol (SCM obj, unsigned long n, void *closure); extern void scm_symbols_prehistory (void); extern void scm_init_symbols (void); # 99 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/tags.h" 1 3 4 # 100 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/throw.h" 1 3 4 # 101 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/unif.h" 1 3 4 # 102 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/validate.h" 1 3 4 # 103 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/values.h" 1 3 4 # 27 "/usr/include/libguile/values.h" 3 4 extern SCM scm_values_vtable; extern SCM scm_values (SCM args); extern void scm_init_values (void); # 104 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/variable.h" 1 3 4 # 26 "/usr/include/libguile/variable.h" 3 4 # 1 "/usr/include/libguile/smob.h" 1 3 4 # 27 "/usr/include/libguile/variable.h" 2 3 4 # 39 "/usr/include/libguile/variable.h" 3 4 extern SCM scm_make_variable (SCM init); extern SCM scm_make_undefined_variable (void); extern SCM scm_variable_p (SCM obj); extern SCM scm_variable_ref (SCM var); extern SCM scm_variable_set_x (SCM var, SCM val); extern SCM scm_variable_bound_p (SCM var); extern void scm_i_variable_print (SCM var, SCM port, scm_print_state *pstate); extern void scm_init_variable (void); # 105 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/vectors.h" 1 3 4 # 106 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/srfi-4.h" 1 3 4 # 29 "/usr/include/libguile/srfi-4.h" 3 4 extern SCM scm_uniform_vector_p (SCM v); extern SCM scm_uniform_vector_length (SCM v); extern SCM scm_uniform_vector_ref (SCM v, SCM idx); extern SCM scm_uniform_vector_set_x (SCM v, SCM idx, SCM val); extern SCM scm_uniform_vector_to_list (SCM v); extern SCM scm_uniform_vector_read_x (SCM v, SCM port_or_fd, SCM start, SCM end); extern SCM scm_uniform_vector_write (SCM v, SCM port_or_fd, SCM start, SCM end); extern int scm_is_uniform_vector (SCM obj); extern size_t scm_c_uniform_vector_length (SCM v); extern SCM scm_c_uniform_vector_ref (SCM v, size_t idx); extern void scm_c_uniform_vector_set_x (SCM v, size_t idx, SCM val); extern size_t scm_array_handle_uniform_element_size (scm_t_array_handle *h); extern const void *scm_array_handle_uniform_elements (scm_t_array_handle *h); extern void *scm_array_handle_uniform_writable_elements (scm_t_array_handle *h); extern const void *scm_uniform_vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern void *scm_uniform_vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_u8vector_p (SCM obj); extern SCM scm_make_u8vector (SCM n, SCM fill); extern SCM scm_take_u8vector (scm_t_uint8 *data, size_t n); extern SCM scm_u8vector (SCM l); extern SCM scm_u8vector_length (SCM uvec); extern SCM scm_u8vector_ref (SCM uvec, SCM index); extern SCM scm_u8vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_u8vector_to_list (SCM uvec); extern SCM scm_list_to_u8vector (SCM l); extern SCM scm_any_to_u8vector (SCM obj); extern const scm_t_uint8 *scm_array_handle_u8_elements (scm_t_array_handle *h); extern scm_t_uint8 *scm_array_handle_u8_writable_elements (scm_t_array_handle *h); extern const scm_t_uint8 *scm_u8vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern scm_t_uint8 *scm_u8vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_s8vector_p (SCM obj); extern SCM scm_make_s8vector (SCM n, SCM fill); extern SCM scm_take_s8vector (scm_t_int8 *data, size_t n); extern SCM scm_s8vector (SCM l); extern SCM scm_s8vector_length (SCM uvec); extern SCM scm_s8vector_ref (SCM uvec, SCM index); extern SCM scm_s8vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_s8vector_to_list (SCM uvec); extern SCM scm_list_to_s8vector (SCM l); extern SCM scm_any_to_s8vector (SCM obj); extern const scm_t_int8 *scm_array_handle_s8_elements (scm_t_array_handle *h); extern scm_t_int8 *scm_array_handle_s8_writable_elements (scm_t_array_handle *h); extern const scm_t_int8 *scm_s8vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern scm_t_int8 *scm_s8vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_u16vector_p (SCM obj); extern SCM scm_make_u16vector (SCM n, SCM fill); extern SCM scm_take_u16vector (scm_t_uint16 *data, size_t n); extern SCM scm_u16vector (SCM l); extern SCM scm_u16vector_length (SCM uvec); extern SCM scm_u16vector_ref (SCM uvec, SCM index); extern SCM scm_u16vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_u16vector_to_list (SCM uvec); extern SCM scm_list_to_u16vector (SCM l); extern SCM scm_any_to_u16vector (SCM obj); extern const scm_t_uint16 *scm_array_handle_u16_elements (scm_t_array_handle *h); extern scm_t_uint16 *scm_array_handle_u16_writable_elements (scm_t_array_handle *h); extern const scm_t_uint16 *scm_u16vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern scm_t_uint16 *scm_u16vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_s16vector_p (SCM obj); extern SCM scm_make_s16vector (SCM n, SCM fill); extern SCM scm_take_s16vector (scm_t_int16 *data, size_t n); extern SCM scm_s16vector (SCM l); extern SCM scm_s16vector_length (SCM uvec); extern SCM scm_s16vector_ref (SCM uvec, SCM index); extern SCM scm_s16vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_s16vector_to_list (SCM uvec); extern SCM scm_list_to_s16vector (SCM l); extern SCM scm_any_to_s16vector (SCM obj); extern const scm_t_int16 *scm_array_handle_s16_elements (scm_t_array_handle *h); extern scm_t_int16 *scm_array_handle_s16_writable_elements (scm_t_array_handle *h); extern const scm_t_int16 *scm_s16vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern scm_t_int16 *scm_s16vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_u32vector_p (SCM obj); extern SCM scm_make_u32vector (SCM n, SCM fill); extern SCM scm_take_u32vector (scm_t_uint32 *data, size_t n); extern SCM scm_u32vector (SCM l); extern SCM scm_u32vector_length (SCM uvec); extern SCM scm_u32vector_ref (SCM uvec, SCM index); extern SCM scm_u32vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_u32vector_to_list (SCM uvec); extern SCM scm_list_to_u32vector (SCM l); extern SCM scm_any_to_u32vector (SCM obj); extern const scm_t_uint32 *scm_array_handle_u32_elements (scm_t_array_handle *h); extern scm_t_uint32 *scm_array_handle_u32_writable_elements (scm_t_array_handle *h); extern const scm_t_uint32 *scm_u32vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern scm_t_uint32 *scm_u32vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_s32vector_p (SCM obj); extern SCM scm_make_s32vector (SCM n, SCM fill); extern SCM scm_take_s32vector (scm_t_int32 *data, size_t n); extern SCM scm_s32vector (SCM l); extern SCM scm_s32vector_length (SCM uvec); extern SCM scm_s32vector_ref (SCM uvec, SCM index); extern SCM scm_s32vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_s32vector_to_list (SCM uvec); extern SCM scm_list_to_s32vector (SCM l); extern SCM scm_any_to_s32vector (SCM obj); extern const scm_t_int32 *scm_array_handle_s32_elements (scm_t_array_handle *h); extern scm_t_int32 *scm_array_handle_s32_writable_elements (scm_t_array_handle *h); extern const scm_t_int32 *scm_s32vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern scm_t_int32 *scm_s32vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_u64vector_p (SCM obj); extern SCM scm_make_u64vector (SCM n, SCM fill); extern SCM scm_u64vector (SCM l); extern SCM scm_u64vector_length (SCM uvec); extern SCM scm_u64vector_ref (SCM uvec, SCM index); extern SCM scm_u64vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_u64vector_to_list (SCM uvec); extern SCM scm_list_to_u64vector (SCM l); extern SCM scm_any_to_u64vector (SCM obj); extern SCM scm_take_u64vector (scm_t_uint64 *data, size_t n); extern const scm_t_uint64 *scm_array_handle_u64_elements (scm_t_array_handle *h); extern scm_t_uint64 *scm_array_handle_u64_writable_elements (scm_t_array_handle *h); extern const scm_t_uint64 *scm_u64vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern scm_t_uint64 *scm_u64vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_s64vector_p (SCM obj); extern SCM scm_make_s64vector (SCM n, SCM fill); extern SCM scm_s64vector (SCM l); extern SCM scm_s64vector_length (SCM uvec); extern SCM scm_s64vector_ref (SCM uvec, SCM index); extern SCM scm_s64vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_s64vector_to_list (SCM uvec); extern SCM scm_list_to_s64vector (SCM l); extern SCM scm_any_to_s64vector (SCM obj); extern SCM scm_take_s64vector (scm_t_int64 *data, size_t n); extern const scm_t_int64 *scm_array_handle_s64_elements (scm_t_array_handle *h); extern scm_t_int64 *scm_array_handle_s64_writable_elements (scm_t_array_handle *h); extern const scm_t_int64 *scm_s64vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern scm_t_int64 *scm_s64vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_f32vector_p (SCM obj); extern SCM scm_make_f32vector (SCM n, SCM fill); extern SCM scm_take_f32vector (float *data, size_t n); extern SCM scm_f32vector (SCM l); extern SCM scm_f32vector_length (SCM uvec); extern SCM scm_f32vector_ref (SCM uvec, SCM index); extern SCM scm_f32vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_f32vector_to_list (SCM uvec); extern SCM scm_list_to_f32vector (SCM l); extern SCM scm_any_to_f32vector (SCM obj); extern const float *scm_array_handle_f32_elements (scm_t_array_handle *h); extern float *scm_array_handle_f32_writable_elements (scm_t_array_handle *h); extern const float *scm_f32vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern float *scm_f32vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_f64vector_p (SCM obj); extern SCM scm_make_f64vector (SCM n, SCM fill); extern SCM scm_take_f64vector (double *data, size_t n); extern SCM scm_f64vector (SCM l); extern SCM scm_f64vector_length (SCM uvec); extern SCM scm_f64vector_ref (SCM uvec, SCM index); extern SCM scm_f64vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_f64vector_to_list (SCM uvec); extern SCM scm_list_to_f64vector (SCM l); extern SCM scm_any_to_f64vector (SCM obj); extern const double *scm_array_handle_f64_elements (scm_t_array_handle *h); extern double *scm_array_handle_f64_writable_elements (scm_t_array_handle *h); extern const double *scm_f64vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern double *scm_f64vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_c32vector_p (SCM obj); extern SCM scm_make_c32vector (SCM n, SCM fill); extern SCM scm_take_c32vector (float *data, size_t n); extern SCM scm_c32vector (SCM l); extern SCM scm_c32vector_length (SCM uvec); extern SCM scm_c32vector_ref (SCM uvec, SCM index); extern SCM scm_c32vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_c32vector_to_list (SCM uvec); extern SCM scm_list_to_c32vector (SCM l); extern SCM scm_any_to_c32vector (SCM obj); extern const float *scm_array_handle_c32_elements (scm_t_array_handle *h); extern float *scm_array_handle_c32_writable_elements (scm_t_array_handle *h); extern const float *scm_c32vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern float *scm_c32vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_c64vector_p (SCM obj); extern SCM scm_make_c64vector (SCM n, SCM fill); extern SCM scm_take_c64vector (double *data, size_t n); extern SCM scm_c64vector (SCM l); extern SCM scm_c64vector_length (SCM uvec); extern SCM scm_c64vector_ref (SCM uvec, SCM index); extern SCM scm_c64vector_set_x (SCM uvec, SCM index, SCM value); extern SCM scm_c64vector_to_list (SCM uvec); extern SCM scm_list_to_c64vector (SCM l); extern SCM scm_any_to_c64vector (SCM obj); extern const double *scm_array_handle_c64_elements (scm_t_array_handle *h); extern double *scm_array_handle_c64_writable_elements (scm_t_array_handle *h); extern const double *scm_c64vector_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern double *scm_c64vector_writable_elements (SCM uvec, scm_t_array_handle *h, size_t *lenp, ssize_t *incp); extern SCM scm_i_generalized_vector_type (SCM vec); extern const char *scm_i_uniform_vector_tag (SCM uvec); extern scm_i_t_array_ref scm_i_uniform_vector_ref_proc (SCM uvec); extern scm_i_t_array_set scm_i_uniform_vector_set_proc (SCM uvec); extern size_t scm_uniform_element_size (SCM obj); extern void scm_init_srfi_4 (void); # 107 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/version.h" 1 3 4 # 33 "/usr/include/libguile/version.h" 3 4 extern SCM scm_major_version (void); extern SCM scm_minor_version (void); extern SCM scm_micro_version (void); extern SCM scm_effective_version (void); extern SCM scm_version (void); extern void scm_init_version (void); # 108 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/vports.h" 1 3 4 # 29 "/usr/include/libguile/vports.h" 3 4 extern SCM scm_make_soft_port (SCM pv, SCM modes); extern void scm_init_vports (void); # 109 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/weaks.h" 1 3 4 # 110 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/backtrace.h" 1 3 4 # 27 "/usr/include/libguile/backtrace.h" 3 4 extern SCM scm_the_last_stack_fluid_var; extern void scm_display_error_message (SCM message, SCM args, SCM port); extern void scm_i_display_error (SCM stack, SCM port, SCM subr, SCM message, SCM args, SCM rest); extern SCM scm_display_error (SCM stack, SCM port, SCM subr, SCM message, SCM args, SCM rest); extern SCM scm_display_application (SCM frame, SCM port, SCM indent); extern SCM scm_display_backtrace (SCM stack, SCM port, SCM first, SCM depth); extern SCM scm_display_backtrace_with_highlights (SCM stack, SCM port, SCM first, SCM depth, SCM highlights); extern SCM scm_backtrace (void); extern SCM scm_backtrace_with_highlights (SCM highlights); extern void scm_init_backtrace (void); # 111 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/debug.h" 1 3 4 # 112 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/stacks.h" 1 3 4 # 30 "/usr/include/libguile/stacks.h" 3 4 typedef struct scm_t_info_frame { scm_t_bits flags; SCM source; SCM proc; SCM args; } scm_t_info_frame; typedef struct scm_t_stack { SCM id; scm_t_info_frame *frames; unsigned long length; unsigned long tail_length; scm_t_info_frame tail[1]; } scm_t_stack; extern SCM scm_stack_type; # 90 "/usr/include/libguile/stacks.h" 3 4 extern SCM scm_stack_p (SCM obj); extern SCM scm_make_stack (SCM obj, SCM args); extern SCM scm_stack_id (SCM stack); extern SCM scm_stack_ref (SCM stack, SCM i); extern SCM scm_stack_length (SCM stack); extern SCM scm_frame_p (SCM obj); extern SCM scm_last_stack_frame (SCM obj); extern SCM scm_frame_number (SCM frame); extern SCM scm_frame_source (SCM frame); extern SCM scm_frame_procedure (SCM frame); extern SCM scm_frame_arguments (SCM frame); extern SCM scm_frame_previous (SCM frame); extern SCM scm_frame_next (SCM frame); extern SCM scm_frame_real_p (SCM frame); extern SCM scm_frame_procedure_p (SCM frame); extern SCM scm_frame_evaluating_args_p (SCM frame); extern SCM scm_frame_overflow_p (SCM frame); extern void scm_init_stacks (void); # 113 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/threads.h" 1 3 4 # 114 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/inline.h" 1 3 4 # 29 "/usr/include/libguile/inline.h" 3 4 # 1 "/usr/include/string.h" 1 3 4 # 29 "/usr/include/string.h" 3 4 extern "C" { # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 35 "/usr/include/string.h" 2 3 4 extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, __const void *__src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern "C++" { extern void *memchr (void *__s, int __c, size_t __n) throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const void *memchr (__const void *__s, int __c, size_t __n) throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 93 "/usr/include/string.h" 3 4 } extern "C++" void *rawmemchr (void *__s, int __c) throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern "C++" __const void *rawmemchr (__const void *__s, int __c) throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern "C++" void *memrchr (void *__s, int __c, size_t __n) throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern "C++" __const void *memrchr (__const void *__s, int __c, size_t __n) throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (2))); # 165 "/usr/include/string.h" 3 4 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (__const char *__s) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (__const char *__string, size_t __n) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 210 "/usr/include/string.h" 3 4 extern "C++" { extern char *strchr (char *__s, int __c) throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const char *strchr (__const char *__s, int __c) throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 233 "/usr/include/string.h" 3 4 } extern "C++" { extern char *strrchr (char *__s, int __c) throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const char *strrchr (__const char *__s, int __c) throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 260 "/usr/include/string.h" 3 4 } extern "C++" char *strchrnul (char *__s, int __c) throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern "C++" __const char *strchrnul (__const char *__s, int __c) throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strcspn (__const char *__s, __const char *__reject) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (__const char *__s, __const char *__accept) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern "C++" { extern char *strpbrk (char *__s, __const char *__accept) throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern __const char *strpbrk (__const char *__s, __const char *__accept) throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 312 "/usr/include/string.h" 3 4 } extern "C++" { extern char *strstr (char *__haystack, __const char *__needle) throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern __const char *strstr (__const char *__haystack, __const char *__needle) throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 340 "/usr/include/string.h" 3 4 } extern char *strtok (char *__restrict __s, __const char *__restrict __delim) throw () __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw () __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw () __attribute__ ((__nonnull__ (2, 3))); extern "C++" char *strcasestr (char *__haystack, __const char *__needle) throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern "C++" __const char *strcasestr (__const char *__haystack, __const char *__needle) throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 382 "/usr/include/string.h" 3 4 extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern size_t strlen (__const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (__const char *__string, size_t __maxlen) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) throw (); # 438 "/usr/include/string.h" 3 4 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern char *strerror_l (int __errnum, __locale_t __l) throw (); extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern void bcopy (__const void *__src, void *__dest, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern "C++" { extern char *index (char *__s, int __c) throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const char *index (__const char *__s, int __c) throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 487 "/usr/include/string.h" 3 4 } extern "C++" { extern char *rindex (char *__s, int __c) throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern __const char *rindex (__const char *__s, int __c) throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 515 "/usr/include/string.h" 3 4 } extern int ffs (int __i) throw () __attribute__ ((__const__)); extern int ffsl (long int __l) throw () __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) throw () __attribute__ ((__const__)); extern int strcasecmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) throw (); extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern int strverscmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern "C++" char *basename (char *__filename) throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); extern "C++" __const char *basename (__const char *__filename) throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); # 646 "/usr/include/string.h" 3 4 } # 30 "/usr/include/libguile/inline.h" 2 3 4 # 1 "/usr/include/libguile/pairs.h" 1 3 4 # 34 "/usr/include/libguile/inline.h" 2 3 4 # 1 "/usr/include/libguile/gc.h" 1 3 4 # 35 "/usr/include/libguile/inline.h" 2 3 4 # 1 "/usr/include/libguile/error.h" 1 3 4 # 39 "/usr/include/libguile/inline.h" 2 3 4 # 79 "/usr/include/libguile/inline.h" 3 4 extern SCM scm_cell (scm_t_bits car, scm_t_bits cdr); extern SCM scm_double_cell (scm_t_bits car, scm_t_bits cbr, scm_t_bits ccr, scm_t_bits cdr); extern SCM scm_array_handle_ref (scm_t_array_handle *h, ssize_t pos); extern void scm_array_handle_set (scm_t_array_handle *h, ssize_t pos, SCM val); extern int scm_is_pair (SCM x); extern int scm_getc (SCM port); extern void scm_putc (char c, SCM port); extern void scm_puts (const char *str_data, SCM port); # 101 "/usr/include/libguile/inline.h" 3 4 extern unsigned scm_newcell2_count; extern unsigned scm_newcell_count; extern __inline__ SCM scm_cell (scm_t_bits car, scm_t_bits cdr) { SCM z; SCM *freelist = ((SCM *) pthread_getspecific (scm_i_freelist)); if (((((scm_t_bits) (0? (*(SCM*)0=((*freelist))): (*freelist))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((4)) << 8) + scm_tc8_flag)))): ((SCM) ((((4)) << 8) + scm_tc8_flag))))))) z = scm_gc_for_newcell (&scm_i_master_freelist, freelist); else { z = *freelist; *freelist = ((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((*freelist))): (*freelist)))))) [1])); } scm_cells_allocated += 1; # 172 "/usr/include/libguile/inline.h" 3 4 (((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((z))): (z)))))) [(1)]) = (((SCM) (cdr))))); (((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((z))): (z)))))) [(0)]) = (((SCM) (car))))); return z; } extern __inline__ SCM scm_double_cell (scm_t_bits car, scm_t_bits cbr, scm_t_bits ccr, scm_t_bits cdr) { SCM z; SCM *freelist = ((SCM *) pthread_getspecific (scm_i_freelist2)); if (((((scm_t_bits) (0? (*(SCM*)0=((*freelist))): (*freelist))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((4)) << 8) + scm_tc8_flag)))): ((SCM) ((((4)) << 8) + scm_tc8_flag))))))) z = scm_gc_for_newcell (&scm_i_master_freelist2, freelist); else { z = *freelist; *freelist = ((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((*freelist))): (*freelist)))))) [1])); } scm_cells_allocated += 2; (((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((z))): (z)))))) [(1)]) = (((SCM) (cbr))))); (((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((z))): (z)))))) [(2)]) = (((SCM) (ccr))))); (((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((z))): (z)))))) [(3)]) = (((SCM) (cdr))))); (((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((z))): (z)))))) [(0)]) = (((SCM) (car))))); # 250 "/usr/include/libguile/inline.h" 3 4 __asm__ volatile ("" : : : "memory"); return z; } extern __inline__ SCM scm_array_handle_ref (scm_t_array_handle *h, ssize_t p) { return h->ref (h, p); } extern __inline__ void scm_array_handle_set (scm_t_array_handle *h, ssize_t p, SCM v) { h->set (h, p, v); } extern __inline__ int scm_is_pair (SCM x) { # 305 "/usr/include/libguile/inline.h" 3 4 return (!(6 & ((scm_t_bits) (0? (*(SCM*)0=(x)): x))) && ((1 & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))])))))) == 0)); } extern __inline__ int scm_getc (SCM port) { int c; scm_t_port *pt = ((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))])))))); if (pt->rw_active == SCM_PORT_WRITE) scm_ptobs[((0x0ff & ((((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((0))])))))) >> 8)))].flush (port); if (pt->rw_random) pt->rw_active = SCM_PORT_READ; if (pt->read_pos >= pt->read_end) { if (scm_fill_input (port) == (-1)) return (-1); } c = *(pt->read_pos++); switch (c) { case '\a': break; case '\b': {if ((((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))))))->column_number) > 0) (((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))))))->column_number) -= 1;}; break; case '\n': {(((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))))))->line_number) += 1; (((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))))))->column_number) = 0;}; break; case '\r': {(((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))))))->column_number) = 0;}; break; case '\t': {(((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))))))->column_number) += 8 - (((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))))))->column_number) % 8;}; break; default: {(((scm_t_port *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((1))]))))))->column_number) += 1;}; break; } return c; } extern __inline__ void scm_putc (char c, SCM port) { do { if (__builtin_expect ((!((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(port)): port))) && (((0x7f | (1L<<16) | (4L<<16)) & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((0))]))))))==(125 | (1L<<16) | (4L<<16)))))), 0)) scm_wrong_type_arg_msg(__null, 0, port, "output port"); } while (0); scm_lfwrite (&c, 1, port); } extern __inline__ void scm_puts (const char *s, SCM port) { do { if (__builtin_expect ((!((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(port)): port))) && (((0x7f | (1L<<16) | (4L<<16)) & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((port))))): (((port)))))))) [((0))]))))))==(125 | (1L<<16) | (4L<<16)))))), 0)) scm_wrong_type_arg_msg(__null, 0, port, "output port"); } while (0); scm_lfwrite (s, strlen (s), port); } # 115 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/discouraged.h" 1 3 4 # 68 "/usr/include/libguile/discouraged.h" 3 4 extern SCM scm_short2num (short n); extern SCM scm_ushort2num (unsigned short n); extern SCM scm_int2num (int n); extern SCM scm_uint2num (unsigned int n); extern SCM scm_long2num (long n); extern SCM scm_ulong2num (unsigned long n); extern SCM scm_size2num (size_t n); extern SCM scm_ptrdiff2num (scm_t_ptrdiff n); extern short scm_num2short (SCM num, unsigned long int pos, const char *s_caller); extern unsigned short scm_num2ushort (SCM num, unsigned long int pos, const char *s_caller); extern int scm_num2int (SCM num, unsigned long int pos, const char *s_caller); extern unsigned int scm_num2uint (SCM num, unsigned long int pos, const char *s_caller); extern long scm_num2long (SCM num, unsigned long int pos, const char *s_caller); extern unsigned long scm_num2ulong (SCM num, unsigned long int pos, const char *s_caller); extern scm_t_ptrdiff scm_num2ptrdiff (SCM num, unsigned long int pos, const char *s_caller); extern size_t scm_num2size (SCM num, unsigned long int pos, const char *s_caller); extern SCM scm_long_long2num (long long sl); extern SCM scm_ulong_long2num (unsigned long long sl); extern long long scm_num2long_long (SCM num, unsigned long int pos, const char *s_caller); extern unsigned long long scm_num2ulong_long (SCM num, unsigned long int pos, const char *s_caller); extern SCM scm_make_real (double x); extern double scm_num2dbl (SCM a, const char * why); extern SCM scm_float2num (float n); extern SCM scm_double2num (double n); extern float scm_num2float (SCM num, unsigned long int pos, const char *s_caller); extern double scm_num2double (SCM num, unsigned long int pos, const char *s_caller); extern SCM scm_make_complex (double x, double y); extern SCM scm_mem2symbol (const char *mem, size_t len); extern SCM scm_mem2uninterned_symbol (const char *mem, size_t len); extern SCM scm_str2symbol (const char *str); extern SCM scm_take_str (char *s, size_t len); extern SCM scm_take0str (char *s); extern SCM scm_mem2string (const char *src, size_t len); extern SCM scm_str2string (const char *src); extern SCM scm_makfrom0str (const char *src); extern SCM scm_makfrom0str_opt (const char *src); extern SCM scm_allocate_string (size_t len); # 163 "/usr/include/libguile/discouraged.h" 3 4 extern SCM scm_make_keyword_from_dash_symbol (SCM symbol); extern SCM scm_keyword_dash_symbol (SCM keyword); extern SCM scm_c_make_keyword (const char *s); # 179 "/usr/include/libguile/discouraged.h" 3 4 void scm_i_init_discouraged (void); # 117 "/usr/include/libguile.h" 2 3 4 # 1 "/usr/include/libguile/deprecated.h" 1 3 4 # 26 "/usr/include/libguile/deprecated.h" 3 4 # 1 "/usr/include/libguile/strings.h" 1 3 4 # 27 "/usr/include/libguile/deprecated.h" 2 3 4 # 42 "/usr/include/libguile/deprecated.h" 3 4 extern char *scm_isymnames[]; # 68 "/usr/include/libguile/deprecated.h" 3 4 extern const char scm_s_expression[]; extern const char scm_s_test[]; extern const char scm_s_body[]; extern const char scm_s_bindings[]; extern const char scm_s_variable[]; extern const char scm_s_clauses[]; extern const char scm_s_formals[]; # 98 "/usr/include/libguile/deprecated.h" 3 4 extern SCM scm_wta (SCM arg, const char *pos, const char *s_subr); extern void scm_register_module_xxx (char *module_name, void *init_func); extern SCM scm_registered_modules (void); extern SCM scm_clear_registered_modules (void); extern SCM scm_protect_object (SCM obj); extern SCM scm_unprotect_object (SCM obj); # 126 "/usr/include/libguile/deprecated.h" 3 4 extern void scm_remember (SCM * ptr); extern SCM scm_the_root_module (void); extern SCM scm_make_module (SCM name); extern SCM scm_ensure_user_module (SCM name); extern SCM scm_load_scheme_module (SCM name); extern SCM scm_close_all_ports_except (SCM ports); # 149 "/usr/include/libguile/deprecated.h" 3 4 extern SCM scm_makstr (size_t len, int); extern SCM scm_makfromstr (const char *src, size_t len, int); extern SCM scm_variable_set_name_hint (SCM var, SCM hint); extern SCM scm_builtin_variable (SCM name); extern SCM scm_internal_with_fluids (SCM fluids, SCM vals, SCM (*cproc)(void *), void *cdata); extern SCM scm_make_gsubr (const char *name, int req, int opt, int rst, SCM (*fcn)()); extern SCM scm_make_gsubr_with_generic (const char *name, int req, int opt, int rst, SCM (*fcn)(), SCM *gf); extern SCM scm_create_hook (const char* name, int n_args); # 189 "/usr/include/libguile/deprecated.h" 3 4 extern SCM scm_sloppy_memq (SCM x, SCM lst); extern SCM scm_sloppy_memv (SCM x, SCM lst); extern SCM scm_sloppy_member (SCM x, SCM lst); extern SCM scm_read_and_eval_x (SCM port); extern SCM scm_make_subr (const char *name, int type, SCM (*fcn) ()); extern SCM scm_make_subr_with_generic (const char *name, int type, SCM (*fcn) (), SCM *gf); extern SCM scm_make_subr_opt (const char *name, int type, SCM (*fcn) (), int set); extern SCM scm_call_catching_errors (SCM (*thunk)(), SCM (*err_filter)(), void * closure); extern long scm_make_smob_type_mfpe (char *name, size_t size, SCM (*mark) (SCM), size_t (*free) (SCM), int (*print) (SCM, SCM, scm_print_state*), SCM (*equalp) (SCM, SCM)); extern void scm_set_smob_mfpe (long tc, SCM (*mark) (SCM), size_t (*free) (SCM), int (*print) (SCM, SCM, scm_print_state*), SCM (*equalp) (SCM, SCM)); extern SCM scm_strprint_obj (SCM obj); extern SCM scm_read_0str (char *expr); extern SCM scm_eval_0str (const char *expr); extern char *scm_i_object_chars (SCM); extern long scm_i_object_length (SCM); extern SCM scm_sym2ovcell_soft (SCM sym, SCM obarray); extern SCM scm_sym2ovcell (SCM sym, SCM obarray); extern SCM scm_intern_obarray_soft (const char *name, size_t len, SCM obarray, unsigned int softness); extern SCM scm_intern_obarray (const char *name, size_t len, SCM obarray); extern SCM scm_symbol_value0 (const char *name); extern SCM scm_string_to_obarray_symbol (SCM o, SCM s, SCM softp); extern SCM scm_intern_symbol (SCM o, SCM s); extern SCM scm_unintern_symbol (SCM o, SCM s); extern SCM scm_symbol_binding (SCM o, SCM s); extern SCM scm_symbol_bound_p (SCM o, SCM s); extern SCM scm_symbol_set_x (SCM o, SCM s, SCM v); extern SCM scm_gentemp (SCM prefix, SCM obarray); # 311 "/usr/include/libguile/deprecated.h" 3 4 extern SCM scm_i_makinum (scm_t_signed_bits val); extern int scm_i_inump (SCM obj); extern scm_t_signed_bits scm_i_inum (SCM obj); # 406 "/usr/include/libguile/deprecated.h" 3 4 extern char *scm_c_string2str (SCM obj, char *str, size_t *lenp); # 418 "/usr/include/libguile/deprecated.h" 3 4 extern char *scm_c_substring2str (SCM obj, char *str, size_t start, size_t len); extern char *scm_c_symbol2str (SCM obj, char *str, size_t *lenp); extern double scm_truncate (double x); extern double scm_round (double x); # 460 "/usr/include/libguile/deprecated.h" 3 4 extern char *scm_i_deprecated_symbol_chars (SCM sym); extern size_t scm_i_deprecated_symbol_length (SCM sym); # 470 "/usr/include/libguile/deprecated.h" 3 4 extern int scm_i_keywordp (SCM obj); extern SCM scm_i_keywordsym (SCM keyword); # 481 "/usr/include/libguile/deprecated.h" 3 4 extern int scm_i_vectorp (SCM x); extern unsigned long scm_i_vector_length (SCM x); extern const SCM *scm_i_velts (SCM x); extern SCM *scm_i_writable_velts (SCM x); extern SCM scm_i_vector_ref (SCM x, size_t idx); extern void scm_i_vector_set (SCM x, size_t idx, SCM val); extern SCM scm_vector_equal_p (SCM x, SCM y); # 496 "/usr/include/libguile/deprecated.h" 3 4 typedef scm_i_t_array scm_t_array; extern int scm_i_arrayp (SCM a); extern size_t scm_i_array_ndim (SCM a); extern int scm_i_array_contp (SCM a); extern scm_t_array *scm_i_array_mem (SCM a); extern SCM scm_i_array_v (SCM a); extern size_t scm_i_array_base (SCM a); extern scm_t_array_dim *scm_i_array_dims (SCM a); # 527 "/usr/include/libguile/deprecated.h" 3 4 extern SCM scm_i_cur_inp (void); extern SCM scm_i_cur_outp (void); extern SCM scm_i_cur_errp (void); extern SCM scm_i_cur_loadp (void); extern SCM scm_i_progargs (void); extern SCM scm_i_deprecated_dynwinds (void); extern scm_t_debug_frame *scm_i_deprecated_last_debug_frame (void); extern SCM_STACKITEM *scm_i_stack_base (void); extern int scm_i_fluidp (SCM x); # 567 "/usr/include/libguile/deprecated.h" 3 4 extern void scm_i_defer_ints_etc (void); extern SCM scm_guard (SCM guardian, SCM obj, int throw_p); extern SCM scm_get_one_zombie (SCM guardian); extern SCM scm_destroy_guardian_x (SCM guardian); extern SCM scm_guardian_greedy_p (SCM guardian); extern SCM scm_guardian_destroyed_p (SCM guardian); void scm_i_init_deprecated (void); # 118 "/usr/include/libguile.h" 2 3 4 } # 28 "./include/lily-guile.hh" 2 # 37 "./include/lily-guile.hh" # 1 "../flower/include/guile-compatibility.hh" 1 # 38 "./include/lily-guile.hh" 2 # 1 "../flower/include/interval.hh" 1 # 23 "../flower/include/interval.hh" # 1 "/usr/include/math.h" 1 3 4 # 30 "/usr/include/math.h" 3 4 extern "C" { # 1 "/usr/include/i386-linux-gnu/bits/huge_val.h" 1 3 4 # 35 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/huge_valf.h" 1 3 4 # 37 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/huge_vall.h" 1 3 4 # 38 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/inf.h" 1 3 4 # 41 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/nan.h" 1 3 4 # 44 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/mathdef.h" 1 3 4 # 36 "/usr/include/i386-linux-gnu/bits/mathdef.h" 3 4 typedef long double float_t; typedef long double double_t; # 48 "/usr/include/math.h" 2 3 4 # 71 "/usr/include/math.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 3 4 extern double acos (double __x) throw (); extern double __acos (double __x) throw (); extern double asin (double __x) throw (); extern double __asin (double __x) throw (); extern double atan (double __x) throw (); extern double __atan (double __x) throw (); extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); extern double cos (double __x) throw (); extern double __cos (double __x) throw (); extern double sin (double __x) throw (); extern double __sin (double __x) throw (); extern double tan (double __x) throw (); extern double __tan (double __x) throw (); extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () ; extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); extern double exp (double __x) throw (); extern double __exp (double __x) throw (); extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); extern double log (double __x) throw (); extern double __log (double __x) throw (); extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); extern double logb (double __x) throw (); extern double __logb (double __x) throw (); extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); extern int __isinf (double __value) throw () __attribute__ ((__const__)); extern int __finite (double __value) throw () __attribute__ ((__const__)); extern int isinf (double __value) throw () __attribute__ ((__const__)); extern int finite (double __value) throw () __attribute__ ((__const__)); extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); extern double significand (double __x) throw (); extern double __significand (double __x) throw (); extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnan (double __value) throw () __attribute__ ((__const__)); extern int isnan (double __value) throw () __attribute__ ((__const__)); extern double j0 (double) throw (); extern double __j0 (double) throw (); extern double j1 (double) throw (); extern double __j1 (double) throw (); extern double jn (int, double) throw (); extern double __jn (int, double) throw (); extern double y0 (double) throw (); extern double __y0 (double) throw (); extern double y1 (double) throw (); extern double __y1 (double) throw (); extern double yn (int, double) throw (); extern double __yn (int, double) throw (); extern double erf (double) throw (); extern double __erf (double) throw (); extern double erfc (double) throw (); extern double __erfc (double) throw (); extern double lgamma (double) throw (); extern double __lgamma (double) throw (); extern double tgamma (double) throw (); extern double __tgamma (double) throw (); extern double gamma (double) throw (); extern double __gamma (double) throw (); extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); extern double rint (double __x) throw (); extern double __rint (double __x) throw (); extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw (); extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw (); extern int __fpclassify (double __value) throw () __attribute__ ((__const__)); extern int __signbit (double __value) throw () __attribute__ ((__const__)); extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); # 72 "/usr/include/math.h" 2 3 4 # 94 "/usr/include/math.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 3 4 extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); extern void sincosf # 82 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 3 4 (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf # 82 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 3 4 (float __x, float *__sinx, float *__cosx) throw () ; extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); extern float expf (float __x) throw (); extern float __expf (float __x) throw (); extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); extern float logf (float __x) throw (); extern float __logf (float __x) throw (); extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); extern int __isinff (float __value) throw () __attribute__ ((__const__)); extern int __finitef (float __value) throw () __attribute__ ((__const__)); extern int isinff (float __value) throw () __attribute__ ((__const__)); extern int finitef (float __value) throw () __attribute__ ((__const__)); extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnanf (float __value) throw () __attribute__ ((__const__)); extern int isnanf (float __value) throw () __attribute__ ((__const__)); extern float j0f (float) throw (); extern float __j0f (float) throw (); extern float j1f (float) throw (); extern float __j1f (float) throw (); extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); extern float y0f (float) throw (); extern float __y0f (float) throw (); extern float y1f (float) throw (); extern float __y1f (float) throw (); extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); extern float erff (float) throw (); extern float __erff (float) throw (); extern float erfcf (float) throw (); extern float __erfcf (float) throw (); extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); extern float gammaf (float) throw (); extern float __gammaf (float) throw (); extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw (); extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw (); extern int __fpclassifyf (float __value) throw () __attribute__ ((__const__)); extern int __signbitf (float __value) throw () __attribute__ ((__const__)); extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); # 95 "/usr/include/math.h" 2 3 4 # 146 "/usr/include/math.h" 3 4 # 1 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 3 4 extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); extern void sincosl # 82 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 3 4 (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl # 82 "/usr/include/i386-linux-gnu/bits/mathcalls.h" 3 4 (long double __x, long double *__sinx, long double *__cosx) throw () ; extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); extern int __finitel (long double __value) throw () __attribute__ ((__const__)); extern int isinfl (long double __value) throw () __attribute__ ((__const__)); extern int finitel (long double __value) throw () __attribute__ ((__const__)); extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); 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__)); extern long double nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); extern int isnanl (long double __value) throw () __attribute__ ((__const__)); extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); 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__)); 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__)); extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); 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 (); extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); extern long double fmaxl (long double __x, long double __y) throw (); extern long double __fmaxl (long double __x, long double __y) throw (); extern long double fminl (long double __x, long double __y) throw (); extern long double __fminl (long double __x, long double __y) throw (); extern int __fpclassifyl (long double __value) throw () __attribute__ ((__const__)); extern int __signbitl (long double __value) throw () __attribute__ ((__const__)); 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 (); extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); # 147 "/usr/include/math.h" 2 3 4 # 162 "/usr/include/math.h" 3 4 extern int signgam; # 203 "/usr/include/math.h" 3 4 enum { FP_NAN, FP_INFINITE, FP_ZERO, FP_SUBNORMAL, FP_NORMAL }; # 296 "/usr/include/math.h" 3 4 typedef enum { _IEEE_ = -1, _SVID_, _XOPEN_, _POSIX_, _ISOC_ } _LIB_VERSION_TYPE; extern _LIB_VERSION_TYPE _LIB_VERSION; # 319 "/usr/include/math.h" 3 4 struct __exception { int type; char *name; double arg1; double arg2; double retval; }; extern int matherr (struct __exception *__exc) throw (); # 483 "/usr/include/math.h" 3 4 } # 24 "../flower/include/interval.hh" 2 # 1 "../flower/include/flower-proto.hh" 1 # 23 "../flower/include/flower-proto.hh" char const *flower_version_str0 (); typedef unsigned char Byte; typedef long long I64; class String_convert; # 1 "../flower/include/std-string.hh" 1 # 23 "../flower/include/std-string.hh" # 1 "../flower/include/compare.hh" 1 # 24 "../flower/include/std-string.hh" 2 # 1 "../flower/include/flower-proto.hh" 1 # 25 "../flower/include/std-string.hh" 2 # 35 "../flower/include/std-string.hh" # 1 "/usr/include/c++/4.6/string" 1 3 # 38 "/usr/include/c++/4.6/string" 3 # 39 "/usr/include/c++/4.6/string" 3 # 1 "/usr/include/c++/4.6/bits/char_traits.h" 1 3 # 39 "/usr/include/c++/4.6/bits/char_traits.h" 3 # 40 "/usr/include/c++/4.6/bits/char_traits.h" 3 # 1 "/usr/include/c++/4.6/bits/stl_algobase.h" 1 3 # 61 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 # 1 "/usr/include/c++/4.6/bits/functexcept.h" 1 3 # 41 "/usr/include/c++/4.6/bits/functexcept.h" 3 # 1 "/usr/include/c++/4.6/bits/exception_defines.h" 1 3 # 42 "/usr/include/c++/4.6/bits/functexcept.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { void __throw_bad_exception(void) __attribute__((__noreturn__)); void __throw_bad_alloc(void) __attribute__((__noreturn__)); void __throw_bad_cast(void) __attribute__((__noreturn__)); void __throw_bad_typeid(void) __attribute__((__noreturn__)); void __throw_logic_error(const char*) __attribute__((__noreturn__)); void __throw_domain_error(const char*) __attribute__((__noreturn__)); void __throw_invalid_argument(const char*) __attribute__((__noreturn__)); void __throw_length_error(const char*) __attribute__((__noreturn__)); void __throw_out_of_range(const char*) __attribute__((__noreturn__)); void __throw_runtime_error(const char*) __attribute__((__noreturn__)); void __throw_range_error(const char*) __attribute__((__noreturn__)); void __throw_overflow_error(const char*) __attribute__((__noreturn__)); void __throw_underflow_error(const char*) __attribute__((__noreturn__)); void __throw_ios_failure(const char*) __attribute__((__noreturn__)); void __throw_system_error(int) __attribute__((__noreturn__)); void __throw_future_error(int) __attribute__((__noreturn__)); void __throw_bad_function_call() __attribute__((__noreturn__)); } # 62 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.6/bits/cpp_type_traits.h" 1 3 # 36 "/usr/include/c++/4.6/bits/cpp_type_traits.h" 3 # 37 "/usr/include/c++/4.6/bits/cpp_type_traits.h" 3 # 69 "/usr/include/c++/4.6/bits/cpp_type_traits.h" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { template class __normal_iterator; } namespace std __attribute__ ((__visibility__ ("default"))) { struct __true_type { }; struct __false_type { }; template struct __truth_type { typedef __false_type __type; }; template<> struct __truth_type { typedef __true_type __type; }; template struct __traitor { enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; typedef typename __truth_type<__value>::__type __type; }; template struct __are_same { enum { __value = 0 }; typedef __false_type __type; }; template struct __are_same<_Tp, _Tp> { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_void { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_void { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_integer { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; # 199 "/usr/include/c++/4.6/bits/cpp_type_traits.h" 3 template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_floating { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_floating { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_floating { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_floating { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_pointer { enum { __value = 0 }; typedef __false_type __type; }; template struct __is_pointer<_Tp*> { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_normal_iterator { enum { __value = 0 }; typedef __false_type __type; }; template struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, _Container> > { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_arithmetic : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > { }; template struct __is_fundamental : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> > { }; template struct __is_scalar : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > { }; template struct __is_char { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_char { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_char { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_byte { enum { __value = 0 }; typedef __false_type __type; }; template<> struct __is_byte { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_byte { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_byte { enum { __value = 1 }; typedef __true_type __type; }; template struct __is_move_iterator { enum { __value = 0 }; typedef __false_type __type; }; # 422 "/usr/include/c++/4.6/bits/cpp_type_traits.h" 3 } # 63 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.6/ext/type_traits.h" 1 3 # 33 "/usr/include/c++/4.6/ext/type_traits.h" 3 # 34 "/usr/include/c++/4.6/ext/type_traits.h" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { template struct __enable_if { }; template struct __enable_if { typedef _Tp __type; }; template struct __conditional_type { typedef _Iftrue __type; }; template struct __conditional_type { typedef _Iffalse __type; }; template struct __add_unsigned { private: typedef __enable_if::__value, _Tp> __if_type; public: typedef typename __if_type::__type __type; }; template<> struct __add_unsigned { typedef unsigned char __type; }; template<> struct __add_unsigned { typedef unsigned char __type; }; template<> struct __add_unsigned { typedef unsigned short __type; }; template<> struct __add_unsigned { typedef unsigned int __type; }; template<> struct __add_unsigned { typedef unsigned long __type; }; template<> struct __add_unsigned { typedef unsigned long long __type; }; template<> struct __add_unsigned; template<> struct __add_unsigned; template struct __remove_unsigned { private: typedef __enable_if::__value, _Tp> __if_type; public: typedef typename __if_type::__type __type; }; template<> struct __remove_unsigned { typedef signed char __type; }; template<> struct __remove_unsigned { typedef signed char __type; }; template<> struct __remove_unsigned { typedef short __type; }; template<> struct __remove_unsigned { typedef int __type; }; template<> struct __remove_unsigned { typedef long __type; }; template<> struct __remove_unsigned { typedef long long __type; }; template<> struct __remove_unsigned; template<> struct __remove_unsigned; template inline bool __is_null_pointer(_Type* __ptr) { return __ptr == 0; } template inline bool __is_null_pointer(_Type) { return false; } template::__value> struct __promote { typedef double __type; }; template struct __promote<_Tp, false> { }; template<> struct __promote { typedef long double __type; }; template<> struct __promote { typedef double __type; }; template<> struct __promote { typedef float __type; }; template::__type, typename _Up2 = typename __promote<_Up>::__type> struct __promote_2 { typedef __typeof__(_Tp2() + _Up2()) __type; }; template::__type, typename _Up2 = typename __promote<_Up>::__type, typename _Vp2 = typename __promote<_Vp>::__type> struct __promote_3 { typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; }; template::__type, typename _Up2 = typename __promote<_Up>::__type, typename _Vp2 = typename __promote<_Vp>::__type, typename _Wp2 = typename __promote<_Wp>::__type> struct __promote_4 { typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; }; } # 64 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.6/ext/numeric_traits.h" 1 3 # 32 "/usr/include/c++/4.6/ext/numeric_traits.h" 3 # 33 "/usr/include/c++/4.6/ext/numeric_traits.h" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { # 54 "/usr/include/c++/4.6/ext/numeric_traits.h" 3 template struct __numeric_traits_integer { static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); static const bool __is_signed = ((_Value)(-1) < 0); static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); }; template const _Value __numeric_traits_integer<_Value>::__min; template const _Value __numeric_traits_integer<_Value>::__max; template const bool __numeric_traits_integer<_Value>::__is_signed; template const int __numeric_traits_integer<_Value>::__digits; # 99 "/usr/include/c++/4.6/ext/numeric_traits.h" 3 template struct __numeric_traits_floating { static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); static const bool __is_signed = true; static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); }; template const int __numeric_traits_floating<_Value>::__max_digits10; template const bool __numeric_traits_floating<_Value>::__is_signed; template const int __numeric_traits_floating<_Value>::__digits10; template const int __numeric_traits_floating<_Value>::__max_exponent10; template struct __numeric_traits : public __conditional_type::__value, __numeric_traits_integer<_Value>, __numeric_traits_floating<_Value> >::__type { }; } # 65 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_pair.h" 1 3 # 60 "/usr/include/c++/4.6/bits/stl_pair.h" 3 # 1 "/usr/include/c++/4.6/bits/move.h" 1 3 # 34 "/usr/include/c++/4.6/bits/move.h" 3 # 1 "/usr/include/c++/4.6/bits/concept_check.h" 1 3 # 33 "/usr/include/c++/4.6/bits/concept_check.h" 3 # 34 "/usr/include/c++/4.6/bits/concept_check.h" 3 # 35 "/usr/include/c++/4.6/bits/move.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline _Tp* __addressof(_Tp& __r) { return reinterpret_cast<_Tp*> (&const_cast(reinterpret_cast(__r))); } } # 109 "/usr/include/c++/4.6/bits/move.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 120 "/usr/include/c++/4.6/bits/move.h" 3 template inline void swap(_Tp& __a, _Tp& __b) { _Tp __tmp = (__a); __a = (__b); __b = (__tmp); } template inline void swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) { for (size_t __n = 0; __n < _Nm; ++__n) swap(__a[__n], __b[__n]); } } # 61 "/usr/include/c++/4.6/bits/stl_pair.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 86 "/usr/include/c++/4.6/bits/stl_pair.h" 3 template struct pair { typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair() : first(), second() { } pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) { } template pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) { } # 196 "/usr/include/c++/4.6/bits/stl_pair.h" 3 }; template inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second); } template inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x == __y); } template inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __y < __x; } template inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__y < __x); } template inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x < __y); } # 270 "/usr/include/c++/4.6/bits/stl_pair.h" 3 template inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y) { return pair<_T1, _T2>(__x, __y); } } # 66 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_iterator_base_types.h" 1 3 # 63 "/usr/include/c++/4.6/bits/stl_iterator_base_types.h" 3 # 64 "/usr/include/c++/4.6/bits/stl_iterator_base_types.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 90 "/usr/include/c++/4.6/bits/stl_iterator_base_types.h" 3 struct input_iterator_tag { }; struct output_iterator_tag { }; struct forward_iterator_tag : public input_iterator_tag { }; struct bidirectional_iterator_tag : public forward_iterator_tag { }; struct random_access_iterator_tag : public bidirectional_iterator_tag { }; # 117 "/usr/include/c++/4.6/bits/stl_iterator_base_types.h" 3 template struct iterator { typedef _Category iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Pointer pointer; typedef _Reference reference; }; # 163 "/usr/include/c++/4.6/bits/stl_iterator_base_types.h" 3 template struct iterator_traits { typedef typename _Iterator::iterator_category iterator_category; typedef typename _Iterator::value_type value_type; typedef typename _Iterator::difference_type difference_type; typedef typename _Iterator::pointer pointer; typedef typename _Iterator::reference reference; }; template struct iterator_traits<_Tp*> { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; template struct iterator_traits { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef const _Tp* pointer; typedef const _Tp& reference; }; template inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) { return typename iterator_traits<_Iter>::iterator_category(); } template struct _Iter_base { typedef _Iterator iterator_type; static iterator_type _S_base(_Iterator __it) { return __it; } }; template struct _Iter_base<_Iterator, true> { typedef typename _Iterator::iterator_type iterator_type; static iterator_type _S_base(_Iterator __it) { return __it.base(); } }; } # 67 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h" 1 3 # 63 "/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h" 3 # 64 "/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline typename iterator_traits<_InputIterator>::difference_type __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) { typename iterator_traits<_InputIterator>::difference_type __n = 0; while (__first != __last) { ++__first; ++__n; } return __n; } template inline typename iterator_traits<_RandomAccessIterator>::difference_type __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { return __last - __first; } # 111 "/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h" 3 template inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { return std::__distance(__first, __last, std::__iterator_category(__first)); } template inline void __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) { while (__n--) ++__i; } template inline void __advance(_BidirectionalIterator& __i, _Distance __n, bidirectional_iterator_tag) { if (__n > 0) while (__n--) ++__i; else while (__n++) --__i; } template inline void __advance(_RandomAccessIterator& __i, _Distance __n, random_access_iterator_tag) { __i += __n; } # 169 "/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h" 3 template inline void advance(_InputIterator& __i, _Distance __n) { typename iterator_traits<_InputIterator>::difference_type __d = __n; std::__advance(__i, __d, std::__iterator_category(__i)); } # 200 "/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h" 3 } # 68 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_iterator.h" 1 3 # 68 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 96 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template class reverse_iterator : public iterator::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference> { protected: _Iterator current; typedef iterator_traits<_Iterator> __traits_type; public: typedef _Iterator iterator_type; typedef typename __traits_type::difference_type difference_type; typedef typename __traits_type::pointer pointer; typedef typename __traits_type::reference reference; reverse_iterator() : current() { } explicit reverse_iterator(iterator_type __x) : current(__x) { } reverse_iterator(const reverse_iterator& __x) : current(__x.current) { } template reverse_iterator(const reverse_iterator<_Iter>& __x) : current(__x.base()) { } iterator_type base() const { return current; } reference operator*() const { _Iterator __tmp = current; return *--__tmp; } pointer operator->() const { return &(operator*()); } reverse_iterator& operator++() { --current; return *this; } reverse_iterator operator++(int) { reverse_iterator __tmp = *this; --current; return __tmp; } reverse_iterator& operator--() { ++current; return *this; } reverse_iterator operator--(int) { reverse_iterator __tmp = *this; ++current; return __tmp; } reverse_iterator operator+(difference_type __n) const { return reverse_iterator(current - __n); } reverse_iterator& operator+=(difference_type __n) { current -= __n; return *this; } reverse_iterator operator-(difference_type __n) const { return reverse_iterator(current + __n); } reverse_iterator& operator-=(difference_type __n) { current += __n; return *this; } reference operator[](difference_type __n) const { return *(*this + __n); } }; # 283 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template inline bool operator==(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __x.base() == __y.base(); } template inline bool operator<(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() < __x.base(); } template inline bool operator!=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x == __y); } template inline bool operator>(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y < __x; } template inline bool operator<=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__y < __x); } template inline bool operator>=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x < __y); } template inline typename reverse_iterator<_Iterator>::difference_type operator-(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() - __x.base(); } template inline reverse_iterator<_Iterator> operator+(typename reverse_iterator<_Iterator>::difference_type __n, const reverse_iterator<_Iterator>& __x) { return reverse_iterator<_Iterator>(__x.base() - __n); } template inline bool operator==(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return __x.base() == __y.base(); } template inline bool operator<(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return __y.base() < __x.base(); } template inline bool operator!=(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return !(__x == __y); } template inline bool operator>(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return __y < __x; } template inline bool operator<=(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return !(__y < __x); } template inline bool operator>=(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return !(__x < __y); } template inline typename reverse_iterator<_IteratorL>::difference_type operator-(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return __y.base() - __x.base(); } # 395 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template class back_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit back_insert_iterator(_Container& __x) : container(&__x) { } # 422 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 back_insert_iterator& operator=(typename _Container::const_reference __value) { container->push_back(__value); return *this; } # 445 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 back_insert_iterator& operator*() { return *this; } back_insert_iterator& operator++() { return *this; } back_insert_iterator operator++(int) { return *this; } }; # 471 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template inline back_insert_iterator<_Container> back_inserter(_Container& __x) { return back_insert_iterator<_Container>(__x); } # 486 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template class front_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit front_insert_iterator(_Container& __x) : container(&__x) { } # 512 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 front_insert_iterator& operator=(typename _Container::const_reference __value) { container->push_front(__value); return *this; } # 535 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 front_insert_iterator& operator*() { return *this; } front_insert_iterator& operator++() { return *this; } front_insert_iterator operator++(int) { return *this; } }; # 561 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template inline front_insert_iterator<_Container> front_inserter(_Container& __x) { return front_insert_iterator<_Container>(__x); } # 580 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template class insert_iterator : public iterator { protected: _Container* container; typename _Container::iterator iter; public: typedef _Container container_type; insert_iterator(_Container& __x, typename _Container::iterator __i) : container(&__x), iter(__i) {} # 623 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 insert_iterator& operator=(typename _Container::const_reference __value) { iter = container->insert(iter, __value); ++iter; return *this; } # 649 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 insert_iterator& operator*() { return *this; } insert_iterator& operator++() { return *this; } insert_iterator& operator++(int) { return *this; } }; # 675 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template inline insert_iterator<_Container> inserter(_Container& __x, _Iterator __i) { return insert_iterator<_Container>(__x, typename _Container::iterator(__i)); } } namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { # 699 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 using std::iterator_traits; using std::iterator; template class __normal_iterator { protected: _Iterator _M_current; typedef iterator_traits<_Iterator> __traits_type; public: typedef _Iterator iterator_type; typedef typename __traits_type::iterator_category iterator_category; typedef typename __traits_type::value_type value_type; typedef typename __traits_type::difference_type difference_type; typedef typename __traits_type::reference reference; typedef typename __traits_type::pointer pointer; __normal_iterator() : _M_current(_Iterator()) { } explicit __normal_iterator(const _Iterator& __i) : _M_current(__i) { } template __normal_iterator(const __normal_iterator<_Iter, typename __enable_if< (std::__are_same<_Iter, typename _Container::pointer>::__value), _Container>::__type>& __i) : _M_current(__i.base()) { } reference operator*() const { return *_M_current; } pointer operator->() const { return _M_current; } __normal_iterator& operator++() { ++_M_current; return *this; } __normal_iterator operator++(int) { return __normal_iterator(_M_current++); } __normal_iterator& operator--() { --_M_current; return *this; } __normal_iterator operator--(int) { return __normal_iterator(_M_current--); } reference operator[](const difference_type& __n) const { return _M_current[__n]; } __normal_iterator& operator+=(const difference_type& __n) { _M_current += __n; return *this; } __normal_iterator operator+(const difference_type& __n) const { return __normal_iterator(_M_current + __n); } __normal_iterator& operator-=(const difference_type& __n) { _M_current -= __n; return *this; } __normal_iterator operator-(const difference_type& __n) const { return __normal_iterator(_M_current - __n); } const _Iterator& base() const { return _M_current; } }; # 797 "/usr/include/c++/4.6/bits/stl_iterator.h" 3 template inline bool operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator==(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator<(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator>(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline typename __normal_iterator<_IteratorL, _Container>::difference_type operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() - __rhs.base(); } template inline typename __normal_iterator<_Iterator, _Container>::difference_type operator-(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() - __rhs.base(); } template inline __normal_iterator<_Iterator, _Container> operator+(typename __normal_iterator<_Iterator, _Container>::difference_type __n, const __normal_iterator<_Iterator, _Container>& __i) { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } } # 69 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 # 1 "/usr/include/c++/4.6/debug/debug.h" 1 3 # 47 "/usr/include/c++/4.6/debug/debug.h" 3 namespace std { namespace __debug { } } namespace __gnu_debug { using namespace std::__debug; } # 71 "/usr/include/c++/4.6/bits/stl_algobase.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct __iter_swap { template static void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) { typedef typename iterator_traits<_ForwardIterator1>::value_type _ValueType1; _ValueType1 __tmp = (*__a); *__a = (*__b); *__b = (__tmp); } }; template<> struct __iter_swap { template static void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) { swap(*__a, *__b); } }; # 116 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) { typedef typename iterator_traits<_ForwardIterator1>::value_type _ValueType1; typedef typename iterator_traits<_ForwardIterator2>::value_type _ValueType2; typedef typename iterator_traits<_ForwardIterator1>::reference _ReferenceType1; typedef typename iterator_traits<_ForwardIterator2>::reference _ReferenceType2; std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value && __are_same<_ValueType1&, _ReferenceType1>::__value && __are_same<_ValueType2&, _ReferenceType2>::__value>:: iter_swap(__a, __b); } # 157 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template _ForwardIterator2 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2) { ; for (; __first1 != __last1; ++__first1, ++__first2) std::iter_swap(__first1, __first2); return __first2; } # 185 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b) { if (__b < __a) return __b; return __a; } # 208 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b) { if (__a < __b) return __b; return __a; } # 231 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__b, __a)) return __b; return __a; } # 252 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__a, __b)) return __b; return __a; } template struct _Niter_base : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value> { }; template inline typename _Niter_base<_Iterator>::iterator_type __niter_base(_Iterator __it) { return std::_Niter_base<_Iterator>::_S_base(__it); } template struct _Miter_base : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value> { }; template inline typename _Miter_base<_Iterator>::iterator_type __miter_base(_Iterator __it) { return std::_Miter_base<_Iterator>::_S_base(__it); } template struct __copy_move { template static _OI __copy_m(_II __first, _II __last, _OI __result) { for (; __first != __last; ++__result, ++__first) *__result = *__first; return __result; } }; # 319 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template<> struct __copy_move { template static _OI __copy_m(_II __first, _II __last, _OI __result) { typedef typename iterator_traits<_II>::difference_type _Distance; for(_Distance __n = __last - __first; __n > 0; --__n) { *__result = *__first; ++__first; ++__result; } return __result; } }; # 357 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template struct __copy_move<_IsMove, true, random_access_iterator_tag> { template static _Tp* __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) { const ptrdiff_t _Num = __last - __first; if (_Num) __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); return __result + _Num; } }; template inline _OI __copy_move_a(_II __first, _II __last, _OI __result) { typedef typename iterator_traits<_II>::value_type _ValueTypeI; typedef typename iterator_traits<_OI>::value_type _ValueTypeO; typedef typename iterator_traits<_II>::iterator_category _Category; const bool __simple = (__is_trivial(_ValueTypeI) && __is_pointer<_II>::__value && __is_pointer<_OI>::__value && __are_same<_ValueTypeI, _ValueTypeO>::__value); return std::__copy_move<_IsMove, __simple, _Category>::__copy_m(__first, __last, __result); } template struct char_traits; template class istreambuf_iterator; template class ostreambuf_iterator; template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type __copy_move_a2(_CharT*, _CharT*, ostreambuf_iterator<_CharT, char_traits<_CharT> >); template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type __copy_move_a2(const _CharT*, const _CharT*, ostreambuf_iterator<_CharT, char_traits<_CharT> >); template typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT*>::__type __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); template inline _OI __copy_move_a2(_II __first, _II __last, _OI __result) { return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); } # 442 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline _OI copy(_II __first, _II __last, _OI __result) { ; return (std::__copy_move_a2<__is_move_iterator<_II>::__value> (std::__miter_base(__first), std::__miter_base(__last), __result)); } # 494 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template struct __copy_move_backward { template static _BI2 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) { while (__first != __last) *--__result = *--__last; return __result; } }; # 522 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template<> struct __copy_move_backward { template static _BI2 __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) { typename iterator_traits<_BI1>::difference_type __n; for (__n = __last - __first; __n > 0; --__n) *--__result = *--__last; return __result; } }; # 552 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> { template static _Tp* __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) { const ptrdiff_t _Num = __last - __first; if (_Num) __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); return __result - _Num; } }; template inline _BI2 __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) { typedef typename iterator_traits<_BI1>::value_type _ValueType1; typedef typename iterator_traits<_BI2>::value_type _ValueType2; typedef typename iterator_traits<_BI1>::iterator_category _Category; const bool __simple = (__is_trivial(_ValueType1) && __is_pointer<_BI1>::__value && __is_pointer<_BI2>::__value && __are_same<_ValueType1, _ValueType2>::__value); return std::__copy_move_backward<_IsMove, __simple, _Category>::__copy_move_b(__first, __last, __result); } template inline _BI2 __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) { return _BI2(std::__copy_move_backward_a<_IsMove> (std::__niter_base(__first), std::__niter_base(__last), std::__niter_base(__result))); } # 611 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline _BI2 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) { ; return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> (std::__miter_base(__first), std::__miter_base(__last), __result)); } # 669 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline typename __gnu_cxx::__enable_if::__value, void>::__type __fill_a(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { for (; __first != __last; ++__first) *__first = __value; } template inline typename __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type __fill_a(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { const _Tp __tmp = __value; for (; __first != __last; ++__first) *__first = __tmp; } template inline typename __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) { const _Tp __tmp = __c; __builtin_memset(__first, static_cast(__tmp), __last - __first); } # 713 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline void fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { ; std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), __value); } template inline typename __gnu_cxx::__enable_if::__value, _OutputIterator>::__type __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) { for (__decltype(__n + 0) __niter = __n; __niter > 0; --__niter, ++__first) *__first = __value; return __first; } template inline typename __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) { const _Tp __tmp = __value; for (__decltype(__n + 0) __niter = __n; __niter > 0; --__niter, ++__first) *__first = __tmp; return __first; } template inline typename __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) { std::__fill_a(__first, __first + __n, __c); return __first + __n; } # 773 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline _OI fill_n(_OI __first, _Size __n, const _Tp& __value) { return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); } template struct __equal { template static bool equal(_II1 __first1, _II1 __last1, _II2 __first2) { for (; __first1 != __last1; ++__first1, ++__first2) if (!(*__first1 == *__first2)) return false; return true; } }; template<> struct __equal { template static bool equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) { return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * (__last1 - __first1)); } }; template inline bool __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) { typedef typename iterator_traits<_II1>::value_type _ValueType1; typedef typename iterator_traits<_II2>::value_type _ValueType2; const bool __simple = (__is_integer<_ValueType1>::__value && __is_pointer<_II1>::__value && __is_pointer<_II2>::__value && __are_same<_ValueType1, _ValueType2>::__value); return std::__equal<__simple>::equal(__first1, __last1, __first2); } template struct __lc_rai { template static _II1 __newlast1(_II1, _II1 __last1, _II2, _II2) { return __last1; } template static bool __cnd2(_II __first, _II __last) { return __first != __last; } }; template<> struct __lc_rai { template static _RAI1 __newlast1(_RAI1 __first1, _RAI1 __last1, _RAI2 __first2, _RAI2 __last2) { const typename iterator_traits<_RAI1>::difference_type __diff1 = __last1 - __first1; const typename iterator_traits<_RAI2>::difference_type __diff2 = __last2 - __first2; return __diff2 < __diff1 ? __first1 + __diff2 : __last1; } template static bool __cnd2(_RAI, _RAI) { return true; } }; template struct __lexicographical_compare { template static bool __lc(_II1, _II1, _II2, _II2); }; template template bool __lexicographical_compare<_BoolType>:: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) { typedef typename iterator_traits<_II1>::iterator_category _Category1; typedef typename iterator_traits<_II2>::iterator_category _Category2; typedef std::__lc_rai<_Category1, _Category2> __rai_type; __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); ++__first1, ++__first2) { if (*__first1 < *__first2) return true; if (*__first2 < *__first1) return false; } return __first1 == __last1 && __first2 != __last2; } template<> struct __lexicographical_compare { template static bool __lc(const _Tp* __first1, const _Tp* __last1, const _Up* __first2, const _Up* __last2) { const size_t __len1 = __last1 - __first1; const size_t __len2 = __last2 - __first2; const int __result = __builtin_memcmp(__first1, __first2, std::min(__len1, __len2)); return __result != 0 ? __result < 0 : __len1 < __len2; } }; template inline bool __lexicographical_compare_aux(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) { typedef typename iterator_traits<_II1>::value_type _ValueType1; typedef typename iterator_traits<_II2>::value_type _ValueType2; const bool __simple = (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed && __is_pointer<_II1>::__value && __is_pointer<_II2>::__value); return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, __first2, __last2); } # 934 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template _ForwardIterator lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; _DistanceType __len = std::distance(__first, __last); while (__len > 0) { _DistanceType __half = __len >> 1; _ForwardIterator __middle = __first; std::advance(__middle, __half); if (*__middle < __val) { __first = __middle; ++__first; __len = __len - __half - 1; } else __len = __half; } return __first; } template inline _Size __lg(_Size __n) { _Size __k; for (__k = 0; __n != 0; __n >>= 1) ++__k; return __k - 1; } inline int __lg(int __n) { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } inline long __lg(long __n) { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } inline long long __lg(long long __n) { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } # 1008 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline bool equal(_II1 __first1, _II1 __last1, _II2 __first2) { ; return std::__equal_aux(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2)); } # 1040 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline bool equal(_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _BinaryPredicate __binary_pred) { ; for (; __first1 != __last1; ++__first1, ++__first2) if (!bool(__binary_pred(*__first1, *__first2))) return false; return true; } # 1071 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template inline bool lexicographical_compare(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) { typedef typename iterator_traits<_II1>::value_type _ValueType1; typedef typename iterator_traits<_II2>::value_type _ValueType2; ; ; return std::__lexicographical_compare_aux(std::__niter_base(__first1), std::__niter_base(__last1), std::__niter_base(__first2), std::__niter_base(__last2)); } # 1105 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template bool lexicographical_compare(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _Compare __comp) { typedef typename iterator_traits<_II1>::iterator_category _Category1; typedef typename iterator_traits<_II2>::iterator_category _Category2; typedef std::__lc_rai<_Category1, _Category2> __rai_type; ; ; __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); ++__first1, ++__first2) { if (__comp(*__first1, *__first2)) return true; if (__comp(*__first2, *__first1)) return false; } return __first1 == __last1 && __first2 != __last2; } # 1145 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template pair<_InputIterator1, _InputIterator2> mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2) { ; while (__first1 != __last1 && *__first1 == *__first2) { ++__first1; ++__first2; } return pair<_InputIterator1, _InputIterator2>(__first1, __first2); } # 1182 "/usr/include/c++/4.6/bits/stl_algobase.h" 3 template pair<_InputIterator1, _InputIterator2> mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __binary_pred) { ; while (__first1 != __last1 && bool(__binary_pred(*__first1, *__first2))) { ++__first1; ++__first2; } return pair<_InputIterator1, _InputIterator2>(__first1, __first2); } } # 42 "/usr/include/c++/4.6/bits/char_traits.h" 2 3 # 1 "/usr/include/c++/4.6/cwchar" 1 3 # 41 "/usr/include/c++/4.6/cwchar" 3 # 42 "/usr/include/c++/4.6/cwchar" 3 # 1 "/usr/include/wchar.h" 1 3 4 # 47 "/usr/include/c++/4.6/cwchar" 2 3 # 44 "/usr/include/c++/4.6/bits/char_traits.h" 2 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { # 59 "/usr/include/c++/4.6/bits/char_traits.h" 3 template struct _Char_types { typedef unsigned long int_type; typedef std::streampos pos_type; typedef std::streamoff off_type; typedef std::mbstate_t state_type; }; # 84 "/usr/include/c++/4.6/bits/char_traits.h" 3 template struct char_traits { typedef _CharT char_type; typedef typename _Char_types<_CharT>::int_type int_type; typedef typename _Char_types<_CharT>::pos_type pos_type; typedef typename _Char_types<_CharT>::off_type off_type; typedef typename _Char_types<_CharT>::state_type state_type; static void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } static bool eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } static bool lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } static int compare(const char_type* __s1, const char_type* __s2, std::size_t __n); static std::size_t length(const char_type* __s); static const char_type* find(const char_type* __s, std::size_t __n, const char_type& __a); static char_type* move(char_type* __s1, const char_type* __s2, std::size_t __n); static char_type* copy(char_type* __s1, const char_type* __s2, std::size_t __n); static char_type* assign(char_type* __s, std::size_t __n, char_type __a); static char_type to_char_type(const int_type& __c) { return static_cast(__c); } static int_type to_int_type(const char_type& __c) { return static_cast(__c); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast(-1); } static int_type not_eof(const int_type& __c) { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } }; template int char_traits<_CharT>:: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) { for (std::size_t __i = 0; __i < __n; ++__i) if (lt(__s1[__i], __s2[__i])) return -1; else if (lt(__s2[__i], __s1[__i])) return 1; return 0; } template std::size_t char_traits<_CharT>:: length(const char_type* __p) { std::size_t __i = 0; while (!eq(__p[__i], char_type())) ++__i; return __i; } template const typename char_traits<_CharT>::char_type* char_traits<_CharT>:: find(const char_type* __s, std::size_t __n, const char_type& __a) { for (std::size_t __i = 0; __i < __n; ++__i) if (eq(__s[__i], __a)) return __s + __i; return 0; } template typename char_traits<_CharT>::char_type* char_traits<_CharT>:: move(char_type* __s1, const char_type* __s2, std::size_t __n) { return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, __n * sizeof(char_type))); } template typename char_traits<_CharT>::char_type* char_traits<_CharT>:: copy(char_type* __s1, const char_type* __s2, std::size_t __n) { std::copy(__s2, __s2 + __n, __s1); return __s1; } template typename char_traits<_CharT>::char_type* char_traits<_CharT>:: assign(char_type* __s, std::size_t __n, char_type __a) { std::fill_n(__s, __n, __a); return __s; } } namespace std __attribute__ ((__visibility__ ("default"))) { # 228 "/usr/include/c++/4.6/bits/char_traits.h" 3 template struct char_traits : public __gnu_cxx::char_traits<_CharT> { }; template<> struct char_traits { typedef char char_type; typedef int int_type; typedef streampos pos_type; typedef streamoff off_type; typedef mbstate_t state_type; static void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } static bool eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } static bool lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } static int compare(const char_type* __s1, const char_type* __s2, size_t __n) { return __builtin_memcmp(__s1, __s2, __n); } static size_t length(const char_type* __s) { return __builtin_strlen(__s); } static const char_type* find(const char_type* __s, size_t __n, const char_type& __a) { return static_cast(__builtin_memchr(__s, __a, __n)); } static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) { return static_cast(__builtin_memmove(__s1, __s2, __n)); } static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) { return static_cast(__builtin_memcpy(__s1, __s2, __n)); } static char_type* assign(char_type* __s, size_t __n, char_type __a) { return static_cast(__builtin_memset(__s, __a, __n)); } static char_type to_char_type(const int_type& __c) { return static_cast(__c); } static int_type to_int_type(const char_type& __c) { return static_cast(static_cast(__c)); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast(-1); } static int_type not_eof(const int_type& __c) { return (__c == eof()) ? 0 : __c; } }; template<> struct char_traits { typedef wchar_t char_type; typedef wint_t int_type; typedef streamoff off_type; typedef wstreampos pos_type; typedef mbstate_t state_type; static void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } static bool eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } static bool lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } static int compare(const char_type* __s1, const char_type* __s2, size_t __n) { return wmemcmp(__s1, __s2, __n); } static size_t length(const char_type* __s) { return wcslen(__s); } static const char_type* find(const char_type* __s, size_t __n, const char_type& __a) { return wmemchr(__s, __a, __n); } static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) { return wmemmove(__s1, __s2, __n); } static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) { return wmemcpy(__s1, __s2, __n); } static char_type* assign(char_type* __s, size_t __n, char_type __a) { return wmemset(__s, __a, __n); } static char_type to_char_type(const int_type& __c) { return char_type(__c); } static int_type to_int_type(const char_type& __c) { return int_type(__c); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast((0xffffffffu)); } static int_type not_eof(const int_type& __c) { return eq_int_type(__c, eof()) ? 0 : __c; } }; } # 43 "/usr/include/c++/4.6/string" 2 3 # 1 "/usr/include/c++/4.6/bits/allocator.h" 1 3 # 48 "/usr/include/c++/4.6/bits/allocator.h" 3 # 1 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++allocator.h" 1 3 # 34 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++allocator.h" 3 # 1 "/usr/include/c++/4.6/ext/new_allocator.h" 1 3 # 34 "/usr/include/c++/4.6/ext/new_allocator.h" 3 # 1 "/usr/include/c++/4.6/new" 1 3 # 39 "/usr/include/c++/4.6/new" 3 # 40 "/usr/include/c++/4.6/new" 3 # 1 "/usr/include/c++/4.6/exception" 1 3 # 35 "/usr/include/c++/4.6/exception" 3 # 36 "/usr/include/c++/4.6/exception" 3 #pragma GCC visibility push(default) extern "C++" { namespace std { # 61 "/usr/include/c++/4.6/exception" 3 class exception { public: exception() throw() { } virtual ~exception() throw(); virtual const char* what() const throw(); }; class bad_exception : public exception { public: bad_exception() throw() { } virtual ~bad_exception() throw(); virtual const char* what() const throw(); }; typedef void (*terminate_handler) (); typedef void (*unexpected_handler) (); terminate_handler set_terminate(terminate_handler) throw(); void terminate() throw() __attribute__ ((__noreturn__)); unexpected_handler set_unexpected(unexpected_handler) throw(); void unexpected() __attribute__ ((__noreturn__)); # 118 "/usr/include/c++/4.6/exception" 3 bool uncaught_exception() throw() __attribute__ ((__pure__)); } namespace __gnu_cxx { # 143 "/usr/include/c++/4.6/exception" 3 void __verbose_terminate_handler(); } } #pragma GCC visibility pop # 43 "/usr/include/c++/4.6/new" 2 3 #pragma GCC visibility push(default) extern "C++" { namespace std { class bad_alloc : public exception { public: bad_alloc() throw() { } virtual ~bad_alloc() throw(); virtual const char* what() const throw(); }; struct nothrow_t { }; extern const nothrow_t nothrow; typedef void (*new_handler)(); new_handler set_new_handler(new_handler) throw(); } # 93 "/usr/include/c++/4.6/new" 3 void* operator new(std::size_t) throw (std::bad_alloc); void* operator new[](std::size_t) throw (std::bad_alloc); void operator delete(void*) throw(); void operator delete[](void*) throw(); void* operator new(std::size_t, const std::nothrow_t&) throw(); void* operator new[](std::size_t, const std::nothrow_t&) throw(); void operator delete(void*, const std::nothrow_t&) throw(); void operator delete[](void*, const std::nothrow_t&) throw(); inline void* operator new(std::size_t, void* __p) throw() { return __p; } inline void* operator new[](std::size_t, void* __p) throw() { return __p; } inline void operator delete (void*, void*) throw() { } inline void operator delete[](void*, void*) throw() { } } #pragma GCC visibility pop # 35 "/usr/include/c++/4.6/ext/new_allocator.h" 2 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { using std::size_t; using std::ptrdiff_t; # 53 "/usr/include/c++/4.6/ext/new_allocator.h" 3 template class new_allocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef new_allocator<_Tp1> other; }; new_allocator() throw() { } new_allocator(const new_allocator&) throw() { } template new_allocator(const new_allocator<_Tp1>&) throw() { } ~new_allocator() throw() { } pointer address(reference __x) const { return std::__addressof(__x); } const_pointer address(const_reference __x) const { return std::__addressof(__x); } pointer allocate(size_type __n, const void* = 0) { if (__n > this->max_size()) std::__throw_bad_alloc(); return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); } void deallocate(pointer __p, size_type) { ::operator delete(__p); } size_type max_size() const throw() { return size_t(-1) / sizeof(_Tp); } void construct(pointer __p, const _Tp& __val) { ::new((void *)__p) _Tp(__val); } # 117 "/usr/include/c++/4.6/ext/new_allocator.h" 3 void destroy(pointer __p) { __p->~_Tp(); } }; template inline bool operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) { return true; } template inline bool operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) { return false; } } # 35 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++allocator.h" 2 3 # 49 "/usr/include/c++/4.6/bits/allocator.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 65 "/usr/include/c++/4.6/bits/allocator.h" 3 template class allocator; template<> class allocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template struct rebind { typedef allocator<_Tp1> other; }; }; # 91 "/usr/include/c++/4.6/bits/allocator.h" 3 template class allocator: public __gnu_cxx::new_allocator<_Tp> { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() { } allocator(const allocator& __a) throw() : __gnu_cxx::new_allocator<_Tp>(__a) { } template allocator(const allocator<_Tp1>&) throw() { } ~allocator() throw() { } }; template inline bool operator==(const allocator<_T1>&, const allocator<_T2>&) { return true; } template inline bool operator==(const allocator<_Tp>&, const allocator<_Tp>&) { return true; } template inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&) { return false; } template inline bool operator!=(const allocator<_Tp>&, const allocator<_Tp>&) { return false; } extern template class allocator; extern template class allocator; template struct __alloc_swap { static void _S_do_it(_Alloc&, _Alloc&) { } }; template struct __alloc_swap<_Alloc, false> { static void _S_do_it(_Alloc& __one, _Alloc& __two) { if (__one != __two) swap(__one, __two); } }; template struct __alloc_neq { static bool _S_do_it(const _Alloc&, const _Alloc&) { return false; } }; template struct __alloc_neq<_Alloc, false> { static bool _S_do_it(const _Alloc& __one, const _Alloc& __two) { return __one != __two; } }; # 236 "/usr/include/c++/4.6/bits/allocator.h" 3 } # 44 "/usr/include/c++/4.6/string" 2 3 # 1 "/usr/include/c++/4.6/bits/localefwd.h" 1 3 # 39 "/usr/include/c++/4.6/bits/localefwd.h" 3 # 40 "/usr/include/c++/4.6/bits/localefwd.h" 3 # 1 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++locale.h" 1 3 # 40 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++locale.h" 3 # 41 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++locale.h" 3 # 1 "/usr/include/c++/4.6/clocale" 1 3 # 41 "/usr/include/c++/4.6/clocale" 3 # 42 "/usr/include/c++/4.6/clocale" 3 # 1 "/usr/include/locale.h" 1 3 4 # 29 "/usr/include/locale.h" 3 4 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include/stddef.h" 1 3 4 # 30 "/usr/include/locale.h" 2 3 4 # 1 "/usr/include/i386-linux-gnu/bits/locale.h" 1 3 4 # 27 "/usr/include/i386-linux-gnu/bits/locale.h" 3 4 enum { __LC_CTYPE = 0, __LC_NUMERIC = 1, __LC_TIME = 2, __LC_COLLATE = 3, __LC_MONETARY = 4, __LC_MESSAGES = 5, __LC_ALL = 6, __LC_PAPER = 7, __LC_NAME = 8, __LC_ADDRESS = 9, __LC_TELEPHONE = 10, __LC_MEASUREMENT = 11, __LC_IDENTIFICATION = 12 }; # 31 "/usr/include/locale.h" 2 3 4 extern "C" { # 51 "/usr/include/locale.h" 3 4 struct lconv { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; char int_p_cs_precedes; char int_p_sep_by_space; char int_n_cs_precedes; char int_n_sep_by_space; char int_p_sign_posn; char int_n_sign_posn; # 121 "/usr/include/locale.h" 3 4 }; extern char *setlocale (int __category, __const char *__locale) throw (); extern struct lconv *localeconv (void) throw (); # 152 "/usr/include/locale.h" 3 4 extern __locale_t newlocale (int __category_mask, __const char *__locale, __locale_t __base) throw (); # 187 "/usr/include/locale.h" 3 4 extern __locale_t duplocale (__locale_t __dataset) throw (); extern void freelocale (__locale_t __dataset) throw (); extern __locale_t uselocale (__locale_t __dataset) throw (); } # 45 "/usr/include/c++/4.6/clocale" 2 3 # 53 "/usr/include/c++/4.6/clocale" 3 namespace std { using ::lconv; using ::setlocale; using ::localeconv; } # 43 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++locale.h" 2 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { extern "C" __typeof(uselocale) __uselocale; } namespace std __attribute__ ((__visibility__ ("default"))) { typedef __locale_t __c_locale; inline int __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), char* __out, const int __size __attribute__ ((__unused__)), const char* __fmt, ...) { __c_locale __old = __gnu_cxx::__uselocale(__cloc); # 89 "/usr/include/c++/4.6/i686-linux-gnu/./bits/c++locale.h" 3 __builtin_va_list __args; __builtin_va_start(__args, __fmt); const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); __builtin_va_end(__args); __gnu_cxx::__uselocale(__old); return __ret; } } # 43 "/usr/include/c++/4.6/bits/localefwd.h" 2 3 # 1 "/usr/include/c++/4.6/cctype" 1 3 # 41 "/usr/include/c++/4.6/cctype" 3 # 42 "/usr/include/c++/4.6/cctype" 3 # 1 "/usr/include/ctype.h" 1 3 4 # 30 "/usr/include/ctype.h" 3 4 extern "C" { # 48 "/usr/include/ctype.h" 3 4 enum { _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) }; # 81 "/usr/include/ctype.h" 3 4 extern __const unsigned short int **__ctype_b_loc (void) throw () __attribute__ ((__const)); extern __const __int32_t **__ctype_tolower_loc (void) throw () __attribute__ ((__const)); extern __const __int32_t **__ctype_toupper_loc (void) throw () __attribute__ ((__const)); # 106 "/usr/include/ctype.h" 3 4 extern int isalnum (int) throw (); extern int isalpha (int) throw (); extern int iscntrl (int) throw (); extern int isdigit (int) throw (); extern int islower (int) throw (); extern int isgraph (int) throw (); extern int isprint (int) throw (); extern int ispunct (int) throw (); extern int isspace (int) throw (); extern int isupper (int) throw (); extern int isxdigit (int) throw (); extern int tolower (int __c) throw (); extern int toupper (int __c) throw (); extern int isblank (int) throw (); extern int isctype (int __c, int __mask) throw (); extern int isascii (int __c) throw (); extern int toascii (int __c) throw (); extern int _toupper (int) throw (); extern int _tolower (int) throw (); # 273 "/usr/include/ctype.h" 3 4 extern int isalnum_l (int, __locale_t) throw (); extern int isalpha_l (int, __locale_t) throw (); extern int iscntrl_l (int, __locale_t) throw (); extern int isdigit_l (int, __locale_t) throw (); extern int islower_l (int, __locale_t) throw (); extern int isgraph_l (int, __locale_t) throw (); extern int isprint_l (int, __locale_t) throw (); extern int ispunct_l (int, __locale_t) throw (); extern int isspace_l (int, __locale_t) throw (); extern int isupper_l (int, __locale_t) throw (); extern int isxdigit_l (int, __locale_t) throw (); extern int isblank_l (int, __locale_t) throw (); extern int __tolower_l (int __c, __locale_t __l) throw (); extern int tolower_l (int __c, __locale_t __l) throw (); extern int __toupper_l (int __c, __locale_t __l) throw (); extern int toupper_l (int __c, __locale_t __l) throw (); # 349 "/usr/include/ctype.h" 3 4 } # 45 "/usr/include/c++/4.6/cctype" 2 3 # 64 "/usr/include/c++/4.6/cctype" 3 namespace std { using ::isalnum; using ::isalpha; using ::iscntrl; using ::isdigit; using ::isgraph; using ::islower; using ::isprint; using ::ispunct; using ::isspace; using ::isupper; using ::isxdigit; using ::tolower; using ::toupper; } # 45 "/usr/include/c++/4.6/bits/localefwd.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 57 "/usr/include/c++/4.6/bits/localefwd.h" 3 class locale; template bool has_facet(const locale&) throw(); template const _Facet& use_facet(const locale&); template bool isspace(_CharT, const locale&); template bool isprint(_CharT, const locale&); template bool iscntrl(_CharT, const locale&); template bool isupper(_CharT, const locale&); template bool islower(_CharT, const locale&); template bool isalpha(_CharT, const locale&); template bool isdigit(_CharT, const locale&); template bool ispunct(_CharT, const locale&); template bool isxdigit(_CharT, const locale&); template bool isalnum(_CharT, const locale&); template bool isgraph(_CharT, const locale&); template _CharT toupper(_CharT, const locale&); template _CharT tolower(_CharT, const locale&); class ctype_base; template class ctype; template<> class ctype; template<> class ctype; template class ctype_byname; class codecvt_base; template class codecvt; template<> class codecvt; template<> class codecvt; template class codecvt_byname; template > class num_get; template > class num_put; template class numpunct; template class numpunct_byname; template class collate; template class collate_byname; class time_base; template > class time_get; template > class time_get_byname; template > class time_put; template > class time_put_byname; class money_base; template > class money_get; template > class money_put; template class moneypunct; template class moneypunct_byname; class messages_base; template class messages; template class messages_byname; } # 46 "/usr/include/c++/4.6/string" 2 3 # 1 "/usr/include/c++/4.6/bits/ostream_insert.h" 1 3 # 33 "/usr/include/c++/4.6/bits/ostream_insert.h" 3 # 34 "/usr/include/c++/4.6/bits/ostream_insert.h" 3 # 1 "/usr/include/c++/4.6/bits/cxxabi_forced.h" 1 3 # 34 "/usr/include/c++/4.6/bits/cxxabi_forced.h" 3 # 35 "/usr/include/c++/4.6/bits/cxxabi_forced.h" 3 #pragma GCC visibility push(default) namespace __cxxabiv1 { class __forced_unwind { virtual ~__forced_unwind() throw(); virtual void __pure_dummy() = 0; }; } #pragma GCC visibility pop # 37 "/usr/include/c++/4.6/bits/ostream_insert.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { template inline void __ostream_write(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s, streamsize __n) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const streamsize __put = __out.rdbuf()->sputn(__s, __n); if (__put != __n) __out.setstate(__ios_base::badbit); } template inline void __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; const _CharT __c = __out.fill(); for (; __n > 0; --__n) { const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); if (_Traits::eq_int_type(__put, _Traits::eof())) { __out.setstate(__ios_base::badbit); break; } } } template basic_ostream<_CharT, _Traits>& __ostream_insert(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s, streamsize __n) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef typename __ostream_type::ios_base __ios_base; typename __ostream_type::sentry __cerb(__out); if (__cerb) { try { const streamsize __w = __out.width(); if (__w > __n) { const bool __left = ((__out.flags() & __ios_base::adjustfield) == __ios_base::left); if (!__left) __ostream_fill(__out, __w - __n); if (__out.good()) __ostream_write(__out, __s, __n); if (__left && __out.good()) __ostream_fill(__out, __w - __n); } else __ostream_write(__out, __s, __n); __out.width(0); } catch(__cxxabiv1::__forced_unwind&) { __out._M_setstate(__ios_base::badbit); throw; } catch(...) { __out._M_setstate(__ios_base::badbit); } } return __out; } extern template ostream& __ostream_insert(ostream&, const char*, streamsize); extern template wostream& __ostream_insert(wostream&, const wchar_t*, streamsize); } # 47 "/usr/include/c++/4.6/string" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_function.h" 1 3 # 60 "/usr/include/c++/4.6/bits/stl_function.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 101 "/usr/include/c++/4.6/bits/stl_function.h" 3 template struct unary_function { typedef _Arg argument_type; typedef _Result result_type; }; template struct binary_function { typedef _Arg1 first_argument_type; typedef _Arg2 second_argument_type; typedef _Result result_type; }; # 140 "/usr/include/c++/4.6/bits/stl_function.h" 3 template struct plus : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + __y; } }; template struct minus : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - __y; } }; template struct multiplies : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * __y; } }; template struct divides : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / __y; } }; template struct modulus : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % __y; } }; template struct negate : public unary_function<_Tp, _Tp> { _Tp operator()(const _Tp& __x) const { return -__x; } }; # 204 "/usr/include/c++/4.6/bits/stl_function.h" 3 template struct equal_to : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; } }; template struct not_equal_to : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x != __y; } }; template struct greater : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; } }; template struct less : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } }; template struct greater_equal : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x >= __y; } }; template struct less_equal : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x <= __y; } }; # 268 "/usr/include/c++/4.6/bits/stl_function.h" 3 template struct logical_and : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && __y; } }; template struct logical_or : public binary_function<_Tp, _Tp, bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || __y; } }; template struct logical_not : public unary_function<_Tp, bool> { bool operator()(const _Tp& __x) const { return !__x; } }; template struct bit_and : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x & __y; } }; template struct bit_or : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x | __y; } }; template struct bit_xor : public binary_function<_Tp, _Tp, _Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x ^ __y; } }; # 351 "/usr/include/c++/4.6/bits/stl_function.h" 3 template class unary_negate : public unary_function { protected: _Predicate _M_pred; public: explicit unary_negate(const _Predicate& __x) : _M_pred(__x) { } bool operator()(const typename _Predicate::argument_type& __x) const { return !_M_pred(__x); } }; template inline unary_negate<_Predicate> not1(const _Predicate& __pred) { return unary_negate<_Predicate>(__pred); } template class binary_negate : public binary_function { protected: _Predicate _M_pred; public: explicit binary_negate(const _Predicate& __x) : _M_pred(__x) { } bool operator()(const typename _Predicate::first_argument_type& __x, const typename _Predicate::second_argument_type& __y) const { return !_M_pred(__x, __y); } }; template inline binary_negate<_Predicate> not2(const _Predicate& __pred) { return binary_negate<_Predicate>(__pred); } # 422 "/usr/include/c++/4.6/bits/stl_function.h" 3 template class pointer_to_unary_function : public unary_function<_Arg, _Result> { protected: _Result (*_M_ptr)(_Arg); public: pointer_to_unary_function() { } explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) { } _Result operator()(_Arg __x) const { return _M_ptr(__x); } }; template inline pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result (*__x)(_Arg)) { return pointer_to_unary_function<_Arg, _Result>(__x); } template class pointer_to_binary_function : public binary_function<_Arg1, _Arg2, _Result> { protected: _Result (*_M_ptr)(_Arg1, _Arg2); public: pointer_to_binary_function() { } explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) : _M_ptr(__x) { } _Result operator()(_Arg1 __x, _Arg2 __y) const { return _M_ptr(__x, __y); } }; template inline pointer_to_binary_function<_Arg1, _Arg2, _Result> ptr_fun(_Result (*__x)(_Arg1, _Arg2)) { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } template struct _Identity : public unary_function<_Tp,_Tp> { _Tp& operator()(_Tp& __x) const { return __x; } const _Tp& operator()(const _Tp& __x) const { return __x; } }; template struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> { typename _Pair::first_type& operator()(_Pair& __x) const { return __x.first; } const typename _Pair::first_type& operator()(const _Pair& __x) const { return __x.first; } # 508 "/usr/include/c++/4.6/bits/stl_function.h" 3 }; template struct _Select2nd : public unary_function<_Pair, typename _Pair::second_type> { typename _Pair::second_type& operator()(_Pair& __x) const { return __x.second; } const typename _Pair::second_type& operator()(const _Pair& __x) const { return __x.second; } }; # 541 "/usr/include/c++/4.6/bits/stl_function.h" 3 template class mem_fun_t : public unary_function<_Tp*, _Ret> { public: explicit mem_fun_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) { } _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); } private: _Ret (_Tp::*_M_f)(); }; template class const_mem_fun_t : public unary_function { public: explicit const_mem_fun_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) { } _Ret operator()(const _Tp* __p) const { return (__p->*_M_f)(); } private: _Ret (_Tp::*_M_f)() const; }; template class mem_fun_ref_t : public unary_function<_Tp, _Ret> { public: explicit mem_fun_ref_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) { } _Ret operator()(_Tp& __r) const { return (__r.*_M_f)(); } private: _Ret (_Tp::*_M_f)(); }; template class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> { public: explicit const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) { } _Ret operator()(const _Tp& __r) const { return (__r.*_M_f)(); } private: _Ret (_Tp::*_M_f)() const; }; template class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> { public: explicit mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) { } _Ret operator()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); } private: _Ret (_Tp::*_M_f)(_Arg); }; template class const_mem_fun1_t : public binary_function { public: explicit const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) { } _Ret operator()(const _Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); } private: _Ret (_Tp::*_M_f)(_Arg) const; }; template class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> { public: explicit mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) { } _Ret operator()(_Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } private: _Ret (_Tp::*_M_f)(_Arg); }; template class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> { public: explicit const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) { } _Ret operator()(const _Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } private: _Ret (_Tp::*_M_f)(_Arg) const; }; template inline mem_fun_t<_Ret, _Tp> mem_fun(_Ret (_Tp::*__f)()) { return mem_fun_t<_Ret, _Tp>(__f); } template inline const_mem_fun_t<_Ret, _Tp> mem_fun(_Ret (_Tp::*__f)() const) { return const_mem_fun_t<_Ret, _Tp>(__f); } template inline mem_fun_ref_t<_Ret, _Tp> mem_fun_ref(_Ret (_Tp::*__f)()) { return mem_fun_ref_t<_Ret, _Tp>(__f); } template inline const_mem_fun_ref_t<_Ret, _Tp> mem_fun_ref(_Ret (_Tp::*__f)() const) { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } template inline mem_fun1_t<_Ret, _Tp, _Arg> mem_fun(_Ret (_Tp::*__f)(_Arg)) { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } template inline const_mem_fun1_t<_Ret, _Tp, _Arg> mem_fun(_Ret (_Tp::*__f)(_Arg) const) { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } template inline mem_fun1_ref_t<_Ret, _Tp, _Arg> mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } template inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } } # 1 "/usr/include/c++/4.6/backward/binders.h" 1 3 # 60 "/usr/include/c++/4.6/backward/binders.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 99 "/usr/include/c++/4.6/backward/binders.h" 3 template class binder1st : public unary_function { protected: _Operation op; typename _Operation::first_argument_type value; public: binder1st(const _Operation& __x, const typename _Operation::first_argument_type& __y) : op(__x), value(__y) { } typename _Operation::result_type operator()(const typename _Operation::second_argument_type& __x) const { return op(value, __x); } typename _Operation::result_type operator()(typename _Operation::second_argument_type& __x) const { return op(value, __x); } } ; template inline binder1st<_Operation> bind1st(const _Operation& __fn, const _Tp& __x) { typedef typename _Operation::first_argument_type _Arg1_type; return binder1st<_Operation>(__fn, _Arg1_type(__x)); } template class binder2nd : public unary_function { protected: _Operation op; typename _Operation::second_argument_type value; public: binder2nd(const _Operation& __x, const typename _Operation::second_argument_type& __y) : op(__x), value(__y) { } typename _Operation::result_type operator()(const typename _Operation::first_argument_type& __x) const { return op(__x, value); } typename _Operation::result_type operator()(typename _Operation::first_argument_type& __x) const { return op(__x, value); } } ; template inline binder2nd<_Operation> bind2nd(const _Operation& __fn, const _Tp& __x) { typedef typename _Operation::second_argument_type _Arg2_type; return binder2nd<_Operation>(__fn, _Arg2_type(__x)); } } # 732 "/usr/include/c++/4.6/bits/stl_function.h" 2 3 # 51 "/usr/include/c++/4.6/string" 2 3 # 1 "/usr/include/c++/4.6/bits/range_access.h" 1 3 # 33 "/usr/include/c++/4.6/bits/range_access.h" 3 # 34 "/usr/include/c++/4.6/bits/range_access.h" 3 # 54 "/usr/include/c++/4.6/string" 2 3 # 1 "/usr/include/c++/4.6/bits/basic_string.h" 1 3 # 39 "/usr/include/c++/4.6/bits/basic_string.h" 3 # 40 "/usr/include/c++/4.6/bits/basic_string.h" 3 # 1 "/usr/include/c++/4.6/ext/atomicity.h" 1 3 # 34 "/usr/include/c++/4.6/ext/atomicity.h" 3 # 1 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr.h" 1 3 # 30 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr.h" 3 #pragma GCC visibility push(default) # 170 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr.h" 3 # 1 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h" 1 3 # 44 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h" 3 typedef pthread_t __gthread_t; typedef pthread_key_t __gthread_key_t; typedef pthread_once_t __gthread_once_t; typedef pthread_mutex_t __gthread_mutex_t; typedef pthread_mutex_t __gthread_recursive_mutex_t; typedef pthread_cond_t __gthread_cond_t; typedef struct timespec __gthread_time_t; # 118 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h" 3 static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); # 239 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h" 3 static inline int __gthread_active_p (void) { static void *const __gthread_active_ptr = __extension__ (void *) & __gthrw_pthread_cancel; return __gthread_active_ptr != 0; } # 659 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h" 3 static inline int __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), void *__args) { return __gthrw_pthread_create (__threadid, __null, __func, __args); } static inline int __gthread_join (__gthread_t __threadid, void **__value_ptr) { return __gthrw_pthread_join (__threadid, __value_ptr); } static inline int __gthread_detach (__gthread_t __threadid) { return __gthrw_pthread_detach (__threadid); } static inline int __gthread_equal (__gthread_t __t1, __gthread_t __t2) { return __gthrw_pthread_equal (__t1, __t2); } static inline __gthread_t __gthread_self (void) { return __gthrw_pthread_self (); } static inline int __gthread_yield (void) { return __gthrw_sched_yield (); } static inline int __gthread_once (__gthread_once_t *__once, void (*__func) (void)) { if (__gthread_active_p ()) return __gthrw_pthread_once (__once, __func); else return -1; } static inline int __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) { return __gthrw_pthread_key_create (__key, __dtor); } static inline int __gthread_key_delete (__gthread_key_t __key) { return __gthrw_pthread_key_delete (__key); } static inline void * __gthread_getspecific (__gthread_key_t __key) { return __gthrw_pthread_getspecific (__key); } static inline int __gthread_setspecific (__gthread_key_t __key, const void *__ptr) { return __gthrw_pthread_setspecific (__key, __ptr); } static inline int __gthread_mutex_destroy (__gthread_mutex_t *__mutex) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_destroy (__mutex); else return 0; } static inline int __gthread_mutex_lock (__gthread_mutex_t *__mutex) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_lock (__mutex); else return 0; } static inline int __gthread_mutex_trylock (__gthread_mutex_t *__mutex) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_trylock (__mutex); else return 0; } static inline int __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); else return 0; } static inline int __gthread_mutex_unlock (__gthread_mutex_t *__mutex) { if (__gthread_active_p ()) return __gthrw_pthread_mutex_unlock (__mutex); else return 0; } # 802 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h" 3 static inline int __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) { return __gthread_mutex_lock (__mutex); } static inline int __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) { return __gthread_mutex_trylock (__mutex); } static inline int __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) { return __gthread_mutex_timedlock (__mutex, __abs_timeout); } static inline int __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) { return __gthread_mutex_unlock (__mutex); } static inline int __gthread_cond_broadcast (__gthread_cond_t *__cond) { return __gthrw_pthread_cond_broadcast (__cond); } static inline int __gthread_cond_signal (__gthread_cond_t *__cond) { return __gthrw_pthread_cond_signal (__cond); } static inline int __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) { return __gthrw_pthread_cond_wait (__cond, __mutex); } static inline int __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) { return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); } static inline int __gthread_cond_wait_recursive (__gthread_cond_t *__cond, __gthread_recursive_mutex_t *__mutex) { return __gthread_cond_wait (__cond, __mutex); } static inline int __gthread_cond_timedwait_recursive (__gthread_cond_t *__cond, __gthread_recursive_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) { return __gthread_cond_timedwait (__cond, __mutex, __abs_timeout); } static inline int __gthread_cond_destroy (__gthread_cond_t* __cond) { return __gthrw_pthread_cond_destroy (__cond); } # 171 "/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr.h" 2 3 #pragma GCC visibility pop # 35 "/usr/include/c++/4.6/ext/atomicity.h" 2 3 # 1 "/usr/include/c++/4.6/i686-linux-gnu/./bits/atomic_word.h" 1 3 # 32 "/usr/include/c++/4.6/i686-linux-gnu/./bits/atomic_word.h" 3 typedef int _Atomic_word; # 36 "/usr/include/c++/4.6/ext/atomicity.h" 2 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { static inline _Atomic_word __exchange_and_add(volatile _Atomic_word* __mem, int __val) { return __sync_fetch_and_add(__mem, __val); } static inline void __atomic_add(volatile _Atomic_word* __mem, int __val) { __sync_fetch_and_add(__mem, __val); } # 63 "/usr/include/c++/4.6/ext/atomicity.h" 3 static inline _Atomic_word __exchange_and_add_single(_Atomic_word* __mem, int __val) { _Atomic_word __result = *__mem; *__mem += __val; return __result; } static inline void __atomic_add_single(_Atomic_word* __mem, int __val) { *__mem += __val; } static inline _Atomic_word __attribute__ ((__unused__)) __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) { if (__gthread_active_p()) return __exchange_and_add(__mem, __val); else return __exchange_and_add_single(__mem, __val); } static inline void __attribute__ ((__unused__)) __atomic_add_dispatch(_Atomic_word* __mem, int __val) { if (__gthread_active_p()) __atomic_add(__mem, __val); else __atomic_add_single(__mem, __val); } } # 42 "/usr/include/c++/4.6/bits/basic_string.h" 2 3 # 1 "/usr/include/c++/4.6/initializer_list" 1 3 # 33 "/usr/include/c++/4.6/initializer_list" 3 # 34 "/usr/include/c++/4.6/initializer_list" 3 # 44 "/usr/include/c++/4.6/bits/basic_string.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 106 "/usr/include/c++/4.6/bits/basic_string.h" 3 template class basic_string { typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type; public: typedef _Traits traits_type; typedef typename _Traits::char_type value_type; typedef _Alloc allocator_type; typedef typename _CharT_alloc_type::size_type size_type; typedef typename _CharT_alloc_type::difference_type difference_type; typedef typename _CharT_alloc_type::reference reference; typedef typename _CharT_alloc_type::const_reference const_reference; typedef typename _CharT_alloc_type::pointer pointer; typedef typename _CharT_alloc_type::const_pointer const_pointer; typedef __gnu_cxx::__normal_iterator iterator; typedef __gnu_cxx::__normal_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_iterator reverse_iterator; private: # 143 "/usr/include/c++/4.6/bits/basic_string.h" 3 struct _Rep_base { size_type _M_length; size_type _M_capacity; _Atomic_word _M_refcount; }; struct _Rep : _Rep_base { typedef typename _Alloc::template rebind::other _Raw_bytes_alloc; # 168 "/usr/include/c++/4.6/bits/basic_string.h" 3 static const size_type _S_max_size; static const _CharT _S_terminal; static size_type _S_empty_rep_storage[]; static _Rep& _S_empty_rep() { void* __p = reinterpret_cast(&_S_empty_rep_storage); return *reinterpret_cast<_Rep*>(__p); } bool _M_is_leaked() const { return this->_M_refcount < 0; } bool _M_is_shared() const { return this->_M_refcount > 0; } void _M_set_leaked() { this->_M_refcount = -1; } void _M_set_sharable() { this->_M_refcount = 0; } void _M_set_length_and_sharable(size_type __n) { if (__builtin_expect(this != &_S_empty_rep(), false)) { this->_M_set_sharable(); this->_M_length = __n; traits_type::assign(this->_M_refdata()[__n], _S_terminal); } } _CharT* _M_refdata() throw() { return reinterpret_cast<_CharT*>(this + 1); } _CharT* _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2) { return (!_M_is_leaked() && __alloc1 == __alloc2) ? _M_refcopy() : _M_clone(__alloc1); } static _Rep* _S_create(size_type, size_type, const _Alloc&); void _M_dispose(const _Alloc& __a) { if (__builtin_expect(this != &_S_empty_rep(), false)) { ; if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, -1) <= 0) { ; _M_destroy(__a); } } } void _M_destroy(const _Alloc&) throw(); _CharT* _M_refcopy() throw() { if (__builtin_expect(this != &_S_empty_rep(), false)) __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1); return _M_refdata(); } _CharT* _M_clone(const _Alloc&, size_type __res = 0); }; struct _Alloc_hider : _Alloc { _Alloc_hider(_CharT* __dat, const _Alloc& __a) : _Alloc(__a), _M_p(__dat) { } _CharT* _M_p; }; public: static const size_type npos = static_cast(-1); private: mutable _Alloc_hider _M_dataplus; _CharT* _M_data() const { return _M_dataplus._M_p; } _CharT* _M_data(_CharT* __p) { return (_M_dataplus._M_p = __p); } _Rep* _M_rep() const { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } iterator _M_ibegin() const { return iterator(_M_data()); } iterator _M_iend() const { return iterator(_M_data() + this->size()); } void _M_leak() { if (!_M_rep()->_M_is_leaked()) _M_leak_hard(); } size_type _M_check(size_type __pos, const char* __s) const { if (__pos > this->size()) __throw_out_of_range((__s)); return __pos; } void _M_check_length(size_type __n1, size_type __n2, const char* __s) const { if (this->max_size() - (this->size() - __n1) < __n2) __throw_length_error((__s)); } size_type _M_limit(size_type __pos, size_type __off) const { const bool __testoff = __off < this->size() - __pos; return __testoff ? __off : this->size() - __pos; } bool _M_disjunct(const _CharT* __s) const { return (less()(__s, _M_data()) || less()(_M_data() + this->size(), __s)); } static void _M_copy(_CharT* __d, const _CharT* __s, size_type __n) { if (__n == 1) traits_type::assign(*__d, *__s); else traits_type::copy(__d, __s, __n); } static void _M_move(_CharT* __d, const _CharT* __s, size_type __n) { if (__n == 1) traits_type::assign(*__d, *__s); else traits_type::move(__d, __s, __n); } static void _M_assign(_CharT* __d, size_type __n, _CharT __c) { if (__n == 1) traits_type::assign(*__d, __c); else traits_type::assign(__d, __n, __c); } template static void _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) { for (; __k1 != __k2; ++__k1, ++__p) traits_type::assign(*__p, *__k1); } static void _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) { _S_copy_chars(__p, __k1.base(), __k2.base()); } static void _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) { _S_copy_chars(__p, __k1.base(), __k2.base()); } static void _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) { _M_copy(__p, __k1, __k2 - __k1); } static void _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) { _M_copy(__p, __k1, __k2 - __k1); } static int _S_compare(size_type __n1, size_type __n2) { const difference_type __d = difference_type(__n1 - __n2); if (__d > __gnu_cxx::__numeric_traits::__max) return __gnu_cxx::__numeric_traits::__max; else if (__d < __gnu_cxx::__numeric_traits::__min) return __gnu_cxx::__numeric_traits::__min; else return int(__d); } void _M_mutate(size_type __pos, size_type __len1, size_type __len2); void _M_leak_hard(); static _Rep& _S_empty_rep() { return _Rep::_S_empty_rep(); } public: basic_string() : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { } explicit basic_string(const _Alloc& __a); basic_string(const basic_string& __str); basic_string(const basic_string& __str, size_type __pos, size_type __n = npos); basic_string(const basic_string& __str, size_type __pos, size_type __n, const _Alloc& __a); # 478 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string(const _CharT* __s, size_type __n, const _Alloc& __a = _Alloc()); basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()); # 526 "/usr/include/c++/4.6/bits/basic_string.h" 3 template basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a = _Alloc()); ~basic_string() { _M_rep()->_M_dispose(this->get_allocator()); } basic_string& operator=(const basic_string& __str) { return this->assign(__str); } basic_string& operator=(const _CharT* __s) { return this->assign(__s); } # 559 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& operator=(_CharT __c) { this->assign(1, __c); return *this; } # 599 "/usr/include/c++/4.6/bits/basic_string.h" 3 iterator begin() { _M_leak(); return iterator(_M_data()); } const_iterator begin() const { return const_iterator(_M_data()); } iterator end() { _M_leak(); return iterator(_M_data() + this->size()); } const_iterator end() const { return const_iterator(_M_data() + this->size()); } reverse_iterator rbegin() { return reverse_iterator(this->end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(this->end()); } reverse_iterator rend() { return reverse_iterator(this->begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(this->begin()); } # 705 "/usr/include/c++/4.6/bits/basic_string.h" 3 public: size_type size() const { return _M_rep()->_M_length; } size_type length() const { return _M_rep()->_M_length; } size_type max_size() const { return _Rep::_S_max_size; } # 734 "/usr/include/c++/4.6/bits/basic_string.h" 3 void resize(size_type __n, _CharT __c); # 747 "/usr/include/c++/4.6/bits/basic_string.h" 3 void resize(size_type __n) { this->resize(__n, _CharT()); } # 767 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type capacity() const { return _M_rep()->_M_capacity; } # 788 "/usr/include/c++/4.6/bits/basic_string.h" 3 void reserve(size_type __res_arg = 0); void clear() { _M_mutate(0, this->size(), 0); } bool empty() const { return this->size() == 0; } # 817 "/usr/include/c++/4.6/bits/basic_string.h" 3 const_reference operator[] (size_type __pos) const { ; return _M_data()[__pos]; } # 834 "/usr/include/c++/4.6/bits/basic_string.h" 3 reference operator[](size_type __pos) { ; ; _M_leak(); return _M_data()[__pos]; } # 855 "/usr/include/c++/4.6/bits/basic_string.h" 3 const_reference at(size_type __n) const { if (__n >= this->size()) __throw_out_of_range(("basic_string::at")); return _M_data()[__n]; } # 908 "/usr/include/c++/4.6/bits/basic_string.h" 3 reference at(size_type __n) { if (__n >= size()) __throw_out_of_range(("basic_string::at")); _M_leak(); return _M_data()[__n]; } basic_string& operator+=(const basic_string& __str) { return this->append(__str); } basic_string& operator+=(const _CharT* __s) { return this->append(__s); } basic_string& operator+=(_CharT __c) { this->push_back(__c); return *this; } # 964 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& append(const basic_string& __str); # 979 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& append(const basic_string& __str, size_type __pos, size_type __n); basic_string& append(const _CharT* __s, size_type __n); basic_string& append(const _CharT* __s) { ; return this->append(__s, traits_type::length(__s)); } # 1011 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& append(size_type __n, _CharT __c); # 1033 "/usr/include/c++/4.6/bits/basic_string.h" 3 template basic_string& append(_InputIterator __first, _InputIterator __last) { return this->replace(_M_iend(), _M_iend(), __first, __last); } void push_back(_CharT __c) { const size_type __len = 1 + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) this->reserve(__len); traits_type::assign(_M_data()[this->size()], __c); _M_rep()->_M_set_length_and_sharable(__len); } basic_string& assign(const basic_string& __str); # 1089 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& assign(const basic_string& __str, size_type __pos, size_type __n) { return this->assign(__str._M_data() + __str._M_check(__pos, "basic_string::assign"), __str._M_limit(__pos, __n)); } # 1105 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& assign(const _CharT* __s, size_type __n); # 1117 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& assign(const _CharT* __s) { ; return this->assign(__s, traits_type::length(__s)); } # 1133 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& assign(size_type __n, _CharT __c) { return _M_replace_aux(size_type(0), this->size(), __n, __c); } # 1145 "/usr/include/c++/4.6/bits/basic_string.h" 3 template basic_string& assign(_InputIterator __first, _InputIterator __last) { return this->replace(_M_ibegin(), _M_iend(), __first, __last); } # 1173 "/usr/include/c++/4.6/bits/basic_string.h" 3 void insert(iterator __p, size_type __n, _CharT __c) { this->replace(__p, __p, __n, __c); } # 1188 "/usr/include/c++/4.6/bits/basic_string.h" 3 template void insert(iterator __p, _InputIterator __beg, _InputIterator __end) { this->replace(__p, __p, __beg, __end); } # 1219 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& insert(size_type __pos1, const basic_string& __str) { return this->insert(__pos1, __str, size_type(0), __str.size()); } # 1241 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n) { return this->insert(__pos1, __str._M_data() + __str._M_check(__pos2, "basic_string::insert"), __str._M_limit(__pos2, __n)); } # 1264 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& insert(size_type __pos, const _CharT* __s, size_type __n); # 1282 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& insert(size_type __pos, const _CharT* __s) { ; return this->insert(__pos, __s, traits_type::length(__s)); } # 1305 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& insert(size_type __pos, size_type __n, _CharT __c) { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), size_type(0), __n, __c); } # 1322 "/usr/include/c++/4.6/bits/basic_string.h" 3 iterator insert(iterator __p, _CharT __c) { ; const size_type __pos = __p - _M_ibegin(); _M_replace_aux(__pos, size_type(0), size_type(1), __c); _M_rep()->_M_set_leaked(); return iterator(_M_data() + __pos); } # 1346 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& erase(size_type __pos = 0, size_type __n = npos) { _M_mutate(_M_check(__pos, "basic_string::erase"), _M_limit(__pos, __n), size_type(0)); return *this; } # 1362 "/usr/include/c++/4.6/bits/basic_string.h" 3 iterator erase(iterator __position) { ; const size_type __pos = __position - _M_ibegin(); _M_mutate(__pos, size_type(1), size_type(0)); _M_rep()->_M_set_leaked(); return iterator(_M_data() + __pos); } # 1382 "/usr/include/c++/4.6/bits/basic_string.h" 3 iterator erase(iterator __first, iterator __last); # 1401 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(size_type __pos, size_type __n, const basic_string& __str) { return this->replace(__pos, __n, __str._M_data(), __str.size()); } # 1423 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) { return this->replace(__pos1, __n1, __str._M_data() + __str._M_check(__pos2, "basic_string::replace"), __str._M_limit(__pos2, __n2)); } # 1447 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2); # 1466 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(size_type __pos, size_type __n1, const _CharT* __s) { ; return this->replace(__pos, __n1, __s, traits_type::length(__s)); } # 1489 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), _M_limit(__pos, __n1), __n2, __c); } # 1507 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, const basic_string& __str) { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } # 1525 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n) { ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); } # 1546 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, const _CharT* __s) { ; return this->replace(__i1, __i2, __s, traits_type::length(__s)); } # 1567 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string& replace(iterator __i1, iterator __i2, size_type __n, _CharT __c) { ; return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c); } # 1589 "/usr/include/c++/4.6/bits/basic_string.h" 3 template basic_string& replace(iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2) { ; ; typedef typename std::__is_integer<_InputIterator>::__type _Integral; return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral()); } basic_string& replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) { ; ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __k1, __k2 - __k1); } basic_string& replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2) { ; ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __k1, __k2 - __k1); } basic_string& replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) { ; ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __k1.base(), __k2 - __k1); } basic_string& replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2) { ; ; return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __k1.base(), __k2 - __k1); } # 1664 "/usr/include/c++/4.6/bits/basic_string.h" 3 private: template basic_string& _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n, _Integer __val, __true_type) { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); } template basic_string& _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2, __false_type); basic_string& _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, _CharT __c); basic_string& _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2); template static _CharT* _S_construct_aux(_InIterator __beg, _InIterator __end, const _Alloc& __a, __false_type) { typedef typename iterator_traits<_InIterator>::iterator_category _Tag; return _S_construct(__beg, __end, __a, _Tag()); } template static _CharT* _S_construct_aux(_Integer __beg, _Integer __end, const _Alloc& __a, __true_type) { return _S_construct_aux_2(static_cast(__beg), __end, __a); } static _CharT* _S_construct_aux_2(size_type __req, _CharT __c, const _Alloc& __a) { return _S_construct(__req, __c, __a); } template static _CharT* _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a) { typedef typename std::__is_integer<_InIterator>::__type _Integral; return _S_construct_aux(__beg, __end, __a, _Integral()); } template static _CharT* _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, input_iterator_tag); template static _CharT* _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a, forward_iterator_tag); static _CharT* _S_construct(size_type __req, _CharT __c, const _Alloc& __a); public: # 1745 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const; # 1755 "/usr/include/c++/4.6/bits/basic_string.h" 3 void swap(basic_string& __s); # 1765 "/usr/include/c++/4.6/bits/basic_string.h" 3 const _CharT* c_str() const { return _M_data(); } const _CharT* data() const { return _M_data(); } allocator_type get_allocator() const { return _M_dataplus; } # 1797 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find(const _CharT* __s, size_type __pos, size_type __n) const; # 1810 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find(const basic_string& __str, size_type __pos = 0) const { return this->find(__str.data(), __pos, __str.size()); } # 1824 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find(const _CharT* __s, size_type __pos = 0) const { ; return this->find(__s, __pos, traits_type::length(__s)); } # 1841 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find(_CharT __c, size_type __pos = 0) const; # 1854 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type rfind(const basic_string& __str, size_type __pos = npos) const { return this->rfind(__str.data(), __pos, __str.size()); } # 1869 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const; # 1882 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type rfind(const _CharT* __s, size_type __pos = npos) const { ; return this->rfind(__s, __pos, traits_type::length(__s)); } # 1899 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type rfind(_CharT __c, size_type __pos = npos) const; # 1912 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_first_of(const basic_string& __str, size_type __pos = 0) const { return this->find_first_of(__str.data(), __pos, __str.size()); } # 1927 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; # 1940 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_first_of(const _CharT* __s, size_type __pos = 0) const { ; return this->find_first_of(__s, __pos, traits_type::length(__s)); } # 1959 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_first_of(_CharT __c, size_type __pos = 0) const { return this->find(__c, __pos); } # 1973 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_last_of(const basic_string& __str, size_type __pos = npos) const { return this->find_last_of(__str.data(), __pos, __str.size()); } # 1988 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; # 2001 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_last_of(const _CharT* __s, size_type __pos = npos) const { ; return this->find_last_of(__s, __pos, traits_type::length(__s)); } # 2020 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_last_of(_CharT __c, size_type __pos = npos) const { return this->rfind(__c, __pos); } # 2034 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const { return this->find_first_not_of(__str.data(), __pos, __str.size()); } # 2049 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const; # 2063 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_first_not_of(const _CharT* __s, size_type __pos = 0) const { ; return this->find_first_not_of(__s, __pos, traits_type::length(__s)); } # 2080 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_first_not_of(_CharT __c, size_type __pos = 0) const; # 2093 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_last_not_of(const basic_string& __str, size_type __pos = npos) const { return this->find_last_not_of(__str.data(), __pos, __str.size()); } # 2109 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const; # 2122 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_last_not_of(const _CharT* __s, size_type __pos = npos) const { ; return this->find_last_not_of(__s, __pos, traits_type::length(__s)); } # 2139 "/usr/include/c++/4.6/bits/basic_string.h" 3 size_type find_last_not_of(_CharT __c, size_type __pos = npos) const; # 2154 "/usr/include/c++/4.6/bits/basic_string.h" 3 basic_string substr(size_type __pos = 0, size_type __n = npos) const { return basic_string(*this, _M_check(__pos, "basic_string::substr"), __n); } # 2172 "/usr/include/c++/4.6/bits/basic_string.h" 3 int compare(const basic_string& __str) const { const size_type __size = this->size(); const size_type __osize = __str.size(); const size_type __len = std::min(__size, __osize); int __r = traits_type::compare(_M_data(), __str.data(), __len); if (!__r) __r = _S_compare(__size, __osize); return __r; } # 2202 "/usr/include/c++/4.6/bits/basic_string.h" 3 int compare(size_type __pos, size_type __n, const basic_string& __str) const; # 2226 "/usr/include/c++/4.6/bits/basic_string.h" 3 int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) const; # 2244 "/usr/include/c++/4.6/bits/basic_string.h" 3 int compare(const _CharT* __s) const; # 2267 "/usr/include/c++/4.6/bits/basic_string.h" 3 int compare(size_type __pos, size_type __n1, const _CharT* __s) const; # 2292 "/usr/include/c++/4.6/bits/basic_string.h" 3 int compare(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2) const; }; # 2304 "/usr/include/c++/4.6/bits/basic_string.h" 3 template basic_string<_CharT, _Traits, _Alloc> operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { basic_string<_CharT, _Traits, _Alloc> __str(__lhs); __str.append(__rhs); return __str; } template basic_string<_CharT,_Traits,_Alloc> operator+(const _CharT* __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); template basic_string<_CharT,_Traits,_Alloc> operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); template inline basic_string<_CharT, _Traits, _Alloc> operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { basic_string<_CharT, _Traits, _Alloc> __str(__lhs); __str.append(__rhs); return __str; } template inline basic_string<_CharT, _Traits, _Alloc> operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) { typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __string_type::size_type __size_type; __string_type __str(__lhs); __str.append(__size_type(1), __rhs); return __str; } # 2425 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline bool operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) == 0; } template inline typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type operator==(const basic_string<_CharT>& __lhs, const basic_string<_CharT>& __rhs) { return (__lhs.size() == __rhs.size() && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), __lhs.size())); } template inline bool operator==(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) == 0; } template inline bool operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) == 0; } # 2471 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline bool operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return !(__lhs == __rhs); } template inline bool operator!=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return !(__lhs == __rhs); } template inline bool operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return !(__lhs == __rhs); } # 2508 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline bool operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) < 0; } template inline bool operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) < 0; } template inline bool operator<(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) > 0; } # 2545 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline bool operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) > 0; } template inline bool operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) > 0; } template inline bool operator>(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) < 0; } # 2582 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline bool operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) <= 0; } template inline bool operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) <= 0; } template inline bool operator<=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) >= 0; } # 2619 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline bool operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) >= 0; } template inline bool operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) >= 0; } template inline bool operator>=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) <= 0; } # 2656 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline void swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, basic_string<_CharT, _Traits, _Alloc>& __rhs) { __lhs.swap(__rhs); } # 2673 "/usr/include/c++/4.6/bits/basic_string.h" 3 template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str); template<> basic_istream& operator>>(basic_istream& __is, basic_string& __str); # 2691 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const basic_string<_CharT, _Traits, _Alloc>& __str) { return __ostream_insert(__os, __str.data(), __str.size()); } # 2714 "/usr/include/c++/4.6/bits/basic_string.h" 3 template basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); # 2732 "/usr/include/c++/4.6/bits/basic_string.h" 3 template inline basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str) { return getline(__is, __str, __is.widen('\n')); } template<> basic_istream& getline(basic_istream& __in, basic_string& __str, char __delim); template<> basic_istream& getline(basic_istream& __in, basic_string& __str, wchar_t __delim); } # 55 "/usr/include/c++/4.6/string" 2 3 # 1 "/usr/include/c++/4.6/bits/basic_string.tcc" 1 3 # 42 "/usr/include/c++/4.6/bits/basic_string.tcc" 3 # 43 "/usr/include/c++/4.6/bits/basic_string.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template const typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4; template const _CharT basic_string<_CharT, _Traits, _Alloc>:: _Rep::_S_terminal = _CharT(); template const typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>::npos; template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[ (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) / sizeof(size_type)]; template template _CharT* basic_string<_CharT, _Traits, _Alloc>:: _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, input_iterator_tag) { if (__beg == __end && __a == _Alloc()) return _S_empty_rep()._M_refdata(); _CharT __buf[128]; size_type __len = 0; while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT)) { __buf[__len++] = *__beg; ++__beg; } _Rep* __r = _Rep::_S_create(__len, size_type(0), __a); _M_copy(__r->_M_refdata(), __buf, __len); try { while (__beg != __end) { if (__len == __r->_M_capacity) { _Rep* __another = _Rep::_S_create(__len + 1, __len, __a); _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len); __r->_M_destroy(__a); __r = __another; } __r->_M_refdata()[__len++] = *__beg; ++__beg; } } catch(...) { __r->_M_destroy(__a); throw; } __r->_M_set_length_and_sharable(__len); return __r->_M_refdata(); } template template _CharT* basic_string<_CharT, _Traits, _Alloc>:: _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, forward_iterator_tag) { if (__beg == __end && __a == _Alloc()) return _S_empty_rep()._M_refdata(); if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) __throw_logic_error(("basic_string::_S_construct null not valid")); const size_type __dnew = static_cast(std::distance(__beg, __end)); _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a); try { _S_copy_chars(__r->_M_refdata(), __beg, __end); } catch(...) { __r->_M_destroy(__a); throw; } __r->_M_set_length_and_sharable(__dnew); return __r->_M_refdata(); } template _CharT* basic_string<_CharT, _Traits, _Alloc>:: _S_construct(size_type __n, _CharT __c, const _Alloc& __a) { if (__n == 0 && __a == _Alloc()) return _S_empty_rep()._M_refdata(); _Rep* __r = _Rep::_S_create(__n, size_type(0), __a); if (__n) _M_assign(__r->_M_refdata(), __n, __c); __r->_M_set_length_and_sharable(__n); return __r->_M_refdata(); } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const basic_string& __str) : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()), __str.get_allocator()), __str.get_allocator()) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _Alloc& __a) : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const basic_string& __str, size_type __pos, size_type __n) : _M_dataplus(_S_construct(__str._M_data() + __str._M_check(__pos, "basic_string::basic_string"), __str._M_data() + __str._M_limit(__pos, __n) + __pos, _Alloc()), _Alloc()) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const basic_string& __str, size_type __pos, size_type __n, const _Alloc& __a) : _M_dataplus(_S_construct(__str._M_data() + __str._M_check(__pos, "basic_string::basic_string"), __str._M_data() + __str._M_limit(__pos, __n) + __pos, __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _CharT* __s, size_type __n, const _Alloc& __a) : _M_dataplus(_S_construct(__s, __s + __n, __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _CharT* __s, const _Alloc& __a) : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) : __s + npos, __a), __a) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(size_type __n, _CharT __c, const _Alloc& __a) : _M_dataplus(_S_construct(__n, __c, __a), __a) { } template template basic_string<_CharT, _Traits, _Alloc>:: basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a) : _M_dataplus(_S_construct(__beg, __end, __a), __a) { } # 242 "/usr/include/c++/4.6/bits/basic_string.tcc" 3 template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: assign(const basic_string& __str) { if (_M_rep() != __str._M_rep()) { const allocator_type __a = this->get_allocator(); _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator()); _M_rep()->_M_dispose(__a); _M_data(__tmp); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: assign(const _CharT* __s, size_type __n) { ; _M_check_length(this->size(), __n, "basic_string::assign"); if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) return _M_replace_safe(size_type(0), this->size(), __s, __n); else { const size_type __pos = __s - _M_data(); if (__pos >= __n) _M_copy(_M_data(), __s, __n); else if (__pos) _M_move(_M_data(), __s, __n); _M_rep()->_M_set_length_and_sharable(__n); return *this; } } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: append(size_type __n, _CharT __c) { if (__n) { _M_check_length(size_type(0), __n, "basic_string::append"); const size_type __len = __n + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) this->reserve(__len); _M_assign(_M_data() + this->size(), __n, __c); _M_rep()->_M_set_length_and_sharable(__len); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: append(const _CharT* __s, size_type __n) { ; if (__n) { _M_check_length(size_type(0), __n, "basic_string::append"); const size_type __len = __n + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) { if (_M_disjunct(__s)) this->reserve(__len); else { const size_type __off = __s - _M_data(); this->reserve(__len); __s = _M_data() + __off; } } _M_copy(_M_data() + this->size(), __s, __n); _M_rep()->_M_set_length_and_sharable(__len); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: append(const basic_string& __str) { const size_type __size = __str.size(); if (__size) { const size_type __len = __size + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) this->reserve(__len); _M_copy(_M_data() + this->size(), __str._M_data(), __size); _M_rep()->_M_set_length_and_sharable(__len); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: append(const basic_string& __str, size_type __pos, size_type __n) { __str._M_check(__pos, "basic_string::append"); __n = __str._M_limit(__pos, __n); if (__n) { const size_type __len = __n + this->size(); if (__len > this->capacity() || _M_rep()->_M_is_shared()) this->reserve(__len); _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n); _M_rep()->_M_set_length_and_sharable(__len); } return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: insert(size_type __pos, const _CharT* __s, size_type __n) { ; _M_check(__pos, "basic_string::insert"); _M_check_length(size_type(0), __n, "basic_string::insert"); if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) return _M_replace_safe(__pos, size_type(0), __s, __n); else { const size_type __off = __s - _M_data(); _M_mutate(__pos, 0, __n); __s = _M_data() + __off; _CharT* __p = _M_data() + __pos; if (__s + __n <= __p) _M_copy(__p, __s, __n); else if (__s >= __p) _M_copy(__p, __s + __n, __n); else { const size_type __nleft = __p - __s; _M_copy(__p, __s, __nleft); _M_copy(__p + __nleft, __p + __n, __n - __nleft); } return *this; } } template typename basic_string<_CharT, _Traits, _Alloc>::iterator basic_string<_CharT, _Traits, _Alloc>:: erase(iterator __first, iterator __last) { ; const size_type __size = __last - __first; if (__size) { const size_type __pos = __first - _M_ibegin(); _M_mutate(__pos, __size, size_type(0)); _M_rep()->_M_set_leaked(); return iterator(_M_data() + __pos); } else return __first; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: replace(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2) { ; _M_check(__pos, "basic_string::replace"); __n1 = _M_limit(__pos, __n1); _M_check_length(__n1, __n2, "basic_string::replace"); bool __left; if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) return _M_replace_safe(__pos, __n1, __s, __n2); else if ((__left = __s + __n2 <= _M_data() + __pos) || _M_data() + __pos + __n1 <= __s) { size_type __off = __s - _M_data(); __left ? __off : (__off += __n2 - __n1); _M_mutate(__pos, __n1, __n2); _M_copy(_M_data() + __pos, _M_data() + __off, __n2); return *this; } else { const basic_string __tmp(__s, __n2); return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2); } } template void basic_string<_CharT, _Traits, _Alloc>::_Rep:: _M_destroy(const _Alloc& __a) throw () { const size_type __size = sizeof(_Rep_base) + (this->_M_capacity + 1) * sizeof(_CharT); _Raw_bytes_alloc(__a).deallocate(reinterpret_cast(this), __size); } template void basic_string<_CharT, _Traits, _Alloc>:: _M_leak_hard() { if (_M_rep() == &_S_empty_rep()) return; if (_M_rep()->_M_is_shared()) _M_mutate(0, 0, 0); _M_rep()->_M_set_leaked(); } template void basic_string<_CharT, _Traits, _Alloc>:: _M_mutate(size_type __pos, size_type __len1, size_type __len2) { const size_type __old_size = this->size(); const size_type __new_size = __old_size + __len2 - __len1; const size_type __how_much = __old_size - __pos - __len1; if (__new_size > this->capacity() || _M_rep()->_M_is_shared()) { const allocator_type __a = get_allocator(); _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a); if (__pos) _M_copy(__r->_M_refdata(), _M_data(), __pos); if (__how_much) _M_copy(__r->_M_refdata() + __pos + __len2, _M_data() + __pos + __len1, __how_much); _M_rep()->_M_dispose(__a); _M_data(__r->_M_refdata()); } else if (__how_much && __len1 != __len2) { _M_move(_M_data() + __pos + __len2, _M_data() + __pos + __len1, __how_much); } _M_rep()->_M_set_length_and_sharable(__new_size); } template void basic_string<_CharT, _Traits, _Alloc>:: reserve(size_type __res) { if (__res != this->capacity() || _M_rep()->_M_is_shared()) { if (__res < this->size()) __res = this->size(); const allocator_type __a = get_allocator(); _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size()); _M_rep()->_M_dispose(__a); _M_data(__tmp); } } template void basic_string<_CharT, _Traits, _Alloc>:: swap(basic_string& __s) { if (_M_rep()->_M_is_leaked()) _M_rep()->_M_set_sharable(); if (__s._M_rep()->_M_is_leaked()) __s._M_rep()->_M_set_sharable(); if (this->get_allocator() == __s.get_allocator()) { _CharT* __tmp = _M_data(); _M_data(__s._M_data()); __s._M_data(__tmp); } else { const basic_string __tmp1(_M_ibegin(), _M_iend(), __s.get_allocator()); const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(), this->get_allocator()); *this = __tmp2; __s = __tmp1; } } template typename basic_string<_CharT, _Traits, _Alloc>::_Rep* basic_string<_CharT, _Traits, _Alloc>::_Rep:: _S_create(size_type __capacity, size_type __old_capacity, const _Alloc& __alloc) { if (__capacity > _S_max_size) __throw_length_error(("basic_string::_S_create")); # 579 "/usr/include/c++/4.6/bits/basic_string.tcc" 3 const size_type __pagesize = 4096; const size_type __malloc_header_size = 4 * sizeof(void*); if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) __capacity = 2 * __old_capacity; size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); const size_type __adj_size = __size + __malloc_header_size; if (__adj_size > __pagesize && __capacity > __old_capacity) { const size_type __extra = __pagesize - __adj_size % __pagesize; __capacity += __extra / sizeof(_CharT); if (__capacity > _S_max_size) __capacity = _S_max_size; __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); } void* __place = _Raw_bytes_alloc(__alloc).allocate(__size); _Rep *__p = new (__place) _Rep; __p->_M_capacity = __capacity; __p->_M_set_sharable(); return __p; } template _CharT* basic_string<_CharT, _Traits, _Alloc>::_Rep:: _M_clone(const _Alloc& __alloc, size_type __res) { const size_type __requested_cap = this->_M_length + __res; _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity, __alloc); if (this->_M_length) _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length); __r->_M_set_length_and_sharable(this->_M_length); return __r->_M_refdata(); } template void basic_string<_CharT, _Traits, _Alloc>:: resize(size_type __n, _CharT __c) { const size_type __size = this->size(); _M_check_length(__size, __n, "basic_string::resize"); if (__size < __n) this->append(__n - __size, __c); else if (__n < __size) this->erase(__n); } template template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2, __false_type) { const basic_string __s(__k1, __k2); const size_type __n1 = __i2 - __i1; _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch"); return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(), __s.size()); } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, _CharT __c) { _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); _M_mutate(__pos1, __n1, __n2); if (__n2) _M_assign(_M_data() + __pos1, __n2, __c); return *this; } template basic_string<_CharT, _Traits, _Alloc>& basic_string<_CharT, _Traits, _Alloc>:: _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2) { _M_mutate(__pos1, __n1, __n2); if (__n2) _M_copy(_M_data() + __pos1, __s, __n2); return *this; } template basic_string<_CharT, _Traits, _Alloc> operator+(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { ; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __string_type::size_type __size_type; const __size_type __len = _Traits::length(__lhs); __string_type __str; __str.reserve(__len + __rhs.size()); __str.append(__lhs, __len); __str.append(__rhs); return __str; } template basic_string<_CharT, _Traits, _Alloc> operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __string_type::size_type __size_type; __string_type __str; const __size_type __len = __rhs.size(); __str.reserve(__len + 1); __str.append(__size_type(1), __lhs); __str.append(__rhs); return __str; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: copy(_CharT* __s, size_type __n, size_type __pos) const { _M_check(__pos, "basic_string::copy"); __n = _M_limit(__pos, __n); ; if (__n) _M_copy(__s, _M_data() + __pos, __n); return __n; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find(const _CharT* __s, size_type __pos, size_type __n) const { ; const size_type __size = this->size(); const _CharT* __data = _M_data(); if (__n == 0) return __pos <= __size ? __pos : npos; if (__n <= __size) { for (; __pos <= __size - __n; ++__pos) if (traits_type::eq(__data[__pos], __s[0]) && traits_type::compare(__data + __pos + 1, __s + 1, __n - 1) == 0) return __pos; } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find(_CharT __c, size_type __pos) const { size_type __ret = npos; const size_type __size = this->size(); if (__pos < __size) { const _CharT* __data = _M_data(); const size_type __n = __size - __pos; const _CharT* __p = traits_type::find(__data + __pos, __n, __c); if (__p) __ret = __p - __data; } return __ret; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: rfind(const _CharT* __s, size_type __pos, size_type __n) const { ; const size_type __size = this->size(); if (__n <= __size) { __pos = std::min(size_type(__size - __n), __pos); const _CharT* __data = _M_data(); do { if (traits_type::compare(__data + __pos, __s, __n) == 0) return __pos; } while (__pos-- > 0); } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: rfind(_CharT __c, size_type __pos) const { size_type __size = this->size(); if (__size) { if (--__size > __pos) __size = __pos; for (++__size; __size-- > 0; ) if (traits_type::eq(_M_data()[__size], __c)) return __size; } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const { ; for (; __n && __pos < this->size(); ++__pos) { const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); if (__p) return __pos; } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const { ; size_type __size = this->size(); if (__size && __n) { if (--__size > __pos) __size = __pos; do { if (traits_type::find(__s, __n, _M_data()[__size])) return __size; } while (__size-- != 0); } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const { ; for (; __pos < this->size(); ++__pos) if (!traits_type::find(__s, __n, _M_data()[__pos])) return __pos; return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_first_not_of(_CharT __c, size_type __pos) const { for (; __pos < this->size(); ++__pos) if (!traits_type::eq(_M_data()[__pos], __c)) return __pos; return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const { ; size_type __size = this->size(); if (__size) { if (--__size > __pos) __size = __pos; do { if (!traits_type::find(__s, __n, _M_data()[__size])) return __size; } while (__size--); } return npos; } template typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>:: find_last_not_of(_CharT __c, size_type __pos) const { size_type __size = this->size(); if (__size) { if (--__size > __pos) __size = __pos; do { if (!traits_type::eq(_M_data()[__size], __c)) return __size; } while (__size--); } return npos; } template int basic_string<_CharT, _Traits, _Alloc>:: compare(size_type __pos, size_type __n, const basic_string& __str) const { _M_check(__pos, "basic_string::compare"); __n = _M_limit(__pos, __n); const size_type __osize = __str.size(); const size_type __len = std::min(__n, __osize); int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); if (!__r) __r = _S_compare(__n, __osize); return __r; } template int basic_string<_CharT, _Traits, _Alloc>:: compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) const { _M_check(__pos1, "basic_string::compare"); __str._M_check(__pos2, "basic_string::compare"); __n1 = _M_limit(__pos1, __n1); __n2 = __str._M_limit(__pos2, __n2); const size_type __len = std::min(__n1, __n2); int __r = traits_type::compare(_M_data() + __pos1, __str.data() + __pos2, __len); if (!__r) __r = _S_compare(__n1, __n2); return __r; } template int basic_string<_CharT, _Traits, _Alloc>:: compare(const _CharT* __s) const { ; const size_type __size = this->size(); const size_type __osize = traits_type::length(__s); const size_type __len = std::min(__size, __osize); int __r = traits_type::compare(_M_data(), __s, __len); if (!__r) __r = _S_compare(__size, __osize); return __r; } template int basic_string <_CharT, _Traits, _Alloc>:: compare(size_type __pos, size_type __n1, const _CharT* __s) const { ; _M_check(__pos, "basic_string::compare"); __n1 = _M_limit(__pos, __n1); const size_type __osize = traits_type::length(__s); const size_type __len = std::min(__n1, __osize); int __r = traits_type::compare(_M_data() + __pos, __s, __len); if (!__r) __r = _S_compare(__n1, __osize); return __r; } template int basic_string <_CharT, _Traits, _Alloc>:: compare(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2) const { ; _M_check(__pos, "basic_string::compare"); __n1 = _M_limit(__pos, __n1); const size_type __len = std::min(__n1, __n2); int __r = traits_type::compare(_M_data() + __pos, __s, __len); if (!__r) __r = _S_compare(__n1, __n2); return __r; } template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, basic_string<_CharT, _Traits, _Alloc>& __str) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __istream_type::ios_base __ios_base; typedef typename __istream_type::int_type __int_type; typedef typename __string_type::size_type __size_type; typedef ctype<_CharT> __ctype_type; typedef typename __ctype_type::ctype_base __ctype_base; __size_type __extracted = 0; typename __ios_base::iostate __err = __ios_base::goodbit; typename __istream_type::sentry __cerb(__in, false); if (__cerb) { try { __str.erase(); _CharT __buf[128]; __size_type __len = 0; const streamsize __w = __in.width(); const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) : __str.max_size(); const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); const __int_type __eof = _Traits::eof(); __int_type __c = __in.rdbuf()->sgetc(); while (__extracted < __n && !_Traits::eq_int_type(__c, __eof) && !__ct.is(__ctype_base::space, _Traits::to_char_type(__c))) { if (__len == sizeof(__buf) / sizeof(_CharT)) { __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); __len = 0; } __buf[__len++] = _Traits::to_char_type(__c); ++__extracted; __c = __in.rdbuf()->snextc(); } __str.append(__buf, __len); if (_Traits::eq_int_type(__c, __eof)) __err |= __ios_base::eofbit; __in.width(0); } catch(__cxxabiv1::__forced_unwind&) { __in._M_setstate(__ios_base::badbit); throw; } catch(...) { __in._M_setstate(__ios_base::badbit); } } if (!__extracted) __err |= __ios_base::failbit; if (__err) __in.setstate(__err); return __in; } template basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __in, basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __istream_type::ios_base __ios_base; typedef typename __istream_type::int_type __int_type; typedef typename __string_type::size_type __size_type; __size_type __extracted = 0; const __size_type __n = __str.max_size(); typename __ios_base::iostate __err = __ios_base::goodbit; typename __istream_type::sentry __cerb(__in, true); if (__cerb) { try { __str.erase(); const __int_type __idelim = _Traits::to_int_type(__delim); const __int_type __eof = _Traits::eof(); __int_type __c = __in.rdbuf()->sgetc(); while (__extracted < __n && !_Traits::eq_int_type(__c, __eof) && !_Traits::eq_int_type(__c, __idelim)) { __str += _Traits::to_char_type(__c); ++__extracted; __c = __in.rdbuf()->snextc(); } if (_Traits::eq_int_type(__c, __eof)) __err |= __ios_base::eofbit; else if (_Traits::eq_int_type(__c, __idelim)) { ++__extracted; __in.rdbuf()->sbumpc(); } else __err |= __ios_base::failbit; } catch(__cxxabiv1::__forced_unwind&) { __in._M_setstate(__ios_base::badbit); throw; } catch(...) { __in._M_setstate(__ios_base::badbit); } } if (!__extracted) __err |= __ios_base::failbit; if (__err) __in.setstate(__err); return __in; } extern template class basic_string; extern template basic_istream& operator>>(basic_istream&, string&); extern template basic_ostream& operator<<(basic_ostream&, const string&); extern template basic_istream& getline(basic_istream&, string&, char); extern template basic_istream& getline(basic_istream&, string&); extern template class basic_string; extern template basic_istream& operator>>(basic_istream&, wstring&); extern template basic_ostream& operator<<(basic_ostream&, const wstring&); extern template basic_istream& getline(basic_istream&, wstring&, wchar_t); extern template basic_istream& getline(basic_istream&, wstring&); } # 56 "/usr/include/c++/4.6/string" 2 3 # 36 "../flower/include/std-string.hh" 2 using namespace std; typedef size_t ssize; string to_string (string s); string to_string (char c, int n = 1); string to_string (int i, char const *format = 0); string to_string (double f, char const *format = 0); string to_string (long); string to_string (long unsigned); string to_string (I64, char const *format = 0); string to_string (unsigned); string to_string (bool b); string to_string (char const *format, ...) __attribute__ ((format (printf, 1, 2))); string &replace_all (string *str, string const &find, string const &replace); string &replace_all (string *str, char find, char replace); char *string_copy (string s); int string_compare (string const &, string const &); inline bool operator > (string const & t1, string const & t2) { return string_compare (t1, t2) > 0; } inline bool operator >= (string const & t1, string const & t2) { return string_compare (t1, t2) >= 0; } inline bool operator == (string const & t1, string const & t2) { return string_compare (t1, t2) == 0; } inline bool operator != (string const & t1, string const & t2) { return string_compare (t1, t2) != 0; } inline bool operator < (string const & t1, string const & t2) { return string_compare (t1, t2) < 0; } inline bool operator <= (string const & t1, string const & t2) { return string_compare (t1, t2) <= 0; } inline string const & max (string const & t1, string const & t2) { return (t1 > t2) ? t1 : t2; } inline string const & min (string const & t1, string const & t2) { return (t1 < t2) ? t1 : t2; } bool operator < (string const & t1, string const & t2); # 30 "../flower/include/flower-proto.hh" 2 # 1 "../flower/include/real.hh" 1 # 23 "../flower/include/real.hh" # 1 "/usr/include/c++/4.6/algorithm" 1 3 # 59 "/usr/include/c++/4.6/algorithm" 3 # 60 "/usr/include/c++/4.6/algorithm" 3 # 1 "/usr/include/c++/4.6/utility" 1 3 # 59 "/usr/include/c++/4.6/utility" 3 # 60 "/usr/include/c++/4.6/utility" 3 # 70 "/usr/include/c++/4.6/utility" 3 # 1 "/usr/include/c++/4.6/bits/stl_relops.h" 1 3 # 68 "/usr/include/c++/4.6/bits/stl_relops.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { namespace rel_ops { # 86 "/usr/include/c++/4.6/bits/stl_relops.h" 3 template inline bool operator!=(const _Tp& __x, const _Tp& __y) { return !(__x == __y); } # 99 "/usr/include/c++/4.6/bits/stl_relops.h" 3 template inline bool operator>(const _Tp& __x, const _Tp& __y) { return __y < __x; } # 112 "/usr/include/c++/4.6/bits/stl_relops.h" 3 template inline bool operator<=(const _Tp& __x, const _Tp& __y) { return !(__y < __x); } # 125 "/usr/include/c++/4.6/bits/stl_relops.h" 3 template inline bool operator>=(const _Tp& __x, const _Tp& __y) { return !(__x < __y); } } } # 71 "/usr/include/c++/4.6/utility" 2 3 # 62 "/usr/include/c++/4.6/algorithm" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_algo.h" 1 3 # 61 "/usr/include/c++/4.6/bits/stl_algo.h" 3 # 1 "/usr/include/c++/4.6/cstdlib" 1 3 # 41 "/usr/include/c++/4.6/cstdlib" 3 # 42 "/usr/include/c++/4.6/cstdlib" 3 # 98 "/usr/include/c++/4.6/cstdlib" 3 namespace std __attribute__ ((__visibility__ ("default"))) { using ::div_t; using ::ldiv_t; using ::abort; using ::abs; using ::atexit; using ::atof; using ::atoi; using ::atol; using ::bsearch; using ::calloc; using ::div; using ::exit; using ::free; using ::getenv; using ::labs; using ::ldiv; using ::malloc; using ::mblen; using ::mbstowcs; using ::mbtowc; using ::qsort; using ::rand; using ::realloc; using ::srand; using ::strtod; using ::strtol; using ::strtoul; using ::system; using ::wcstombs; using ::wctomb; inline long abs(long __i) { return labs(__i); } inline ldiv_t div(long __i, long __j) { return ldiv(__i, __j); } } # 158 "/usr/include/c++/4.6/cstdlib" 3 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { using ::lldiv_t; using ::_Exit; inline long long abs(long long __x) { return __x >= 0 ? __x : -__x; } using ::llabs; inline lldiv_t div(long long __n, long long __d) { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } using ::lldiv; # 193 "/usr/include/c++/4.6/cstdlib" 3 using ::atoll; using ::strtoll; using ::strtoull; using ::strtof; using ::strtold; } namespace std { using ::__gnu_cxx::lldiv_t; using ::__gnu_cxx::_Exit; using ::__gnu_cxx::abs; using ::__gnu_cxx::llabs; using ::__gnu_cxx::div; using ::__gnu_cxx::lldiv; using ::__gnu_cxx::atoll; using ::__gnu_cxx::strtof; using ::__gnu_cxx::strtoll; using ::__gnu_cxx::strtoull; using ::__gnu_cxx::strtold; } # 62 "/usr/include/c++/4.6/bits/stl_algo.h" 2 3 # 1 "/usr/include/c++/4.6/bits/algorithmfwd.h" 1 3 # 33 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 # 34 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 201 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 template bool binary_search(_FIter, _FIter, const _Tp&); template bool binary_search(_FIter, _FIter, const _Tp&, _Compare); template _OIter copy(_IIter, _IIter, _OIter); template _BIter2 copy_backward(_BIter1, _BIter1, _BIter2); # 230 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 template pair<_FIter, _FIter> equal_range(_FIter, _FIter, const _Tp&); template pair<_FIter, _FIter> equal_range(_FIter, _FIter, const _Tp&, _Compare); template void fill(_FIter, _FIter, const _Tp&); template _OIter fill_n(_OIter, _Size, const _Tp&); template _FIter1 find_end(_FIter1, _FIter1, _FIter2, _FIter2); template _FIter1 find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); # 269 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 template bool includes(_IIter1, _IIter1, _IIter2, _IIter2); template bool includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); template void inplace_merge(_BIter, _BIter, _BIter); template void inplace_merge(_BIter, _BIter, _BIter, _Compare); # 332 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 template void iter_swap(_FIter1, _FIter2); template _FIter lower_bound(_FIter, _FIter, const _Tp&); template _FIter lower_bound(_FIter, _FIter, const _Tp&, _Compare); template void make_heap(_RAIter, _RAIter); template void make_heap(_RAIter, _RAIter, _Compare); template const _Tp& max(const _Tp&, const _Tp&); template const _Tp& max(const _Tp&, const _Tp&, _Compare); template const _Tp& min(const _Tp&, const _Tp&); template const _Tp& min(const _Tp&, const _Tp&, _Compare); # 417 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 template bool next_permutation(_BIter, _BIter); template bool next_permutation(_BIter, _BIter, _Compare); # 434 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 template _RAIter partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); template _RAIter partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); # 455 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 template void pop_heap(_RAIter, _RAIter); template void pop_heap(_RAIter, _RAIter, _Compare); template bool prev_permutation(_BIter, _BIter); template bool prev_permutation(_BIter, _BIter, _Compare); template void push_heap(_RAIter, _RAIter); template void push_heap(_RAIter, _RAIter, _Compare); template _FIter remove(_FIter, _FIter, const _Tp&); template _FIter remove_if(_FIter, _FIter, _Predicate); template _OIter remove_copy(_IIter, _IIter, _OIter, const _Tp&); template _OIter remove_copy_if(_IIter, _IIter, _OIter, _Predicate); template _OIter replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); template _OIter replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); template void reverse(_BIter, _BIter); template _OIter reverse_copy(_BIter, _BIter, _OIter); template void rotate(_FIter, _FIter, _FIter); template _OIter rotate_copy(_FIter, _FIter, _FIter, _OIter); # 538 "/usr/include/c++/4.6/bits/algorithmfwd.h" 3 template void sort_heap(_RAIter, _RAIter); template void sort_heap(_RAIter, _RAIter, _Compare); template _BIter stable_partition(_BIter, _BIter, _Predicate); template void swap(_Tp&, _Tp&); template void swap(_Tp (&)[_Nm], _Tp (&)[_Nm]); template _FIter2 swap_ranges(_FIter1, _FIter1, _FIter2); template _FIter unique(_FIter, _FIter); template _FIter unique(_FIter, _FIter, _BinaryPredicate); template _FIter upper_bound(_FIter, _FIter, const _Tp&); template _FIter upper_bound(_FIter, _FIter, const _Tp&, _Compare); template _FIter adjacent_find(_FIter, _FIter); template _FIter adjacent_find(_FIter, _FIter, _BinaryPredicate); template typename iterator_traits<_IIter>::difference_type count(_IIter, _IIter, const _Tp&); template typename iterator_traits<_IIter>::difference_type count_if(_IIter, _IIter, _Predicate); template bool equal(_IIter1, _IIter1, _IIter2); template bool equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); template _IIter find(_IIter, _IIter, const _Tp&); template _FIter1 find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); template _FIter1 find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); template _IIter find_if(_IIter, _IIter, _Predicate); template _Funct for_each(_IIter, _IIter, _Funct); template void generate(_FIter, _FIter, _Generator); template _OIter generate_n(_OIter, _Size, _Generator); template bool lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); template bool lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); template _FIter max_element(_FIter, _FIter); template _FIter max_element(_FIter, _FIter, _Compare); template _OIter merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template _FIter min_element(_FIter, _FIter); template _FIter min_element(_FIter, _FIter, _Compare); template pair<_IIter1, _IIter2> mismatch(_IIter1, _IIter1, _IIter2); template pair<_IIter1, _IIter2> mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); template void nth_element(_RAIter, _RAIter, _RAIter); template void nth_element(_RAIter, _RAIter, _RAIter, _Compare); template void partial_sort(_RAIter, _RAIter, _RAIter); template void partial_sort(_RAIter, _RAIter, _RAIter, _Compare); template _BIter partition(_BIter, _BIter, _Predicate); template void random_shuffle(_RAIter, _RAIter); template void random_shuffle(_RAIter, _RAIter, _Generator&); template void replace(_FIter, _FIter, const _Tp&, const _Tp&); template void replace_if(_FIter, _FIter, _Predicate, const _Tp&); template _FIter1 search(_FIter1, _FIter1, _FIter2, _FIter2); template _FIter1 search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); template _FIter search_n(_FIter, _FIter, _Size, const _Tp&); template _FIter search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); template _OIter set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template _OIter set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template _OIter set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template _OIter set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); template _OIter set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); template void sort(_RAIter, _RAIter); template void sort(_RAIter, _RAIter, _Compare); template void stable_sort(_RAIter, _RAIter); template void stable_sort(_RAIter, _RAIter, _Compare); template _OIter transform(_IIter, _IIter, _OIter, _UnaryOperation); template _OIter transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); template _OIter unique_copy(_IIter, _IIter, _OIter); template _OIter unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); } # 63 "/usr/include/c++/4.6/bits/stl_algo.h" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_heap.h" 1 3 # 62 "/usr/include/c++/4.6/bits/stl_heap.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template _Distance __is_heap_until(_RandomAccessIterator __first, _Distance __n) { _Distance __parent = 0; for (_Distance __child = 1; __child < __n; ++__child) { if (__first[__parent] < __first[__child]) return __child; if ((__child & 1) == 0) ++__parent; } return __n; } template _Distance __is_heap_until(_RandomAccessIterator __first, _Distance __n, _Compare __comp) { _Distance __parent = 0; for (_Distance __child = 1; __child < __n; ++__child) { if (__comp(__first[__parent], __first[__child])) return __child; if ((__child & 1) == 0) ++__parent; } return __n; } template inline bool __is_heap(_RandomAccessIterator __first, _Distance __n) { return std::__is_heap_until(__first, __n) == __n; } template inline bool __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) { return std::__is_heap_until(__first, __n, __comp) == __n; } template inline bool __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { return std::__is_heap(__first, std::distance(__first, __last)); } template inline bool __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { return std::__is_heap(__first, __comp, std::distance(__first, __last)); } template void __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __topIndex, _Tp __value) { _Distance __parent = (__holeIndex - 1) / 2; while (__holeIndex > __topIndex && *(__first + __parent) < __value) { *(__first + __holeIndex) = (*(__first + __parent)); __holeIndex = __parent; __parent = (__holeIndex - 1) / 2; } *(__first + __holeIndex) = (__value); } # 154 "/usr/include/c++/4.6/bits/stl_heap.h" 3 template inline void push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; ; _ValueType __value = (*(__last - 1)); std::__push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), (__value)); } template void __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __topIndex, _Tp __value, _Compare __comp) { _Distance __parent = (__holeIndex - 1) / 2; while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value)) { *(__first + __holeIndex) = (*(__first + __parent)); __holeIndex = __parent; __parent = (__holeIndex - 1) / 2; } *(__first + __holeIndex) = (__value); } # 203 "/usr/include/c++/4.6/bits/stl_heap.h" 3 template inline void push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; ; _ValueType __value = (*(__last - 1)); std::__push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), (__value), __comp); } template void __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __len, _Tp __value) { const _Distance __topIndex = __holeIndex; _Distance __secondChild = __holeIndex; while (__secondChild < (__len - 1) / 2) { __secondChild = 2 * (__secondChild + 1); if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) __secondChild--; *(__first + __holeIndex) = (*(__first + __secondChild)); __holeIndex = __secondChild; } if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) { __secondChild = 2 * (__secondChild + 1); *(__first + __holeIndex) = (*(__first + (__secondChild - 1))) ; __holeIndex = __secondChild - 1; } std::__push_heap(__first, __holeIndex, __topIndex, (__value)); } template inline void __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomAccessIterator __result) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; _ValueType __value = (*__result); *__result = (*__first); std::__adjust_heap(__first, _DistanceType(0), _DistanceType(__last - __first), (__value)); } # 276 "/usr/include/c++/4.6/bits/stl_heap.h" 3 template inline void pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; --__last; std::__pop_heap(__first, __last, __last); } template void __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, _Distance __len, _Tp __value, _Compare __comp) { const _Distance __topIndex = __holeIndex; _Distance __secondChild = __holeIndex; while (__secondChild < (__len - 1) / 2) { __secondChild = 2 * (__secondChild + 1); if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) __secondChild--; *(__first + __holeIndex) = (*(__first + __secondChild)); __holeIndex = __secondChild; } if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) { __secondChild = 2 * (__secondChild + 1); *(__first + __holeIndex) = (*(__first + (__secondChild - 1))) ; __holeIndex = __secondChild - 1; } std::__push_heap(__first, __holeIndex, __topIndex, (__value), __comp); } template inline void __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomAccessIterator __result, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; _ValueType __value = (*__result); *__result = (*__first); std::__adjust_heap(__first, _DistanceType(0), _DistanceType(__last - __first), (__value), __comp); } # 350 "/usr/include/c++/4.6/bits/stl_heap.h" 3 template inline void pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; ; --__last; std::__pop_heap(__first, __last, __last, __comp); } # 373 "/usr/include/c++/4.6/bits/stl_heap.h" 3 template void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; if (__last - __first < 2) return; const _DistanceType __len = __last - __first; _DistanceType __parent = (__len - 2) / 2; while (true) { _ValueType __value = (*(__first + __parent)); std::__adjust_heap(__first, __parent, __len, (__value)); if (__parent == 0) return; __parent--; } } # 413 "/usr/include/c++/4.6/bits/stl_heap.h" 3 template void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; if (__last - __first < 2) return; const _DistanceType __len = __last - __first; _DistanceType __parent = (__len - 2) / 2; while (true) { _ValueType __value = (*(__first + __parent)); std::__adjust_heap(__first, __parent, __len, (__value), __comp); if (__parent == 0) return; __parent--; } } # 452 "/usr/include/c++/4.6/bits/stl_heap.h" 3 template void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; ; while (__last - __first > 1) { --__last; std::__pop_heap(__first, __last, __last); } } # 481 "/usr/include/c++/4.6/bits/stl_heap.h" 3 template void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { ; ; while (__last - __first > 1) { --__last; std::__pop_heap(__first, __last, __last, __comp); } } # 578 "/usr/include/c++/4.6/bits/stl_heap.h" 3 } # 64 "/usr/include/c++/4.6/bits/stl_algo.h" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_tempbuf.h" 1 3 # 61 "/usr/include/c++/4.6/bits/stl_tempbuf.h" 3 # 1 "/usr/include/c++/4.6/bits/stl_construct.h" 1 3 # 64 "/usr/include/c++/4.6/bits/stl_construct.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 78 "/usr/include/c++/4.6/bits/stl_construct.h" 3 template inline void _Construct(_T1* __p, const _T2& __value) { ::new(static_cast(__p)) _T1(__value); } template inline void _Destroy(_Tp* __pointer) { __pointer->~_Tp(); } template struct _Destroy_aux { template static void __destroy(_ForwardIterator __first, _ForwardIterator __last) { for (; __first != __last; ++__first) std::_Destroy(std::__addressof(*__first)); } }; template<> struct _Destroy_aux { template static void __destroy(_ForwardIterator, _ForwardIterator) { } }; template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last) { typedef typename iterator_traits<_ForwardIterator>::value_type _Value_type; std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: __destroy(__first, __last); } template class allocator; template void _Destroy(_ForwardIterator __first, _ForwardIterator __last, _Allocator& __alloc) { for (; __first != __last; ++__first) __alloc.destroy(std::__addressof(*__first)); } template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last, allocator<_Tp>&) { _Destroy(__first, __last); } } # 62 "/usr/include/c++/4.6/bits/stl_tempbuf.h" 2 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 84 "/usr/include/c++/4.6/bits/stl_tempbuf.h" 3 template pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __len) { const ptrdiff_t __max = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); if (__len > __max) __len = __max; while (__len > 0) { _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), std::nothrow)); if (__tmp != 0) return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); __len /= 2; } return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); } # 111 "/usr/include/c++/4.6/bits/stl_tempbuf.h" 3 template inline void return_temporary_buffer(_Tp* __p) { ::operator delete(__p, std::nothrow); } template class _Temporary_buffer { public: typedef _Tp value_type; typedef value_type* pointer; typedef pointer iterator; typedef ptrdiff_t size_type; protected: size_type _M_original_len; size_type _M_len; pointer _M_buffer; public: size_type size() const { return _M_len; } size_type requested_size() const { return _M_original_len; } iterator begin() { return _M_buffer; } iterator end() { return _M_buffer + _M_len; } _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); ~_Temporary_buffer() { std::_Destroy(_M_buffer, _M_buffer + _M_len); std::return_temporary_buffer(_M_buffer); } private: _Temporary_buffer(const _Temporary_buffer&); void operator=(const _Temporary_buffer&); }; template struct __uninitialized_construct_buf_dispatch { template static void __ucr(_ForwardIterator __first, _ForwardIterator __last, _Tp& __value) { if(__first == __last) return; _ForwardIterator __cur = __first; try { std::_Construct(std::__addressof(*__first), (__value)); _ForwardIterator __prev = __cur; ++__cur; for(; __cur != __last; ++__cur, ++__prev) std::_Construct(std::__addressof(*__cur), (*__prev)); __value = (*__prev); } catch(...) { std::_Destroy(__first, __cur); throw; } } }; template<> struct __uninitialized_construct_buf_dispatch { template static void __ucr(_ForwardIterator, _ForwardIterator, _Tp&) { } }; # 230 "/usr/include/c++/4.6/bits/stl_tempbuf.h" 3 template inline void __uninitialized_construct_buf(_ForwardIterator __first, _ForwardIterator __last, _Tp& __value) { typedef typename std::iterator_traits<_ForwardIterator>::value_type _ValueType; std::__uninitialized_construct_buf_dispatch< __has_trivial_constructor(_ValueType)>:: __ucr(__first, __last, __value); } template _Temporary_buffer<_ForwardIterator, _Tp>:: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) : _M_original_len(std::distance(__first, __last)), _M_len(0), _M_buffer(0) { try { std::pair __p(std::get_temporary_buffer< value_type>(_M_original_len)); _M_buffer = __p.first; _M_len = __p.second; if(_M_buffer) std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, *__first); } catch(...) { std::return_temporary_buffer(_M_buffer); _M_buffer = 0; _M_len = 0; throw; } } } # 65 "/usr/include/c++/4.6/bits/stl_algo.h" 2 3 # 73 "/usr/include/c++/4.6/bits/stl_algo.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template void __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c) { if (*__a < *__b) { if (*__b < *__c) std::iter_swap(__a, __b); else if (*__a < *__c) std::iter_swap(__a, __c); } else if (*__a < *__c) return; else if (*__b < *__c) std::iter_swap(__a, __c); else std::iter_swap(__a, __b); } template void __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c, _Compare __comp) { if (__comp(*__a, *__b)) { if (__comp(*__b, *__c)) std::iter_swap(__a, __b); else if (__comp(*__a, *__c)) std::iter_swap(__a, __c); } else if (__comp(*__a, *__c)) return; else if (__comp(*__b, *__c)) std::iter_swap(__a, __c); else std::iter_swap(__a, __b); } template inline _InputIterator __find(_InputIterator __first, _InputIterator __last, const _Tp& __val, input_iterator_tag) { while (__first != __last && !(*__first == __val)) ++__first; return __first; } template inline _InputIterator __find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred, input_iterator_tag) { while (__first != __last && !bool(__pred(*__first))) ++__first; return __first; } template _RandomAccessIterator __find(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __val, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2; for (; __trip_count > 0; --__trip_count) { if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; if (*__first == __val) return __first; ++__first; } switch (__last - __first) { case 3: if (*__first == __val) return __first; ++__first; case 2: if (*__first == __val) return __first; ++__first; case 1: if (*__first == __val) return __first; ++__first; case 0: default: return __last; } } template _RandomAccessIterator __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate __pred, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2; for (; __trip_count > 0; --__trip_count) { if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; if (__pred(*__first)) return __first; ++__first; } switch (__last - __first) { case 3: if (__pred(*__first)) return __first; ++__first; case 2: if (__pred(*__first)) return __first; ++__first; case 1: if (__pred(*__first)) return __first; ++__first; case 0: default: return __last; } } # 326 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator __search_n(_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp& __val, std::forward_iterator_tag) { __first = std::find(__first, __last, __val); while (__first != __last) { typename iterator_traits<_ForwardIterator>::difference_type __n = __count; _ForwardIterator __i = __first; ++__i; while (__i != __last && __n != 1 && *__i == __val) { ++__i; --__n; } if (__n == 1) return __first; if (__i == __last) return __last; __first = std::find(++__i, __last, __val); } return __last; } template _RandomAccessIter __search_n(_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp& __val, std::random_access_iterator_tag) { typedef typename std::iterator_traits<_RandomAccessIter>::difference_type _DistanceType; _DistanceType __tailSize = __last - __first; const _DistanceType __pattSize = __count; if (__tailSize < __pattSize) return __last; const _DistanceType __skipOffset = __pattSize - 1; _RandomAccessIter __lookAhead = __first + __skipOffset; __tailSize -= __pattSize; while (1) { while (!(*__lookAhead == __val)) { if (__tailSize < __pattSize) return __last; __lookAhead += __pattSize; __tailSize -= __pattSize; } _DistanceType __remainder = __skipOffset; for (_RandomAccessIter __backTrack = __lookAhead - 1; *__backTrack == __val; --__backTrack) { if (--__remainder == 0) return (__lookAhead - __skipOffset); } if (__remainder > __tailSize) return __last; __lookAhead += __remainder; __tailSize -= __remainder; } } # 411 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator __search_n(_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp& __val, _BinaryPredicate __binary_pred, std::forward_iterator_tag) { while (__first != __last && !bool(__binary_pred(*__first, __val))) ++__first; while (__first != __last) { typename iterator_traits<_ForwardIterator>::difference_type __n = __count; _ForwardIterator __i = __first; ++__i; while (__i != __last && __n != 1 && bool(__binary_pred(*__i, __val))) { ++__i; --__n; } if (__n == 1) return __first; if (__i == __last) return __last; __first = ++__i; while (__first != __last && !bool(__binary_pred(*__first, __val))) ++__first; } return __last; } template _RandomAccessIter __search_n(_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp& __val, _BinaryPredicate __binary_pred, std::random_access_iterator_tag) { typedef typename std::iterator_traits<_RandomAccessIter>::difference_type _DistanceType; _DistanceType __tailSize = __last - __first; const _DistanceType __pattSize = __count; if (__tailSize < __pattSize) return __last; const _DistanceType __skipOffset = __pattSize - 1; _RandomAccessIter __lookAhead = __first + __skipOffset; __tailSize -= __pattSize; while (1) { while (!bool(__binary_pred(*__lookAhead, __val))) { if (__tailSize < __pattSize) return __last; __lookAhead += __pattSize; __tailSize -= __pattSize; } _DistanceType __remainder = __skipOffset; for (_RandomAccessIter __backTrack = __lookAhead - 1; __binary_pred(*__backTrack, __val); --__backTrack) { if (--__remainder == 0) return (__lookAhead - __skipOffset); } if (__remainder > __tailSize) return __last; __lookAhead += __remainder; __tailSize -= __remainder; } } template _ForwardIterator1 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag) { if (__first2 == __last2) return __last1; else { _ForwardIterator1 __result = __last1; while (1) { _ForwardIterator1 __new_result = std::search(__first1, __last1, __first2, __last2); if (__new_result == __last1) return __result; else { __result = __new_result; __first1 = __new_result; ++__first1; } } } } template _ForwardIterator1 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag, _BinaryPredicate __comp) { if (__first2 == __last2) return __last1; else { _ForwardIterator1 __result = __last1; while (1) { _ForwardIterator1 __new_result = std::search(__first1, __last1, __first2, __last2, __comp); if (__new_result == __last1) return __result; else { __result = __new_result; __first1 = __new_result; ++__first1; } } } } template _BidirectionalIterator1 __find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag) { typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; _RevIterator1 __rlast1(__first1); _RevIterator2 __rlast2(__first2); _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1, _RevIterator2(__last2), __rlast2); if (__rresult == __rlast1) return __last1; else { _BidirectionalIterator1 __result = __rresult.base(); std::advance(__result, -std::distance(__first2, __last2)); return __result; } } template _BidirectionalIterator1 __find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag, _BinaryPredicate __comp) { typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; _RevIterator1 __rlast1(__first1); _RevIterator2 __rlast2(__first2); _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1, _RevIterator2(__last2), __rlast2, __comp); if (__rresult == __rlast1) return __last1; else { _BidirectionalIterator1 __result = __rresult.base(); std::advance(__result, -std::distance(__first2, __last2)); return __result; } } # 649 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline _ForwardIterator1 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { ; ; return std::__find_end(__first1, __last1, __first2, __last2, std::__iterator_category(__first1), std::__iterator_category(__first2)); } # 695 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline _ForwardIterator1 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __comp) { ; ; return std::__find_end(__first1, __last1, __first2, __last2, std::__iterator_category(__first1), std::__iterator_category(__first2), __comp); } # 874 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator remove_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp& __value) { ; for (; __first != __last; ++__first) if (!(*__first == __value)) { *__result = *__first; ++__result; } return __result; } # 911 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator remove_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred) { ; for (; __first != __last; ++__first) if (!bool(__pred(*__first))) { *__result = *__first; ++__result; } return __result; } # 1086 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator remove(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) { ; __first = std::find(__first, __last, __value); if(__first == __last) return __first; _ForwardIterator __result = __first; ++__first; for(; __first != __last; ++__first) if(!(*__first == __value)) { *__result = (*__first); ++__result; } return __result; } # 1129 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator remove_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { ; __first = std::find_if(__first, __last, __pred); if(__first == __last) return __first; _ForwardIterator __result = __first; ++__first; for(; __first != __last; ++__first) if(!bool(__pred(*__first))) { *__result = (*__first); ++__result; } return __result; } # 1169 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator unique(_ForwardIterator __first, _ForwardIterator __last) { ; __first = std::adjacent_find(__first, __last); if (__first == __last) return __last; _ForwardIterator __dest = __first; ++__first; while (++__first != __last) if (!(*__dest == *__first)) *++__dest = (*__first); return ++__dest; } # 1209 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator unique(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred) { ; __first = std::adjacent_find(__first, __last, __binary_pred); if (__first == __last) return __last; _ForwardIterator __dest = __first; ++__first; while (++__first != __last) if (!bool(__binary_pred(*__dest, *__first))) *++__dest = (*__first); return ++__dest; } template _OutputIterator __unique_copy(_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, forward_iterator_tag, output_iterator_tag) { _ForwardIterator __next = __first; *__result = *__first; while (++__next != __last) if (!(*__first == *__next)) { __first = __next; *++__result = *__first; } return ++__result; } template _OutputIterator __unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, input_iterator_tag, output_iterator_tag) { typename iterator_traits<_InputIterator>::value_type __value = *__first; *__result = __value; while (++__first != __last) if (!(__value == *__first)) { __value = *__first; *++__result = __value; } return ++__result; } template _ForwardIterator __unique_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, input_iterator_tag, forward_iterator_tag) { *__result = *__first; while (++__first != __last) if (!(*__result == *__first)) *++__result = *__first; return ++__result; } template _OutputIterator __unique_copy(_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, forward_iterator_tag, output_iterator_tag) { _ForwardIterator __next = __first; *__result = *__first; while (++__next != __last) if (!bool(__binary_pred(*__first, *__next))) { __first = __next; *++__result = *__first; } return ++__result; } template _OutputIterator __unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, input_iterator_tag, output_iterator_tag) { typename iterator_traits<_InputIterator>::value_type __value = *__first; *__result = __value; while (++__first != __last) if (!bool(__binary_pred(__value, *__first))) { __value = *__first; *++__result = __value; } return ++__result; } template _ForwardIterator __unique_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _BinaryPredicate __binary_pred, input_iterator_tag, forward_iterator_tag) { *__result = *__first; while (++__first != __last) if (!bool(__binary_pred(*__result, *__first))) *++__result = *__first; return ++__result; } template void __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag) { while (true) if (__first == __last || __first == --__last) return; else { std::iter_swap(__first, __last); ++__first; } } template void __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { if (__first == __last) return; --__last; while (__first < __last) { std::iter_swap(__first, __last); ++__first; --__last; } } # 1437 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) { ; std::__reverse(__first, __last, std::__iterator_category(__first)); } # 1464 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result) { ; while (__first != __last) { --__last; *__result = *__last; ++__result; } return __result; } template _EuclideanRingElement __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) { while (__n != 0) { _EuclideanRingElement __t = __m % __n; __m = __n; __n = __t; } return __m; } template void __rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, forward_iterator_tag) { if (__first == __middle || __last == __middle) return; _ForwardIterator __first2 = __middle; do { std::iter_swap(__first, __first2); ++__first; ++__first2; if (__first == __middle) __middle = __first2; } while (__first2 != __last); __first2 = __middle; while (__first2 != __last) { std::iter_swap(__first, __first2); ++__first; ++__first2; if (__first == __middle) __middle = __first2; else if (__first2 == __last) __first2 = __middle; } } template void __rotate(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, bidirectional_iterator_tag) { if (__first == __middle || __last == __middle) return; std::__reverse(__first, __middle, bidirectional_iterator_tag()); std::__reverse(__middle, __last, bidirectional_iterator_tag()); while (__first != __middle && __middle != __last) { std::iter_swap(__first, --__last); ++__first; } if (__first == __middle) std::__reverse(__middle, __last, bidirectional_iterator_tag()); else std::__reverse(__first, __middle, bidirectional_iterator_tag()); } template void __rotate(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, random_access_iterator_tag) { if (__first == __middle || __last == __middle) return; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; _Distance __n = __last - __first; _Distance __k = __middle - __first; if (__k == __n - __k) { std::swap_ranges(__first, __middle, __middle); return; } _RandomAccessIterator __p = __first; for (;;) { if (__k < __n - __k) { if (__is_pod(_ValueType) && __k == 1) { _ValueType __t = (*__p); std::copy(__p + 1, __p + __n, __p); *(__p + __n - 1) = (__t); return; } _RandomAccessIterator __q = __p + __k; for (_Distance __i = 0; __i < __n - __k; ++ __i) { std::iter_swap(__p, __q); ++__p; ++__q; } __n %= __k; if (__n == 0) return; std::swap(__n, __k); __k = __n - __k; } else { __k = __n - __k; if (__is_pod(_ValueType) && __k == 1) { _ValueType __t = (*(__p + __n - 1)); std::copy_backward(__p, __p + __n - 1, __p + __n); *__p = (__t); return; } _RandomAccessIterator __q = __p + __n; __p = __q - __k; for (_Distance __i = 0; __i < __n - __k; ++ __i) { --__p; --__q; std::iter_swap(__p, __q); } __n %= __k; if (__n == 0) return; std::swap(__n, __k); } } } # 1668 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last) { ; ; typedef typename iterator_traits<_ForwardIterator>::iterator_category _IterType; std::__rotate(__first, __middle, __last, _IterType()); } # 1702 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, _OutputIterator __result) { ; ; return std::copy(__first, __middle, std::copy(__middle, __last, __result)); } template _ForwardIterator __partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag) { if (__first == __last) return __first; while (__pred(*__first)) if (++__first == __last) return __first; _ForwardIterator __next = __first; while (++__next != __last) if (__pred(*__next)) { std::iter_swap(__first, __next); ++__first; } return __first; } template _BidirectionalIterator __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, bidirectional_iterator_tag) { while (true) { while (true) if (__first == __last) return __first; else if (__pred(*__first)) ++__first; else break; --__last; while (true) if (__first == __last) return __first; else if (!bool(__pred(*__last))) --__last; else break; std::iter_swap(__first, __last); ++__first; } } template _ForwardIterator __inplace_stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len) { if (__len == 1) return __pred(*__first) ? __last : __first; _ForwardIterator __middle = __first; std::advance(__middle, __len / 2); _ForwardIterator __begin = std::__inplace_stable_partition(__first, __middle, __pred, __len / 2); _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last, __pred, __len - __len / 2); std::rotate(__begin, __middle, __end); std::advance(__begin, std::distance(__middle, __end)); return __begin; } template _ForwardIterator __stable_partition_adaptive(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len, _Pointer __buffer, _Distance __buffer_size) { if (__len <= __buffer_size) { _ForwardIterator __result1 = __first; _Pointer __result2 = __buffer; for (; __first != __last; ++__first) if (__pred(*__first)) { *__result1 = (*__first); ++__result1; } else { *__result2 = (*__first); ++__result2; } std::copy(__buffer, __result2, __result1); return __result1; } else { _ForwardIterator __middle = __first; std::advance(__middle, __len / 2); _ForwardIterator __begin = std::__stable_partition_adaptive(__first, __middle, __pred, __len / 2, __buffer, __buffer_size); _ForwardIterator __end = std::__stable_partition_adaptive(__middle, __last, __pred, __len - __len / 2, __buffer, __buffer_size); std::rotate(__begin, __middle, __end); std::advance(__begin, std::distance(__middle, __end)); return __begin; } } # 1860 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { ; if (__first == __last) return __first; else { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); if (__buf.size() > 0) return std::__stable_partition_adaptive(__first, __last, __pred, _DistanceType(__buf.requested_size()), __buf.begin(), _DistanceType(__buf.size())); else return std::__inplace_stable_partition(__first, __last, __pred, _DistanceType(__buf.requested_size())); } } template void __heap_select(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) { std::make_heap(__first, __middle); for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) if (*__i < *__first) std::__pop_heap(__first, __middle, __i); } template void __heap_select(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp) { std::make_heap(__first, __middle, __comp); for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) if (__comp(*__i, *__first)) std::__pop_heap(__first, __middle, __i, __comp); } # 1942 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _RandomAccessIterator partial_sort_copy(_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last) { typedef typename iterator_traits<_InputIterator>::value_type _InputValueType; typedef typename iterator_traits<_RandomAccessIterator>::value_type _OutputValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; ; if (__result_first == __result_last) return __result_last; _RandomAccessIterator __result_real_last = __result_first; while(__first != __last && __result_real_last != __result_last) { *__result_real_last = *__first; ++__result_real_last; ++__first; } std::make_heap(__result_first, __result_real_last); while (__first != __last) { if (*__first < *__result_first) std::__adjust_heap(__result_first, _DistanceType(0), _DistanceType(__result_real_last - __result_first), _InputValueType(*__first)); ++__first; } std::sort_heap(__result_first, __result_real_last); return __result_real_last; } # 2008 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _RandomAccessIterator partial_sort_copy(_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp) { typedef typename iterator_traits<_InputIterator>::value_type _InputValueType; typedef typename iterator_traits<_RandomAccessIterator>::value_type _OutputValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; ; if (__result_first == __result_last) return __result_last; _RandomAccessIterator __result_real_last = __result_first; while(__first != __last && __result_real_last != __result_last) { *__result_real_last = *__first; ++__result_real_last; ++__first; } std::make_heap(__result_first, __result_real_last, __comp); while (__first != __last) { if (__comp(*__first, *__result_first)) std::__adjust_heap(__result_first, _DistanceType(0), _DistanceType(__result_real_last - __result_first), _InputValueType(*__first), __comp); ++__first; } std::sort_heap(__result_first, __result_real_last, __comp); return __result_real_last; } template void __unguarded_linear_insert(_RandomAccessIterator __last) { typename iterator_traits<_RandomAccessIterator>::value_type __val = (*__last); _RandomAccessIterator __next = __last; --__next; while (__val < *__next) { *__last = (*__next); __last = __next; --__next; } *__last = (__val); } template void __unguarded_linear_insert(_RandomAccessIterator __last, _Compare __comp) { typename iterator_traits<_RandomAccessIterator>::value_type __val = (*__last); _RandomAccessIterator __next = __last; --__next; while (__comp(__val, *__next)) { *__last = (*__next); __last = __next; --__next; } *__last = (__val); } template void __insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { if (__first == __last) return; for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) { if (*__i < *__first) { typename iterator_traits<_RandomAccessIterator>::value_type __val = (*__i); std::copy_backward(__first, __i, __i + 1); *__first = (__val); } else std::__unguarded_linear_insert(__i); } } template void __insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { if (__first == __last) return; for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) { if (__comp(*__i, *__first)) { typename iterator_traits<_RandomAccessIterator>::value_type __val = (*__i); std::copy_backward(__first, __i, __i + 1); *__first = (__val); } else std::__unguarded_linear_insert(__i, __comp); } } template inline void __unguarded_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; for (_RandomAccessIterator __i = __first; __i != __last; ++__i) std::__unguarded_linear_insert(__i); } template inline void __unguarded_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; for (_RandomAccessIterator __i = __first; __i != __last; ++__i) std::__unguarded_linear_insert(__i, __comp); } enum { _S_threshold = 16 }; template void __final_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { if (__last - __first > int(_S_threshold)) { std::__insertion_sort(__first, __first + int(_S_threshold)); std::__unguarded_insertion_sort(__first + int(_S_threshold), __last); } else std::__insertion_sort(__first, __last); } template void __final_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { if (__last - __first > int(_S_threshold)) { std::__insertion_sort(__first, __first + int(_S_threshold), __comp); std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, __comp); } else std::__insertion_sort(__first, __last, __comp); } template _RandomAccessIterator __unguarded_partition(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __pivot) { while (true) { while (*__first < __pivot) ++__first; --__last; while (__pivot < *__last) --__last; if (!(__first < __last)) return __first; std::iter_swap(__first, __last); ++__first; } } template _RandomAccessIterator __unguarded_partition(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __pivot, _Compare __comp) { while (true) { while (__comp(*__first, __pivot)) ++__first; --__last; while (__comp(__pivot, *__last)) --__last; if (!(__first < __last)) return __first; std::iter_swap(__first, __last); ++__first; } } template inline _RandomAccessIterator __unguarded_partition_pivot(_RandomAccessIterator __first, _RandomAccessIterator __last) { _RandomAccessIterator __mid = __first + (__last - __first) / 2; std::__move_median_first(__first, __mid, (__last - 1)); return std::__unguarded_partition(__first + 1, __last, *__first); } template inline _RandomAccessIterator __unguarded_partition_pivot(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { _RandomAccessIterator __mid = __first + (__last - __first) / 2; std::__move_median_first(__first, __mid, (__last - 1), __comp); return std::__unguarded_partition(__first + 1, __last, *__first, __comp); } template void __introsort_loop(_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit) { while (__last - __first > int(_S_threshold)) { if (__depth_limit == 0) { std::partial_sort(__first, __last, __last); return; } --__depth_limit; _RandomAccessIterator __cut = std::__unguarded_partition_pivot(__first, __last); std::__introsort_loop(__cut, __last, __depth_limit); __last = __cut; } } template void __introsort_loop(_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp) { while (__last - __first > int(_S_threshold)) { if (__depth_limit == 0) { std::partial_sort(__first, __last, __last, __comp); return; } --__depth_limit; _RandomAccessIterator __cut = std::__unguarded_partition_pivot(__first, __last, __comp); std::__introsort_loop(__cut, __last, __depth_limit, __comp); __last = __cut; } } template void __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Size __depth_limit) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; while (__last - __first > 3) { if (__depth_limit == 0) { std::__heap_select(__first, __nth + 1, __last); std::iter_swap(__first, __nth); return; } --__depth_limit; _RandomAccessIterator __cut = std::__unguarded_partition_pivot(__first, __last); if (__cut <= __nth) __first = __cut; else __last = __cut; } std::__insertion_sort(__first, __last); } template void __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; while (__last - __first > 3) { if (__depth_limit == 0) { std::__heap_select(__first, __nth + 1, __last, __comp); std::iter_swap(__first, __nth); return; } --__depth_limit; _RandomAccessIterator __cut = std::__unguarded_partition_pivot(__first, __last, __comp); if (__cut <= __nth) __first = __cut; else __last = __cut; } std::__insertion_sort(__first, __last, __comp); } # 2392 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; _DistanceType __len = std::distance(__first, __last); while (__len > 0) { _DistanceType __half = __len >> 1; _ForwardIterator __middle = __first; std::advance(__middle, __half); if (__comp(*__middle, __val)) { __first = __middle; ++__first; __len = __len - __half - 1; } else __len = __half; } return __first; } # 2439 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; _DistanceType __len = std::distance(__first, __last); while (__len > 0) { _DistanceType __half = __len >> 1; _ForwardIterator __middle = __first; std::advance(__middle, __half); if (__val < *__middle) __len = __half; else { __first = __middle; ++__first; __len = __len - __half - 1; } } return __first; } # 2488 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; _DistanceType __len = std::distance(__first, __last); while (__len > 0) { _DistanceType __half = __len >> 1; _ForwardIterator __middle = __first; std::advance(__middle, __half); if (__comp(__val, *__middle)) __len = __half; else { __first = __middle; ++__first; __len = __len - __half - 1; } } return __first; } # 2541 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template pair<_ForwardIterator, _ForwardIterator> equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; ; _DistanceType __len = std::distance(__first, __last); while (__len > 0) { _DistanceType __half = __len >> 1; _ForwardIterator __middle = __first; std::advance(__middle, __half); if (*__middle < __val) { __first = __middle; ++__first; __len = __len - __half - 1; } else if (__val < *__middle) __len = __half; else { _ForwardIterator __left = std::lower_bound(__first, __middle, __val); std::advance(__first, __len); _ForwardIterator __right = std::upper_bound(++__middle, __first, __val); return pair<_ForwardIterator, _ForwardIterator>(__left, __right); } } return pair<_ForwardIterator, _ForwardIterator>(__first, __first); } # 2603 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template pair<_ForwardIterator, _ForwardIterator> equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType; ; ; _DistanceType __len = std::distance(__first, __last); while (__len > 0) { _DistanceType __half = __len >> 1; _ForwardIterator __middle = __first; std::advance(__middle, __half); if (__comp(*__middle, __val)) { __first = __middle; ++__first; __len = __len - __half - 1; } else if (__comp(__val, *__middle)) __len = __half; else { _ForwardIterator __left = std::lower_bound(__first, __middle, __val, __comp); std::advance(__first, __len); _ForwardIterator __right = std::upper_bound(++__middle, __first, __val, __comp); return pair<_ForwardIterator, _ForwardIterator>(__left, __right); } } return pair<_ForwardIterator, _ForwardIterator>(__first, __first); } # 2663 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template bool binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; ; ; _ForwardIterator __i = std::lower_bound(__first, __last, __val); return __i != __last && !(__val < *__i); } # 2696 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template bool binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; ; ; _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp); return __i != __last && !bool(__comp(__val, *__i)); } template void __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { while (__first1 != __last1 && __first2 != __last2) { if (*__first2 < *__first1) { *__result = (*__first2); ++__first2; } else { *__result = (*__first1); ++__first1; } ++__result; } if (__first1 != __last1) std::copy(__first1, __last1, __result); } template void __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first2, *__first1)) { *__result = (*__first2); ++__first2; } else { *__result = (*__first1); ++__first1; } ++__result; } if (__first1 != __last1) std::copy(__first1, __last1, __result); } template void __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result) { if (__first1 == __last1) { std::copy_backward(__first2, __last2, __result); return; } else if (__first2 == __last2) return; --__last1; --__last2; while (true) { if (*__last2 < *__last1) { *--__result = (*__last1); if (__first1 == __last1) { std::copy_backward(__first2, ++__last2, __result); return; } --__last1; } else { *--__result = (*__last2); if (__first2 == __last2) return; --__last2; } } } template void __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result, _Compare __comp) { if (__first1 == __last1) { std::copy_backward(__first2, __last2, __result); return; } else if (__first2 == __last2) return; --__last1; --__last2; while (true) { if (__comp(*__last2, *__last1)) { *--__result = (*__last1); if (__first1 == __last1) { std::copy_backward(__first2, ++__last2, __result); return; } --__last1; } else { *--__result = (*__last2); if (__first2 == __last2) return; --__last2; } } } template _BidirectionalIterator1 __rotate_adaptive(_BidirectionalIterator1 __first, _BidirectionalIterator1 __middle, _BidirectionalIterator1 __last, _Distance __len1, _Distance __len2, _BidirectionalIterator2 __buffer, _Distance __buffer_size) { _BidirectionalIterator2 __buffer_end; if (__len1 > __len2 && __len2 <= __buffer_size) { if (__len2) { __buffer_end = std::copy(__middle, __last, __buffer); std::copy_backward(__first, __middle, __last); return std::copy(__buffer, __buffer_end, __first); } else return __first; } else if (__len1 <= __buffer_size) { if (__len1) { __buffer_end = std::copy(__first, __middle, __buffer); std::copy(__middle, __last, __first); return std::copy_backward(__buffer, __buffer_end, __last); } else return __last; } else { std::rotate(__first, __middle, __last); std::advance(__first, std::distance(__middle, __last)); return __first; } } template void __merge_adaptive(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size) { if (__len1 <= __len2 && __len1 <= __buffer_size) { _Pointer __buffer_end = std::copy(__first, __middle, __buffer); std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, __first); } else if (__len2 <= __buffer_size) { _Pointer __buffer_end = std::copy(__middle, __last, __buffer); std::__move_merge_adaptive_backward(__first, __middle, __buffer, __buffer_end, __last); } else { _BidirectionalIterator __first_cut = __first; _BidirectionalIterator __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; std::advance(__first_cut, __len11); __second_cut = std::lower_bound(__middle, __last, *__first_cut); __len22 = std::distance(__middle, __second_cut); } else { __len22 = __len2 / 2; std::advance(__second_cut, __len22); __first_cut = std::upper_bound(__first, __middle, *__second_cut); __len11 = std::distance(__first, __first_cut); } _BidirectionalIterator __new_middle = std::__rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, __len22, __buffer, __buffer_size); std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, __len22, __buffer, __buffer_size); std::__merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __buffer, __buffer_size); } } template void __merge_adaptive(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size, _Compare __comp) { if (__len1 <= __len2 && __len1 <= __buffer_size) { _Pointer __buffer_end = std::copy(__first, __middle, __buffer); std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, __first, __comp); } else if (__len2 <= __buffer_size) { _Pointer __buffer_end = std::copy(__middle, __last, __buffer); std::__move_merge_adaptive_backward(__first, __middle, __buffer, __buffer_end, __last, __comp); } else { _BidirectionalIterator __first_cut = __first; _BidirectionalIterator __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; std::advance(__first_cut, __len11); __second_cut = std::lower_bound(__middle, __last, *__first_cut, __comp); __len22 = std::distance(__middle, __second_cut); } else { __len22 = __len2 / 2; std::advance(__second_cut, __len22); __first_cut = std::upper_bound(__first, __middle, *__second_cut, __comp); __len11 = std::distance(__first, __first_cut); } _BidirectionalIterator __new_middle = std::__rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, __len22, __buffer, __buffer_size); std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, __len22, __buffer, __buffer_size, __comp); std::__merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __buffer, __buffer_size, __comp); } } template void __merge_without_buffer(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2) { if (__len1 == 0 || __len2 == 0) return; if (__len1 + __len2 == 2) { if (*__middle < *__first) std::iter_swap(__first, __middle); return; } _BidirectionalIterator __first_cut = __first; _BidirectionalIterator __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; std::advance(__first_cut, __len11); __second_cut = std::lower_bound(__middle, __last, *__first_cut); __len22 = std::distance(__middle, __second_cut); } else { __len22 = __len2 / 2; std::advance(__second_cut, __len22); __first_cut = std::upper_bound(__first, __middle, *__second_cut); __len11 = std::distance(__first, __first_cut); } std::rotate(__first_cut, __middle, __second_cut); _BidirectionalIterator __new_middle = __first_cut; std::advance(__new_middle, std::distance(__middle, __second_cut)); std::__merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22); std::__merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22); } template void __merge_without_buffer(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Compare __comp) { if (__len1 == 0 || __len2 == 0) return; if (__len1 + __len2 == 2) { if (__comp(*__middle, *__first)) std::iter_swap(__first, __middle); return; } _BidirectionalIterator __first_cut = __first; _BidirectionalIterator __second_cut = __middle; _Distance __len11 = 0; _Distance __len22 = 0; if (__len1 > __len2) { __len11 = __len1 / 2; std::advance(__first_cut, __len11); __second_cut = std::lower_bound(__middle, __last, *__first_cut, __comp); __len22 = std::distance(__middle, __second_cut); } else { __len22 = __len2 / 2; std::advance(__second_cut, __len22); __first_cut = std::upper_bound(__first, __middle, *__second_cut, __comp); __len11 = std::distance(__first, __first_cut); } std::rotate(__first_cut, __middle, __second_cut); _BidirectionalIterator __new_middle = __first_cut; std::advance(__new_middle, std::distance(__middle, __second_cut)); std::__merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22, __comp); std::__merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, __len2 - __len22, __comp); } # 3120 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template void inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last) { typedef typename iterator_traits<_BidirectionalIterator>::value_type _ValueType; typedef typename iterator_traits<_BidirectionalIterator>::difference_type _DistanceType; ; ; if (__first == __middle || __middle == __last) return; _DistanceType __len1 = std::distance(__first, __middle); _DistanceType __len2 = std::distance(__middle, __last); _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first, __last); if (__buf.begin() == 0) std::__merge_without_buffer(__first, __middle, __last, __len1, __len2); else std::__merge_adaptive(__first, __middle, __last, __len1, __len2, __buf.begin(), _DistanceType(__buf.size())); } # 3175 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template void inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp) { typedef typename iterator_traits<_BidirectionalIterator>::value_type _ValueType; typedef typename iterator_traits<_BidirectionalIterator>::difference_type _DistanceType; ; ; if (__first == __middle || __middle == __last) return; const _DistanceType __len1 = std::distance(__first, __middle); const _DistanceType __len2 = std::distance(__middle, __last); _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first, __last); if (__buf.begin() == 0) std::__merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp); else std::__merge_adaptive(__first, __middle, __last, __len1, __len2, __buf.begin(), _DistanceType(__buf.size()), __comp); } template _OutputIterator __move_merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { while (__first1 != __last1 && __first2 != __last2) { if (*__first2 < *__first1) { *__result = (*__first2); ++__first2; } else { *__result = (*__first1); ++__first1; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)) ; } template _OutputIterator __move_merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first2, *__first1)) { *__result = (*__first2); ++__first2; } else { *__result = (*__first1); ++__first1; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)) ; } template void __merge_sort_loop(_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size) { const _Distance __two_step = 2 * __step_size; while (__last - __first >= __two_step) { __result = std::__move_merge(__first, __first + __step_size, __first + __step_size, __first + __two_step, __result); __first += __two_step; } __step_size = std::min(_Distance(__last - __first), __step_size); std::__move_merge(__first, __first + __step_size, __first + __step_size, __last, __result); } template void __merge_sort_loop(_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size, _Compare __comp) { const _Distance __two_step = 2 * __step_size; while (__last - __first >= __two_step) { __result = std::__move_merge(__first, __first + __step_size, __first + __step_size, __first + __two_step, __result, __comp); __first += __two_step; } __step_size = std::min(_Distance(__last - __first), __step_size); std::__move_merge(__first,__first + __step_size, __first + __step_size, __last, __result, __comp); } template void __chunk_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size) { while (__last - __first >= __chunk_size) { std::__insertion_sort(__first, __first + __chunk_size); __first += __chunk_size; } std::__insertion_sort(__first, __last); } template void __chunk_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size, _Compare __comp) { while (__last - __first >= __chunk_size) { std::__insertion_sort(__first, __first + __chunk_size, __comp); __first += __chunk_size; } std::__insertion_sort(__first, __last, __comp); } enum { _S_chunk_size = 7 }; template void __merge_sort_with_buffer(_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; const _Distance __len = __last - __first; const _Pointer __buffer_last = __buffer + __len; _Distance __step_size = _S_chunk_size; std::__chunk_insertion_sort(__first, __last, __step_size); while (__step_size < __len) { std::__merge_sort_loop(__first, __last, __buffer, __step_size); __step_size *= 2; std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size); __step_size *= 2; } } template void __merge_sort_with_buffer(_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; const _Distance __len = __last - __first; const _Pointer __buffer_last = __buffer + __len; _Distance __step_size = _S_chunk_size; std::__chunk_insertion_sort(__first, __last, __step_size, __comp); while (__step_size < __len) { std::__merge_sort_loop(__first, __last, __buffer, __step_size, __comp); __step_size *= 2; std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp); __step_size *= 2; } } template void __stable_sort_adaptive(_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size) { const _Distance __len = (__last - __first + 1) / 2; const _RandomAccessIterator __middle = __first + __len; if (__len > __buffer_size) { std::__stable_sort_adaptive(__first, __middle, __buffer, __buffer_size); std::__stable_sort_adaptive(__middle, __last, __buffer, __buffer_size); } else { std::__merge_sort_with_buffer(__first, __middle, __buffer); std::__merge_sort_with_buffer(__middle, __last, __buffer); } std::__merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), _Distance(__last - __middle), __buffer, __buffer_size); } template void __stable_sort_adaptive(_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size, _Compare __comp) { const _Distance __len = (__last - __first + 1) / 2; const _RandomAccessIterator __middle = __first + __len; if (__len > __buffer_size) { std::__stable_sort_adaptive(__first, __middle, __buffer, __buffer_size, __comp); std::__stable_sort_adaptive(__middle, __last, __buffer, __buffer_size, __comp); } else { std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); } std::__merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), _Distance(__last - __middle), __buffer, __buffer_size, __comp); } template void __inplace_stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { if (__last - __first < 15) { std::__insertion_sort(__first, __last); return; } _RandomAccessIterator __middle = __first + (__last - __first) / 2; std::__inplace_stable_sort(__first, __middle); std::__inplace_stable_sort(__middle, __last); std::__merge_without_buffer(__first, __middle, __last, __middle - __first, __last - __middle); } template void __inplace_stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { if (__last - __first < 15) { std::__insertion_sort(__first, __last, __comp); return; } _RandomAccessIterator __middle = __first + (__last - __first) / 2; std::__inplace_stable_sort(__first, __middle, __comp); std::__inplace_stable_sort(__middle, __last, __comp); std::__merge_without_buffer(__first, __middle, __last, __middle - __first, __last - __middle, __comp); } # 3513 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template bool includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first2 < *__first1) return false; else if(*__first1 < *__first2) ++__first1; else ++__first1, ++__first2; return __first2 == __last2; } # 3562 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template bool includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first2, *__first1)) return false; else if(__comp(*__first1, *__first2)) ++__first1; else ++__first1, ++__first2; return __first2 == __last2; } # 3617 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template bool next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) { ; if (__first == __last) return false; _BidirectionalIterator __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIterator __ii = __i; --__i; if (*__i < *__ii) { _BidirectionalIterator __j = __last; while (!(*__i < *--__j)) {} std::iter_swap(__i, __j); std::reverse(__ii, __last); return true; } if (__i == __first) { std::reverse(__first, __last); return false; } } } # 3674 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template bool next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) { ; if (__first == __last) return false; _BidirectionalIterator __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIterator __ii = __i; --__i; if (__comp(*__i, *__ii)) { _BidirectionalIterator __j = __last; while (!bool(__comp(*__i, *--__j))) {} std::iter_swap(__i, __j); std::reverse(__ii, __last); return true; } if (__i == __first) { std::reverse(__first, __last); return false; } } } # 3730 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template bool prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) { ; if (__first == __last) return false; _BidirectionalIterator __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIterator __ii = __i; --__i; if (*__ii < *__i) { _BidirectionalIterator __j = __last; while (!(*--__j < *__i)) {} std::iter_swap(__i, __j); std::reverse(__ii, __last); return true; } if (__i == __first) { std::reverse(__first, __last); return false; } } } # 3787 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template bool prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) { ; if (__first == __last) return false; _BidirectionalIterator __i = __first; ++__i; if (__i == __last) return false; __i = __last; --__i; for(;;) { _BidirectionalIterator __ii = __i; --__i; if (__comp(*__ii, *__i)) { _BidirectionalIterator __j = __last; while (!bool(__comp(*--__j, *__i))) {} std::iter_swap(__i, __j); std::reverse(__ii, __last); return true; } if (__i == __first) { std::reverse(__first, __last); return false; } } } # 3847 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator replace_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp& __old_value, const _Tp& __new_value) { ; for (; __first != __last; ++__first, ++__result) if (*__first == __old_value) *__result = __new_value; else *__result = *__first; return __result; } # 3884 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator replace_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred, const _Tp& __new_value) { ; for (; __first != __last; ++__first, ++__result) if (__pred(*__first)) *__result = __new_value; else *__result = *__first; return __result; } # 4355 "/usr/include/c++/4.6/bits/stl_algo.h" 3 # 4371 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _Function for_each(_InputIterator __first, _InputIterator __last, _Function __f) { ; for (; __first != __last; ++__first) __f(*__first); return (__f); } # 4392 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline _InputIterator find(_InputIterator __first, _InputIterator __last, const _Tp& __val) { ; return std::__find(__first, __last, __val, std::__iterator_category(__first)); } # 4416 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline _InputIterator find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) { ; return std::__find_if(__first, __last, __pred, std::__iterator_category(__first)); } # 4445 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _InputIterator find_first_of(_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2) { ; ; for (; __first1 != __last1; ++__first1) for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) if (*__first1 == *__iter) return __first1; return __last1; } # 4484 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _InputIterator find_first_of(_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2, _BinaryPredicate __comp) { ; ; for (; __first1 != __last1; ++__first1) for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) if (__comp(*__first1, *__iter)) return __first1; return __last1; } # 4516 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator adjacent_find(_ForwardIterator __first, _ForwardIterator __last) { ; if (__first == __last) return __last; _ForwardIterator __next = __first; while(++__next != __last) { if (*__first == *__next) return __first; __first = __next; } return __last; } # 4548 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator adjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred) { ; if (__first == __last) return __last; _ForwardIterator __next = __first; while(++__next != __last) { if (__binary_pred(*__first, *__next)) return __first; __first = __next; } return __last; } # 4580 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template typename iterator_traits<_InputIterator>::difference_type count(_InputIterator __first, _InputIterator __last, const _Tp& __value) { ; typename iterator_traits<_InputIterator>::difference_type __n = 0; for (; __first != __last; ++__first) if (*__first == __value) ++__n; return __n; } # 4605 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template typename iterator_traits<_InputIterator>::difference_type count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) { ; typename iterator_traits<_InputIterator>::difference_type __n = 0; for (; __first != __last; ++__first) if (__pred(*__first)) ++__n; return __n; } # 4645 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator1 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { ; ; if (__first1 == __last1 || __first2 == __last2) return __first1; _ForwardIterator2 __p1(__first2); if (++__p1 == __last2) return std::find(__first1, __last1, *__first2); _ForwardIterator2 __p; _ForwardIterator1 __current = __first1; for (;;) { __first1 = std::find(__first1, __last1, *__first2); if (__first1 == __last1) return __last1; __p = __p1; __current = __first1; if (++__current == __last1) return __last1; while (*__current == *__p) { if (++__p == __last2) return __first1; if (++__current == __last1) return __last1; } ++__first1; } return __first1; } # 4716 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator1 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate) { ; ; if (__first1 == __last1 || __first2 == __last2) return __first1; _ForwardIterator2 __p1(__first2); if (++__p1 == __last2) { while (__first1 != __last1 && !bool(__predicate(*__first1, *__first2))) ++__first1; return __first1; } _ForwardIterator2 __p; _ForwardIterator1 __current = __first1; for (;;) { while (__first1 != __last1 && !bool(__predicate(*__first1, *__first2))) ++__first1; if (__first1 == __last1) return __last1; __p = __p1; __current = __first1; if (++__current == __last1) return __last1; while (__predicate(*__current, *__p)) { if (++__p == __last2) return __first1; if (++__current == __last1) return __last1; } ++__first1; } return __first1; } # 4790 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator search_n(_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp& __val) { ; if (__count <= 0) return __first; if (__count == 1) return std::find(__first, __last, __val); return std::__search_n(__first, __last, __count, __val, std::__iterator_category(__first)); } # 4826 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator search_n(_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp& __val, _BinaryPredicate __binary_pred) { ; if (__count <= 0) return __first; if (__count == 1) { while (__first != __last && !bool(__binary_pred(*__first, __val))) ++__first; return __first; } return std::__search_n(__first, __last, __count, __val, __binary_pred, std::__iterator_category(__first)); } # 4868 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __unary_op) { ; for (; __first != __last; ++__first, ++__result) *__result = __unary_op(*__first); return __result; } # 4904 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator transform(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _OutputIterator __result, _BinaryOperation __binary_op) { ; for (; __first1 != __last1; ++__first1, ++__first2, ++__result) *__result = __binary_op(*__first1, *__first2); return __result; } # 4937 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template void replace(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __old_value, const _Tp& __new_value) { ; for (; __first != __last; ++__first) if (*__first == __old_value) *__first = __new_value; } # 4969 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template void replace_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp& __new_value) { ; for (; __first != __last; ++__first) if (__pred(*__first)) *__first = __new_value; } # 5001 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template void generate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen) { ; for (; __first != __last; ++__first) *__first = __gen(); } # 5032 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator generate_n(_OutputIterator __first, _Size __n, _Generator __gen) { for (__decltype(__n + 0) __niter = __n; __niter > 0; --__niter, ++__first) *__first = __gen(); return __first; } # 5069 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline _OutputIterator unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { ; if (__first == __last) return __result; return std::__unique_copy(__first, __last, __result, std::__iterator_category(__first), std::__iterator_category(__result)); } # 5108 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline _OutputIterator unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred) { ; if (__first == __last) return __result; return std::__unique_copy(__first, __last, __result, __binary_pred, std::__iterator_category(__first), std::__iterator_category(__result)); } # 5140 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) { ; if (__first != __last) for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1))); } # 5168 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template void random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomNumberGenerator& __rand) { ; if (__first == __last) return; for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) std::iter_swap(__i, __first + __rand((__i - __first) + 1)); } # 5204 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline _ForwardIterator partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { ; return std::__partition(__first, __last, __pred, std::__iterator_category(__first)); } # 5238 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; std::__heap_select(__first, __middle, __last); std::sort_heap(__first, __middle); } # 5277 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; std::__heap_select(__first, __middle, __last, __comp); std::sort_heap(__first, __middle, __comp); } # 5315 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; if (__first == __last || __nth == __last) return; std::__introselect(__first, __nth, __last, std::__lg(__last - __first) * 2); } # 5354 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; ; if (__first == __last || __nth == __last) return; std::__introselect(__first, __nth, __last, std::__lg(__last - __first) * 2, __comp); } # 5392 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; if (__first != __last) { std::__introsort_loop(__first, __last, std::__lg(__last - __first) * 2); std::__final_insertion_sort(__first, __last); } } # 5428 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; ; if (__first != __last) { std::__introsort_loop(__first, __last, std::__lg(__last - __first) * 2, __comp); std::__final_insertion_sort(__first, __last, __comp); } } # 5469 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) { if (*__first2 < *__first1) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5532 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5592 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first, __last); if (__buf.begin() == 0) std::__inplace_stable_sort(__first, __last); else std::__stable_sort_adaptive(__first, __last, __buf.begin(), _DistanceType(__buf.size())); } # 5634 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template inline void stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType; ; _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first, __last); if (__buf.begin() == 0) std::__inplace_stable_sort(__first, __last, __comp); else std::__stable_sort_adaptive(__first, __last, __buf.begin(), _DistanceType(__buf.size()), __comp); } # 5680 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator set_union(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) { if (*__first1 < *__first2) { *__result = *__first1; ++__first1; } else if (*__first2 < *__first1) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; ++__first2; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5747 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator set_union(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; } else if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; ++__first2; } ++__result; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 5814 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) ++__first1; else if (*__first2 < *__first1) ++__first2; else { *__result = *__first1; ++__first1; ++__first2; ++__result; } return __result; } # 5871 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) ++__first1; else if (__comp(*__first2, *__first1)) ++__first2; else { *__result = *__first1; ++__first1; ++__first2; ++__result; } return __result; } # 5929 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator set_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) { *__result = *__first1; ++__first1; ++__result; } else if (*__first2 < *__first1) ++__first2; else { ++__first1; ++__first2; } return std::copy(__first1, __last1, __result); } # 5990 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator set_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; ++__result; } else if (__comp(*__first2, *__first1)) ++__first2; else { ++__first1; ++__first2; } return std::copy(__first1, __last1, __result); } # 6048 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (*__first1 < *__first2) { *__result = *__first1; ++__first1; ++__result; } else if (*__first2 < *__first1) { *__result = *__first2; ++__first2; ++__result; } else { ++__first1; ++__first2; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 6114 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _OutputIterator set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type _ValueType1; typedef typename iterator_traits<_InputIterator2>::value_type _ValueType2; ; ; while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; ++__result; } else if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; ++__result; } else { ++__first1; ++__first2; } return std::copy(__first2, __last2, std::copy(__first1, __last1, __result)); } # 6171 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator min_element(_ForwardIterator __first, _ForwardIterator __last) { ; if (__first == __last) return __first; _ForwardIterator __result = __first; while (++__first != __last) if (*__first < *__result) __result = __first; return __result; } # 6199 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { ; if (__first == __last) return __first; _ForwardIterator __result = __first; while (++__first != __last) if (__comp(*__first, *__result)) __result = __first; return __result; } # 6227 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator max_element(_ForwardIterator __first, _ForwardIterator __last) { ; if (__first == __last) return __first; _ForwardIterator __result = __first; while (++__first != __last) if (*__result < *__first) __result = __first; return __result; } # 6255 "/usr/include/c++/4.6/bits/stl_algo.h" 3 template _ForwardIterator max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { ; if (__first == __last) return __first; _ForwardIterator __result = __first; while (++__first != __last) if (__comp(*__result, *__first)) __result = __first; return __result; } } # 64 "/usr/include/c++/4.6/algorithm" 2 3 # 24 "../flower/include/real.hh" 2 # 1 "/usr/include/c++/4.6/climits" 1 3 # 41 "/usr/include/c++/4.6/climits" 3 # 42 "/usr/include/c++/4.6/climits" 3 # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h" 1 3 4 # 44 "/usr/include/c++/4.6/climits" 2 3 # 25 "../flower/include/real.hh" 2 # 1 "/usr/include/c++/4.6/cmath" 1 3 # 41 "/usr/include/c++/4.6/cmath" 3 # 42 "/usr/include/c++/4.6/cmath" 3 # 77 "/usr/include/c++/4.6/cmath" 3 namespace std __attribute__ ((__visibility__ ("default"))) { inline double abs(double __x) { return __builtin_fabs(__x); } inline float abs(float __x) { return __builtin_fabsf(__x); } inline long double abs(long double __x) { return __builtin_fabsl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type abs(_Tp __x) { return __builtin_fabs(__x); } using ::acos; inline float acos(float __x) { return __builtin_acosf(__x); } inline long double acos(long double __x) { return __builtin_acosl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type acos(_Tp __x) { return __builtin_acos(__x); } using ::asin; inline float asin(float __x) { return __builtin_asinf(__x); } inline long double asin(long double __x) { return __builtin_asinl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type asin(_Tp __x) { return __builtin_asin(__x); } using ::atan; inline float atan(float __x) { return __builtin_atanf(__x); } inline long double atan(long double __x) { return __builtin_atanl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type atan(_Tp __x) { return __builtin_atan(__x); } using ::atan2; inline float atan2(float __y, float __x) { return __builtin_atan2f(__y, __x); } inline long double atan2(long double __y, long double __x) { return __builtin_atan2l(__y, __x); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type atan2(_Tp __y, _Up __x) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return atan2(__type(__y), __type(__x)); } using ::ceil; inline float ceil(float __x) { return __builtin_ceilf(__x); } inline long double ceil(long double __x) { return __builtin_ceill(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type ceil(_Tp __x) { return __builtin_ceil(__x); } using ::cos; inline float cos(float __x) { return __builtin_cosf(__x); } inline long double cos(long double __x) { return __builtin_cosl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type cos(_Tp __x) { return __builtin_cos(__x); } using ::cosh; inline float cosh(float __x) { return __builtin_coshf(__x); } inline long double cosh(long double __x) { return __builtin_coshl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type cosh(_Tp __x) { return __builtin_cosh(__x); } using ::exp; inline float exp(float __x) { return __builtin_expf(__x); } inline long double exp(long double __x) { return __builtin_expl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type exp(_Tp __x) { return __builtin_exp(__x); } using ::fabs; inline float fabs(float __x) { return __builtin_fabsf(__x); } inline long double fabs(long double __x) { return __builtin_fabsl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type fabs(_Tp __x) { return __builtin_fabs(__x); } using ::floor; inline float floor(float __x) { return __builtin_floorf(__x); } inline long double floor(long double __x) { return __builtin_floorl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type floor(_Tp __x) { return __builtin_floor(__x); } using ::fmod; inline float fmod(float __x, float __y) { return __builtin_fmodf(__x, __y); } inline long double fmod(long double __x, long double __y) { return __builtin_fmodl(__x, __y); } using ::frexp; inline float frexp(float __x, int* __exp) { return __builtin_frexpf(__x, __exp); } inline long double frexp(long double __x, int* __exp) { return __builtin_frexpl(__x, __exp); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type frexp(_Tp __x, int* __exp) { return __builtin_frexp(__x, __exp); } using ::ldexp; inline float ldexp(float __x, int __exp) { return __builtin_ldexpf(__x, __exp); } inline long double ldexp(long double __x, int __exp) { return __builtin_ldexpl(__x, __exp); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type ldexp(_Tp __x, int __exp) { return __builtin_ldexp(__x, __exp); } using ::log; inline float log(float __x) { return __builtin_logf(__x); } inline long double log(long double __x) { return __builtin_logl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type log(_Tp __x) { return __builtin_log(__x); } using ::log10; inline float log10(float __x) { return __builtin_log10f(__x); } inline long double log10(long double __x) { return __builtin_log10l(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type log10(_Tp __x) { return __builtin_log10(__x); } using ::modf; inline float modf(float __x, float* __iptr) { return __builtin_modff(__x, __iptr); } inline long double modf(long double __x, long double* __iptr) { return __builtin_modfl(__x, __iptr); } using ::pow; inline float pow(float __x, float __y) { return __builtin_powf(__x, __y); } inline long double pow(long double __x, long double __y) { return __builtin_powl(__x, __y); } inline double pow(double __x, int __i) { return __builtin_powi(__x, __i); } inline float pow(float __x, int __n) { return __builtin_powif(__x, __n); } inline long double pow(long double __x, int __n) { return __builtin_powil(__x, __n); } template inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type pow(_Tp __x, _Up __y) { typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; return pow(__type(__x), __type(__y)); } using ::sin; inline float sin(float __x) { return __builtin_sinf(__x); } inline long double sin(long double __x) { return __builtin_sinl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type sin(_Tp __x) { return __builtin_sin(__x); } using ::sinh; inline float sinh(float __x) { return __builtin_sinhf(__x); } inline long double sinh(long double __x) { return __builtin_sinhl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type sinh(_Tp __x) { return __builtin_sinh(__x); } using ::sqrt; inline float sqrt(float __x) { return __builtin_sqrtf(__x); } inline long double sqrt(long double __x) { return __builtin_sqrtl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type sqrt(_Tp __x) { return __builtin_sqrt(__x); } using ::tan; inline float tan(float __x) { return __builtin_tanf(__x); } inline long double tan(long double __x) { return __builtin_tanl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type tan(_Tp __x) { return __builtin_tan(__x); } using ::tanh; inline float tanh(float __x) { return __builtin_tanhf(__x); } inline long double tanh(long double __x) { return __builtin_tanhl(__x); } template inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, double>::__type tanh(_Tp __x) { return __builtin_tanh(__x); } } # 481 "/usr/include/c++/4.6/cmath" 3 namespace std __attribute__ ((__visibility__ ("default"))) { # 731 "/usr/include/c++/4.6/cmath" 3 template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type fpclassify(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, __type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isfinite(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isfinite(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isinf(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isinf(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isnan(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isnan(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isnormal(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isnormal(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type signbit(_Tp __f) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_signbit(__type(__f)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isgreater(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isgreater(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isgreaterequal(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isgreaterequal(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isless(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isless(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type islessequal(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_islessequal(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type islessgreater(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_islessgreater(__type(__f1), __type(__f2)); } template inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value, int>::__type isunordered(_Tp __f1, _Tp __f2) { typedef typename __gnu_cxx::__promote<_Tp>::__type __type; return __builtin_isunordered(__type(__f1), __type(__f2)); } } # 26 "../flower/include/real.hh" 2 using namespace std; typedef double Real; extern const Real infinity_f; template inline T abs (T x) { return x > 0 ? x : -x; } inline Real distance (Real x, Real y) { return abs (x - y); } template inline int sign (T x) { if (x) return x > T (0) ? 1 : -1; return 0; } template inline T sqr (T x) { return x * x; } # 32 "../flower/include/flower-proto.hh" 2 using namespace std; template struct Interval_t; template struct PQueue; template class Matrix; typedef Interval_t Interval; class Offset; struct Long_option_init; class Rational; class File_name; class File_path; class Getopt_long; typedef unsigned char U8; typedef short I16; typedef unsigned short U16; typedef unsigned U32; typedef int I32; typedef unsigned long long U64; const U64 U64_MAX = (~0ULL); struct File_storage; struct Mapped_file_storage; struct Simple_file_storage; # 26 "../flower/include/interval.hh" 2 # 1 "../flower/include/drul-array.hh" 1 # 23 "../flower/include/drul-array.hh" # 1 "../flower/include/direction.hh" 1 # 23 "../flower/include/direction.hh" # 1 "../flower/include/axis.hh" 1 # 23 "../flower/include/axis.hh" # 1 "/usr/include/c++/4.6/cassert" 1 3 # 43 "/usr/include/c++/4.6/cassert" 3 # 44 "/usr/include/c++/4.6/cassert" 3 # 1 "/usr/include/assert.h" 1 3 4 # 68 "/usr/include/assert.h" 3 4 extern "C" { extern void __assert_fail (__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert_perror_fail (int __errnum, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert (const char *__assertion, const char *__file, int __line) throw () __attribute__ ((__noreturn__)); } # 45 "/usr/include/c++/4.6/cassert" 2 3 # 24 "../flower/include/axis.hh" 2 enum Axis { X_AXIS = 0, Y_AXIS = 1, NO_AXES = 2, }; static inline Axis incr (Axis &a) { ((a < NO_AXES) ? static_cast (0) : __assert_fail ("a < NO_AXES", "../flower/include/axis.hh", 36, __PRETTY_FUNCTION__)); a = Axis (int (a) + 1); return a; } static inline Axis other_axis (Axis a) { return a == Y_AXIS ? X_AXIS : Y_AXIS; } # 24 "../flower/include/direction.hh" 2 enum Direction { UP = 1, DOWN = -1, LEFT = -1, RIGHT = 1, MIN = -1, MAX = 1, CENTER = 0, SMALLER = -1, BIGGER = 1, START = -1, STOP = 1, # 47 "../flower/include/direction.hh" DIRECTION_LIMIT = 2, DIRECTION_NEG_LIMIT = -2, }; inline Direction other_dir (Direction const d) { return (Direction) (-d); } inline Direction operator - (Direction const d) { return other_dir (d); } inline Direction flip (Direction *i) { if (*i == (Direction)1) *i = (Direction) - 1; else if (*i == (Direction) - 1) *i = (Direction)1; return *i; } template T minmax (Direction d, T a, T b) { if (d == UP) return max (a, b); else return min (a, b); } # 24 "../flower/include/drul-array.hh" 2 template struct Drul_array { T array_[2]; T &at (Direction d) { ((d == 1 || d == -1) ? static_cast (0) : __assert_fail ("d == 1 || d == -1", "../flower/include/drul-array.hh", 35, __PRETTY_FUNCTION__)); return array_[ (d + 1) / 2]; } T const &at (Direction d) const { ((d == 1 || d == -1) ? static_cast (0) : __assert_fail ("d == 1 || d == -1", "../flower/include/drul-array.hh", 40, __PRETTY_FUNCTION__)); return array_[ (d + 1) / 2]; } T &operator [] (Direction d) { return at (d); } T const &operator [] (Direction d) const { return at (d); } Drul_array () { } Drul_array (T const &t1, T const &t2) { set (t1, t2); } void set (T const &t1, T const &t2) { array_[0] = t1; array_[1] = t2; } }; template void scale_drul (Drul_array *dr, T x) { dr->at (LEFT) *= x; dr->at (RIGHT) *= x; } inline Real linear_combination (Drul_array const &d, Real x) { return ((1.0 - x) * Real (d.at (LEFT)) + (x + 1.0) * Real (d.at (RIGHT))) * 0.5; } # 27 "../flower/include/interval.hh" 2 template struct Interval_t : public Drul_array { using Drul_array::at; static T infinity (); static string T_to_string (T arg); T center () const; void translate (T t) { at (LEFT) += t; at (RIGHT) += t; } void widen (T t) { at (LEFT) -= t; at (RIGHT) += t; } T distance (T t) const { if (t > at (RIGHT)) return T (t - at (RIGHT)); else if (t < at (LEFT)) return T (at (LEFT) - t); else return T (0); } void unite (Interval_t h); void intersect (Interval_t h); void add_point (T p) { at (LEFT) = min (at (LEFT), p); at (RIGHT) = max (at (RIGHT), p); } T length () const; T delta () const; void set_empty (); void set_full (); void unite_disjoint (Interval_t h, T padding, Direction d); Interval_t union_disjoint (Interval_t h, T padding, Direction d) const; bool is_empty () const { return at (LEFT) > at (RIGHT); } bool superset (Interval_t const &) const; Interval_t () { set_empty (); } Interval_t (Drul_array const &src) : Drul_array (src) { } Interval_t (T m, T M) : Drul_array (m, M) { } Interval_t &operator -= (T r) { *this += -r; return *this; } Interval_t &operator += (T r) { at (LEFT) += r; at (RIGHT) += r; return *this; } Interval_t &operator *= (T r) { if (!is_empty ()) { at (LEFT) *= r; at (RIGHT) *= r; if (r < T (0)) swap (); } return *this; } Real linear_combination (Real x) const; string to_string () const; bool contains (T r) const; void negate () { T r = -at (LEFT); T l = -at (RIGHT); at (LEFT) = l; at (RIGHT) = r; } void swap () { T t = at (LEFT); at (LEFT) = at (RIGHT); at (RIGHT) = t; } static bool left_less (Interval_t const &a, Interval_t const &b) { return a[LEFT] < b[LEFT]; } }; template int Interval__compare (const Interval_t &, Interval_t const &); template int _Interval__compare (const Interval_t &a, Interval_t const &b); template inline bool operator > (Interval_t & t1, Interval_t & t2) { return Interval__compare (t1, t2) > 0; } template inline bool operator >= (Interval_t & t1, Interval_t & t2) { return Interval__compare (t1, t2) >= 0; } template inline bool operator == (Interval_t & t1, Interval_t & t2) { return Interval__compare (t1, t2) == 0; } template inline bool operator != (Interval_t & t1, Interval_t & t2) { return Interval__compare (t1, t2) != 0; } template inline bool operator < (Interval_t & t1, Interval_t & t2) { return Interval__compare (t1, t2) < 0; } template inline bool operator <= (Interval_t & t1, Interval_t & t2) { return Interval__compare (t1, t2) <= 0; } template inline Interval_t & max (Interval_t & t1, Interval_t & t2) { return (t1 > t2) ? t1 : t2; } template inline Interval_t & min (Interval_t & t1, Interval_t & t2) { return (t1 < t2) ? t1 : t2; } template bool operator < (Interval_t & t1, Interval_t & t2); template inline Interval_t intersection (Interval_t a, Interval_t const &b) { a.intersect (b); return a; } template inline Interval_t operator + (T a, Interval_t i) { i += a; return i; } template inline Interval_t operator - (Interval_t i, T a) { i += -a; return i; } template inline Interval_t operator - (T a, Interval_t i) { i.negate (); i += a; return i; } template inline Interval_t operator + (Interval_t i, T a) { return a + i; } template inline Interval_t operator * (T a, Interval_t i) { i *= a; return i; } template inline Interval_t operator * (Interval_t i, T a) { return a * i; } template inline T Interval_t::center () const { ((!is_empty ()) ? static_cast (0) : __assert_fail ("!is_empty ()", "../flower/include/interval.hh", 226, __PRETTY_FUNCTION__)); return (at (LEFT) + at (RIGHT)) / T (2); } typedef Interval_t Interval; typedef Interval_t Slice; # 39 "./include/lily-guile.hh" 2 # 1 "./include/lily-guile-macros.hh" 1 # 23 "./include/lily-guile-macros.hh" # 1 "./out/config.hh" 1 # 24 "./include/lily-guile-macros.hh" 2 # 39 "./include/lily-guile-macros.hh" typedef SCM (*scm_t_subr) (); # 50 "./include/lily-guile-macros.hh" inline SCM scm_or_str2symbol (char const *c) { return scm_from_locale_symbol (c); } inline SCM scm_or_str2symbol (SCM s) { (((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s))) && ((0x7f & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))])))))) == 5))) ? static_cast (0) : __assert_fail ("(!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s))) && ((0x7f & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))])))))) == 5))", "./include/lily-guile-macros.hh", 56, __PRETTY_FUNCTION__)); return s; } # 130 "./include/lily-guile-macros.hh" string mangle_cxx_identifier (string); void ly_add_type_predicate (void *ptr, string name); string predicate_to_typename (void *ptr); # 162 "./include/lily-guile-macros.hh" void ly_add_function_documentation (SCM proc, string fname, string varlist, string doc); void ly_check_name (string cxx, string fname); # 40 "./include/lily-guile.hh" 2 # 1 "./include/ly-module.hh" 1 # 22 "./include/ly-module.hh" # 1 "./out/config.hh" 1 # 23 "./include/ly-module.hh" 2 # 1 "./include/lily-guile.hh" 1 # 24 "./include/ly-module.hh" 2 SCM ly_make_module (bool safe); SCM ly_module_copy (SCM dest, SCM src); SCM ly_module_2_alist (SCM mod); SCM ly_module_lookup (SCM module, SCM sym); SCM ly_modules_lookup (SCM modules, SCM sym, SCM); SCM ly_module_symbols (SCM mod); void ly_reexport_module (SCM mod); inline bool ly_is_module (SCM x) { return (!(6 & ((scm_t_bits) (0? (*(SCM*)0=(x)): x))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))]))))) == scm_module_tag); } SCM ly_use_module (SCM mod, SCM used); typedef SCM (*scm_t_hash_fold_fn) (); typedef SCM (*scm_t_hash_handle_fn) (); # 41 "./include/lily-guile.hh" 2 # 1 "../flower/include/std-vector.hh" 1 # 34 "../flower/include/std-vector.hh" # 1 "/usr/include/c++/4.6/functional" 1 3 # 47 "/usr/include/c++/4.6/functional" 3 # 48 "/usr/include/c++/4.6/functional" 3 # 35 "../flower/include/std-vector.hh" 2 # 1 "/usr/include/c++/4.6/cassert" 1 3 # 43 "/usr/include/c++/4.6/cassert" 3 # 44 "/usr/include/c++/4.6/cassert" 3 # 1 "/usr/include/assert.h" 1 3 4 # 45 "/usr/include/c++/4.6/cassert" 2 3 # 36 "../flower/include/std-vector.hh" 2 using namespace std; template int default_compare (T const &a, T const &b) { if (a < b) return -1; else if (b < a) return 1; else return 0; } template int default_compare (T *const &a, T *const &b) { if (a < b) return -1; else if (a > b) return 1; else return 0; } typedef size_t vsize; # 1 "/usr/include/c++/4.6/vector" 1 3 # 59 "/usr/include/c++/4.6/vector" 3 # 60 "/usr/include/c++/4.6/vector" 3 # 1 "/usr/include/c++/4.6/bits/stl_uninitialized.h" 1 3 # 61 "/usr/include/c++/4.6/bits/stl_uninitialized.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct __uninitialized_copy { template static _ForwardIterator __uninit_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result) { _ForwardIterator __cur = __result; try { for (; __first != __last; ++__first, ++__cur) std::_Construct(std::__addressof(*__cur), *__first); return __cur; } catch(...) { std::_Destroy(__result, __cur); throw; } } }; template<> struct __uninitialized_copy { template static _ForwardIterator __uninit_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result) { return std::copy(__first, __last, __result); } }; # 107 "/usr/include/c++/4.6/bits/stl_uninitialized.h" 3 template inline _ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result) { typedef typename iterator_traits<_InputIterator>::value_type _ValueType1; typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType2; return std::__uninitialized_copy<(__is_trivial(_ValueType1) && __is_trivial(_ValueType2))>:: __uninit_copy(__first, __last, __result); } template struct __uninitialized_fill { template static void __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x) { _ForwardIterator __cur = __first; try { for (; __cur != __last; ++__cur) std::_Construct(std::__addressof(*__cur), __x); } catch(...) { std::_Destroy(__first, __cur); throw; } } }; template<> struct __uninitialized_fill { template static void __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x) { std::fill(__first, __last, __x); } }; # 164 "/usr/include/c++/4.6/bits/stl_uninitialized.h" 3 template inline void uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; std::__uninitialized_fill<__is_trivial(_ValueType)>:: __uninit_fill(__first, __last, __x); } template struct __uninitialized_fill_n { template static void __uninit_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) { _ForwardIterator __cur = __first; try { for (; __n > 0; --__n, ++__cur) std::_Construct(std::__addressof(*__cur), __x); } catch(...) { std::_Destroy(__first, __cur); throw; } } }; template<> struct __uninitialized_fill_n { template static void __uninit_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) { std::fill_n(__first, __n, __x); } }; # 218 "/usr/include/c++/4.6/bits/stl_uninitialized.h" 3 template inline void uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) { typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; std::__uninitialized_fill_n<__is_trivial(_ValueType)>:: __uninit_fill_n(__first, __n, __x); } template _ForwardIterator __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _Allocator& __alloc) { _ForwardIterator __cur = __result; try { for (; __first != __last; ++__first, ++__cur) __alloc.construct(std::__addressof(*__cur), *__first); return __cur; } catch(...) { std::_Destroy(__result, __cur, __alloc); throw; } } template inline _ForwardIterator __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, allocator<_Tp>&) { return std::uninitialized_copy(__first, __last, __result); } template inline _ForwardIterator __uninitialized_move_a(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _Allocator& __alloc) { return std::__uninitialized_copy_a((__first), (__last), __result, __alloc); } template void __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x, _Allocator& __alloc) { _ForwardIterator __cur = __first; try { for (; __cur != __last; ++__cur) __alloc.construct(std::__addressof(*__cur), __x); } catch(...) { std::_Destroy(__first, __cur, __alloc); throw; } } template inline void __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x, allocator<_Tp2>&) { std::uninitialized_fill(__first, __last, __x); } template void __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, const _Tp& __x, _Allocator& __alloc) { _ForwardIterator __cur = __first; try { for (; __n > 0; --__n, ++__cur) __alloc.construct(std::__addressof(*__cur), __x); } catch(...) { std::_Destroy(__first, __cur, __alloc); throw; } } template inline void __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, const _Tp& __x, allocator<_Tp2>&) { std::uninitialized_fill_n(__first, __n, __x); } # 332 "/usr/include/c++/4.6/bits/stl_uninitialized.h" 3 template inline _ForwardIterator __uninitialized_copy_move(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _ForwardIterator __result, _Allocator& __alloc) { _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, __result, __alloc); try { return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); } catch(...) { std::_Destroy(__result, __mid, __alloc); throw; } } template inline _ForwardIterator __uninitialized_move_copy(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _ForwardIterator __result, _Allocator& __alloc) { _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, __result, __alloc); try { return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); } catch(...) { std::_Destroy(__result, __mid, __alloc); throw; } } template inline _ForwardIterator __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, const _Tp& __x, _InputIterator __first, _InputIterator __last, _Allocator& __alloc) { std::__uninitialized_fill_a(__result, __mid, __x, __alloc); try { return std::__uninitialized_move_a(__first, __last, __mid, __alloc); } catch(...) { std::_Destroy(__result, __mid, __alloc); throw; } } template inline void __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2, const _Tp& __x, _Allocator& __alloc) { _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, __first2, __alloc); try { std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); } catch(...) { std::_Destroy(__first2, __mid2, __alloc); throw; } } # 652 "/usr/include/c++/4.6/bits/stl_uninitialized.h" 3 } # 65 "/usr/include/c++/4.6/vector" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_vector.h" 1 3 # 65 "/usr/include/c++/4.6/bits/stl_vector.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template struct _Vector_base { typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; struct _Vector_impl : public _Tp_alloc_type { typename _Tp_alloc_type::pointer _M_start; typename _Tp_alloc_type::pointer _M_finish; typename _Tp_alloc_type::pointer _M_end_of_storage; _Vector_impl() : _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0) { } _Vector_impl(_Tp_alloc_type const& __a) : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) { } }; public: typedef _Alloc allocator_type; _Tp_alloc_type& _M_get_Tp_allocator() { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } const _Tp_alloc_type& _M_get_Tp_allocator() const { return *static_cast(&this->_M_impl); } allocator_type get_allocator() const { return allocator_type(_M_get_Tp_allocator()); } _Vector_base() : _M_impl() { } _Vector_base(const allocator_type& __a) : _M_impl(__a) { } _Vector_base(size_t __n) : _M_impl() { this->_M_impl._M_start = this->_M_allocate(__n); this->_M_impl._M_finish = this->_M_impl._M_start; this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; } _Vector_base(size_t __n, const allocator_type& __a) : _M_impl(__a) { this->_M_impl._M_start = this->_M_allocate(__n); this->_M_impl._M_finish = this->_M_impl._M_start; this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; } # 141 "/usr/include/c++/4.6/bits/stl_vector.h" 3 ~_Vector_base() { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); } public: _Vector_impl _M_impl; typename _Tp_alloc_type::pointer _M_allocate(size_t __n) { return __n != 0 ? _M_impl.allocate(__n) : 0; } void _M_deallocate(typename _Tp_alloc_type::pointer __p, size_t __n) { if (__p) _M_impl.deallocate(__p, __n); } }; # 179 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template > class vector : protected _Vector_base<_Tp, _Alloc> { typedef typename _Alloc::value_type _Alloc_value_type; typedef _Vector_base<_Tp, _Alloc> _Base; typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; public: typedef _Tp value_type; typedef typename _Tp_alloc_type::pointer pointer; typedef typename _Tp_alloc_type::const_pointer const_pointer; typedef typename _Tp_alloc_type::reference reference; typedef typename _Tp_alloc_type::const_reference const_reference; typedef __gnu_cxx::__normal_iterator iterator; typedef __gnu_cxx::__normal_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_iterator reverse_iterator; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Alloc allocator_type; protected: using _Base::_M_allocate; using _Base::_M_deallocate; using _Base::_M_impl; using _Base::_M_get_Tp_allocator; public: vector() : _Base() { } explicit vector(const allocator_type& __a) : _Base(__a) { } # 262 "/usr/include/c++/4.6/bits/stl_vector.h" 3 explicit vector(size_type __n, const value_type& __value = value_type(), const allocator_type& __a = allocator_type()) : _Base(__n, __a) { _M_fill_initialize(__n, __value); } # 278 "/usr/include/c++/4.6/bits/stl_vector.h" 3 vector(const vector& __x) : _Base(__x.size(), __x._M_get_Tp_allocator()) { this->_M_impl._M_finish = std::__uninitialized_copy_a(__x.begin(), __x.end(), this->_M_impl._M_start, _M_get_Tp_allocator()); } # 333 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a = allocator_type()) : _Base(__a) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_initialize_dispatch(__first, __last, _Integral()); } ~vector() { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); } # 361 "/usr/include/c++/4.6/bits/stl_vector.h" 3 vector& operator=(const vector& __x); # 411 "/usr/include/c++/4.6/bits/stl_vector.h" 3 void assign(size_type __n, const value_type& __val) { _M_fill_assign(__n, __val); } # 427 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template void assign(_InputIterator __first, _InputIterator __last) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_assign_dispatch(__first, __last, _Integral()); } # 454 "/usr/include/c++/4.6/bits/stl_vector.h" 3 using _Base::get_allocator; iterator begin() { return iterator(this->_M_impl._M_start); } const_iterator begin() const { return const_iterator(this->_M_impl._M_start); } iterator end() { return iterator(this->_M_impl._M_finish); } const_iterator end() const { return const_iterator(this->_M_impl._M_finish); } reverse_iterator rbegin() { return reverse_iterator(end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } reverse_iterator rend() { return reverse_iterator(begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } # 569 "/usr/include/c++/4.6/bits/stl_vector.h" 3 size_type size() const { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } size_type max_size() const { return _M_get_Tp_allocator().max_size(); } # 628 "/usr/include/c++/4.6/bits/stl_vector.h" 3 void resize(size_type __new_size, value_type __x = value_type()) { if (__new_size > size()) insert(end(), __new_size - size(), __x); else if (__new_size < size()) _M_erase_at_end(this->_M_impl._M_start + __new_size); } # 649 "/usr/include/c++/4.6/bits/stl_vector.h" 3 size_type capacity() const { return size_type(this->_M_impl._M_end_of_storage - this->_M_impl._M_start); } bool empty() const { return begin() == end(); } # 679 "/usr/include/c++/4.6/bits/stl_vector.h" 3 void reserve(size_type __n); # 694 "/usr/include/c++/4.6/bits/stl_vector.h" 3 reference operator[](size_type __n) { return *(this->_M_impl._M_start + __n); } # 709 "/usr/include/c++/4.6/bits/stl_vector.h" 3 const_reference operator[](size_type __n) const { return *(this->_M_impl._M_start + __n); } protected: void _M_range_check(size_type __n) const { if (__n >= this->size()) __throw_out_of_range(("vector::_M_range_check")); } public: # 734 "/usr/include/c++/4.6/bits/stl_vector.h" 3 reference at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } # 752 "/usr/include/c++/4.6/bits/stl_vector.h" 3 const_reference at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; } reference front() { return *begin(); } const_reference front() const { return *begin(); } reference back() { return *(end() - 1); } const_reference back() const { return *(end() - 1); } # 801 "/usr/include/c++/4.6/bits/stl_vector.h" 3 pointer data() { return std::__addressof(front()); } const_pointer data() const { return std::__addressof(front()); } # 825 "/usr/include/c++/4.6/bits/stl_vector.h" 3 void push_back(const value_type& __x) { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) { this->_M_impl.construct(this->_M_impl._M_finish, __x); ++this->_M_impl._M_finish; } else _M_insert_aux(end(), __x); } # 856 "/usr/include/c++/4.6/bits/stl_vector.h" 3 void pop_back() { --this->_M_impl._M_finish; this->_M_impl.destroy(this->_M_impl._M_finish); } # 892 "/usr/include/c++/4.6/bits/stl_vector.h" 3 iterator insert(iterator __position, const value_type& __x); # 942 "/usr/include/c++/4.6/bits/stl_vector.h" 3 void insert(iterator __position, size_type __n, const value_type& __x) { _M_fill_insert(__position, __n, __x); } # 960 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template void insert(iterator __position, _InputIterator __first, _InputIterator __last) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_insert_dispatch(__position, __first, __last, _Integral()); } # 985 "/usr/include/c++/4.6/bits/stl_vector.h" 3 iterator erase(iterator __position); # 1006 "/usr/include/c++/4.6/bits/stl_vector.h" 3 iterator erase(iterator __first, iterator __last); # 1018 "/usr/include/c++/4.6/bits/stl_vector.h" 3 void swap(vector& __x) { std::swap(this->_M_impl._M_start, __x._M_impl._M_start); std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); std::swap(this->_M_impl._M_end_of_storage, __x._M_impl._M_end_of_storage); std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); } void clear() { _M_erase_at_end(this->_M_impl._M_start); } protected: template pointer _M_allocate_and_copy(size_type __n, _ForwardIterator __first, _ForwardIterator __last) { pointer __result = this->_M_allocate(__n); try { std::__uninitialized_copy_a(__first, __last, __result, _M_get_Tp_allocator()); return __result; } catch(...) { _M_deallocate(__result, __n); throw; } } # 1073 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template void _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) { this->_M_impl._M_start = _M_allocate(static_cast(__n)); this->_M_impl._M_end_of_storage = this->_M_impl._M_start + static_cast(__n); _M_fill_initialize(static_cast(__n), __value); } template void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { typedef typename std::iterator_traits<_InputIterator>:: iterator_category _IterCategory; _M_range_initialize(__first, __last, _IterCategory()); } template void _M_range_initialize(_InputIterator __first, _InputIterator __last, std::input_iterator_tag) { for (; __first != __last; ++__first) push_back(*__first); } template void _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { const size_type __n = std::distance(__first, __last); this->_M_impl._M_start = this->_M_allocate(__n); this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; this->_M_impl._M_finish = std::__uninitialized_copy_a(__first, __last, this->_M_impl._M_start, _M_get_Tp_allocator()); } void _M_fill_initialize(size_type __n, const value_type& __value) { std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, _M_get_Tp_allocator()); this->_M_impl._M_finish = this->_M_impl._M_end_of_storage; } # 1147 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) { _M_fill_assign(__n, __val); } template void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { typedef typename std::iterator_traits<_InputIterator>:: iterator_category _IterCategory; _M_assign_aux(__first, __last, _IterCategory()); } template void _M_assign_aux(_InputIterator __first, _InputIterator __last, std::input_iterator_tag); template void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag); void _M_fill_assign(size_type __n, const value_type& __val); # 1187 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, __true_type) { _M_fill_insert(__pos, __n, __val); } template void _M_insert_dispatch(iterator __pos, _InputIterator __first, _InputIterator __last, __false_type) { typedef typename std::iterator_traits<_InputIterator>:: iterator_category _IterCategory; _M_range_insert(__pos, __first, __last, _IterCategory()); } template void _M_range_insert(iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag); template void _M_range_insert(iterator __pos, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag); void _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); # 1229 "/usr/include/c++/4.6/bits/stl_vector.h" 3 void _M_insert_aux(iterator __position, const value_type& __x); size_type _M_check_len(size_type __n, const char* __s) const { if (max_size() - size() < __n) __throw_length_error((__s)); const size_type __len = size() + std::max(size(), __n); return (__len < size() || __len > max_size()) ? max_size() : __len; } void _M_erase_at_end(pointer __pos) { std::_Destroy(__pos, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish = __pos; } }; # 1271 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template inline bool operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return (__x.size() == __y.size() && std::equal(__x.begin(), __x.end(), __y.begin())); } # 1288 "/usr/include/c++/4.6/bits/stl_vector.h" 3 template inline bool operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return std::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); } template inline bool operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return !(__x == __y); } template inline bool operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return __y < __x; } template inline bool operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return !(__y < __x); } template inline bool operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) { return !(__x < __y); } template inline void swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) { __x.swap(__y); } } # 66 "/usr/include/c++/4.6/vector" 2 3 # 1 "/usr/include/c++/4.6/bits/stl_bvector.h" 1 3 # 62 "/usr/include/c++/4.6/bits/stl_bvector.h" 3 namespace std __attribute__ ((__visibility__ ("default"))) { typedef unsigned long _Bit_type; enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; struct _Bit_reference { _Bit_type * _M_p; _Bit_type _M_mask; _Bit_reference(_Bit_type * __x, _Bit_type __y) : _M_p(__x), _M_mask(__y) { } _Bit_reference() : _M_p(0), _M_mask(0) { } operator bool() const { return !!(*_M_p & _M_mask); } _Bit_reference& operator=(bool __x) { if (__x) *_M_p |= _M_mask; else *_M_p &= ~_M_mask; return *this; } _Bit_reference& operator=(const _Bit_reference& __x) { return *this = bool(__x); } bool operator==(const _Bit_reference& __x) const { return bool(*this) == bool(__x); } bool operator<(const _Bit_reference& __x) const { return !bool(*this) && bool(__x); } void flip() { *_M_p ^= _M_mask; } }; struct _Bit_iterator_base : public std::iterator { _Bit_type * _M_p; unsigned int _M_offset; _Bit_iterator_base(_Bit_type * __x, unsigned int __y) : _M_p(__x), _M_offset(__y) { } void _M_bump_up() { if (_M_offset++ == int(_S_word_bit) - 1) { _M_offset = 0; ++_M_p; } } void _M_bump_down() { if (_M_offset-- == 0) { _M_offset = int(_S_word_bit) - 1; --_M_p; } } void _M_incr(ptrdiff_t __i) { difference_type __n = __i + _M_offset; _M_p += __n / int(_S_word_bit); __n = __n % int(_S_word_bit); if (__n < 0) { __n += int(_S_word_bit); --_M_p; } _M_offset = static_cast(__n); } bool operator==(const _Bit_iterator_base& __i) const { return _M_p == __i._M_p && _M_offset == __i._M_offset; } bool operator<(const _Bit_iterator_base& __i) const { return _M_p < __i._M_p || (_M_p == __i._M_p && _M_offset < __i._M_offset); } bool operator!=(const _Bit_iterator_base& __i) const { return !(*this == __i); } bool operator>(const _Bit_iterator_base& __i) const { return __i < *this; } bool operator<=(const _Bit_iterator_base& __i) const { return !(__i < *this); } bool operator>=(const _Bit_iterator_base& __i) const { return !(*this < __i); } }; inline ptrdiff_t operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { return (int(_S_word_bit) * (__x._M_p - __y._M_p) + __x._M_offset - __y._M_offset); } struct _Bit_iterator : public _Bit_iterator_base { typedef _Bit_reference reference; typedef _Bit_reference* pointer; typedef _Bit_iterator iterator; _Bit_iterator() : _Bit_iterator_base(0, 0) { } _Bit_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) { } reference operator*() const { return reference(_M_p, 1UL << _M_offset); } iterator& operator++() { _M_bump_up(); return *this; } iterator operator++(int) { iterator __tmp = *this; _M_bump_up(); return __tmp; } iterator& operator--() { _M_bump_down(); return *this; } iterator operator--(int) { iterator __tmp = *this; _M_bump_down(); return __tmp; } iterator& operator+=(difference_type __i) { _M_incr(__i); return *this; } iterator& operator-=(difference_type __i) { *this += -__i; return *this; } iterator operator+(difference_type __i) const { iterator __tmp = *this; return __tmp += __i; } iterator operator-(difference_type __i) const { iterator __tmp = *this; return __tmp -= __i; } reference operator[](difference_type __i) const { return *(*this + __i); } }; inline _Bit_iterator operator+(ptrdiff_t __n, const _Bit_iterator& __x) { return __x + __n; } struct _Bit_const_iterator : public _Bit_iterator_base { typedef bool reference; typedef bool const_reference; typedef const bool* pointer; typedef _Bit_const_iterator const_iterator; _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } _Bit_const_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) { } _Bit_const_iterator(const _Bit_iterator& __x) : _Bit_iterator_base(__x._M_p, __x._M_offset) { } const_reference operator*() const { return _Bit_reference(_M_p, 1UL << _M_offset); } const_iterator& operator++() { _M_bump_up(); return *this; } const_iterator operator++(int) { const_iterator __tmp = *this; _M_bump_up(); return __tmp; } const_iterator& operator--() { _M_bump_down(); return *this; } const_iterator operator--(int) { const_iterator __tmp = *this; _M_bump_down(); return __tmp; } const_iterator& operator+=(difference_type __i) { _M_incr(__i); return *this; } const_iterator& operator-=(difference_type __i) { *this += -__i; return *this; } const_iterator operator+(difference_type __i) const { const_iterator __tmp = *this; return __tmp += __i; } const_iterator operator-(difference_type __i) const { const_iterator __tmp = *this; return __tmp -= __i; } const_reference operator[](difference_type __i) const { return *(*this + __i); } }; inline _Bit_const_iterator operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) { return __x + __n; } inline void __fill_bvector(_Bit_iterator __first, _Bit_iterator __last, bool __x) { for (; __first != __last; ++__first) *__first = __x; } inline void fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) { if (__first._M_p != __last._M_p) { std::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0); __fill_bvector(__first, _Bit_iterator(__first._M_p + 1, 0), __x); __fill_bvector(_Bit_iterator(__last._M_p, 0), __last, __x); } else __fill_bvector(__first, __last, __x); } template struct _Bvector_base { typedef typename _Alloc::template rebind<_Bit_type>::other _Bit_alloc_type; struct _Bvector_impl : public _Bit_alloc_type { _Bit_iterator _M_start; _Bit_iterator _M_finish; _Bit_type* _M_end_of_storage; _Bvector_impl() : _Bit_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage(0) { } _Bvector_impl(const _Bit_alloc_type& __a) : _Bit_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage(0) { } }; public: typedef _Alloc allocator_type; _Bit_alloc_type& _M_get_Bit_allocator() { return *static_cast<_Bit_alloc_type*>(&this->_M_impl); } const _Bit_alloc_type& _M_get_Bit_allocator() const { return *static_cast(&this->_M_impl); } allocator_type get_allocator() const { return allocator_type(_M_get_Bit_allocator()); } _Bvector_base() : _M_impl() { } _Bvector_base(const allocator_type& __a) : _M_impl(__a) { } # 431 "/usr/include/c++/4.6/bits/stl_bvector.h" 3 ~_Bvector_base() { this->_M_deallocate(); } protected: _Bvector_impl _M_impl; _Bit_type* _M_allocate(size_t __n) { return _M_impl.allocate((__n + int(_S_word_bit) - 1) / int(_S_word_bit)); } void _M_deallocate() { if (_M_impl._M_start._M_p) _M_impl.deallocate(_M_impl._M_start._M_p, _M_impl._M_end_of_storage - _M_impl._M_start._M_p); } }; } namespace std __attribute__ ((__visibility__ ("default"))) { # 478 "/usr/include/c++/4.6/bits/stl_bvector.h" 3 template class vector : protected _Bvector_base<_Alloc> { typedef _Bvector_base<_Alloc> _Base; public: typedef bool value_type; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Bit_reference reference; typedef bool const_reference; typedef _Bit_reference* pointer; typedef const bool* const_pointer; typedef _Bit_iterator iterator; typedef _Bit_const_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_iterator reverse_iterator; typedef _Alloc allocator_type; allocator_type get_allocator() const { return _Base::get_allocator(); } protected: using _Base::_M_allocate; using _Base::_M_deallocate; using _Base::_M_get_Bit_allocator; public: vector() : _Base() { } explicit vector(const allocator_type& __a) : _Base(__a) { } explicit vector(size_type __n, const bool& __value = bool(), const allocator_type& __a = allocator_type()) : _Base(__a) { _M_initialize(__n); std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __value ? ~0 : 0); } vector(const vector& __x) : _Base(__x._M_get_Bit_allocator()) { _M_initialize(__x.size()); _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); } # 547 "/usr/include/c++/4.6/bits/stl_bvector.h" 3 template vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a = allocator_type()) : _Base(__a) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_initialize_dispatch(__first, __last, _Integral()); } ~vector() { } vector& operator=(const vector& __x) { if (&__x == this) return *this; if (__x.size() > capacity()) { this->_M_deallocate(); _M_initialize(__x.size()); } this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), begin()); return *this; } # 596 "/usr/include/c++/4.6/bits/stl_bvector.h" 3 void assign(size_type __n, const bool& __x) { _M_fill_assign(__n, __x); } template void assign(_InputIterator __first, _InputIterator __last) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_assign_dispatch(__first, __last, _Integral()); } iterator begin() { return this->_M_impl._M_start; } const_iterator begin() const { return this->_M_impl._M_start; } iterator end() { return this->_M_impl._M_finish; } const_iterator end() const { return this->_M_impl._M_finish; } reverse_iterator rbegin() { return reverse_iterator(end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } reverse_iterator rend() { return reverse_iterator(begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } # 664 "/usr/include/c++/4.6/bits/stl_bvector.h" 3 size_type size() const { return size_type(end() - begin()); } size_type max_size() const { const size_type __isize = __gnu_cxx::__numeric_traits::__max - int(_S_word_bit) + 1; const size_type __asize = _M_get_Bit_allocator().max_size(); return (__asize <= __isize / int(_S_word_bit) ? __asize * int(_S_word_bit) : __isize); } size_type capacity() const { return size_type(const_iterator(this->_M_impl._M_end_of_storage, 0) - begin()); } bool empty() const { return begin() == end(); } reference operator[](size_type __n) { return *iterator(this->_M_impl._M_start._M_p + __n / int(_S_word_bit), __n % int(_S_word_bit)); } const_reference operator[](size_type __n) const { return *const_iterator(this->_M_impl._M_start._M_p + __n / int(_S_word_bit), __n % int(_S_word_bit)); } protected: void _M_range_check(size_type __n) const { if (__n >= this->size()) __throw_out_of_range(("vector::_M_range_check")); } public: reference at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } const_reference at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; } void reserve(size_type __n); reference front() { return *begin(); } const_reference front() const { return *begin(); } reference back() { return *(end() - 1); } const_reference back() const { return *(end() - 1); } void data() { } void push_back(bool __x) { if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage) *this->_M_impl._M_finish++ = __x; else _M_insert_aux(end(), __x); } void swap(vector& __x) { std::swap(this->_M_impl._M_start, __x._M_impl._M_start); std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); std::swap(this->_M_impl._M_end_of_storage, __x._M_impl._M_end_of_storage); std::__alloc_swap:: _S_do_it(_M_get_Bit_allocator(), __x._M_get_Bit_allocator()); } static void swap(reference __x, reference __y) { bool __tmp = __x; __x = __y; __y = __tmp; } iterator insert(iterator __position, const bool& __x = bool()) { const difference_type __n = __position - begin(); if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage && __position == end()) *this->_M_impl._M_finish++ = __x; else _M_insert_aux(__position, __x); return begin() + __n; } template void insert(iterator __position, _InputIterator __first, _InputIterator __last) { typedef typename std::__is_integer<_InputIterator>::__type _Integral; _M_insert_dispatch(__position, __first, __last, _Integral()); } void insert(iterator __position, size_type __n, const bool& __x) { _M_fill_insert(__position, __n, __x); } void pop_back() { --this->_M_impl._M_finish; } iterator erase(iterator __position) { if (__position + 1 != end()) std::copy(__position + 1, end(), __position); --this->_M_impl._M_finish; return __position; } iterator erase(iterator __first, iterator __last) { if (__first != __last) _M_erase_at_end(std::copy(__last, end(), __first)); return __first; } void resize(size_type __new_size, bool __x = bool()) { if (__new_size < size()) _M_erase_at_end(begin() + difference_type(__new_size)); else insert(end(), __new_size - size(), __x); } void flip() { for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != this->_M_impl._M_end_of_storage; ++__p) *__p = ~*__p; } void clear() { _M_erase_at_end(begin()); } protected: iterator _M_copy_aligned(const_iterator __first, const_iterator __last, iterator __result) { _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); return std::copy(const_iterator(__last._M_p, 0), __last, iterator(__q, 0)); } void _M_initialize(size_type __n) { _Bit_type* __q = this->_M_allocate(__n); this->_M_impl._M_end_of_storage = (__q + ((__n + int(_S_word_bit) - 1) / int(_S_word_bit))); this->_M_impl._M_start = iterator(__q, 0); this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); } template void _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) { _M_initialize(static_cast(__n)); std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __x ? ~0 : 0); } template void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { _M_initialize_range(__first, __last, std::__iterator_category(__first)); } template void _M_initialize_range(_InputIterator __first, _InputIterator __last, std::input_iterator_tag) { for (; __first != __last; ++__first) push_back(*__first); } template void _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { const size_type __n = std::distance(__first, __last); _M_initialize(__n); std::copy(__first, __last, this->_M_impl._M_start); } template void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) { _M_fill_assign(__n, __val); } template void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } void _M_fill_assign(size_t __n, bool __x) { if (__n > size()) { std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __x ? ~0 : 0); insert(end(), __n - size(), __x); } else { _M_erase_at_end(begin() + __n); std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __x ? ~0 : 0); } } template void _M_assign_aux(_InputIterator __first, _InputIterator __last, std::input_iterator_tag) { iterator __cur = begin(); for (; __first != __last && __cur != end(); ++__cur, ++__first) *__cur = *__first; if (__first == __last) _M_erase_at_end(__cur); else insert(end(), __first, __last); } template void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { const size_type __len = std::distance(__first, __last); if (__len < size()) _M_erase_at_end(std::copy(__first, __last, begin())); else { _ForwardIterator __mid = __first; std::advance(__mid, size()); std::copy(__first, __mid, begin()); insert(end(), __mid, __last); } } template void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, __true_type) { _M_fill_insert(__pos, __n, __x); } template void _M_insert_dispatch(iterator __pos, _InputIterator __first, _InputIterator __last, __false_type) { _M_insert_range(__pos, __first, __last, std::__iterator_category(__first)); } void _M_fill_insert(iterator __position, size_type __n, bool __x); template void _M_insert_range(iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag) { for (; __first != __last; ++__first) { __pos = insert(__pos, *__first); ++__pos; } } template void _M_insert_range(iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag); void _M_insert_aux(iterator __position, bool __x); size_type _M_check_len(size_type __n, const char* __s) const { if (max_size() - size() < __n) __throw_length_error((__s)); const size_type __len = size() + std::max(size(), __n); return (__len < size() || __len > max_size()) ? max_size() : __len; } void _M_erase_at_end(iterator __pos) { this->_M_impl._M_finish = __pos; } }; } # 67 "/usr/include/c++/4.6/vector" 2 3 # 1 "/usr/include/c++/4.6/bits/vector.tcc" 1 3 # 60 "/usr/include/c++/4.6/bits/vector.tcc" 3 namespace std __attribute__ ((__visibility__ ("default"))) { template void vector<_Tp, _Alloc>:: reserve(size_type __n) { if (__n > this->max_size()) __throw_length_error(("vector::reserve")); if (this->capacity() < __n) { const size_type __old_size = size(); pointer __tmp = _M_allocate_and_copy(__n, (this->_M_impl._M_start), (this->_M_impl._M_finish)); std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __tmp; this->_M_impl._M_finish = __tmp + __old_size; this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; } } # 106 "/usr/include/c++/4.6/bits/vector.tcc" 3 template typename vector<_Tp, _Alloc>::iterator vector<_Tp, _Alloc>:: insert(iterator __position, const value_type& __x) { const size_type __n = __position - begin(); if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage && __position == end()) { this->_M_impl.construct(this->_M_impl._M_finish, __x); ++this->_M_impl._M_finish; } else { # 128 "/usr/include/c++/4.6/bits/vector.tcc" 3 _M_insert_aux(__position, __x); } return iterator(this->_M_impl._M_start + __n); } template typename vector<_Tp, _Alloc>::iterator vector<_Tp, _Alloc>:: erase(iterator __position) { if (__position + 1 != end()) std::copy(__position + 1, end(), __position); --this->_M_impl._M_finish; this->_M_impl.destroy(this->_M_impl._M_finish); return __position; } template typename vector<_Tp, _Alloc>::iterator vector<_Tp, _Alloc>:: erase(iterator __first, iterator __last) { if (__first != __last) { if (__last != end()) std::copy(__last, end(), __first); _M_erase_at_end(__first.base() + (end() - __last)); } return __first; } template vector<_Tp, _Alloc>& vector<_Tp, _Alloc>:: operator=(const vector<_Tp, _Alloc>& __x) { if (&__x != this) { const size_type __xlen = __x.size(); if (__xlen > capacity()) { pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), __x.end()); std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __tmp; this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; } else if (size() >= __xlen) { std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), end(), _M_get_Tp_allocator()); } else { std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), this->_M_impl._M_start); std::__uninitialized_copy_a(__x._M_impl._M_start + size(), __x._M_impl._M_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); } this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; } return *this; } template void vector<_Tp, _Alloc>:: _M_fill_assign(size_t __n, const value_type& __val) { if (__n > capacity()) { vector __tmp(__n, __val, _M_get_Tp_allocator()); __tmp.swap(*this); } else if (__n > size()) { std::fill(begin(), end(), __val); std::__uninitialized_fill_n_a(this->_M_impl._M_finish, __n - size(), __val, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n - size(); } else _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); } template template void vector<_Tp, _Alloc>:: _M_assign_aux(_InputIterator __first, _InputIterator __last, std::input_iterator_tag) { pointer __cur(this->_M_impl._M_start); for (; __first != __last && __cur != this->_M_impl._M_finish; ++__cur, ++__first) *__cur = *__first; if (__first == __last) _M_erase_at_end(__cur); else insert(end(), __first, __last); } template template void vector<_Tp, _Alloc>:: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { const size_type __len = std::distance(__first, __last); if (__len > capacity()) { pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __tmp; this->_M_impl._M_finish = this->_M_impl._M_start + __len; this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; } else if (size() >= __len) _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); else { _ForwardIterator __mid = __first; std::advance(__mid, size()); std::copy(__first, __mid, this->_M_impl._M_start); this->_M_impl._M_finish = std::__uninitialized_copy_a(__mid, __last, this->_M_impl._M_finish, _M_get_Tp_allocator()); } } # 298 "/usr/include/c++/4.6/bits/vector.tcc" 3 template void vector<_Tp, _Alloc>:: _M_insert_aux(iterator __position, const _Tp& __x) { if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) { this->_M_impl.construct(this->_M_impl._M_finish, (*(this->_M_impl._M_finish - 1)) ); ++this->_M_impl._M_finish; _Tp __x_copy = __x; std::copy_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) ; *__position = __x_copy; } else { const size_type __len = _M_check_len(size_type(1), "vector::_M_insert_aux"); const size_type __elems_before = __position - begin(); pointer __new_start(this->_M_allocate(__len)); pointer __new_finish(__new_start); try { this->_M_impl.construct(__new_start + __elems_before, __x); __new_finish = 0; __new_finish = std::__uninitialized_move_a(this->_M_impl._M_start, __position.base(), __new_start, _M_get_Tp_allocator()); ++__new_finish; __new_finish = std::__uninitialized_move_a(__position.base(), this->_M_impl._M_finish, __new_finish, _M_get_Tp_allocator()); } catch(...) { if (!__new_finish) this->_M_impl.destroy(__new_start + __elems_before); else std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); _M_deallocate(__new_start, __len); throw; } std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; this->_M_impl._M_finish = __new_finish; this->_M_impl._M_end_of_storage = __new_start + __len; } } template void vector<_Tp, _Alloc>:: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) { if (__n != 0) { if (size_type(this->_M_impl._M_end_of_storage - this->_M_impl._M_finish) >= __n) { value_type __x_copy = __x; const size_type __elems_after = end() - __position; pointer __old_finish(this->_M_impl._M_finish); if (__elems_after > __n) { std::__uninitialized_move_a(this->_M_impl._M_finish - __n, this->_M_impl._M_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n; std::copy_backward(__position.base(), __old_finish - __n, __old_finish) ; std::fill(__position.base(), __position.base() + __n, __x_copy); } else { std::__uninitialized_fill_n_a(this->_M_impl._M_finish, __n - __elems_after, __x_copy, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n - __elems_after; std::__uninitialized_move_a(__position.base(), __old_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __elems_after; std::fill(__position.base(), __old_finish, __x_copy); } } else { const size_type __len = _M_check_len(__n, "vector::_M_fill_insert"); const size_type __elems_before = __position - begin(); pointer __new_start(this->_M_allocate(__len)); pointer __new_finish(__new_start); try { std::__uninitialized_fill_n_a(__new_start + __elems_before, __n, __x, _M_get_Tp_allocator()); __new_finish = 0; __new_finish = std::__uninitialized_move_a(this->_M_impl._M_start, __position.base(), __new_start, _M_get_Tp_allocator()); __new_finish += __n; __new_finish = std::__uninitialized_move_a(__position.base(), this->_M_impl._M_finish, __new_finish, _M_get_Tp_allocator()); } catch(...) { if (!__new_finish) std::_Destroy(__new_start + __elems_before, __new_start + __elems_before + __n, _M_get_Tp_allocator()); else std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); _M_deallocate(__new_start, __len); throw; } std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; this->_M_impl._M_finish = __new_finish; this->_M_impl._M_end_of_storage = __new_start + __len; } } } # 519 "/usr/include/c++/4.6/bits/vector.tcc" 3 template template void vector<_Tp, _Alloc>:: _M_range_insert(iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag) { for (; __first != __last; ++__first) { __pos = insert(__pos, *__first); ++__pos; } } template template void vector<_Tp, _Alloc>:: _M_range_insert(iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { if (__first != __last) { const size_type __n = std::distance(__first, __last); if (size_type(this->_M_impl._M_end_of_storage - this->_M_impl._M_finish) >= __n) { const size_type __elems_after = end() - __position; pointer __old_finish(this->_M_impl._M_finish); if (__elems_after > __n) { std::__uninitialized_move_a(this->_M_impl._M_finish - __n, this->_M_impl._M_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n; std::copy_backward(__position.base(), __old_finish - __n, __old_finish) ; std::copy(__first, __last, __position); } else { _ForwardIterator __mid = __first; std::advance(__mid, __elems_after); std::__uninitialized_copy_a(__mid, __last, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __n - __elems_after; std::__uninitialized_move_a(__position.base(), __old_finish, this->_M_impl._M_finish, _M_get_Tp_allocator()); this->_M_impl._M_finish += __elems_after; std::copy(__first, __mid, __position); } } else { const size_type __len = _M_check_len(__n, "vector::_M_range_insert"); pointer __new_start(this->_M_allocate(__len)); pointer __new_finish(__new_start); try { __new_finish = std::__uninitialized_move_a(this->_M_impl._M_start, __position.base(), __new_start, _M_get_Tp_allocator()); __new_finish = std::__uninitialized_copy_a(__first, __last, __new_finish, _M_get_Tp_allocator()); __new_finish = std::__uninitialized_move_a(__position.base(), this->_M_impl._M_finish, __new_finish, _M_get_Tp_allocator()); } catch(...) { std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); _M_deallocate(__new_start, __len); throw; } std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, _M_get_Tp_allocator()); _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); this->_M_impl._M_start = __new_start; this->_M_impl._M_finish = __new_finish; this->_M_impl._M_end_of_storage = __new_start + __len; } } } template void vector:: reserve(size_type __n) { if (__n > this->max_size()) __throw_length_error(("vector::reserve")); if (this->capacity() < __n) { _Bit_type* __q = this->_M_allocate(__n); this->_M_impl._M_finish = _M_copy_aligned(begin(), end(), iterator(__q, 0)); this->_M_deallocate(); this->_M_impl._M_start = iterator(__q, 0); this->_M_impl._M_end_of_storage = (__q + (__n + int(_S_word_bit) - 1) / int(_S_word_bit)); } } template void vector:: _M_fill_insert(iterator __position, size_type __n, bool __x) { if (__n == 0) return; if (capacity() - size() >= __n) { std::copy_backward(__position, end(), this->_M_impl._M_finish + difference_type(__n)); std::fill(__position, __position + difference_type(__n), __x); this->_M_impl._M_finish += difference_type(__n); } else { const size_type __len = _M_check_len(__n, "vector::_M_fill_insert"); _Bit_type * __q = this->_M_allocate(__len); iterator __i = _M_copy_aligned(begin(), __position, iterator(__q, 0)); std::fill(__i, __i + difference_type(__n), __x); this->_M_impl._M_finish = std::copy(__position, end(), __i + difference_type(__n)); this->_M_deallocate(); this->_M_impl._M_end_of_storage = (__q + ((__len + int(_S_word_bit) - 1) / int(_S_word_bit))); this->_M_impl._M_start = iterator(__q, 0); } } template template void vector:: _M_insert_range(iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) { if (__first != __last) { size_type __n = std::distance(__first, __last); if (capacity() - size() >= __n) { std::copy_backward(__position, end(), this->_M_impl._M_finish + difference_type(__n)); std::copy(__first, __last, __position); this->_M_impl._M_finish += difference_type(__n); } else { const size_type __len = _M_check_len(__n, "vector::_M_insert_range"); _Bit_type * __q = this->_M_allocate(__len); iterator __i = _M_copy_aligned(begin(), __position, iterator(__q, 0)); __i = std::copy(__first, __last, __i); this->_M_impl._M_finish = std::copy(__position, end(), __i); this->_M_deallocate(); this->_M_impl._M_end_of_storage = (__q + ((__len + int(_S_word_bit) - 1) / int(_S_word_bit))); this->_M_impl._M_start = iterator(__q, 0); } } } template void vector:: _M_insert_aux(iterator __position, bool __x) { if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage) { std::copy_backward(__position, this->_M_impl._M_finish, this->_M_impl._M_finish + 1); *__position = __x; ++this->_M_impl._M_finish; } else { const size_type __len = _M_check_len(size_type(1), "vector::_M_insert_aux"); _Bit_type * __q = this->_M_allocate(__len); iterator __i = _M_copy_aligned(begin(), __position, iterator(__q, 0)); *__i++ = __x; this->_M_impl._M_finish = std::copy(__position, end(), __i); this->_M_deallocate(); this->_M_impl._M_end_of_storage = (__q + ((__len + int(_S_word_bit) - 1) / int(_S_word_bit))); this->_M_impl._M_start = iterator(__q, 0); } } } # 71 "/usr/include/c++/4.6/vector" 2 3 # 72 "../flower/include/std-vector.hh" 2 # 121 "../flower/include/std-vector.hh" template T const & boundary (vector const &v, int dir, vsize i) { ((dir) ? static_cast (0) : __assert_fail ("dir", "../flower/include/std-vector.hh", 125, __PRETTY_FUNCTION__)); return v[dir == -1 ? i : v.size () - 1 - i]; } template T & boundary (vector &v, int dir, vsize i) { ((dir) ? static_cast (0) : __assert_fail ("dir", "../flower/include/std-vector.hh", 133, __PRETTY_FUNCTION__)); return v[dir == -1 ? i : v.size () - 1 - i]; } template T const & back (vector const &v, vsize i) { return v[v.size () - i - 1]; } template T & back (vector &v, vsize i) { return v[v.size () - i - 1]; } template void concat (vector &v, vector const &w) { v.insert (v.end (), w.begin (), w.end ()); } template vsize lower_bound (vector const &v, T const &key, Compare less, vsize b = 0, vsize e = ((vsize) -1)) { if (e == ((vsize) -1)) e = v.size (); typename vector::const_iterator i = lower_bound (v.begin () + b, v.begin () + e, key, less); return i - v.begin (); } template vsize upper_bound (vector const &v, T const &key, Compare less, vsize b = 0, vsize e = ((vsize) -1)) { if (e == ((vsize) -1)) e = v.size (); typename vector::const_iterator i = upper_bound (v.begin () + b, v.begin () + e, key, less); return i - v.begin (); } template vsize binary_search (vector const &v, T const &key, Compare less, vsize b = 0, vsize e = ((vsize) -1)) { vsize lb = lower_bound (v, key, less, b, e); if (lb == v.size () || less (key, v[lb])) return ((vsize) -1); return lb; } template void vector_sort (vector &v, Compare less, vsize b = 0, vsize e = ((vsize) -1)) { if (e == ((vsize) -1)) e = v.size (); sort (v.begin () + b, v.begin () + e, less); } template void reverse (vector &v) { reverse (v.begin (), v.end ()); } template void uniq (vector &v) { v.erase (unique (v.begin (), v.end ()), v.end ()); } template typename vector::const_iterator find (vector const &v, T const &key) { return find (v.begin (), v.end (), key); } template struct del : public unary_function { void operator () (T x) { delete x; x = 0; } }; template void junk_pointers (vector &v) { for_each (v.begin (), v.end (), del ()); v.clear (); } vector string_split (string str, char c); string string_join (vector const &strs, string infix); # 42 "./include/lily-guile.hh" 2 SCM ly_last (SCM list); string ly_scm_write_string (SCM s); SCM ly_deep_copy (SCM); SCM ly_truncate_list (int k, SCM lst); extern SCM global_lily_module; string gulp_file_to_string (string fn, bool must_exist, int size); SCM ly_string2scm (string const &s); string ly_scm2string (SCM s); string ly_symbol2string (SCM); string robust_symbol2string (SCM, string); Rational ly_scm2rational (SCM); SCM ly_rational2scm (Rational); SCM ly_offset2scm (Offset); Offset ly_scm2offset (SCM); SCM ly_chain_assoc (SCM key, SCM achain); SCM ly_chain_assoc_get (SCM key, SCM achain, SCM default_value, SCM strict_checking = ((SCM) ((((0)) << 8) + scm_tc8_flag))); SCM ly_assoc_cdr (SCM key, SCM alist); SCM ly_assoc_get (SCM key, SCM alist, SCM default_value, SCM strict_checking = ((SCM) ((((0)) << 8) + scm_tc8_flag))); Interval ly_scm2interval (SCM); Drul_array ly_scm2realdrul (SCM); Slice int_list_to_slice (SCM l); SCM ly_interval2scm (Drul_array); char *ly_scm2str0 (SCM str); Real robust_scm2double (SCM, double); int robust_scm2int (SCM, int); vsize robust_scm2vsize (SCM, vsize); Direction robust_scm2dir (SCM, Direction); Drul_array robust_scm2drul (SCM, Drul_array); Drul_array robust_scm2booldrul (SCM, Drul_array); Interval robust_scm2interval (SCM, Drul_array); Offset robust_scm2offset (SCM, Offset); string robust_scm2string (SCM, string); Rational robust_scm2rational (SCM, Rational); vector ly_scm2floatvector (SCM); SCM ly_floatvector2scm (vector v); SCM ly_quote_scm (SCM s); bool type_check_assignment (SCM val, SCM sym, SCM type_symbol); string print_scm_val (SCM val); SCM ly_number2string (SCM s); SCM parse_symbol_list (char const *); SCM robust_list_ref (int i, SCM l); SCM alist_to_hashq (SCM); SCM ly_alist_vals (SCM alist); SCM ly_hash2alist (SCM tab); SCM ly_hash_table_keys (SCM tab); SCM ly_assoc_prepend_x (SCM alist, SCM key, SCM val); inline bool ly_is_fraction (SCM x) { return (!(6 & ((scm_t_bits) (0? (*(SCM*)0=(x)): x))) && (0xffff & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))])))))) == (23 + 4 * 256L)) || scm_is_integer (x); } inline bool ly_is_list (SCM x) { return !(((scm_t_bits) (0? (*(SCM*)0=((scm_list_p (x)))): (scm_list_p (x)))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((0)) << 8) + scm_tc8_flag)))): ((SCM) ((((0)) << 8) + scm_tc8_flag))))); } inline bool ly_cheap_is_list (SCM x) { return scm_is_pair (x) || x == ((SCM) ((((4)) << 8) + scm_tc8_flag)); } inline bool ly_is_procedure (SCM x) { return !(((scm_t_bits) (0? (*(SCM*)0=((scm_procedure_p (x)))): (scm_procedure_p (x)))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((0)) << 8) + scm_tc8_flag)))): ((SCM) ((((0)) << 8) + scm_tc8_flag))))); } inline bool ly_is_port (SCM x) { return !(((scm_t_bits) (0? (*(SCM*)0=((scm_port_p (x)))): (scm_port_p (x)))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((0)) << 8) + scm_tc8_flag)))): ((SCM) ((((0)) << 8) + scm_tc8_flag))))); } inline bool ly_is_symbol (SCM x) { return (!(6 & ((scm_t_bits) (0? (*(SCM*)0=(x)): x))) && ((0x7f & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))])))))) == 5)); } inline bool ly_is_equal (SCM x, SCM y) { return !(((scm_t_bits) (0? (*(SCM*)0=((scm_equal_p (x, y)))): (scm_equal_p (x, y)))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((0)) << 8) + scm_tc8_flag)))): ((SCM) ((((0)) << 8) + scm_tc8_flag))))); } inline bool ly_scm2bool (SCM x) { return !(((scm_t_bits) (0? (*(SCM*)0=((x))): (x))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((0)) << 8) + scm_tc8_flag)))): ((SCM) ((((0)) << 8) + scm_tc8_flag))))); } inline char ly_scm2char (SCM x) { return (char)((unsigned int)(((scm_t_bits) (0? (*(SCM*)0=(x)): x)) >> 8)); } inline SCM ly_bool2scm (bool x) { return ((x) ? ((SCM) ((((1)) << 8) + scm_tc8_flag)) : ((SCM) ((((0)) << 8) + scm_tc8_flag))); } inline SCM ly_append2 (SCM x1, SCM x2) { return scm_append (scm_list_n (x1, x2, ((SCM) ((((2)) << 8) + scm_tc8_flag)))); } inline SCM ly_append3 (SCM x1, SCM x2, SCM x3) { return scm_append (scm_list_n (x1, x2, x3, ((SCM) ((((2)) << 8) + scm_tc8_flag)))); } inline SCM ly_append4 (SCM x1, SCM x2, SCM x3, SCM x4) { return scm_append (scm_list_n (x1, x2, x3, x4, ((SCM) ((((2)) << 8) + scm_tc8_flag)))); } extern "C" { void ly_display_scm (SCM s); } void read_lily_scm_file (string); void ly_c_init_guile (); bool is_direction (SCM s); bool is_number_pair (SCM); bool is_axis (SCM); Direction to_dir (SCM s); bool to_boolean (SCM s); void init_ly_protection (); unsigned int ly_scm_hash (SCM s); SCM index_get_cell (SCM cell, Direction d); SCM index_set_cell (SCM cell, Direction d, SCM val); SCM ly_snoc (SCM s, SCM list); SCM ly_split_list (SCM s, SCM lst); SCM ly_unique (SCM lst); SCM ly_list_qsort_uniq_x (SCM lst); SCM ly_output_formats (); void add_scm_init_func (void ( *) ()); extern "C" { typedef SCM (*Scheme_function_unknown) (); } typedef SCM (*Scheme_function_0) (); typedef SCM (*Scheme_function_1) (SCM); typedef SCM (*Scheme_function_2) (SCM, SCM); typedef SCM (*Scheme_function_3) (SCM, SCM, SCM); # 201 "./include/lily-guile.hh" inline SCM ly_car (SCM x) { return ((((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=(((x)))): ((x))))))) [(0)])))); } inline SCM ly_cdr (SCM x) { return ((((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=(((x)))): ((x))))))) [(1)])))); } inline bool ly_is_pair (SCM x) { return (!(6 & ((scm_t_bits) (0? (*(SCM*)0=(x)): x))) && ((1 & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((x))))): (((x)))))))) [((0))])))))) == 0)); } template SCM ly_cxx_vector_to_list (vector const &src) { SCM l = ((SCM) ((((4)) << 8) + scm_tc8_flag)); for (vsize i = src.size (); i--;) l = scm_cons (src[i]->self_scm (), l); return l; } SCM ly_offsets2scm (vector os); vector ly_scm2offsets (SCM s); # 24 "./include/smobs.hh" 2 # 1 "../flower/include/warn.hh" 1 # 43 "../flower/include/warn.hh" extern int loglevel; extern bool warning_as_error; void error (string s, string location = ""); void programming_error (string s, string location = ""); void non_fatal_error (string, string location = ""); void warning (string s, string location = ""); void basic_progress (string s, string location = ""); void progress_indication (string s, bool newline = false, string location = ""); void message (string s, bool newline = true, string location = ""); void debug_output (string s, bool newline = true, string location = ""); void print_message (int level, string location, string s, bool newline = true); bool is_loglevel (int level); void set_loglevel (int level); void set_loglevel (string level); void expect_warning (string msg); void check_expected_warnings (); # 25 "./include/smobs.hh" 2 # 152 "./include/smobs.hh" void protect_smob (SCM smob, SCM *prot_cons); void unprotect_smob (SCM smob, SCM *prot_cons); extern bool parsed_objects_should_be_dead; class parsed_dead { static vector elements; SCM data; SCM readout_one () { SCM res = data; data = ((SCM) ((((2)) << 8) + scm_tc8_flag)); return res; } public: parsed_dead () : data (((SCM) ((((2)) << 8) + scm_tc8_flag))) { elements.push_back (this); } void checkin (SCM arg) { data = arg; } static SCM readout (); }; # 24 "./include/moment.hh" 2 # 1 "../flower/include/rational.hh" 1 # 25 "../flower/include/rational.hh" # 1 "/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h" 1 3 4 # 26 "../flower/include/rational.hh" 2 class Rational { # 40 "../flower/include/rational.hh" int sign_; U64 num_, den_; void normalize (); void copy (Rational const &); public: void set_infinite (int sign); bool is_infinity () const; void invert (); I64 numerator () const { return sign_ * num_; } I64 denominator () const { return den_; } I64 num () const { return numerator (); } I64 den () const { return denominator (); } Rational trunc_rat () const; Rational div_rat (Rational) const; Rational mod_rat (Rational) const; Rational abs () const; void negate (); int to_int () const; operator double () const { return to_double (); } double to_double () const; Rational operator - () const; Rational (); Rational (int); Rational (I64); Rational (U64); explicit Rational (I64, I64); explicit Rational (double); Rational (Rational const &r) { copy (r);} Rational &operator = (Rational const &r) { copy (r); return *this; } Rational &operator *= (Rational); Rational &operator /= (Rational); Rational &operator += (Rational); Rational &operator -= (Rational); Rational &operator %= (Rational); static int compare (Rational const &, Rational const &); int sign () const; string to_string () const; }; # 1 "../flower/include/arithmetic-operator.hh" 1 # 92 "../flower/include/rational.hh" 2 inline Rational operator / (Rational a1, Rational const &a2) { a1 /= a2; return a1; }; inline Rational operator + (Rational a1, Rational const &a2) { a1 += a2; return a1; }; inline Rational operator * (Rational a1, Rational const &a2) { a1 *= a2; return a1; }; inline Rational operator - (Rational a1, Rational const &a2) { a1 -= a2; return a1; }; inline Rational operator % (Rational a1, Rational const &a2) { a1 %= a2; return a1; }; inline bool operator > (Rational const & t1, Rational const & t2) { return Rational::compare (t1, t2) > 0; } inline bool operator >= (Rational const & t1, Rational const & t2) { return Rational::compare (t1, t2) >= 0; } inline bool operator == (Rational const & t1, Rational const & t2) { return Rational::compare (t1, t2) == 0; } inline bool operator != (Rational const & t1, Rational const & t2) { return Rational::compare (t1, t2) != 0; } inline bool operator < (Rational const & t1, Rational const & t2) { return Rational::compare (t1, t2) < 0; } inline bool operator <= (Rational const & t1, Rational const & t2) { return Rational::compare (t1, t2) <= 0; } inline Rational const & max (Rational const & t1, Rational const & t2) { return (t1 > t2) ? t1 : t2; } inline Rational const & min (Rational const & t1, Rational const & t2) { return (t1 < t2) ? t1 : t2; } bool operator < (Rational const & t1, Rational const & t2); int compare (Rational const &, Rational const &); int sign (Rational r); inline void Rational::copy (Rational const &r) { sign_ = r.sign_; num_ = r.num_; den_ = r.den_; } const Rational infinity_rat (U64_MAX); # 25 "./include/moment.hh" 2 class Moment { public: SCM smobbed_copy () const; friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Moment *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Moment *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private:; public: Moment (); Moment (int m); Moment (Rational, Rational); Moment (Rational m); Moment operator - () const; void operator += (Moment const &m); void operator -= (Moment const &m); void operator *= (Moment const &m); void operator /= (Moment const &m); void operator %= (Moment const &m); Rational main_part_; Rational grace_part_; void set_infinite (int k); bool to_bool () const; I64 den () const; I64 num () const; string to_string () const; static int compare (Moment const &, Moment const &); SCM as_scheme () const; }; inline Moment operator + (Moment a1, Moment const &a2) { a1 += a2; return a1; }; inline Moment operator - (Moment a1, Moment const &a2) { a1 -= a2; return a1; }; inline Moment operator / (Moment a1, Moment const &a2) { a1 /= a2; return a1; }; inline Moment operator * (Moment a1, Moment const &a2) { a1 *= a2; return a1; }; inline Moment operator % (Moment a1, Moment const &a2) { a1 %= a2; return a1; }; inline Moment * unsmob_moment (SCM s) { return Moment::unsmob (s); }; int compare (Moment const &, Moment const &); inline bool operator > (Moment const & t1, Moment const & t2) { return Moment::compare (t1, t2) > 0; } inline bool operator >= (Moment const & t1, Moment const & t2) { return Moment::compare (t1, t2) >= 0; } inline bool operator == (Moment const & t1, Moment const & t2) { return Moment::compare (t1, t2) == 0; } inline bool operator != (Moment const & t1, Moment const & t2) { return Moment::compare (t1, t2) != 0; } inline bool operator < (Moment const & t1, Moment const & t2) { return Moment::compare (t1, t2) < 0; } inline bool operator <= (Moment const & t1, Moment const & t2) { return Moment::compare (t1, t2) <= 0; } inline Moment const & max (Moment const & t1, Moment const & t2) { return (t1 > t2) ? t1 : t2; } inline Moment const & min (Moment const & t1, Moment const & t2) { return (t1 < t2) ? t1 : t2; } bool operator < (Moment const & t1, Moment const & t2); Moment robust_scm2moment (SCM, Moment); bool moment_less (SCM a, SCM b); # 24 "./include/duration.hh" 2 struct Duration { public: Duration (); Duration (int, int); Duration (Rational, bool scale); string to_string () const; Duration compressed (Rational) const; Rational get_length () const; Rational factor () const { return factor_; } int duration_log () const; int dot_count () const; static int compare (Duration const &, Duration const &); static SCM less_p (SCM a, SCM b); static SCM less_p_proc; public: SCM smobbed_copy () const; friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Duration *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Duration *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private:; private: int durlog_; int dots_; Rational factor_; }; inline bool operator > (Duration t1, Duration t2) { return Duration::compare (t1, t2) > 0; } inline bool operator >= (Duration t1, Duration t2) { return Duration::compare (t1, t2) >= 0; } inline bool operator == (Duration t1, Duration t2) { return Duration::compare (t1, t2) == 0; } inline bool operator != (Duration t1, Duration t2) { return Duration::compare (t1, t2) != 0; } inline bool operator < (Duration t1, Duration t2) { return Duration::compare (t1, t2) < 0; } inline bool operator <= (Duration t1, Duration t2) { return Duration::compare (t1, t2) <= 0; } inline Duration max (Duration t1, Duration t2) { return (t1 > t2) ? t1 : t2; } inline Duration min (Duration t1, Duration t2) { return (t1 < t2) ? t1 : t2; } bool operator < (Duration t1, Duration t2); inline Duration * unsmob_duration (SCM s) { return Duration::unsmob (s); }; extern SCM Duration_type_p_proc; # 24 "./include/context.hh" 2 # 1 "./include/lily-proto.hh" 1 # 23 "./include/lily-proto.hh" # 1 "../flower/include/flower-proto.hh" 1 # 24 "./include/lily-proto.hh" 2 class All_font_metrics; class Audio_column; class Audio_dynamic; class Audio_element; class Audio_instrument; class Audio_item; class Audio_key; class Audio_note; class Audio_piano_pedal; class Audio_staff; class Audio_tempo; class Audio_text; class Audio_tie; class Audio_time_signature; class Auto_change_iterator; class Auto_change_music; class Axis_group_engraver; class Bar_engraver; class Bar_req_collect_engraver; class Beaming_pattern; class Beam_scoring_problem; class Beam_configuration; class Beam_quant_parameters; class Bezier; class Bezier_bow; class Book; class Box; class Break_algorithm; class Change_iterator; class Change_translator; class Chord_tremolo_iterator; class Cluster_engraver; class Column_x_positions; class Context; class Context_def; class Context_mod; class Context_specced_music; class Dispatcher; class Dot_column; class Dot_configuration; class Dot_formatting_problem; class Engraver; class Engraver; class Engraver_group; class Event; class Event_chord; class Event_chord_iterator; class Event_iterator; class Font_metric; class Font_size_engraver; class Global_context; class Gourlay_breaking; class Grace_fixup; class Grace_iterator; class Grace_music; class Grob; class Grob_array; class Grob_info; class Hara_kiri_engraver; class Hara_kiri_line_group_engraver; class Includable_lexer; class Input; class Input_file_results; class Item; class Key_performer; class Keyword_ent; class Keyword_table; class Ligature_bracket_engraver; class Ligature_engraver; class Lily_lexer; class Lily_parser; class Lilypond_context_key; class Lilypond_grob_key; class Line_group_engraver_group; class Listener; class Lookup; class Lyric_combine_music; class Lyric_combine_music_iterator; class Lyric_engraver; class Lyric_performer; class Lyric_phrasing_engraver; class Mensural_ligature_engraver; class Midi_chunk; class Midi_duration; class Midi_dynamic; class Midi_event; class Midi_header; class Midi_instrument; class Midi_item; class Midi_key; class Midi_note; class Midi_note_event; class Midi_note_off; class Midi_piano_pedal; class Midi_stream; class Midi_tempo; class Midi_text; class Midi_time_signature; class Midi_track; class Modified_font_metric; class Moment; class Music; class Music_iterator; class Music_list; class Music_output; class Music_sequence; class Music_wrapper; class Music_wrapper_iterator; class Note_performer; class Output_def; class Open_type_font; class Output_property; class Page_breaking; class Pango_font; class Paper_book; class Paper_column; class Paper_outputter; class Paper_score; class Performance; class Performer; class Performer_group; class Piano_bar_engraver; class Pitch; class Pitch_squash_engraver; class Prob; class Property_iterator; class Rational; class Relative_octave_music; class Repeated_music; class Rhythmic_music_iterator; class Scale; class Scheme_hash_table; class Scheme_engraver; class Score; class Score_context; class Score_engraver; class Score_performer; class Sequential_music; class Sequential_music_iterator; class Simple_music_iterator; class Simple_spacer; class Simple_spacer_wrapper; class Simultaneous_music; class Simultaneous_music_iterator; class Skyline; class Skyline_entry; class Skyline_pair; class Slur_configuration; class Slur_score_state; class Source_file; class Sources; class Spacing_options; class Span_score_bar_engraver; class Spanner; class Staff_group_bar_engraver; class Staff_performer; class Stencil; class Stream_event; class System; class Tempo_performer; class Tie; class Tie_details; class Tie_configuration; class Tie_formatting_problem; class Tie_performer; class Time_scaled_music; class Time_scaled_music_iterator; class Time_signature_performer; class Timing_engraver; class Timing_translator; class Translation_property; class Translator; class Translator_change; class Translator_group; class Transposed_music; class yyFlexLexer; typedef void (*Engraver_void_function_engraver_grob_info) (Engraver *, Grob_info); typedef void (*Translator_void_method_ptr) (Translator *); # 25 "./include/context.hh" 2 # 1 "./include/listener.hh" 1 # 66 "./include/listener.hh" typedef struct { void (*listen_callback) (void *, SCM); void (*mark_callback) (void *); bool (*equal_callback) (void *, void *); } Listener_function_table; class Listener { void *target_; Listener_function_table *type_; public: Listener (const void *target, Listener_function_table *type); Listener (Listener const &other); Listener (); void listen (SCM ev) const; bool operator == (Listener const &other) const { return type_ == other.type_ && (*type_->equal_callback) ((void *) target_, (void *) other.target_); } public: SCM smobbed_copy () const; friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Listener *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Listener *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private:; }; inline Listener * unsmob_listener (SCM s) { return Listener::unsmob (s); }; # 26 "./include/context.hh" 2 # 1 "./include/scm-hash.hh" 1 # 46 "./include/scm-hash.hh" class Scheme_hash_table { public: bool try_retrieve (SCM key, SCM *val); bool contains (SCM key) const; void set (SCM k, SCM v); SCM get (SCM k) const; void remove (SCM k); Scheme_hash_table (); void operator = (Scheme_hash_table const &); Scheme_hash_table (Scheme_hash_table const &); SCM to_alist () const; private: SCM hash_tab_; void copy (Scheme_hash_table const &src); friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Scheme_hash_table *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Scheme_hash_table *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private: protected: virtual ~Scheme_hash_table (); SCM unprotected_smobify_self (); private: void smobify_self (); SCM self_scm_; SCM protection_cons_; public: SCM unprotect (); void protect (); SCM self_scm () const { return self_scm_; } private:; }; # 28 "./include/context.hh" 2 # 1 "../flower/include/virtual-methods.hh" 1 # 23 "../flower/include/virtual-methods.hh" # 1 "/usr/include/c++/4.6/typeinfo" 1 3 # 34 "/usr/include/c++/4.6/typeinfo" 3 # 35 "/usr/include/c++/4.6/typeinfo" 3 #pragma GCC visibility push(default) extern "C++" { namespace __cxxabiv1 { class __class_type_info; } # 83 "/usr/include/c++/4.6/typeinfo" 3 namespace std { class type_info { public: virtual ~type_info(); const char* name() const { return __name[0] == '*' ? __name + 1 : __name; } # 118 "/usr/include/c++/4.6/typeinfo" 3 bool before(const type_info& __arg) const { return (__name[0] == '*' && __arg.__name[0] == '*') ? __name < __arg.__name : __builtin_strcmp (__name, __arg.__name) < 0; } bool operator==(const type_info& __arg) const { return ((__name == __arg.__name) || (__name[0] != '*' && __builtin_strcmp (__name, __arg.__name) == 0)); } # 139 "/usr/include/c++/4.6/typeinfo" 3 bool operator!=(const type_info& __arg) const { return !operator==(__arg); } # 155 "/usr/include/c++/4.6/typeinfo" 3 virtual bool __is_pointer_p() const; virtual bool __is_function_p() const; virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, unsigned __outer) const; virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, void **__obj_ptr) const; protected: const char *__name; explicit type_info(const char *__n): __name(__n) { } private: type_info& operator=(const type_info&); type_info(const type_info&); }; class bad_cast : public exception { public: bad_cast() throw() { } virtual ~bad_cast() throw(); virtual const char* what() const throw(); }; class bad_typeid : public exception { public: bad_typeid () throw() { } virtual ~bad_typeid() throw(); virtual const char* what() const throw(); }; } #pragma GCC visibility pop } # 24 "../flower/include/virtual-methods.hh" 2 using namespace std; # 30 "./include/context.hh" 2 class Context { Scheme_hash_table *properties_dict () const; Context (Context const &src); friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Context *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Context *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private: protected: virtual ~Context (); SCM unprotected_smobify_self (); private: void smobify_self (); SCM self_scm_; SCM protection_cons_; public: SCM unprotect (); void protect (); SCM self_scm () const { return self_scm_; } private:; virtual const char *class_name () const { return "Context"; }; void terminate (); private: friend class Context_handle; int client_count_; Stream_event *infant_event_; protected: Context *daddy_context_; SCM definition_; SCM definition_mods_; SCM properties_scm_; SCM context_list_; SCM accepts_list_; SCM aliases_; Translator_group *implementation_; string id_string_; Dispatcher *event_source_; Dispatcher *events_below_; friend class Translator_group; friend class Context_def; friend SCM ly_make_global_translator (SCM); inline void set_property_from_event (SCM); static void set_property_from_event_callback (void *self, SCM ev); static void set_property_from_event_mark (void *self); static bool set_property_from_event_is_equal (void *a, void *b); Listener set_property_from_event_listener () const; inline void unset_property_from_event (SCM); static void unset_property_from_event_callback (void *self, SCM ev); static void unset_property_from_event_mark (void *self); static bool unset_property_from_event_is_equal (void *a, void *b); Listener unset_property_from_event_listener () const; public: string id_string () const { return id_string_; } SCM children_contexts () const { return context_list_; } SCM default_child_context_name () const; Dispatcher *event_source () const { return event_source_; } Dispatcher *events_below () const { return events_below_; } void internal_send_stream_event (SCM type, Input *origin, SCM props[]); SCM get_definition () const { return definition_; } SCM get_definition_mods () const { return definition_mods_; } Translator_group *implementation () const { return implementation_; } Context *get_parent_context () const; Context (); SCM internal_get_property (SCM name_sym) const; SCM properties_as_alist () const; Context *where_defined (SCM name_sym, SCM *value) const; void unset_property (SCM var_sym); void instrumented_set_property (SCM, SCM, const char *, int, const char *); void internal_set_property (SCM var_sym, SCM value); Context *create_context (Context_def *, string, SCM); inline void create_context_from_event (SCM); static void create_context_from_event_callback (void *self, SCM ev); static void create_context_from_event_mark (void *self); static bool create_context_from_event_is_equal (void *a, void *b); Listener create_context_from_event_listener () const; inline void acknowledge_infant (SCM); static void acknowledge_infant_callback (void *self, SCM ev); static void acknowledge_infant_mark (void *self); static bool acknowledge_infant_is_equal (void *a, void *b); Listener acknowledge_infant_listener () const; inline void remove_context (SCM); static void remove_context_callback (void *self, SCM ev); static void remove_context_mark (void *self); static bool remove_context_is_equal (void *a, void *b); Listener remove_context_listener () const; inline void change_parent (SCM); static void change_parent_callback (void *self, SCM ev); static void change_parent_mark (void *self); static bool change_parent_is_equal (void *a, void *b); Listener change_parent_listener () const; void disconnect_from_parent (); void check_removal (); string context_name () const; SCM context_name_symbol () const; Global_context *get_global_context () const; virtual Context *get_score_context () const; virtual Output_def *get_output_def () const; virtual Moment now_mom () const; virtual Context *get_default_interpreter (string context_id = ""); bool is_alias (SCM) const; void add_alias (SCM); void add_context (Context *trans); bool is_bottom_context () const; bool is_removable () const; Context *find_create_context (SCM context_name, string id, SCM ops); Context *create_unique_context (SCM context_name, string context_id, SCM ops); vector path_to_acceptable_context (SCM alias) const; }; void apply_property_operations (Context *tg, SCM pre_init_ops); void execute_revert_property (Context *context, SCM context_property, SCM grob_property_path); void execute_pushpop_property (Context *trg, SCM prop, SCM eltprop, SCM val); void sloppy_general_pushpop_property (Context *context, SCM context_property, SCM grob_property_path, SCM val); SCM updated_grob_properties (Context *tg, SCM sym); Context *find_context_below (Context *where, SCM type_sym, string id); bool melisma_busy (Context *); Context *get_voice_to_lyrics (Context *lyrics); Grob *get_current_note_head (Context *voice, bool include_grace_notes); Grob *get_current_rest (Context *voice); inline Context * unsmob_context (SCM s) { return Context::unsmob (s); }; Moment measure_position (Context const *context); Moment measure_position (Context const *context, Duration const *dur); Rational measure_length (Context const *context); int measure_number (Context const *context); bool check_repeat_count_visibility (Context const *context, SCM count); void set_context_property_on_children (Context *trans, SCM sym, SCM val); # 170 "./include/context.hh" SCM nested_property_alist (SCM alist, SCM prop_path, SCM value); SCM nested_property_revert_alist (SCM alist, SCM prop_path); SCM evict_from_alist (SCM, SCM, SCM); # 21 "part-combine-iterator.cc" 2 # 1 "./include/dispatcher.hh" 1 # 24 "./include/dispatcher.hh" # 1 "./include/stream-event.hh" 1 # 25 "./include/stream-event.hh" # 1 "./include/prob.hh" 1 # 23 "./include/prob.hh" # 1 "./include/stencil.hh" 1 # 22 "./include/stencil.hh" # 1 "/usr/include/c++/4.6/cstdlib" 1 3 # 41 "/usr/include/c++/4.6/cstdlib" 3 # 42 "/usr/include/c++/4.6/cstdlib" 3 # 23 "./include/stencil.hh" 2 using namespace std; # 1 "./include/box.hh" 1 # 9 "./include/box.hh" # 1 "../flower/include/offset.hh" 1 # 32 "../flower/include/offset.hh" class Offset { public: Real coordinate_a_[NO_AXES]; Real &operator [] (Axis i) { return coordinate_a_[i]; } Real operator [] (Axis i) const { return coordinate_a_[i]; } Offset &operator += (Offset o) { (*this)[X_AXIS] += o[X_AXIS]; (*this)[Y_AXIS] += o[Y_AXIS]; return *this; } Offset operator - () const { Offset o = *this; o[X_AXIS] = -o[X_AXIS]; o[Y_AXIS] = -o[Y_AXIS]; return o; } Offset &operator -= (Offset o) { (*this)[X_AXIS] -= o[X_AXIS]; (*this)[Y_AXIS] -= o[Y_AXIS]; return *this; } Offset &scale (Offset o) { (*this)[X_AXIS] *= o[X_AXIS]; (*this)[Y_AXIS] *= o[Y_AXIS]; return *this; } Offset &operator /= (Real a) { (*this) *= 1 / a; return *this; } Offset &operator *= (Real a) { (*this)[X_AXIS] *= a; (*this)[Y_AXIS] *= a; return *this; } Offset (Real ix, Real iy) { coordinate_a_[X_AXIS] = ix; coordinate_a_[Y_AXIS] = iy; } Offset () { coordinate_a_[X_AXIS] = coordinate_a_[Y_AXIS] = 0.0; } string to_string () const; Offset &mirror (Axis a) { coordinate_a_[a] = -coordinate_a_[a]; return *this; } Offset direction () const; Offset swapped () const; Real arg () const; Real angle_degrees () const; Real length () const; bool is_sane () const; Offset operator *= (Offset z2); }; inline Offset operator + (Offset a1, Offset const &a2) { a1 += a2; return a1; }; inline Offset operator - (Offset a1, Offset const &a2) { a1 -= a2; return a1; }; inline Offset operator * (Offset a1, Offset const &a2) { a1 *= a2; return a1; }; Offset complex_multiply (Offset, Offset); Offset complex_divide (Offset, Offset); Offset complex_exp (Offset); inline Offset Offset::operator *= (Offset z2) { *this = complex_multiply (*this, z2); return *this; } inline Offset operator * (Real o1, Offset o2) { o2 *= o1; return o2; } inline Offset operator / (Offset o1, Real a) { o1 /= a; return o1; } inline Offset operator * (Offset o1, Real o2) { o1 *= o2; return o1; } inline Offset mirror (Offset o, Axis a) { o.mirror (a); return o; } inline Real dot_product (Offset o1, Offset o2) { return o1[X_AXIS] * o2[X_AXIS] + o1[Y_AXIS] * o2[Y_AXIS]; } # 10 "./include/box.hh" 2 class Box { Interval interval_a_[NO_AXES]; public: SCM smobbed_copy () const; friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Box *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Box *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private:; public: Interval &x () {return interval_a_[X_AXIS]; } Interval &y () { return interval_a_[Y_AXIS]; } Interval x () const { return interval_a_[X_AXIS]; } Interval y () const {return interval_a_[Y_AXIS]; } Interval operator [] (Axis a) const; Interval &operator [] (Axis a); Offset center () const; void translate (Offset o); void set_empty (); void add_point (Offset); void widen (Real x, Real y); void scale (Real r); void unite (Box b); void print (); Box (); Box (Interval ix, Interval iy); }; # 27 "./include/stencil.hh" 2 # 58 "./include/stencil.hh" class Stencil { Box dim_; SCM expr_; public: SCM smobbed_copy () const; friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Stencil *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Stencil *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private:; public: Stencil (Box, SCM s); Stencil (); SCM expr () const; void set_empty (bool); void add_at_edge (Axis a, Direction d, const Stencil &m, Real padding); void add_stencil (Stencil const &m); void translate (Offset); Stencil translated (Offset) const; void rotate (Real, Offset); void rotate_degrees (Real, Offset); void rotate_degrees_absolute (Real, Offset); void align_to (Axis a, Real x); void translate_axis (Real, Axis); void scale (Real, Real); Interval extent (Axis) const; Box extent_box () const; bool is_empty () const; Stencil in_color (Real r, Real g, Real b) const; }; inline Stencil * unsmob_stencil (SCM s) { return Stencil::unsmob (s); }; void interpret_stencil_expression (SCM expr, void (*func) (void *, SCM), void *func_arg, Offset o); SCM find_expression_fonts (SCM expr); void register_stencil_head (SCM symbol); bool is_stencil_head (SCM symbol); SCM all_stencil_heads (); # 24 "./include/prob.hh" 2 # 34 "./include/prob.hh" class Prob { friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Prob *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Prob *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private: protected: virtual ~Prob (); SCM unprotected_smobify_self (); private: void smobify_self (); SCM self_scm_; SCM protection_cons_; public: SCM unprotect (); void protect (); SCM self_scm () const { return self_scm_; } private:; virtual const char *class_name () const { return "Prob"; }; void init_vars (); protected: SCM mutable_property_alist_; SCM immutable_property_alist_; SCM type_; virtual void derived_mark () const; virtual SCM copy_mutable_properties () const; virtual void type_check_assignment (SCM, SCM) const; public: Prob (SCM, SCM); Prob (Prob const &); virtual string name () const; SCM type () const { return type_; } SCM get_property_alist (bool _mutable) const; SCM internal_get_property (SCM sym) const; void instrumented_set_property (SCM, SCM, const char *, int, const char *); void internal_set_property (SCM sym, SCM val); }; inline Prob * unsmob_prob (SCM s) { return Prob::unsmob (s); }; SCM ly_prob_set_property_x (SCM system, SCM sym, SCM value); SCM ly_prob_property (SCM prob, SCM sym, SCM val); SCM ly_prob_type_p (SCM obj, SCM sym); # 26 "./include/stream-event.hh" 2 class Stream_event : public Prob { public: Stream_event (); virtual const char *class_name () const { return "Stream_event"; }; virtual Stream_event *clone () const { return new Stream_event (*this); }; Stream_event (SCM event_class, SCM immutable_props = ((SCM) ((((4)) << 8) + scm_tc8_flag))); Stream_event (SCM class_name, Input *); Input *origin () const; void set_spot (Input *i); bool internal_in_event_class (SCM class_name); void make_transposable (); virtual SCM copy_mutable_properties () const; static SCM undump (SCM); static SCM undump_proc; static SCM dump (SCM); static SCM dump_proc; }; Stream_event *unsmob_stream_event (SCM); SCM ly_event_deep_copy (SCM); # 25 "./include/dispatcher.hh" 2 class Dispatcher { SCM listeners_; SCM dispatchers_; SCM listen_classes_; inline void dispatch (SCM); static void dispatch_callback (void *self, SCM ev); static void dispatch_mark (void *self); static bool dispatch_is_equal (void *a, void *b); Listener dispatch_listener () const; int priority_count_; void internal_add_listener (Listener, SCM event_class, int priority); public: Dispatcher (); void broadcast (Stream_event *ev); void add_listener (Listener, SCM event_class); void remove_listener (Listener, SCM event_class); void register_as_listener (Dispatcher *dist); void unregister_as_listener (Dispatcher *dist); protected: friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Dispatcher *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Dispatcher *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private: protected: virtual ~Dispatcher (); SCM unprotected_smobify_self (); private: void smobify_self (); SCM self_scm_; SCM protection_cons_; public: SCM unprotect (); void protect (); SCM self_scm () const { return self_scm_; } private:; }; inline Dispatcher * unsmob_dispatcher (SCM s) { return Dispatcher::unsmob (s); }; # 22 "part-combine-iterator.cc" 2 # 1 "./include/lily-guile.hh" 1 # 23 "part-combine-iterator.cc" 2 # 1 "./include/music.hh" 1 # 25 "./include/music.hh" # 1 "./include/pitch.hh" 1 # 35 "./include/pitch.hh" class Pitch { private: int octave_; int notename_; Rational alteration_; Scale *scale_; void transpose (Pitch); void up_to (int); void down_to (int); void normalize_octave (); void normalize_alteration (); void normalize (); public: int get_octave () const; int get_notename () const; Rational get_alteration () const; Pitch (int octave, int notename, Rational accidental); Pitch (int octave, int notename); Pitch (); Pitch transposed (Pitch) const; Pitch to_relative_octave (Pitch) const; Pitch normalized () const; static int compare (Pitch const &, Pitch const &); int steps () const; Rational tone_pitch () const; int rounded_semitone_pitch () const; int rounded_quartertone_pitch () const; Pitch negated () const; string to_string () const; static SCM less_p (SCM a, SCM b); static SCM less_p_proc; public: SCM smobbed_copy () const; friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Pitch *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Pitch *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private:; }; enum { DOUBLE_FLAT = -4, THREE_Q_FLAT, FLAT, SEMI_FLAT, NATURAL, SEMI_SHARP, SHARP, THREE_Q_SHARP, DOUBLE_SHARP, }; extern Rational DOUBLE_FLAT_ALTERATION; extern Rational THREE_Q_FLAT_ALTERATION; extern Rational FLAT_ALTERATION; extern Rational SEMI_FLAT_ALTERATION; extern Rational NATURAL_ALTERATION; extern Rational SEMI_SHARP_ALTERATION; extern Rational SHARP_ALTERATION; extern Rational THREE_Q_SHARP_ALTERATION; extern Rational DOUBLE_SHARP_ALTERATION; SCM ly_pitch_diff (SCM pitch, SCM root); SCM ly_pitch_transpose (SCM p, SCM delta); inline Pitch * unsmob_pitch (SCM s) { return Pitch::unsmob (s); }; inline bool operator > (Pitch t1, Pitch t2) { return Pitch::compare (t1, t2) > 0; } inline bool operator >= (Pitch t1, Pitch t2) { return Pitch::compare (t1, t2) >= 0; } inline bool operator == (Pitch t1, Pitch t2) { return Pitch::compare (t1, t2) == 0; } inline bool operator != (Pitch t1, Pitch t2) { return Pitch::compare (t1, t2) != 0; } inline bool operator < (Pitch t1, Pitch t2) { return Pitch::compare (t1, t2) < 0; } inline bool operator <= (Pitch t1, Pitch t2) { return Pitch::compare (t1, t2) <= 0; } inline Pitch max (Pitch t1, Pitch t2) { return (t1 > t2) ? t1 : t2; } inline Pitch min (Pitch t1, Pitch t2) { return (t1 < t2) ? t1 : t2; } bool operator < (Pitch t1, Pitch t2); extern SCM pitch_less_proc; Pitch pitch_interval (Pitch const &from, Pitch const &to); extern SCM Pitch_type_p_proc; # 26 "./include/music.hh" 2 class Music : public Prob { public: Music (SCM init); Music (Music const &m); virtual const char *class_name () const { return "Music"; }; virtual Music *clone () const { return new Music (*this); }; Input *origin () const; void set_spot (Input); bool internal_is_music_type (SCM) const; Stream_event *to_event () const; static SCM relative_callback (SCM, SCM); static SCM relative_callback_proc; Pitch to_relative_octave (Pitch); Pitch generic_to_relative_octave (Pitch); Moment get_length () const; Moment start_mom () const; void print () const; void transpose (Pitch p); void compress (Moment factor); void send_to_context (Context *c); static SCM duration_length_callback (SCM); static SCM duration_length_callback_proc; protected: virtual SCM copy_mutable_properties () const; virtual void type_check_assignment (SCM, SCM) const; virtual void derived_mark () const; protected: SCM length_callback_; SCM start_callback_; friend SCM ly_extended_make_music (SCM, SCM); }; Music *unsmob_music (SCM); Music *make_music_by_name (SCM sym); SCM ly_music_deep_copy (SCM); SCM ly_camel_case_2_lisp_identifier (SCM name_sym); extern SCM ly_music_p_proc; void transpose_mutable (SCM alist, Pitch delta); # 24 "part-combine-iterator.cc" 2 # 1 "./include/music-iterator.hh" 1 # 26 "./include/music-iterator.hh" # 1 "./include/context-handle.hh" 1 # 25 "./include/context-handle.hh" class Context_handle { public: ~Context_handle (); Context_handle (); void set_context (Context *); void operator = (Context_handle const &); Context_handle (Context_handle const &); Context *get_context () const; int get_count () const; private: Context *outlet_; void down (); void up (Context *); }; # 27 "./include/music-iterator.hh" 2 # 61 "./include/music-iterator.hh" class Music_iterator { protected: Moment music_length_; Moment start_mom_; virtual const char *class_name () const { return "Music_iterator"; }; friend class Non_existent_class; private: static const char* smob_name_; static scm_t_bits smob_tag_; static SCM mark_smob (SCM); static size_t free_smob (SCM s); static int print_smob (SCM s, SCM p, scm_print_state*); public: static SCM equal_p (SCM a, SCM b); static Music_iterator *unsmob (SCM s) __attribute__((pure)) { if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(s)): s)))) && ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((0))]))))) == smob_tag_) return (Music_iterator *) ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((s))))): (((s)))))))) [((1))]))))); else return 0; } static SCM smob_p (SCM); static void init_smobs (); private: protected: virtual ~Music_iterator (); SCM unprotected_smobify_self (); private: void smobify_self (); SCM self_scm_; SCM protection_cons_; public: SCM unprotect (); void protect (); SCM self_scm () const { return self_scm_; } private:; Music_iterator (Music_iterator const &); public: Moment music_get_length () const; Moment music_start_mom () const; Music_iterator (); void report_event (Music *); Context *get_outlet () const; void set_context (Context *); static SCM get_static_get_iterator (Music *mus); void init_context (Music *, Context *); void quit (); void substitute_outlet (Context *from, Context *to); void descend_to_bottom_context (); virtual void derived_substitute (Context *, Context *); virtual Moment pending_moment () const; virtual bool ok () const; virtual bool run_always () const; virtual void process (Moment until); virtual void derived_mark () const; virtual void construct_children (); static SCM constructor (); static SCM constructor_proc; SCM get_iterator (Music *) const; Music *get_music () const; protected: virtual void do_quit (); void descend_to_child (Context *); private: Context_handle handle_; Music *music_; }; bool is_child_context (Context *me, Context *child); # 116 "./include/music-iterator.hh" inline Music_iterator * unsmob_iterator (SCM s) { return Music_iterator::unsmob (s); }; # 25 "part-combine-iterator.cc" 2 # 1 "./include/music-sequence.hh" 1 # 27 "./include/music-sequence.hh" struct Music_sequence { public: static SCM cumulative_length_callback (SCM); static SCM cumulative_length_callback_proc; static SCM maximum_length_callback (SCM); static SCM maximum_length_callback_proc; static SCM event_chord_length_callback (SCM); static SCM event_chord_length_callback_proc; static SCM minimum_start_callback (SCM); static SCM minimum_start_callback_proc; static SCM first_start_callback (SCM); static SCM first_start_callback_proc; static SCM simultaneous_relative_callback (SCM, SCM); static SCM simultaneous_relative_callback_proc; static SCM event_chord_relative_callback (SCM, SCM); static SCM event_chord_relative_callback_proc; Pitch do_relative_octave (Pitch p, bool b); static Moment cumulative_length (SCM); static Moment maximum_length (SCM); static Moment first_start (SCM list); static Moment minimum_start (SCM list); }; SCM ly_transpose_key_alist (SCM l, SCM pit); Pitch music_list_to_relative (SCM l, Pitch p, bool ret_first); void transpose_music_list (SCM, Pitch); void compress_music_list (SCM, Moment); # 26 "part-combine-iterator.cc" 2 enum Outlet_type { CONTEXT_ONE, CONTEXT_TWO, CONTEXT_SHARED, CONTEXT_SOLO, CONTEXT_NULL, NUM_OUTLETS }; static const char *outlet_names_[NUM_OUTLETS] = {"one", "two", "shared", "solo", "null"}; class Part_combine_iterator : public Music_iterator { public: Part_combine_iterator (); static SCM constructor (); static SCM constructor_proc; protected: virtual void derived_substitute (Context *f, Context *t); virtual void derived_mark () const; virtual void construct_children (); virtual Moment pending_moment () const; virtual void do_quit (); virtual void process (Moment); virtual bool ok () const; private: inline void set_busy (SCM); static void set_busy_callback (void *self, SCM ev); static void set_busy_mark (void *self); static bool set_busy_is_equal (void *a, void *b); Listener set_busy_listener () const; bool busy_; bool notice_busy_; bool try_process (Music_iterator *i, Moment m); Music_iterator *first_iter_; Music_iterator *second_iter_; Moment start_moment_; SCM split_list_; SCM direction_; SCM directionOne_; SCM directionTwo_; SCM horizontalShiftOne_; SCM horizontalShiftTwo_; Stream_event *unisono_event_; Stream_event *solo_one_event_; Stream_event *solo_two_event_; Stream_event *mmrest_event_; enum Status { APART, TOGETHER, SOLO1, SOLO2, UNISONO, UNISILENCE, }; Status state_; Status playing_state_; Status last_playing_; Context_handle handles_[NUM_OUTLETS]; void substitute_both (Outlet_type to1, Outlet_type to2); void kill_mmrest (int in); void chords_together (); void solo1 (); void solo2 (); void apart (bool silent); void unisono (bool silent); }; void Part_combine_iterator::do_quit () { if (first_iter_) first_iter_->quit (); if (second_iter_) second_iter_->quit (); for (int i = 0; i < NUM_OUTLETS; i++) { Context *c = handles_[i].get_context (); if (c->is_alias (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("Voice"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("Voice")); } else value = scm_or_str2symbol ("Voice"); value; }))) c->event_source ()->remove_listener (set_busy_listener (), ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("music-event"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("music-event")); } else value = scm_or_str2symbol ("music-event"); value; })); handles_[i].set_context (0); } } Part_combine_iterator::Part_combine_iterator () { mmrest_event_ = 0; unisono_event_ = 0; solo_two_event_ = 0; solo_one_event_ = 0; first_iter_ = 0; second_iter_ = 0; split_list_ = ((SCM) ((((4)) << 8) + scm_tc8_flag)); direction_ = ((SCM) ((((0)) << 8) + scm_tc8_flag)); directionOne_ = scm_from_int32 (1); directionTwo_ = scm_from_int32 (-1); horizontalShiftOne_ = scm_from_int32 (0); horizontalShiftTwo_ = scm_from_int32 (1); state_ = APART; playing_state_ = APART; last_playing_ = APART; busy_ = false; notice_busy_ = false; } void Part_combine_iterator::derived_mark () const { if (first_iter_) scm_gc_mark (first_iter_->self_scm ()); if (second_iter_) scm_gc_mark (second_iter_->self_scm ()); static Stream_event * Part_combine_iterator::* ptrs[] = { &Part_combine_iterator::unisono_event_, &Part_combine_iterator::mmrest_event_, &Part_combine_iterator::solo_two_event_, &Part_combine_iterator::solo_one_event_, 0 }; for (int i = 0; ptrs[i]; i++) if (ptrs[i]) scm_gc_mark (ptrs[i]->*self_scm ()); } void Part_combine_iterator::derived_substitute (Context *f, Context *t) { if (first_iter_) first_iter_->substitute_outlet (f, t); } Moment Part_combine_iterator::pending_moment () const { Moment p; p.set_infinite (1); if (first_iter_->ok ()) p = min (p, first_iter_->pending_moment ()); if (second_iter_->ok ()) p = min (p, second_iter_->pending_moment ()); return p; } bool Part_combine_iterator::ok () const { return first_iter_->ok () || second_iter_->ok (); } void Part_combine_iterator::substitute_both (Outlet_type to1, Outlet_type to2) { Outlet_type tos[] = {to1, to2}; Music_iterator *mis[] = {first_iter_, second_iter_}; for (int i = 0; i < 2; i++) { for (int j = 0; j < NUM_OUTLETS; j++) if (j != tos[i]) mis[i]->substitute_outlet (handles_[j].get_context (), handles_[tos[i]].get_context ()); } for (int j = 0; j < NUM_OUTLETS; j++) { if (j != to1 && j != to2) kill_mmrest (j); } } void Part_combine_iterator::kill_mmrest (int in) { if (!mmrest_event_) { mmrest_event_ = new Stream_event (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("multi-measure-rest-event"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("multi-measure-rest-event")); } else value = scm_or_str2symbol ("multi-measure-rest-event"); value; })); mmrest_event_->instrumented_set_property (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("duration"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("duration")); } else value = scm_or_str2symbol ("duration"); value; }), ((SCM) ((((4)) << 8) + scm_tc8_flag)), "part-combine-iterator.cc", 232, __FUNCTION__); mmrest_event_->unprotect (); } handles_[in].get_context ()->event_source ()->broadcast (mmrest_event_); } void Part_combine_iterator::unisono (bool silent) { Status newstate = (silent) ? UNISILENCE : UNISONO; if (newstate == state_) return; else { Outlet_type c1 = (last_playing_ == SOLO2) ? CONTEXT_NULL : CONTEXT_SHARED; Outlet_type c2 = (last_playing_ == SOLO2) ? CONTEXT_SHARED : CONTEXT_NULL; substitute_both (c1, c2); kill_mmrest ((last_playing_ == SOLO2) ? CONTEXT_ONE : CONTEXT_TWO); kill_mmrest (CONTEXT_SHARED); if (playing_state_ != UNISONO && newstate == UNISONO) { if (!unisono_event_) { unisono_event_ = new Stream_event (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("unisono-event"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("unisono-event")); } else value = scm_or_str2symbol ("unisono-event"); value; })); unisono_event_->unprotect (); } Context *out = (last_playing_ == SOLO2 ? second_iter_ : first_iter_) ->get_outlet (); out->event_source ()->broadcast (unisono_event_); playing_state_ = UNISONO; } state_ = newstate; } } void Part_combine_iterator::solo1 () { if (state_ == SOLO1) return; else { state_ = SOLO1; substitute_both (CONTEXT_SOLO, CONTEXT_NULL); kill_mmrest (CONTEXT_TWO); kill_mmrest (CONTEXT_SHARED); if (playing_state_ != SOLO1) { if (!solo_one_event_) { solo_one_event_ = new Stream_event (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("solo-one-event"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("solo-one-event")); } else value = scm_or_str2symbol ("solo-one-event"); value; })); solo_one_event_->unprotect (); } first_iter_->get_outlet ()->event_source ()->broadcast (solo_one_event_); } playing_state_ = SOLO1; } } void Part_combine_iterator::solo2 () { if (state_ == SOLO2) return; else { state_ = SOLO2; substitute_both (CONTEXT_NULL, CONTEXT_SOLO); if (playing_state_ != SOLO2) { if (!solo_two_event_) { solo_two_event_ = new Stream_event (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("solo-two-event"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("solo-two-event")); } else value = scm_or_str2symbol ("solo-two-event"); value; })); solo_two_event_->unprotect (); } second_iter_->get_outlet ()->event_source ()->broadcast (solo_two_event_); playing_state_ = SOLO2; } } } void Part_combine_iterator::chords_together () { if (state_ == TOGETHER) return; else { playing_state_ = TOGETHER; state_ = TOGETHER; substitute_both (CONTEXT_SHARED, CONTEXT_SHARED); } } void Part_combine_iterator::apart (bool silent) { if (!silent) playing_state_ = APART; if (state_ == APART) return; else { state_ = APART; substitute_both (CONTEXT_ONE, CONTEXT_TWO); } } void Part_combine_iterator::construct_children () { start_moment_ = get_outlet ()->now_mom (); split_list_ = get_music ()->internal_get_property (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("split-list"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("split-list")); } else value = scm_or_str2symbol ("split-list"); value; })); direction_ = get_music ()->internal_get_property (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("direction"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("direction")); } else value = scm_or_str2symbol ("direction"); value; })); if (is_direction (direction_)) { directionOne_ = direction_; directionTwo_ = direction_; if (!(((scm_t_bits) (0? (*(SCM*)0=((scm_negative_p (direction_)))): (scm_negative_p (direction_)))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((0)) << 8) + scm_tc8_flag)))): ((SCM) ((((0)) << 8) + scm_tc8_flag)))))) { horizontalShiftOne_ = scm_from_int32 (1); horizontalShiftTwo_ = scm_from_int32 (0); } } Context *c = get_outlet (); for (int i = 0; i < NUM_OUTLETS; i++) { SCM type = (i == CONTEXT_NULL) ? ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("Devnull"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("Devnull")); } else value = scm_or_str2symbol ("Devnull"); value; }) : ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("Voice"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("Voice")); } else value = scm_or_str2symbol ("Voice"); value; }); c = c->find_create_context (type, outlet_names_[i], ((SCM) ((((4)) << 8) + scm_tc8_flag))); handles_[i].set_context (c); if (c->is_alias (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("Voice"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("Voice")); } else value = scm_or_str2symbol ("Voice"); value; }))) c->event_source ()->add_listener (set_busy_listener (), ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("music-event"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("music-event")); } else value = scm_or_str2symbol ("music-event"); value; })); } SCM lst = get_music ()->internal_get_property (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("elements"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("elements")); } else value = scm_or_str2symbol ("elements"); value; })); Context *one = handles_[CONTEXT_ONE].get_context (); set_context (one); first_iter_ = unsmob_iterator (get_iterator (unsmob_music (ly_car (lst)))); Context *two = handles_[CONTEXT_TWO].get_context (); set_context (two); second_iter_ = unsmob_iterator (get_iterator (unsmob_music (scm_i_chase_pairs ((lst), 0x0e)))); Context *shared = handles_[CONTEXT_SHARED].get_context (); set_context (shared); char const *syms[] = { "Stem", "DynamicLineSpanner", "Tie", "Dots", "Rest", "Slur", "TextScript", "Script", 0 }; for (char const **p = syms; *p; p++) { SCM sym = ({ static SCM cached; SCM value = cached; if (__builtin_constant_p ((*p))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol (*p)); } else value = scm_or_str2symbol (*p); value; }); execute_pushpop_property (one, sym, ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("direction"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("direction")); } else value = scm_or_str2symbol ("direction"); value; }), directionOne_); execute_pushpop_property (two, sym, ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("direction"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("direction")); } else value = scm_or_str2symbol ("direction"); value; }), directionTwo_); if (scm_is_number (direction_)) execute_pushpop_property (shared, sym, ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("direction"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("direction")); } else value = scm_or_str2symbol ("direction"); value; }), direction_); } execute_pushpop_property (one, ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("NoteColumn"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("NoteColumn")); } else value = scm_or_str2symbol ("NoteColumn"); value; }), ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("horizontal-shift"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("horizontal-shift")); } else value = scm_or_str2symbol ("horizontal-shift"); value; }), horizontalShiftOne_); execute_pushpop_property (two, ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("NoteColumn"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("NoteColumn")); } else value = scm_or_str2symbol ("NoteColumn"); value; }), ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("horizontal-shift"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("horizontal-shift")); } else value = scm_or_str2symbol ("horizontal-shift"); value; }), horizontalShiftTwo_); execute_pushpop_property (one, ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("MultiMeasureRest"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("MultiMeasureRest")); } else value = scm_or_str2symbol ("MultiMeasureRest"); value; }), ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("staff-position"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("staff-position")); } else value = scm_or_str2symbol ("staff-position"); value; }), scm_from_int32 (4)); execute_pushpop_property (two, ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("MultiMeasureRest"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("MultiMeasureRest")); } else value = scm_or_str2symbol ("MultiMeasureRest"); value; }), ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("staff-position"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("staff-position")); } else value = scm_or_str2symbol ("staff-position"); value; }), scm_from_int32 (-4)); } void Part_combine_iterator :: set_busy_callback (void *self, SCM ev) { Part_combine_iterator *s = (Part_combine_iterator *)self; s->set_busy (ev); } void Part_combine_iterator :: set_busy_mark (void *self) { Part_combine_iterator *s = (Part_combine_iterator *)self; scm_gc_mark (s->self_scm ()); } bool Part_combine_iterator :: set_busy_is_equal (void *a, void *b) { return a == b; } Listener Part_combine_iterator :: set_busy_listener () const { static Listener_function_table callbacks; callbacks.listen_callback = &Part_combine_iterator::set_busy_callback; callbacks.mark_callback = &Part_combine_iterator::set_busy_mark; callbacks.equal_callback = &Part_combine_iterator::set_busy_is_equal; return Listener (this, &callbacks); }; void Part_combine_iterator::set_busy (SCM se) { if (!notice_busy_) return; Stream_event *e = unsmob_stream_event (se); if (e->internal_in_event_class (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("note-event"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("note-event")); } else value = scm_or_str2symbol ("note-event"); value; })) || e->internal_in_event_class (({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("cluster-note-event"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("cluster-note-event")); } else value = scm_or_str2symbol ("cluster-note-event"); value; }))) busy_ = true; } bool Part_combine_iterator::try_process (Music_iterator *i, Moment m) { busy_ = false; notice_busy_ = true; i->process (m); notice_busy_ = false; return busy_; } void Part_combine_iterator::process (Moment m) { Moment now = get_outlet ()->now_mom (); Moment *splitm = 0; if (start_moment_.main_part_.is_infinity () && start_moment_ < 0) start_moment_ = now; for (; ly_is_pair (split_list_); split_list_ = ly_cdr (split_list_)) { splitm = unsmob_moment (scm_i_chase_pairs ((split_list_), 0x0f)); if (splitm && *splitm + start_moment_ > now) break; SCM tag = scm_i_chase_pairs ((split_list_), 0x0b); if (tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("chords"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("chords")); } else value = scm_or_str2symbol ("chords"); value; })) chords_together (); else if (tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("apart"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("apart")); } else value = scm_or_str2symbol ("apart"); value; }) || tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("apart-silence"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("apart-silence")); } else value = scm_or_str2symbol ("apart-silence"); value; }) || tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("apart-spanner"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("apart-spanner")); } else value = scm_or_str2symbol ("apart-spanner"); value; })) apart (tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("apart-silence"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("apart-silence")); } else value = scm_or_str2symbol ("apart-silence"); value; })); else if (tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("unisono"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("unisono")); } else value = scm_or_str2symbol ("unisono"); value; })) unisono (false); else if (tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("unisilence"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("unisilence")); } else value = scm_or_str2symbol ("unisilence"); value; })) unisono (true); else if (tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("solo1"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("solo1")); } else value = scm_or_str2symbol ("solo1"); value; })) solo1 (); else if (tag == ({ static SCM cached; SCM value = cached; if (__builtin_constant_p (("solo2"))) { if (!cached) value = cached = scm_gc_protect_object (scm_or_str2symbol ("solo2")); } else value = scm_or_str2symbol ("solo2"); value; })) solo2 (); else if ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(tag)): tag))) && ((0x7f & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((tag))))): (((tag)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((tag))))): (((tag)))))))) [((0))])))))) == 5))) { string s = "Unknown split directive: " + ((!(6 & ((scm_t_bits) (0? (*(SCM*)0=(tag)): tag))) && ((0x7f & ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((tag))))): (((tag)))))))) [((0))]))): (((SCM *)((scm_t_cell *) (((scm_t_bits) (0? (*(SCM*)0=((((tag))))): (((tag)))))))) [((0))])))))) == 5)) ? ly_symbol2string (tag) : string ("not a symbol")); programming_error (s); } } if (first_iter_->ok ()) { if (try_process (first_iter_, m)) last_playing_ = SOLO1; } if (second_iter_->ok ()) { if (try_process (second_iter_, m)) last_playing_ = SOLO2; } } SCM constructor (); SCM Part_combine_iterator::constructor_proc; void Part_combine_iteratorconstructorinit () { Part_combine_iterator::constructor_proc = scm_c_define_gsubr (mangle_cxx_identifier (string ("Part_combine_iterator") + "::constructor").c_str(), 0, 0, 0, (scm_t_subr) Part_combine_iterator::constructor); ly_check_name ("Part_combine_iterator::constructor", mangle_cxx_identifier (string ("Part_combine_iterator") + "::constructor").c_str()); ly_add_function_documentation (Part_combine_iterator::constructor_proc, mangle_cxx_identifier (string ("Part_combine_iterator") + "::constructor").c_str(), "()", ""); scm_c_export (mangle_cxx_identifier (string ("Part_combine_iterator") + "::constructor").c_str(), __null); } class Part_combine_iteratorconstructorinit_unique_prefix_scm_initter { public: Part_combine_iteratorconstructorinit_unique_prefix_scm_initter () { add_scm_init_func (Part_combine_iteratorconstructorinit); } } _Part_combine_iteratorconstructorinit_unique_prefix_scm_initter;; SCM Part_combine_iterator::constructor () { Part_combine_iterator *c = (new Part_combine_iterator); return c->unprotect (); };