부스트 우 블라 행렬의 모든 원소의 제곱근을 계산하려고합니다. 지금까지, 나는 이것을 가지고있다.부스트 우 블라 행렬의 모든 원소의 제곱근
#include <iostream>
#include "boost\numeric\ublas\matrix.hpp"
#include <Windows.h>
#include <math.h>
#include <cmath>
#include <algorithm>
typedef boost::numeric::ublas::matrix<float> matrix;
const size_t X_SIZE = 10;
const size_t Y_SIZE = 10;
void UblasExpr();
int main()
{
UblasExpr();
return 0;
}
void UblasExpr()
{
matrix m1, m2, m3;
m1.resize(X_SIZE, Y_SIZE);
m2.resize(X_SIZE, Y_SIZE);
m3.resize(X_SIZE, Y_SIZE);
for (int i = 0; i < X_SIZE; i++)
{
for (int j = 0; j < Y_SIZE; j++)
{
m1(i, j) = 2;
m2(i, j) = 10;
}
}
m3 = element_prod(m1, m2);
std::transform(m1.data().begin(), m1.data().end(), m3.data().begin(), std::sqrtf);
for (int i = 0; i < X_SIZE; i++)
{
for (int j = 0; j < Y_SIZE; j++)
{
std::cout << m3(i, j) << " ";
}
std::cout << std::endl;
}
}
하지만,이 표준을 사용하지 싶습니다 :: 변환, 대신 같은 것을 수행 m3 = sqrtf (M1)를;
작동시키기위한 방법이 있습니까? 내 응용 프로그램은 매우 성능에 민감하므로 효율성을 잃지 않는 경우에만 대안을 사용할 수 있습니다.
P. log10f, cos, acos, sin, asin, pow와 같은 많은 다른 작업을 수행하고 싶습니다. 나는이 모든 것을 내 코드에서 필요로한다.
왜'std :: transform'을 좋아하니? – TemplateRex