我正在使用第三方C++库在Julia中做一些繁重的工作.在Julia方面,数据存储在类型的对象中Array{Float64, 2}(这大致类似于2D数组的双精度数).我可以使用指向a的指针将它传递给C++ double.但是,在C++方面,数据存储在一个名为的结构中vector3:
typedef struct _vector3
{
    double x, y, z;
} vector3;
Run Code Online (Sandbox Code Playgroud)
我快速而肮脏的方法分为五个步骤:
double*到vector3*vector3*到double*复制大量数据效率非常低.我可以使用一些神秘的技巧来避免复制数据double到struct后面吗?我想以某种方式解释一个1D数组double(大小是3的倍数)作为具有3个double成员的结构的一维数组.
到目前为止我还没有遇到任何问题,所以这个问题纯粹是出于好奇。
在 Python 中,我通常这样定义浮点数和浮点数数组:
import numpy as np
s = 1.0
v = np.array([1.0, 2.0, 3.0])
Run Code Online (Sandbox Code Playgroud)
在上面的例子中s是 a float,但 的元素v是类型numpy.float64。
为了更加一致,我可以这样做:
import numpy as np
s = np.float64(1.0)
v = np.array([1.0, 2.0, 3.0])
Run Code Online (Sandbox Code Playgroud)
从准确性/精度的角度来看,是否存在建议使用“一致”方法的情况?在“不一致”的方法中,我会遇到什么样的错误(如果有)?