lib/iec_std_lib.h
changeset 187 f2cd0b5236f7
parent 180 64334c5a00b1
child 199 b075f28ec081
equal deleted inserted replaced
186:f0a41f731cea 187:f2cd0b5236f7
   967 }
   967 }
   968 
   968 
   969   /**************/
   969   /**************/
   970   /*    ABS     */
   970   /*    ABS     */
   971   /**************/
   971   /**************/
   972 #define __abs_(TYPENAME) \
   972 #define __abs_signed(TYPENAME) \
   973 static inline TYPENAME __abs_##TYPENAME(EN_ENO_PARAMS, TYPENAME op){\
   973 static inline TYPENAME __abs_##TYPENAME(EN_ENO_PARAMS, TYPENAME op){\
   974   TEST_EN(TYPENAME)\
   974   TEST_EN(TYPENAME)\
   975   if (op < 0)\
   975   if (op < 0)\
   976     return -op;\
   976     return -op;\
   977   return op;\
   977   return op;\
   978 }
   978 }
   979 ANY_NUM(__abs_)
   979 ANY_REAL(__abs_signed)
       
   980 ANY_SINT(__abs_signed)
       
   981 
       
   982 #define __abs_unsigned(TYPENAME) \
       
   983 static inline TYPENAME __abs_##TYPENAME(EN_ENO_PARAMS, TYPENAME op){\
       
   984   TEST_EN(TYPENAME)\
       
   985   return op;\
       
   986 }
       
   987 ANY_UINT(__abs_unsigned)
   980 
   988 
   981   /**************/
   989   /**************/
   982   /*    SQRT    */
   990   /*    SQRT    */
   983   /**************/
   991   /**************/
   984 #define __sqrt_(TYPENAME) __numeric(__sqrt_, TYPENAME, sqrt)
   992 #define __sqrt_(TYPENAME) __numeric(__sqrt_, TYPENAME, sqrt)