eigen3 相关问题

Eigen是线性代数的C ++模板库:矩阵,向量,数值求解器和相关算法。

从 lambda 中返回表达式时 Eigen 结果错误

我正在尝试在 lambda 中使用此函数的主体: Vector3d fun(Vector3d const& 点) { Vector3d const b{ 0., 0., 30. }; 返回 b + point.normalized(); } 但当结果是...

回答 1 投票 0

Eigen3针对AVX2指令集错误进行优化

我正在尝试将 Eigen3 前端与 Intel MKL 后端结合使用。 我正在针对 AVX2 指令集优化程序。 当我定义 AVX2 时,我得到了下面提到的内容。 如果我不定义 AVX2,我会得到 SSE 并且...

回答 1 投票 0

当 Block 的模板 arg Row 等于 1 时,将 Eigen Block 分配给 Eigen Ref 编译错误

我写了一段代码: 特征::矩阵 m(5, 5); 自动 r = m.topRows<1>(); 本征::Ref> r2(r) 这将导致编译

回答 1 投票 0

C++20 格式的 Eigen3 库

我正在尝试使用 c++20 格式而不是 Eigen::IOFormat 打印 Eigen::Array 或 Eigen::Matrix。 我想用说明符控制矩阵中元素的精度和对齐方式,对于

回答 2 投票 0

特征矩阵和向量之间的逐元素运算

以下代码进行矩阵和向量之间的减法。该向量在运行时自动广播为形状 (30, 7)。但如果 num 和 sub_value 被声明为动态形状的 Matrix/

回答 2 投票 0

为什么Eigen库中double的计算速度比float快3倍?

这是我的代码。我使用 double 类型创建了一组矩阵和向量乘法,并使用 float 类型创建了另一组。两组乘法在 for 循环中执行了 300 万次,a...

回答 1 投票 0

将具有双精度数组的自定义结构映射到 Eigen::Matrix

我有来自第三方库的c结构: typedef 结构 Point3d { #ifdef __cplusplus 枚举{大小= 3}; typedef 双值类型; ///< type

回答 1 投票 0

HighFive - 将数据集读入 Eigen3 矩阵

我正在尝试仅头文件库 HighFive,它为 libhdf5 提供了更方便的接口。提供的示例展示了如何从 Eigen::MatrixXd 填充数据集....

回答 1 投票 0

使用线性索引列表在特征值中的输入和输出矩阵之间进行映射

假设我有 3 个 2D 矩阵: 移位数据 - 大小的复数双精度 [tSize*TXSize,xSize] 数据 - 大小的复数双精度 [tSize*TXSize,xSize] 索引 - 大小的整数 [tSize,xSize] 我想绘制每一个...

回答 1 投票 0

Eigen:减去两个长度不等的向量,隐式用零填充较短的向量

我正在使用 Eigen 3.4。我想减去两个长度不等的向量,在底部用零填充较短的向量,同时避免重新分配内存。粗略的例子: VectorXd A (4), B...

回答 1 投票 0

尝试从以 .sum() 结尾的链式 Eigen::Tensor 操作中提取标量时出错

我有以下脚本 #包括 #包括 int main() { 使用命名空间特征; // 用任意数据填充张量 张量&...

回答 1 投票 0

g++“忽略不存在的目录”,但实际上存在(仅适用于 CLion + Ninja)

我有一些 C++ 源代码,其中包括以下行: #包括 编译在这一行失败,并出现错误:(为简洁起见,我的源文件名/路径已被编辑。) 文件中包含...

回答 1 投票 0

将特征向量中的元素转换为相应元素的某个常数

我是 Eigen 库的新手。我想将向量(或矩阵)中的每个元素转换为向量中相应元素的某个常数。 我想做这个手术有效...

回答 1 投票 0

将向量中的元素转换为相应元素的某个常数

我正在使用 Eigen 库。我想将向量中的每个元素转换为向量中相应元素的幂的某个常数。我想有效地做到这一点,我想避免

回答 1 投票 0

切换四元数的坐标系

我得到了前向左上(FLU)坐标系中对象 [w, x, y, z] 的四元数数据,我想将其转换为前向右下(FRD)坐标系中的四元数数据系统。

回答 1 投票 0

使用 Eigen FFT 库沿行对特征矩阵进行 1D FFT 会返回不正确的结果

我在 Eigen FFT 库上看到了一些示例,我想在使用 FFTW 库之前实现它们。由于某种原因,我无法沿着特征矩阵的每一行获得正确的一维 FFT。我明白了...

回答 1 投票 0

无法访问https://eigen.tuxfamily.org/

我想安装 Eigen3,它是线性代数的 C++ 模板库。它应该可以在网站链接 https://eigen.tuxfamily.org/ 上找到,但奇怪的是,我无法打开它。是不是网络...

回答 1 投票 0

避免在特征值中使用对角矩阵进行分配

问题 如何避免特征中小对角矩阵的动态分配? 语境 我正在使用本征 3.4。我有一个 N × N 对角矩阵 W: 自动 W = 本征::对角矩阵 问题 如何避免 Eigen 中小对角矩阵的动态分配? 背景 我正在使用 Eigen 3.4。我有一个 N × N 对角矩阵 W: auto W = Eigen::DiagonalMatrix<double, Dynamic>(N); 如果 N <= 512 by using a buffer on the stack:我想避免分配 double W_buffer[512]; 对于法向量和矩阵,我知道我可以使用Map: double y_buff[512]; auto y = Eigen::Map<VectorXd>( y_buff, N ); 但是,当我对对角矩阵尝试相同的操作时,它会给我一个错误,因为 InnerStrideAtCompileTime 不是 Eigen::DiagonalMatrix 的成员。 将 Map 与 DiagonalMatrix 结合使用时出现错误消息 In file included from eigen/Eigen/Core:311, from eigen/Eigen/Dense:1, from build/release/CMakeFiles/bench.dir/cmake_pch.hxx:5, from <command-line>: eigen/Eigen/src/Core/Map.h: In instantiation of ‘struct Eigen::internal::traits<Eigen::Map<Eigen::DiagonalMatrix<double, -1> > >’: eigen/Eigen/src/Core/util/ForwardDeclarations.h:34:48: required from ‘struct Eigen::internal::accessors_level<Eigen::Map<Eigen::DiagonalMatrix<double, -1> > >’ eigen/Eigen/src/Core/util/ForwardDeclarations.h:101:75: required from ‘class Eigen::Map<Eigen::DiagonalMatrix<double, -1> >’ include/volar/estimators.hpp:203:18: required from ‘static volar::R volar::PolyLE<Degree>::estimate(volar::R, volar::ViewR, volar::ViewR, const Kernel&) [with Kernel = volar::UniformK; int Degree = 1; volar::R = double; volar::ViewR = volar::View<double>]’ include/volar/kernel_smoothing.hpp:81:64: required from ‘volar::R volar::LocalRFT<Estimator, Kernel>::operator()(volar::R) const [with Estimator = volar::EigenLinearLE; Kernel = volar::UniformK; volar::R = double]’ bench/core.cpp:43:23: required from ‘void localRF(benchmark::State&) [with Method = volar::EigenLinearLE; Kernel = volar::UniformK]’ bench/core.cpp:96:1: required from here eigen/Eigen/src/Core/Map.h:30:53: error: ‘InnerStrideAtCompileTime’ is not a member of ‘Eigen::DiagonalMatrix<double, -1>’ 30 | ? int(PlainObjectType::InnerStrideAtCompileTime) | ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from eigen/Eigen/Core:163, from eigen/Eigen/Dense:1, from build/release/CMakeFiles/bench.dir/cmake_pch.hxx:5, from <command-line>: Eigen::DiagonalMatrix的第三个模板参数,MaxSizeAtCompileTime可以让你做到这一点。 与 Eigen::Dynamic 结合使用时,DiagonalMatrix 将具有足够大的内部缓冲区以容纳 MaxSizeAtCompileTime,但其大小仍会动态调整。 例如,以下内容相当于您尝试使用外部缓冲区执行的操作: auto W = Eigen::DiagonalMatrix<double, Eigen::Dynamic, 512>(N) 显然,尝试使用大于 MaxSizeAtCompileTime 的大小来初始化它会在运行时失败(使用断言),但这并不比使用 Map 时必须处理的情况更糟糕。 您可以按照您描述和使用 Map 方法的“正常”方式进行操作,而不是尝试 DiagonalMatrix asDiagonal()。 可能稍微不太干净,必须输入 y.asDiagonal() 而不是仅仅 y...也许你可以用 Eigen::Ref 做一些事情来保留对来自向量的对角矩阵的引用,但我不确定是否那会起作用的。 asDiagonal(): https://eigen.tuxfamily.org/dox/classEigen_1_1MatrixBase.html#a14235b62c90f93fe910070b4743782d0

回答 2 投票 0

为什么 Eigen 默认使用 Column-Major 而不是 Row-Major?

虽然Eigen是C++库并且C/C++使用行优先存储结构,但为什么Eigen更喜欢使用列优先存储顺序?来自 为什么 MATLAB 使用列优先顺序?帖子,我明白了,MA...

回答 3 投票 0

在暗淡的 1 上堆叠本征中具有不同形状的张量

我有一系列形状为 [B, n, C] 的张量,其中 B 和 C 具有恒定大小,n 在张量之间变化(例如,[1, 5] 中的 n)。我想将所有这些张量连接成一个......

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.