inline int64x64_t operator op (const int64x64_t &lhs, const int64x64_t &rhs) \
{ \
int64x64_t tmp = lhs; \
tmp op ## = rhs; \
return tmp; \
} \
INT64X64_OP_ARITH_TYPE (op,double) \
INT64X64_OP_ARITH_TYPE (op,signed char) \
INT64X64_OP_ARITH_TYPE (op,signed short) \
INT64X64_OP_ARITH_TYPE (op,signed int) \
INT64X64_OP_ARITH_TYPE (op,signed long int) \
INT64X64_OP_ARITH_TYPE (op,signed long long int) \
INT64X64_OP_ARITH_TYPE (op,unsigned char) \
INT64X64_OP_ARITH_TYPE (op,unsigned short) \
INT64X64_OP_ARITH_TYPE (op,unsigned int) \
INT64X64_OP_ARITH_TYPE (op,unsigned long int) \
INT64X64_OP_ARITH_TYPE (op,unsigned long long int)