【发布时间】:2018-07-23 15:32:00
【问题描述】:
虽然将 3D 坐标转换为 z 阶曲线相对简单 (Efficient z-order transformation in Fortran),但对于使用不同的空间填充曲线(例如 Peano 或 Hilbert),我很难理解数学。 任何有关如何进行转换的实际代码的提示都将不胜感激。目标是有一个子程序,它将 xyz 坐标作为输入,并进行必要的标准化,并返回空间填充曲线的索引。
子程序(x, y, z, space_filling_index)
与此相关:我读到有很多方法可以在 3D 空间中定义希尔伯特曲线,就局部性而言,哪种方法最好?如果有一个明确的答案......
该应用程序将重新排序笛卡尔计算网格中的单元格,目标是在单元格访问其相邻单元格时增加缓存命中率。
【问题讨论】:
-
您的问题可以在这里,并且您确实得到了答案,所以一切都很好,但仍然要考虑,您是想在这里还是在更多数字和数学计算站点scicomp.stackexchange.com Stack Overflow通常更多用于编码问题,而用于数学方法问题。这可能是为什么已经投票结束您在此处提出的问题的原因。请注意,尽管您标记了问题fortran,但它根本与 Fortran 无关。
-
要点,我删除了fortran标签。我最初添加它是因为实现应该在 fortran 中,但我看到这个问题更笼统。
标签: 3d hilbert-curve space-filling-curve