C++ 将ArrayFire数组数据从f64转换为C+中的f32+;

C++ 将ArrayFire数组数据从f64转换为C+中的f32+;,c++,arrayfire,C++,Arrayfire,我有一个dtype=f64的ArrayFire数组,我需要将其转换为dtype=f32。除了转换到主机数组并通过执行static\u cast进行迭代之外,我不知道如何执行此操作。我相信有更好的办法。我发现,但它似乎只是C接口的一部分 // Example, double precision array af::array A_double(100, 1, f64); // f64 = double precision // Need to cast this to an f32 array

我有一个
dtype=f64
的ArrayFire数组,我需要将其转换为
dtype=f32
。除了转换到主机数组并通过执行
static\u cast
进行迭代之外,我不知道如何执行此操作。我相信有更好的办法。我发现,但它似乎只是C接口的一部分

// Example, double precision array
af::array A_double(100, 1, f64); // f64 = double precision

// Need to cast this to an f32 array somehow...
af::array A_single = cast<f32>(A_double); // <-- something like this?
//双精度数组示例
数组A_double(100,1,f64);//f64=双精度
//需要以某种方式将其转换为f32阵列。。。

af::数组A_single=cast(A_double);// 结果证明答案非常简单,令人尴尬。ArrayFire库有一个名为
as
的函数,我不知道,在文档中也忽略了它

// Example, double precision array
af::array A_double(100, 1, f64); // f64 = double precision

// Cast to an f32 array
af::array A_single = A_double.as(f32);

这是一个链接。

你能显示上下文的一些代码吗?C++的铸造不能同时铸造一个完整的数组,每次只能有一个元素。如果ArrayFire有这种能力,它只能通过复制原作来实现。很高兴听到它起作用了!还有什么我们可以做得更好的吗?