gpt4 book ai didi

c++ - 在 C++ 中对代数结构矩阵使用类的开销

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:02 24 4
gpt4 key购买 nike

我正在使用 C++ 编写一些复杂的 FFT 算法,因此我需要实现四元数和 Hamilton-Eisenstein 代码等代数结构。算法适用于该结构的二维数组。将它们实现为类的开销是多少?换句话说,我应该创建由四元数类组成的 [M][N] 维度的数组,还是应该创建 [M][N][4] 数组并将 [4] 数组用作四元数?使用类更方便,但是创建 M*N 个类并访问它们的方法而不是只使用数组——这不会有太多开销吗?我正在编写用于大型图像处理的算法,因此性能对我来说很重要。

最佳答案

恕我直言,将它们实现为类会更好,因为这可以让您更快地编写代码并减少错误。如果这对您很重要,您应该进行测量以查看性能最佳,但也要确保实际上是这段代码才是性能瓶颈。 (强制性 Donald Knuth quote:“过早优化是万恶之源”)。

大多数编译器在为您优化代码方面做得很好,我想说。我经常发现,除了这些低级别的事情之外,还有其他事情会产生影响,例如添加提前测试或最小化数据集或诸如此类的东西。

对于四元数,您仍然可以在内部使用数组实现该类(以防实际上更快),这应该使差异变得不那么重要。

例如,确保您可以在多核机器上并行运行您的算法,或者让您的实际计算使用 SSE 指令,您可能会得到更好的服务。

关于c++ - 在 C++ 中对代数结构矩阵使用类的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4525587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com