100db7afdSDavid E. O'Brien // The template and inlines for the -*- C++ -*- complex number classes. 200db7afdSDavid E. O'Brien 3*f8a1b7d9SAlexander Kabaev // Copyright (C) 2000, 2001, 2005, 2006 Free Software Foundation, Inc. 400db7afdSDavid E. O'Brien // 500db7afdSDavid E. O'Brien // This file is part of the GNU ISO C++ Library. This library is free 600db7afdSDavid E. O'Brien // software; you can redistribute it and/or modify it under the 700db7afdSDavid E. O'Brien // terms of the GNU General Public License as published by the 800db7afdSDavid E. O'Brien // Free Software Foundation; either version 2, or (at your option) 900db7afdSDavid E. O'Brien // any later version. 1000db7afdSDavid E. O'Brien 1100db7afdSDavid E. O'Brien // This library is distributed in the hope that it will be useful, 1200db7afdSDavid E. O'Brien // but WITHOUT ANY WARRANTY; without even the implied warranty of 1300db7afdSDavid E. O'Brien // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1400db7afdSDavid E. O'Brien // GNU General Public License for more details. 1500db7afdSDavid E. O'Brien 1600db7afdSDavid E. O'Brien // You should have received a copy of the GNU General Public License along 1700db7afdSDavid E. O'Brien // with this library; see the file COPYING. If not, write to the Free 18*f8a1b7d9SAlexander Kabaev // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 1900db7afdSDavid E. O'Brien // USA. 2000db7afdSDavid E. O'Brien 2100db7afdSDavid E. O'Brien // As a special exception, you may use this file as part of a free software 2200db7afdSDavid E. O'Brien // library without restriction. Specifically, if other files instantiate 2300db7afdSDavid E. O'Brien // templates or use macros or inline functions from this file, or you compile 2400db7afdSDavid E. O'Brien // this file and link it with other files to produce an executable, this 2500db7afdSDavid E. O'Brien // file does not by itself cause the resulting executable to be covered by 2600db7afdSDavid E. O'Brien // the GNU General Public License. This exception does not however 2700db7afdSDavid E. O'Brien // invalidate any other reasons why the executable file might be covered by 2800db7afdSDavid E. O'Brien // the GNU General Public License. 2900db7afdSDavid E. O'Brien 3000db7afdSDavid E. O'Brien #include <complex> 3100db7afdSDavid E. O'Brien 32*f8a1b7d9SAlexander Kabaev _GLIBCXX_BEGIN_NAMESPACE(std) 33*f8a1b7d9SAlexander Kabaev 3400db7afdSDavid E. O'Brien template 3500db7afdSDavid E. O'Brien basic_istream<char, char_traits<char> >& 3600db7afdSDavid E. O'Brien operator>>(basic_istream<char, char_traits<char> >&, complex<float>&); 3700db7afdSDavid E. O'Brien 3800db7afdSDavid E. O'Brien template 3900db7afdSDavid E. O'Brien basic_ostream<char, char_traits<char> >& 4000db7afdSDavid E. O'Brien operator<<(basic_ostream<char, char_traits<char> >&, 4100db7afdSDavid E. O'Brien const complex<float>&); 4200db7afdSDavid E. O'Brien 4300db7afdSDavid E. O'Brien template 4400db7afdSDavid E. O'Brien basic_istream<char, char_traits<char> >& 4500db7afdSDavid E. O'Brien operator>>(basic_istream<char, char_traits<char> >&, complex<double>&); 4600db7afdSDavid E. O'Brien 4700db7afdSDavid E. O'Brien template 4800db7afdSDavid E. O'Brien basic_ostream<char, char_traits<char> >& 4900db7afdSDavid E. O'Brien operator<<(basic_ostream<char, char_traits<char> >&, 5000db7afdSDavid E. O'Brien const complex<double>&); 5100db7afdSDavid E. O'Brien 5200db7afdSDavid E. O'Brien template 5300db7afdSDavid E. O'Brien basic_istream<char, char_traits<char> >& 5400db7afdSDavid E. O'Brien operator>>(basic_istream<char, char_traits<char> >&, 5500db7afdSDavid E. O'Brien complex<long double>&); 5600db7afdSDavid E. O'Brien 5700db7afdSDavid E. O'Brien template 5800db7afdSDavid E. O'Brien basic_ostream<char, char_traits<char> >& 5900db7afdSDavid E. O'Brien operator<<(basic_ostream<char, char_traits<char> >&, 6000db7afdSDavid E. O'Brien const complex<long double>&); 6100db7afdSDavid E. O'Brien 62ffeaf689SAlexander Kabaev #ifdef _GLIBCXX_USE_WCHAR_T 6300db7afdSDavid E. O'Brien template 6400db7afdSDavid E. O'Brien basic_istream<wchar_t, char_traits<wchar_t> >& 6500db7afdSDavid E. O'Brien operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, 6600db7afdSDavid E. O'Brien complex<float>&); 6700db7afdSDavid E. O'Brien 6800db7afdSDavid E. O'Brien template 6900db7afdSDavid E. O'Brien basic_ostream<wchar_t, char_traits<wchar_t> >& 7000db7afdSDavid E. O'Brien operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, 7100db7afdSDavid E. O'Brien const complex<float>&); 7200db7afdSDavid E. O'Brien 7300db7afdSDavid E. O'Brien template 7400db7afdSDavid E. O'Brien basic_istream<wchar_t, char_traits<wchar_t> >& 7500db7afdSDavid E. O'Brien operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, 7600db7afdSDavid E. O'Brien complex<double>&); 7700db7afdSDavid E. O'Brien 7800db7afdSDavid E. O'Brien template 7900db7afdSDavid E. O'Brien basic_ostream<wchar_t, char_traits<wchar_t> >& 8000db7afdSDavid E. O'Brien operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, 8100db7afdSDavid E. O'Brien const complex<double>&); 8200db7afdSDavid E. O'Brien 8300db7afdSDavid E. O'Brien template 8400db7afdSDavid E. O'Brien basic_istream<wchar_t, char_traits<wchar_t> >& 8500db7afdSDavid E. O'Brien operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, 8600db7afdSDavid E. O'Brien complex<long double>&); 8700db7afdSDavid E. O'Brien 8800db7afdSDavid E. O'Brien template 8900db7afdSDavid E. O'Brien basic_ostream<wchar_t, char_traits<wchar_t> >& 9000db7afdSDavid E. O'Brien operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, 9100db7afdSDavid E. O'Brien const complex<long double>&); 92ffeaf689SAlexander Kabaev #endif //_GLIBCXX_USE_WCHAR_T 93*f8a1b7d9SAlexander Kabaev 94*f8a1b7d9SAlexander Kabaev _GLIBCXX_END_NAMESPACE 95*f8a1b7d9SAlexander Kabaev 96*f8a1b7d9SAlexander Kabaev // XXX GLIBCXX_ABI Deprecated 97*f8a1b7d9SAlexander Kabaev #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT 98*f8a1b7d9SAlexander Kabaev 99*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ 100*f8a1b7d9SAlexander Kabaev extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak)) 101*f8a1b7d9SAlexander Kabaev 102*f8a1b7d9SAlexander Kabaev _GLIBCXX_LDBL_COMPAT (_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E, 103*f8a1b7d9SAlexander Kabaev _ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E); 104*f8a1b7d9SAlexander Kabaev _GLIBCXX_LDBL_COMPAT (_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E, 105*f8a1b7d9SAlexander Kabaev _ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E); 106*f8a1b7d9SAlexander Kabaev _GLIBCXX_LDBL_COMPAT (_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E, 107*f8a1b7d9SAlexander Kabaev _ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E); 108*f8a1b7d9SAlexander Kabaev _GLIBCXX_LDBL_COMPAT (_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E, 109*f8a1b7d9SAlexander Kabaev _ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E); 110*f8a1b7d9SAlexander Kabaev 111*f8a1b7d9SAlexander Kabaev #endif // _GLIBCXX_LONG_DOUBLE_COMPAT 112