Exemplo n.º 1
0
_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);
}
Exemplo n.º 2
0
Arquivo: chexp.c Projeto: xyuan/Path64
_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);
}