home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cslio205.zip / INCLUDE / CSMAXMIN.H < prev    next >
C/C++ Source or Header  |  1997-01-21  |  4KB  |  92 lines

  1. /***********************************************************************
  2.  
  3.                        CSA Library, Free Evaluation Version 2.0.5 
  4.                                        Release: January 22th 1997 
  5.  
  6.          Inline versions of 'max' and 'min' which return an
  7.          'appropriate' variable type.
  8.          Useful for calling polymorphic functions.
  9.  
  10.                                            Copyright(c) 1994-1997 
  11.                                                           ComBits 
  12.                                                   The Netherlands 
  13. ***********************************************************************/
  14.  
  15. #ifndef __CSMAXMIN_H
  16. #define __CSMAXMIN_H
  17.  
  18.  
  19. #include "cstypes.h"
  20.  
  21.  
  22. #ifdef _CP_001
  23. #pragma warn -sig
  24. #endif
  25.  
  26. #ifdef _CP_002
  27. #pragma warning(disable : 4051 4135)
  28. #endif
  29.  
  30. #ifdef _CP_004
  31. #pragma warning  389  9
  32. #endif
  33.  
  34.  
  35. inline U16    csmin(U16  x,U16    y)          { return (x<y) ? x: y; }
  36. inline S16    csmin(S16  x,U16    y)          { return ((S32)x<(S32)y) ? x: y; }
  37. inline S32    csmin(S32  x,U16    y)          { return ((S32)x<(S32)y) ? x: y; }
  38. inline U16    csmin(U32  x,U16    y)          { return (x<y) ? x: y; }
  39. inline S16    csmin(U16  x,S16    y)          { return ((S32)x<(S32)y) ? x: y; }
  40. inline S16    csmin(S16  x,S16    y)          { return (x<y) ? x: y; }
  41. inline S32    csmin(S32  x,S16    y)          { return (x<y) ? x: y; }
  42. inline S16    csmin(U32  x,S16    y)          { return ((S32)x<(S32)y) ? x: y; }
  43. inline S32    csmin(U16  x,S32    y)          { return ((S32)x<(S32)y) ? x: y; }
  44. inline S32    csmin(S16  x,S32    y)          { return (x<y) ? x: y; }
  45. inline S32    csmin(S32  x,S32    y)          { return (x<y) ? x: y; }
  46. inline S32    csmin(U32  x,S32    y)          { return ((S32)x<(S32)y) ? x: y; }
  47. inline U16    csmin(U16  x,U32    y)          { return (x<y) ? x: y; }
  48. inline S16    csmin(S16  x,U32    y)          { return ((S32)x<(S32)y) ? x: y; }
  49. inline S32    csmin(S32  x,U32    y)          { return ((S32)x<(S32)y) ? x: y; }
  50. inline U32    csmin(U32  x,U32    y)          { return (x<y) ? x: y; }
  51. //inline S32    csmin(U16    x,long   y)                { return ((S32)x<(S32)y) ? x: y; }
  52. //inline S32    csmin(S16    x,long   y)                { return (x<y) ? x: y; }
  53. //inline S32    csmin(S32    x,long   y)                { return (x<y) ? x: y; }
  54. //inline S32    csmin(U32    x,long   y)                { return ((S32)x<(S32)y) ? x: y; }
  55. //inline S32    csmin(long   x,long   y)                { return ((S32)x<(S32)y) ? x: y; }
  56. inline float  csmin(float  x,float  y)        { return (x<y) ? x: y; }
  57.  
  58.  
  59.  
  60.  
  61. inline U16    csmax(U16  x,U16    y)          { return (x>y) ? x: y; }
  62. inline U16    csmax(S16  x,U16    y)          { return ((S32)x>(S32)y) ? x: y; }
  63. inline S32    csmax(S32  x,U16    y)          { return ((S32)x>(S32)y) ? x: y; }
  64. inline U32    csmax(U32  x,U16    y)          { return (x>y) ? x: y; }
  65. inline U16    csmax(U16  x,S16    y)          { return ((S32)x>(S32)y) ? x: y; }
  66. inline S16    csmax(S16  x,S16    y)          { return (x>y) ? x: y; }
  67. inline S32    csmax(S32  x,S16    y)          { return (x>y) ? x: y; }
  68. inline U32    csmax(U32  x,S16    y)          { return ((S32)x>(S32)y) ? x: y; }
  69. inline S32    csmax(U16  x,S32    y)          { return ((S32)x>(S32)y) ? x: y; }
  70. inline S32    csmax(S16  x,S32    y)          { return (x>y) ? x: y; }
  71. inline S32    csmax(S32  x,S32    y)          { return (x>y) ? x: y; }
  72. inline U32    csmax(U32  x,S32    y)          { return ((S32)x>(S32)y) ? x: y; }
  73. inline U32    csmax(U16  x,U32    y)          { return (x>y) ? x: y; }
  74. inline U32    csmax(S16  x,U32    y)          { return ((S32)x>(S32)y) ? x: y; }
  75. inline U32    csmax(S32  x,U32    y)          { return ((S32)x>(S32)y) ? x: y; }
  76. inline U32    csmax(U32  x,U32    y)          { return (x>y) ? x: y; }
  77. inline float  csmax(float  x,float  y)        { return (x>y) ? x: y; }
  78.  
  79.  
  80.  
  81. #ifdef _CP_001
  82. #pragma warn .sig
  83. #endif
  84.  
  85.  
  86. #ifdef _CP_002
  87. #pragma warning(default : 4051 4135)
  88. #endif
  89.  
  90.  
  91. #endif
  92.