最优化clip3实现

tongdings 2011-05-10 04:25:51
#define clip3(x, y, z) ((x) < (y) ? (y) : ((x) > (z) ? (z) : (x)))

最优实现不能有条件判断分支(x<y, x>z etc),类似max(x, y):
#define max(x, y) ((x)^(((x)^(y))& -((x)<(y)))) // max(x, y)

希望有正解,谢谢!
...全文
285 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongdings 2011-05-12
  • 打赏
  • 举报
回复
i.e,
clip(x,y,z) = min(max(x,z), y)
tongdings 2011-05-12
  • 打赏
  • 举报
回复
zyj_604,谢谢您的回复。

这个我有考虑过,不过还是performance loss,max or min宏展开后有重复计算的,即使用inline function,感觉效率还是不如max/min来得高效吧。

从计算机数理上,有更直接的减少cycle方式?
zyj_604 2011-05-11
  • 打赏
  • 举报
回复
max(max(x, y),max(x,z))
zyj_604 2011-05-11
  • 打赏
  • 举报
回复
那就用多个宏定义啊

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧