tgammaf.h

来自「Newlib 嵌入式 C库 标准实现代码」· C头文件 代码 · 共 30 行

H
30
字号
#include <errno.h>#include "headers/truncf4.h"#include "headers/tgammaf4.h"static __inline float _tgammaf(float x){  float res;  vector float vx;  vector float truncx;  vector float vc = { 0.0, 0.0 };  vector unsigned int cmpres;  vector signed int verrno, ferrno;  vector signed int fail = { EDOM, EDOM, EDOM, EDOM };  vx = spu_promote(x, 0);  res = spu_extract(_tgammaf4(vx), 0);#ifndef _IEEE_LIBM  /*   * use vector truncf4 rather than splat x, and splat truncx.   */  truncx = _truncf4(vx);  cmpres = spu_cmpeq(truncx, vx);  verrno = spu_splats(errno);  ferrno = spu_sel(verrno, fail, (vector unsigned int) cmpres);  cmpres = spu_cmpgt(vc, vx);  errno = spu_extract(spu_sel(verrno, ferrno, (vector unsigned int) cmpres), 0);#endif  return res;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?