У меня есть два 1d-массива в arrayfire, x
и y
. Я хотел бы разделить их друг на друга и создать 2d-массив из результата, то есть, как показано в следующем коде:
#include <arrayfire>
int main(void){
const size_t x_len = 1024, y_len = 2048;
af::array x(x_len, f64), y(y_len, f64);
//Fill x, y with y \neq 0
//Now either
af::array xy(x_len, y_len, f64); //Gives a 2d-array
for(size_t i = 0; i < x.dims(0); ++i)
for(size_t j = 0; j < y.dims(0); ++j)
xy(i, j) = x(i) / y(j);
//or
af::array xy = x / y; //Gives a 1d-array
return 0;
}
Первый подход дает мне целевой 2d-массив, последний Подход не (и приведет к cra sh, если x_len != y_len
. Я мог бы использовать описанный выше подход, но я предполагаю, что он будет значительно медленнее, чем специализированные команды.
Следовательно, есть ли такие команды в arrayfire, или я должен использовать циклы?