-CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1)

原创 2016年06月02日 11:25:24

这两天编译的时候由于用到了CGAL库,在用GCC或者其他编译器的时候遇到了问题:
*Expr: -CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1)
File: /usr/include/CGAL/Interval_nt.h
Line: 209
Explanation: Wrong rounding: did you forget the -frounding-math option if you use GCC (or -fp-model strict for Intel)*

上网搜了很久,有两个资料讲的比较详细,CGAL官网的discussion也讨论过这个,在下面也列出来了.具体的原因没看明白,解决办法可以归结为:
如果在源代码里面包含了CGAL库里的头文件(也就是调用了它实现的某个函数),这是在编译的时候需要使用GCC的参数 -frounding-math 选项.
如果使用的nvcc编译.cu文件,由于nvcc不是别上面的参数,此时在nvcc编译选项后添加宏-DCGAL_DISABLE_ROUNDING_MATH_CHECK应该就没问题了.

我是在调试修改后的caffe的时候遇到的这个问题,在正常情况下编译和运行caffe都没有问题,在debug模式下,编译没有问题,但是运行就会出现上面的错误,后来在reference里面找到了这个办法.如果有对这个问题更深入的解释或者更好的办法,欢迎交流~

Reference
[1]http://cgal-discuss.949826.n4.nabble.com/CGAL-Assertion-exception-CGAL-IA-MUL-1-1-10-1-CGAL-IA-MUL-1-1-10-1-td4655241.html
[2]http://cgal-discuss.949826.n4.nabble.com/frounding-math-trouble-with-GCC-4-0-1-td952635.html

相关文章推荐

actionscript for mul ... 源代码 part 2

  • 2010年07月21日 10:29
  • 13.35MB
  • 下载

8086汇编基础 mul word ptr 指令示例16位乘以16位

镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 ——————————————————————————————————————————————...

Win32ASM学习[16] :乘除指令: MUL、IMUL、DIV、IDIV

----------------------------------------------------------------------------------------------------...

eWebEditor_ASPX_V9.0_MUL

  • 2015年11月12日 15:08
  • 6.19MB
  • 下载

actionscript for mul... 源代码 part 5

  • 2010年07月21日 11:16
  • 8.07MB
  • 下载

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解

Mat矩阵点乘——A*B Opencv重载了运算符“*”,姑且称之为Mat矩阵“点乘”,其中一个重载声明为: CV_EXPORTS MatExpr operator * (const Mat...
  • dcrmg
  • dcrmg
  • 2016年09月02日 00:00
  • 23700

actionscript for mul... 源代码 part4

  • 2010年07月21日 10:56
  • 13.35MB
  • 下载

actionscript for mul... 源代码 part 3

  • 2010年07月21日 10:36
  • 13.35MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:-CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1)
举报原因:
原因补充:

(最多只允许输入30个字)