/*********************************************************************** * promote.h Arithmetic type promotion trait class * Author: Todd Veldhuizen (tveldhui@seurat.uwaterloo.ca) * * This program may be distributed in an unmodified form. It may not be * sold or used in a commercial product. * * For more information on these template techniques, please see the * Blitz++ Numerical Library Project, at URL http://monet.uwaterloo.ca/blitz/ * * This trait class provides a mechanism for type promotion on vectors, * matrices, and arrays. For example, when you add a Vector to * a Vector, the result should be promoted to a Vector. * * Sample usage: * template * Vector::T_promote> operator+(const Vector&, * const Vector&); */ class Warning_promote_trait_not_specialized_for_this_case { }; template class promote_trait { public: typedef Warning_promote_trait_not_specialized_for_this_case T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef unsigned int T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef unsigned long T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef float T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; }; class promote_trait { public: typedef long double T_promote; };