c++ - EPECK 和 CGAL::Simple_cartesian 的区别
问题描述
希望有人能给我一些见解,为什么如果我使用
CGAL::Simple_cartesian<CGAL::Gmpq>
as Kernel 我的程序可以工作,而如果我使用 as Kernel 它会崩溃CGAL::Exact_predicates_exact_constructions_kernel
;
问题:我让一个CGAL::polygon_2
(菱形)落在另一个多边形(正方形)上。如果我使用内核,一旦菱形多边形的尖端接触到正方形,程序就会在调用期间崩溃do_intersect(diamond,square)
(可能是堆栈溢出) 。EPECK
我的理解是,这应该始终有效,因为它是准确的,我认为因为它不构成我什至应该能够使用的构造CGAL::Exact_predicates_inexact_constructions_kernel
。
它似乎开始在通话时图像中的蓝色标记栏开始循环:BOOST_PP_REPEAT_FROM_TO(2, 9, CGAL_LAZY_REP, _)
。
解决方案:如果我用它替换 EPECKCGAL::Simple_cartesian<CGAL::Gmpq>
就可以了。
我愿意将其用作解决方案,但我想确定它实际上是解决方案,而不是我进一步遇到问题。还有一些理解会很好,为什么会出现问题,因为我认为 CGAL 应该能够处理这个问题,EPECK
即使它可能是一个退化的情况。
附加信息:我在 3 台计算机上构建了它,有 2 个 MSVC 编译器版本和 2 个 CGAL 版本,结果都可比较。
- MSVC:14.10 和 14.12
- CGAL:4.10 和 4.12
- GMP:5.01
- 提升:1.67.0
- Windows SDK:10.0.17134 & 10.0.14393.0
- 视窗 10 64 位
解决方案
推荐阅读
- python - 无法使用来自某些子域的 Django Rest Framework 对用户进行身份验证
- java - Java 核心应用程序在调试而不是在正常应用程序运行时将 Application Insights 数据(日志)发送到 Azure 门户
- jquery - FancyBox 3.5.7 - 无法使用任何选项
- c# - 为什么我的脚本使我的“破折号”具有看似随机的持续时间,我该如何解决?
- laravel - 在 laravel centos 上创建临时文件时如何设置权限?
- reactjs - React Material UI(Table):在非对象上调用 Object.defineProperty
- regex - 使用 bash(参数扩展)清理输入文件
- python - 显示不需要的插值线的时间序列图
- c# - 控制台应用程序在 Windows 共享服务器中不起作用
- multithreading - 一个线程可以阻塞完成 ForkJoinPool