📄 target.h
字号:
lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).v[0])); \ REAL_VALUES_EQUAL (rr, dconst0) \ ? ({ ffetarget_cvt_rv_to_r2_ (dconst0, &((res)->v[0])); \ FFEBAD_DIV_BY_ZERO; \ }) \ : ({ REAL_ARITHMETIC (resr, RDIV_EXPR, lr, rr); \ ffetarget_cvt_rv_to_r2_ (resr, &((res)->v[0])); \ FFEBAD; \ }); \ })#else#define ffetarget_divide_real1(res,l,r) \ (((r) == 0) ? (*(res) = 0, FFEBAD_DIV_BY_ZERO) \ : (*(res) = (l) / (r), FFEBAD))#define ffetarget_divide_real2(res,l,r) \ (((r) == 0) ? (*(res) = 0, FFEBAD_DIV_BY_ZERO) \ : (*(res) = (l) / (r), FFEBAD))#endif#ifdef REAL_ARITHMETIC#define ffetarget_eq_complex1(res,l,r) \ ({ REAL_VALUE_TYPE lr, li, rr, ri; \ lr = ffetarget_cvt_r1_to_rv_ ((l).real); \ li = ffetarget_cvt_r1_to_rv_ ((l).imaginary); \ rr = ffetarget_cvt_r1_to_rv_ ((r).real); \ ri = ffetarget_cvt_r1_to_rv_ ((r).imaginary); \ *(res) = (REAL_VALUES_EQUAL (lr, rr) && REAL_VALUES_EQUAL (li, ri)) \ ? TRUE : FALSE; \ FFEBAD; })#define ffetarget_eq_complex2(res,l,r) \ ({ REAL_VALUE_TYPE lr, li, rr, ri; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).real.v[0])); \ li = ffetarget_cvt_r2_to_rv_ (&((l).imaginary.v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).real.v[0])); \ ri = ffetarget_cvt_r2_to_rv_ (&((r).imaginary.v[0])); \ *(res) = (REAL_VALUES_EQUAL (lr, rr) && REAL_VALUES_EQUAL (li, ri)) \ ? TRUE : FALSE; \ FFEBAD; })#else#define ffetarget_eq_complex1(res,l,r) \ (*(res) = (((l).real == (r).real) && ((l).imaginary == (r).imaginary)) \ ? TRUE : FALSE, FFEBAD)#define ffetarget_eq_complex2(res,l,r) \ (*(res) = (((l).real == (r).real) && ((l).imaginary == (r).imaginary)) \ ? TRUE : FALSE, FFEBAD)#endif#define ffetarget_eq_integer1(res,l,r) \ (*(res) = ((l) == (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_eq_integer2(res,l,r) \ (*(res) = ((l) == (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_eq_integer3(res,l,r) \ (*(res) = ((l) == (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_eq_integer4(res,l,r) \ (*(res) = ((l) == (r)) ? TRUE : FALSE, FFEBAD)#ifdef REAL_ARITHMETIC#define ffetarget_eq_real1(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r1_to_rv_ ((l)); \ rr = ffetarget_cvt_r1_to_rv_ ((r)); \ *(res) = REAL_VALUES_EQUAL (lr, rr) ? TRUE : FALSE; \ FFEBAD; })#define ffetarget_eq_real2(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).v[0])); \ *(res) = REAL_VALUES_EQUAL (lr, rr) ? TRUE : FALSE; \ FFEBAD; })#else#define ffetarget_eq_real1(res,l,r) \ (*(res) = ((l) == (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_eq_real2(res,l,r) \ (*(res) = ((l) == (r)) ? TRUE : FALSE, FFEBAD)#endif#define ffetarget_eqv_integer1(res,l,r) (*(res) = (l) ^ ~(r), FFEBAD)#define ffetarget_eqv_integer2(res,l,r) (*(res) = (l) ^ ~(r), FFEBAD)#define ffetarget_eqv_integer3(res,l,r) (*(res) = (l) ^ ~(r), FFEBAD)#define ffetarget_eqv_integer4(res,l,r) (*(res) = (l) ^ ~(r), FFEBAD)#define ffetarget_eqv_logical1(res,l,r) (*(res) = (l) == (r), FFEBAD)#define ffetarget_eqv_logical2(res,l,r) (*(res) = (l) == (r), FFEBAD)#define ffetarget_eqv_logical3(res,l,r) (*(res) = (l) == (r), FFEBAD)#define ffetarget_eqv_logical4(res,l,r) (*(res) = (l) == (r), FFEBAD)#define ffetarget_ge_integer1(res,l,r) \ (*(res) = ((l) >= (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_ge_integer2(res,l,r) \ (*(res) = ((l) >= (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_ge_integer3(res,l,r) \ (*(res) = ((l) >= (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_ge_integer4(res,l,r) \ (*(res) = ((l) >= (r)) ? TRUE : FALSE, FFEBAD)#ifdef REAL_ARITHMETIC#define ffetarget_ge_real1(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r1_to_rv_ ((l)); \ rr = ffetarget_cvt_r1_to_rv_ ((r)); \ *(res) = REAL_VALUES_LESS (lr, rr) ? FALSE : TRUE; \ FFEBAD; })#define ffetarget_ge_real2(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).v[0])); \ *(res) = REAL_VALUES_LESS (lr, rr) ? FALSE : TRUE; \ FFEBAD; })#else#define ffetarget_ge_real1(res,l,r) \ (*(res) = ((l) >= (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_ge_real2(res,l,r) \ (*(res) = ((l) >= (r)) ? TRUE : FALSE, FFEBAD)#endif#define ffetarget_gt_integer1(res,l,r) \ (*(res) = ((l) > (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_gt_integer2(res,l,r) \ (*(res) = ((l) > (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_gt_integer3(res,l,r) \ (*(res) = ((l) > (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_gt_integer4(res,l,r) \ (*(res) = ((l) > (r)) ? TRUE : FALSE, FFEBAD)#ifdef REAL_ARITHMETIC#define ffetarget_gt_real1(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r1_to_rv_ ((l)); \ rr = ffetarget_cvt_r1_to_rv_ ((r)); \ *(res) = (REAL_VALUES_LESS (lr, rr) || REAL_VALUES_EQUAL (lr, rr)) \ ? FALSE : TRUE; \ FFEBAD; })#define ffetarget_gt_real2(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).v[0])); \ *(res) = (REAL_VALUES_LESS (lr, rr) || REAL_VALUES_EQUAL (lr, rr)) \ ? FALSE : TRUE; \ FFEBAD; })#else#define ffetarget_gt_real1(res,l,r) \ (*(res) = ((l) > (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_gt_real2(res,l,r) \ (*(res) = ((l) > (r)) ? TRUE : FALSE, FFEBAD)#endif#define ffetarget_hexxmil(v,t) ffetarget_typeless_hex (v, t)#define ffetarget_hexxvxt(v,t) ffetarget_typeless_hex (v, t)#define ffetarget_hexzmil(v,t) ffetarget_typeless_hex (v, t)#define ffetarget_hexzvxt(v,t) ffetarget_typeless_hex (v, t)#define ffetarget_init_0()#define ffetarget_init_1()#define ffetarget_init_2()#define ffetarget_init_3()#define ffetarget_init_4()#ifndef __alpha__#define ffetarget_integerdefault_is_magical(i) \ (((unsigned long int) i) == FFETARGET_integerBIG_MAGICAL)#else#define ffetarget_integerdefault_is_magical(i) \ (((unsigned int) i) == FFETARGET_integerBIG_MAGICAL)#endif#ifdef REAL_ARITHMETIC#define ffetarget_iszero_real1(l) \ ({ REAL_VALUE_TYPE lr; \ lr = ffetarget_cvt_r1_to_rv_ ((l)); \ REAL_VALUES_EQUAL (lr, dconst0); \ })#define ffetarget_iszero_real2(l) \ ({ REAL_VALUE_TYPE lr; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ REAL_VALUES_EQUAL (lr, dconst0); \ })#else#define ffetarget_iszero_real1(l) ((l) == 0.)#define ffetarget_iszero_real2(l) ((l) == 0.)#endif#define ffetarget_iszero_typeless(l) ((l) == 0)#define ffetarget_logical1(v,truth) (*(v) = truth ? 1 : 0)#define ffetarget_le_integer1(res,l,r) \ (*(res) = ((l) <= (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_le_integer2(res,l,r) \ (*(res) = ((l) <= (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_le_integer3(res,l,r) \ (*(res) = ((l) <= (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_le_integer4(res,l,r) \ (*(res) = ((l) <= (r)) ? TRUE : FALSE, FFEBAD)#ifdef REAL_ARITHMETIC#define ffetarget_le_real1(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r1_to_rv_ ((l)); \ rr = ffetarget_cvt_r1_to_rv_ ((r)); \ *(res) = (REAL_VALUES_LESS (lr, rr) || REAL_VALUES_EQUAL (lr, rr)) \ ? TRUE : FALSE; \ FFEBAD; })#define ffetarget_le_real2(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).v[0])); \ *(res) = (REAL_VALUES_LESS (lr, rr) || REAL_VALUES_EQUAL (lr, rr)) \ ? TRUE : FALSE; \ FFEBAD; })#else#define ffetarget_le_real1(res,l,r) \ (*(res) = ((l) <= (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_le_real2(res,l,r) \ (*(res) = ((l) <= (r)) ? TRUE : FALSE, FFEBAD)#endif#define ffetarget_lt_integer1(res,l,r) \ (*(res) = ((l) < (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_lt_integer2(res,l,r) \ (*(res) = ((l) < (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_lt_integer3(res,l,r) \ (*(res) = ((l) < (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_lt_integer4(res,l,r) \ (*(res) = ((l) < (r)) ? TRUE : FALSE, FFEBAD)#ifdef REAL_ARITHMETIC#define ffetarget_lt_real1(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r1_to_rv_ ((l)); \ rr = ffetarget_cvt_r1_to_rv_ ((r)); \ *(res) = REAL_VALUES_LESS (lr, rr) ? TRUE : FALSE; \ FFEBAD; })#define ffetarget_lt_real2(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).v[0])); \ *(res) = REAL_VALUES_LESS (lr, rr) ? TRUE : FALSE; \ FFEBAD; })#else#define ffetarget_lt_real1(res,l,r) \ (*(res) = ((l) < (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_lt_real2(res,l,r) \ (*(res) = ((l) < (r)) ? TRUE : FALSE, FFEBAD)#endif#define ffetarget_length_character1(c) ((c).length)#define ffetarget_length_characterdefault ffetarget_length_character1#ifdef REAL_ARITHMETIC#define ffetarget_make_real1(res,lr) \ ffetarget_cvt_rv_to_r1_ ((lr), *(res))#define ffetarget_make_real2(res,lr) \ ffetarget_cvt_rv_to_r2_ ((lr), &((res)->v[0]))#else#define ffetarget_make_real1(res,lr) (*(res) = (lr))#define ffetarget_make_real2(res,lr) (*(res) = (lr))#endif#define ffetarget_multiply_integer1(res,l,r) (*(res) = (l) * (r), FFEBAD)#define ffetarget_multiply_integer2(res,l,r) (*(res) = (l) * (r), FFEBAD)#define ffetarget_multiply_integer3(res,l,r) (*(res) = (l) * (r), FFEBAD)#define ffetarget_multiply_integer4(res,l,r) (*(res) = (l) * (r), FFEBAD)#ifdef REAL_ARITHMETIC#define ffetarget_multiply_real1(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr, resr; \ lr = ffetarget_cvt_r1_to_rv_ ((l)); \ rr = ffetarget_cvt_r1_to_rv_ ((r)); \ REAL_ARITHMETIC (resr, MULT_EXPR, lr, rr); \ ffetarget_cvt_rv_to_r1_ (resr, *(res)); \ FFEBAD; })#define ffetarget_multiply_real2(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr, resr; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).v[0])); \ REAL_ARITHMETIC (resr, MULT_EXPR, lr, rr); \ ffetarget_cvt_rv_to_r2_ (resr, &((res)->v[0])); \ FFEBAD; })#else#define ffetarget_multiply_real1(res,l,r) (*(res) = (l) * (r), FFEBAD)#define ffetarget_multiply_real2(res,l,r) (*(res) = (l) * (r), FFEBAD)#endif#ifdef REAL_ARITHMETIC#define ffetarget_ne_complex1(res,l,r) \ ({ REAL_VALUE_TYPE lr, li, rr, ri; \ lr = ffetarget_cvt_r1_to_rv_ ((l).real); \ li = ffetarget_cvt_r1_to_rv_ ((l).imaginary); \ rr = ffetarget_cvt_r1_to_rv_ ((r).real); \ ri = ffetarget_cvt_r1_to_rv_ ((r).imaginary); \ *(res) = (REAL_VALUES_EQUAL (lr, rr) && REAL_VALUES_EQUAL (li, ri)) \ ? FALSE : TRUE; \ FFEBAD; })#define ffetarget_ne_complex2(res,l,r) \ ({ REAL_VALUE_TYPE lr, li, rr, ri; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).real.v[0])); \ li = ffetarget_cvt_r2_to_rv_ (&((l).imaginary.v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).real.v[0])); \ ri = ffetarget_cvt_r2_to_rv_ (&((r).imaginary.v[0])); \ *(res) = (REAL_VALUES_EQUAL (lr, rr) && REAL_VALUES_EQUAL (li, ri)) \ ? FALSE : TRUE; \ FFEBAD; })#else#define ffetarget_ne_complex1(res,l,r) \ (*(res) = (((l).real != (r).real) || ((l).imaginary != (r).imaginary)) \ ? TRUE : FALSE, FFEBAD)#define ffetarget_ne_complex2(res,l,r) \ (*(res) = (((l).real != (r).real) || ((l).imaginary != (r).imaginary)) \ ? TRUE : FALSE, FFEBAD)#endif#define ffetarget_ne_integer1(res,l,r) \ (*(res) = ((l) != (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_ne_integer2(res,l,r) \ (*(res) = ((l) != (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_ne_integer3(res,l,r) \ (*(res) = ((l) != (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_ne_integer4(res,l,r) \ (*(res) = ((l) != (r)) ? TRUE : FALSE, FFEBAD)#ifdef REAL_ARITHMETIC#define ffetarget_ne_real1(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r1_to_rv_ ((l)); \ rr = ffetarget_cvt_r1_to_rv_ ((r)); \ *(res) = REAL_VALUES_EQUAL (lr, rr) ? FALSE : TRUE; \ FFEBAD; })#define ffetarget_ne_real2(res,l,r) \ ({ REAL_VALUE_TYPE lr, rr; \ lr = ffetarget_cvt_r2_to_rv_ (&((l).v[0])); \ rr = ffetarget_cvt_r2_to_rv_ (&((r).v[0])); \ *(res) = REAL_VALUES_EQUAL (lr, rr) ? FALSE : TRUE; \ FFEBAD; })#else#define ffetarget_ne_real1(res,l,r) \ (*(res) = ((l) != (r)) ? TRUE : FALSE, FFEBAD)#define ffetarget_ne_real2(res,l,r) \ (*(res) = ((l) != (r)) ? TRUE : FALSE, FFEBAD)#endif#define ffetarget_neqv_integer1(res,l,r) (*(res) = (l) ^ (r), FFEBAD)#define ffetarget_neqv_integer2(res,l,r) (*(res) = (l) ^ (r), FFEBAD)#define ffetarget_neqv_integer3(res,l,r) (*(res) = (l) ^ (r), FFEBAD)#define ffetarget_neqv_integer4(res,l,r) (*(res) = (l) ^ (r), FFEBAD)#define ffetarget_neqv_logical1(res,l,r) (*(res) = (l) != (r), FFEBAD)#define ffetarget_neqv_logical2(res,l,r) (*(res) = (l) != (r), FFEBAD)#define ffetarget_neqv_logical3(res,l,r) (*(res) = (l) != (r), FFEBAD)#define ffetarget_neqv_logical4(res,l,r) (*(res) = (l) != (r), FFEBAD)#define ffetarget_not_integer1(res,l) (*(res) = ~(l), FFEBAD)#define ffetarget_not_integer2(res,l) (*(res) = ~(l), FFEBAD)#define ffetarget_not_integer3(res,l) (*(res) = ~(l), FFEBAD)#define ffetarget_not_integer4(res,l) (*(res) = ~(l), FFEBAD)#define ffetarget_not_logical1(res,l) (*(res) = !(l), FFEBAD)#define ffetarget_not_logical2(res,l) (*(res) = !(l), FFEBAD)#define ffetarget_not_logical3(res,l) (*(res) = !(l), FFEBAD)#define ffetarget_not_logical4(res,l) (*(res) = !(l), FFEBAD)#define ffetarget_octalmil(v,t) ffetarget_typeless_octal (v, t)#define ffetarget_octalvxt(v,t) ffetarget_typeless_octal (v, t)#define ffetarget_offset(res,l) (*(res) = (l), TRUE) /* Overflow? */#define ffetarget_offset_add(res,l,r) (*(res) = (l) + (r), TRUE) /* Overflow? */#define ffetarget_offset_charsize(res,l,u) (*(res) = (l) * (u), TRUE) /* Ov? */#define ffetarget_offset_multiply(res,l,r) (*(res) = (l) * (r), TRUE) /* Ov? */#define ffetarget_offset_overflow(text) ((void) 0) /* ~~no message? */#define ffetarget_or_integer1(res
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -