Заполнить армадилло-матрицу из двух векторов, не проходя через них l oop? - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть (поддерживаемая броненосцем) матрица C и два вектора a и b. Я хотел бы заполнить матрицу C на основе содержимого a и b, используя функцию f_func(). Обычно я должен сделать это следующим образом:

#include <armadillo>

double f_func(double a, double b){
        //do something with a and b, and return it afterwards
}       

int main(void){
        arma::colvec a(10), b(10);
        //Fill a, b
        arma::mat C(10, 10);
        //This loop has to be replaced
        for(size_t i = 0; i < 10; ++i)
                for(size_t j = 0; j < 10; ++j)
                        C(i, j) = f_func(a(i), b(j));
        //With something like
        //C = f_bar_func(a, b);
        //Without having to loop over the single elements
        return 0;
}

Тем не менее, циклический просмотр каждого элемента занимает много времени. Поэтому мне было интересно, есть ли более быстрые методы для этого?

...