_f_comp4 _CHCOS( _f_comp4 z ) { union hl_complx4 { _f_comp4 cpx4; struct { _f_real4 real; _f_real4 imag; } rlim4; } ret_val, f; union hl_complx8 { _f_comp8 cpx8; struct { _f_real8 real; _f_real8 imag; } rlim8; } ztmp; _f_comp8 _COSS(_f_real8 x); _f_real8 _COSH(_f_real8 x); _f_real8 _SINH(_f_real8 x); _f_real8 realz; _f_real8 imagz; f.cpx4 = z; realz = (_f_real8) f.rlim4.real; imagz = (_f_real8) f.rlim4.imag; ztmp.cpx8 = _COSS(realz); ret_val.rlim4.real = (_f_real4) (ztmp.rlim8.real * _COSH(imagz)); ret_val.rlim4.imag = (_f_real4) (- (ztmp.rlim8.imag * _SINH(imagz))); return (ret_val.cpx4); }
_f_comp4 _CHEXP( _f_comp4 z ) { union hl_complx4 { _f_comp4 cpx4; struct { _f_real4 real; _f_real4 imag; } rlim4; } ret_val, f; union hl_complx8 { _f_comp8 cpx8; struct { _f_real8 real; _f_real8 imag; } rlim8; } ztmp; _f_real8 _EXP(_f_real8 x); _f_comp8 _COSS(_f_real8 x); _f_real8 real, imag, realtmp; f.cpx4 = z; real = (_f_real8) f.rlim4.real;; imag = (_f_real8) f.rlim4.imag;; ztmp.cpx8 = _COSS(imag); realtmp = _EXP(real); ret_val.rlim4.real = (_f_real4) (realtmp * ztmp.rlim8.real); ret_val.rlim4.imag = (_f_real4) (realtmp * ztmp.rlim8.imag); return(ret_val.cpx4); }