00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #if !defined (octave_bsxfun_decl_h)
00025 #define octave_bsxfun_decl_h 1
00026
00027 #define BSXFUN_OP_DECL(OP, ARRAY, API) \
00028 extern API ARRAY bsxfun_ ## OP (const ARRAY&, const ARRAY&);
00029
00030 #define BSXFUN_OP2_DECL(OP, ARRAY, ARRAY1, ARRAY2, API) \
00031 extern API ARRAY bsxfun_ ## OP (const ARRAY1&, const ARRAY2&);
00032
00033 #define BSXFUN_REL_DECL(OP, ARRAY, API) \
00034 extern API boolNDArray bsxfun_ ## OP (const ARRAY&, const ARRAY&);
00035
00036 #define BSXFUN_STDOP_DECLS(ARRAY, API) \
00037 BSXFUN_OP_DECL (add, ARRAY, API) \
00038 BSXFUN_OP_DECL (sub, ARRAY, API) \
00039 BSXFUN_OP_DECL (mul, ARRAY, API) \
00040 BSXFUN_OP_DECL (div, ARRAY, API) \
00041 BSXFUN_OP_DECL (pow, ARRAY, API) \
00042 BSXFUN_OP_DECL (min, ARRAY, API) \
00043 BSXFUN_OP_DECL (max, ARRAY, API)
00044
00045 #define BSXFUN_MIXED_INT_DECLS(INT_TYPE, API) \
00046 BSXFUN_OP2_DECL (pow, INT_TYPE, INT_TYPE, NDArray, API) \
00047 BSXFUN_OP2_DECL (pow, INT_TYPE, INT_TYPE, FloatNDArray, API) \
00048 BSXFUN_OP2_DECL (pow, INT_TYPE, NDArray, INT_TYPE, API) \
00049 BSXFUN_OP2_DECL (pow, INT_TYPE, FloatNDArray, INT_TYPE, API)
00050
00051 #define BSXFUN_STDREL_DECLS(ARRAY, API) \
00052 BSXFUN_REL_DECL (eq, ARRAY, API) \
00053 BSXFUN_REL_DECL (ne, ARRAY, API) \
00054 BSXFUN_REL_DECL (lt, ARRAY, API) \
00055 BSXFUN_REL_DECL (le, ARRAY, API) \
00056 BSXFUN_REL_DECL (gt, ARRAY, API) \
00057 BSXFUN_REL_DECL (ge, ARRAY, API) \
00058
00059 #endif