首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >g2o c++库难以理解逻辑

g2o c++库难以理解逻辑
EN

Stack Overflow用户
提问于 2014-08-15 18:38:20
回答 1查看 281关注 0票数 0

我是C语言的初学者和学生。我需要优化文件中使用的cholesky因式分解。

https://github.com/RainerKuemmerle/g2o/blob/master/g2o/solvers/csparse/csparse_helper.cpp

对于ARM,使用矢量化并使用Ne10库。

但是我在理解函数cs_chol_workspace的逻辑上有困难。该函数返回一个指针变量N,该变量在函数中完全没有改变。即使我知道变量L代表分解后的矩阵,什么是Lx,Li和Lp?逻辑远比我的理解水平复杂得多。

在过去的几天里,我一直在尝试理解代码。任何帮助都将是非常感激的,因为我正在接近我的最后期限,但仍然没有运气。

EN

回答 1

Stack Overflow用户

发布于 2014-08-15 21:56:20

该函数返回一个指针变量N,该变量在函数中完全没有改变。

不是这样的。存储器被分配给csn,并且其地址在第96行被分配给N

即使我知道变量L代表分解后的矩阵,什么是Lx,Li

Lp?

理解这一点的重要部分是我们如何存储矩阵。存储矩阵的标准方法是分配足够的内存来存储所有m * n条目,并以L_non_sparse[i][p]的形式访问它们。在这种情况下,数据结构被设计为保存稀疏矩阵:即大多数条目为0。因此,我们只需要跟踪非零条目的位置。在第107行,LxLiLp被定义为Lxip组件。因此,我们通过L_non_sparse[ Li[j] ][ Lp[j] ] = Lx[j]访问L_non_sparse的非零条目。

这是基于cs.h中的定义的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25325028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档