|
@@ -103,9 +103,12 @@ cmReal_t cmVOI_Variance(const int* sp, unsigned sn, const cmReal_t* mean);
|
103
|
103
|
// Complex vector * matrix multiply
|
104
|
104
|
// dbp[1,dn] = v[1,vn] * m[vn,dn]
|
105
|
105
|
cmComplexR_t* cmVORC_MultVVM( cmComplexR_t* dbp, unsigned dn, const cmComplexR_t* vp, unsigned vn, const cmComplexR_t* m );
|
|
106
|
+
|
|
107
|
+ unsigned _cmVOU_Abs(unsigned x );
|
|
108
|
+
|
|
109
|
+#define cmAbs(x) _Generic((x), double:fabs, float:fabsf, unsigned:_cmVOU_Abs, char:abs, int:abs, bool:_cmVOU_Abs )(x)
|
|
110
|
+#define cmIsClose(x0,x1,eps) _Generic((x0), double:cmIsCloseD, float:cmIsCloseF, int:cmIsCloseI, unsigned:cmIsCloseU, default:cmIsCloseD)(x0,x1,eps)
|
106
|
111
|
|
107
|
|
-#define cmAbs(x) _Generic((x), double:fabs, float:fabsf, int:abs, unsigned:abs, default:fabs )(x)
|
108
|
|
-#define cmIsClose(x0,x1,eps) _Generic((x0), double:cmIsCloseD, float:cmIsCloseF, int:cmIsCloseI, unsigned:cmIsCloseU, default:cmIsCloseD)(x0,x1,eps)
|
109
|
112
|
|
110
|
113
|
#ifdef __cplusplus
|
111
|
114
|
}
|