使用自定义标量类型的Eigen :: Geometry模块

Ahesa

我想在我目前正在从事的几何项目中将Eigen用于线性代数。这是一个很棒的图书馆,规模相对较小,易于使用,非常受欢迎。

但是,我也想使用一个自定义的“ Double”类,以便能够以计算机精度比较两个浮点值(类似两者之差必须小于给定的精度)。对于我的自定义类型,我已经实现了大多数std :: math c ++ 11函数和所有运算符(包括一元-,conj,imag,abs2 ...)。我做了这些链接中列出的所有操作:

http://eigen.tuxfamily.org/dox-devel/TopicCustomizingEigen.html

https://forum.kde.org/viewtopic.php?f=74&t=26631

但是,我仍然在Eigen Jacobi.h文件中遇到编译错误,更具体地讲,在340,341行是:

x[i] =  c * xi + numext::conj(s) * yi;
y[i] = -s * xi + numext::conj(c) * yi;

我从编译器收到以下错误(与2012,Win32,发行版和调试配置相对)

eigen\src/Jacobi/Jacobi.h(341): error C3767: '*': candidate function(s) not accessible

在以下情况下,在我的自定义类型中定义了operator *:

CustomType operator*(CustomType const &_other);
CustomType operator*(double const &_other);
double operator*(CustomType const &_other);

我试图通过以下方式定义conj:

CustomType conj(CustomType const &_type){return _type;}
double conj(customType const &_type){return _type.get();}

我尝试在Eigen :: numext命名空间以及CustomType命名空间中定义conj,但没有成功。任何人都有暗示,链接,建议或知道我可能已经忘记的本征需求?

艾米莉·L

最有可能是因为您的代码不是const正确的

您的运算符重载应为:

CustomType operator*(CustomType const &_other) **const**;
CustomType operator*(double const &_other) **const**;
double operator*(CustomType const &_other) **const**;

如果eigen具有对类型对象的const引用,CustomType则无法调用您的运算符,因为它们未声明const。

void foo(const CustomType& x, const CustomType& y){
    x * y; // Compile error, cannot call non-const operator * on const object.
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义模块的Pycharm类型提示

来自分类Dev

使用DOH测试自定义模块

来自分类Dev

使用现有CNN模块的Pytorch自定义模块

来自分类Dev

自定义casperjs模块

来自分类Dev

Prestashop 1.5.4使用自定义钩子创建自定义模块

来自分类Dev

在Prestashop中自定义导出而不使用模块?

来自分类Dev

使用redis的spring-xd自定义模块部署

来自分类Dev

使用Ansible Galaxy自动安装Ansible自定义模块

来自分类Dev

使用python的sklearn模块和自定义数据集

来自分类Dev

使用joi进行自定义配置模块验证

来自分类Dev

Powershell:使用Install-Module安装自定义模块

来自分类Dev

magento-使用自定义模块创建表

来自分类Dev

使用Python请求模块自定义GET响应

来自分类Dev

允许在Fuel CMS中使用自定义模块

来自分类Dev

AngularJS在自定义服务中使用angular模块

来自分类Dev

如何使用自定义 Ansible 模块打印语句?

来自分类Dev

mkdocs:使用自定义 python 模块来补充插件

来自分类常见问题

编写自定义TypeScript定义文件时出现错误“模块'名称'在...处解析为无类型的模块”

来自分类Dev

Silverstripe-使模块从自定义页面类型扩展的最佳方法

来自分类Dev

Drupal 7:从自定义模块功能插入内容类型

来自分类Dev

本征中的自定义标量类型

来自分类Dev

Odoo中自定义模块的继承

来自分类Dev

Express 4和自定义模块

来自分类Dev

Magento,自定义模块的默认布局

来自分类Dev

Rspec找不到自定义模块

来自分类Dev

在菜单流下添加自定义模块

来自分类Dev

自定义缺少的模块消息

来自分类Dev

制作自定义脚本模块

来自分类Dev

导入自定义CommonJS模块失败