/*********************************************************************** * promote.h Arithmetic type promotion trait class * Author: Todd Veldhuizen (tveldhui@seurat.uwaterloo.ca) * * Copyright (C) 1997,1998 Todd Veldhuizen * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * Suggestions: blitz-suggest@cybervision.com * Bugs: blitz-bugs@cybervision.com * * For more information, please see the Blitz++ Home Page: * http://seurat.uwaterloo.ca/blitz/ * *************************************************************************** */ // Generated: genpromote.cpp Aug 7 1997 14:59:32 template class promote_trait { public: typedef A T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef unsigned int T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef unsigned long T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef float T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; template<> class promote_trait { public: typedef long double T_promote; }; #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , char> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned char> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , short int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , short unsigned int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , long> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned long> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , float> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , double> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , long double> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , char> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned char> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , short int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , short unsigned int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , long> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned long> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , float> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , double> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , long double> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , char> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned char> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , short int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , short unsigned int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned int> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , long> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , unsigned long> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , float> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , double> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , long double> { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif #ifdef BZ_HAVE_COMPLEX template<> class promote_trait , complex > { public: typedef complex T_promote; }; #endif