当前位置:  开发笔记 > 编程语言 > 正文

何时使用机器epsilon何时不使用?

如何解决《何时使用机器epsilon何时不使用?》经验,为你挑选了1个好方法。

我正在读一本关于渲染3D图形的书,作者有时会使用epsilon,有时却不会.

图片

注意一if开始使用epsilon而另if一些则没有.

这背后的逻辑是什么?我可以看到他避免任何被零除的机会,但是当在函数中没有使用epsilon时,它仍然有可能返回一个值,使外码被除以零.

顺便提一下,Book是Real-Time Rendering 3rd Edition.



1> Bill the Liz..:

第一个语句,if(|f| > ?)只是检查以确保f与0显着不同.在代码中的特定位置执行此操作非常重要,因为接下来的两个语句除以f.

其他语句不需要这样做,所以他们不需要使用?.

例如,

if(t1 > t2) swap(t1, t2); 

是一个自包含的语句,它将两个数字相互比较,如果错误的数字更大,则交换它们.由于没有比较以查看值是否接近0,因此无需使用?.

如果从这个代码块返回的值可以使调用代码除以零,那么应该在调用代码中处理.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有