问题描述
这是我正在运行或尝试运行的示例代码。长话短说,它不能按预期工作。
import * as i0 from "@angular/core";
import * as i1 from "./myComponentInLib.component";
import * as i2 from "@angular/common";
import * as i3 from "@fortawesome/angular-fontawesome";
import * as i4 from "@angular/router";
import * as i5 from "angular-svg-icon";
出现以下错误。
#include <iostream>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/strategies/transform/matrix_transformers.hpp>
#include <boost/numeric/ublas/matrix_expression.hpp>
namespace bg = boost::geometry;
namespace trans = bg::strategy::transform;
typedef bg::model::d2::point_xy<double> point;
int main()
{
trans::translate_transformer<double,2,2> translate(0.0,1.0);
trans::rotate_transformer<bg::degree,double,2> rotate(90);
trans::matrix_transformer<double,2> translateRotate(
boost::numeric::ublas::prod(rotate.matrix(),translate.matrix())
//rotate.matrix() * translate.matrix()
);
point p;
translateRotate.apply(point(0,0),p);
std::cout << bg::get<0>(p) << " " << bg::get<1>(p) << std::endl;
}
基本上有很多。为什么不接受?我是否需要将qvm转换为矩阵表达式?如果是,怎么办? 我想将来使用axpy_prod,但是如果这样做不起作用,那将毫无意义。
解决方法
对问题进行了深入的修订后,我得出的结论是,我的问题没有想要的答案。我曾经做过的事情都是这样。
问题在于translate_transformer
和rotate_transformer
来自升压QVM,而prod
函数来自uBlas库。随着boost 1.64的开始,人们对如何使用boost QVM和uBlas进行了改变,并且将它们分开。基本上,在uBlas中使用QVM矩阵的支持已消失。
在这里我必须要批评。我对升压的知识不好,所以可能有一些我不知道的正确使用方法。