promote.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:3k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: promote.hpp,v $
  4.  * PRODUCTION Revision 1000.2  2004/06/01 19:48:58  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.9
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef GUI_MATH___PROMOTE__HPP
  10. #define GUI_MATH___PROMOTE__HPP
  11. #include <util/math/promote.hpp>
  12. /** @addtogroup GUI_MATH
  13.  *
  14.  * @{
  15.  */
  16. BEGIN_NCBI_SCOPE
  17. //
  18. // prmotion rules for non-builtin types
  19. // we add these as we need them
  20. //
  21. //
  22. // promote: int + CVect/CMatrix<int> --> ???
  23. NCBI_PROMOTE2_TRAITS(int, CVect2<int>, CVect2<int>);
  24. NCBI_PROMOTE2_TRAITS(int, CVect3<int>, CVect3<int>);
  25. NCBI_PROMOTE2_TRAITS(int, CVect4<int>, CVect4<int>);
  26. NCBI_PROMOTE2_TRAITS(int, CMatrix3<int>, CMatrix3<int>);
  27. NCBI_PROMOTE2_TRAITS(int, CMatrix4<int>, CMatrix4<int>);
  28. //
  29. // promote: int + CVect/CMatrix<float> --> ???
  30. NCBI_PROMOTE2_TRAITS(int, CVect2<float>, CVect2<float>);
  31. NCBI_PROMOTE2_TRAITS(int, CVect3<float>, CVect3<float>);
  32. NCBI_PROMOTE2_TRAITS(int, CVect4<float>, CVect4<float>);
  33. NCBI_PROMOTE2_TRAITS(int, CMatrix3<float>, CMatrix3<float>);
  34. NCBI_PROMOTE2_TRAITS(int, CMatrix4<float>, CMatrix4<float>);
  35. //
  36. // promote: float + CVect/CMatrix<int> --> ???
  37. NCBI_PROMOTE2_TRAITS(float, CVect2<int>, CVect2<float>);
  38. NCBI_PROMOTE2_TRAITS(float, CVect3<int>, CVect3<float>);
  39. NCBI_PROMOTE2_TRAITS(float, CVect4<int>, CVect4<float>);
  40. NCBI_PROMOTE2_TRAITS(float, CMatrix3<int>, CMatrix3<float>);
  41. NCBI_PROMOTE2_TRAITS(float, CMatrix4<int>, CMatrix4<float>);
  42. //
  43. // promote: float + CVect/CMatrix<float> --> ???
  44. NCBI_PROMOTE2_TRAITS(float, CVect2<float>, CVect2<float>);
  45. NCBI_PROMOTE2_TRAITS(float, CVect3<float>, CVect3<float>);
  46. NCBI_PROMOTE2_TRAITS(float, CVect4<float>, CVect4<float>);
  47. NCBI_PROMOTE2_TRAITS(float, CMatrix3<float>, CMatrix3<float>);
  48. NCBI_PROMOTE2_TRAITS(float, CMatrix4<float>, CMatrix4<float>);
  49. //
  50. // promote: double + CVect/CMatrix<double> --> ???
  51. NCBI_PROMOTE2_TRAITS(double, CVect2<double>, CVect2<double>);
  52. NCBI_PROMOTE2_TRAITS(double, CVect3<double>, CVect3<double>);
  53. NCBI_PROMOTE2_TRAITS(double, CVect4<double>, CVect4<double>);
  54. NCBI_PROMOTE2_TRAITS(double, CMatrix3<double>, CMatrix3<double>);
  55. NCBI_PROMOTE2_TRAITS(double, CMatrix4<double>, CMatrix4<double>);
  56. //
  57. // promote: CVect/CMatrix<float> + CVect/CMatrix<float> --> ???
  58. NCBI_PROMOTE2_TRAITS(CVect3<float>, CVect4<float>, CVect4<float>);
  59. NCBI_PROMOTE2_TRAITS(CVect3<float>, CMatrix3<float>, CMatrix3<float>);
  60. NCBI_PROMOTE2_TRAITS(CVect3<float>, CMatrix4<float>, CMatrix4<float>);
  61. NCBI_PROMOTE2_TRAITS(CVect4<float>, CMatrix4<float>, CMatrix4<float>);
  62. NCBI_PROMOTE2_TRAITS(float, CVect4< CVect3<float> >, CVect4< CVect3<float> >);
  63. NCBI_PROMOTE2_TRAITS(float, CMatrix4< CVect3<float> >, CMatrix4< CVect3<float> >);
  64. END_NCBI_SCOPE
  65. /* @} */
  66. /*
  67.  * ==========================================================================
  68.  * $Log: promote.hpp,v $
  69.  * Revision 1000.2  2004/06/01 19:48:58  gouriano
  70.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.9
  71.  *
  72.  * Revision 1.9  2004/05/11 18:53:50  dicuccio
  73.  * Added doxygen modules info
  74.  *
  75.  * ==========================================================================
  76.  *
  77.  */
  78. #endif  // GUI_MATH___PROMOTE__HPP