c++ - LAPACK 数组大小和返回
问题描述
我正在使用 lapack dggglm 来解决 C++ 中的一般高斯马尔可夫线性模型 (GLM) 问题。我设计了一个循环,它执行以下操作:
B=zeros(N);P=zeros(N);L=zeros(N); X=zeros(N); Y=zeros(N); //allocating memory
for(i=0;i<100;i++)
{
for(j=0;j<M;j++) //M<=N
{
B[j]=something; //do simimar things for P, L, X, Y
}
dggglm_(&row, &col, &row, B, &row, P, &row, L, X, Y, work, &lwork, &info);
}
我的问题是,对于每次迭代,我都有不同大小的矩阵(B、P、L、X、Y)。那么,以 B 为例,我可以在 for 循环之前定义一个足够大的矩阵 B 并在每次迭代时更新它的值吗?我可以假设 LAPACK 只读取 B(1 to row*col) althoug B 实际上比那长吗?
另一个问题是文件说(Y 在退出时被销毁)。这是什么意思,我是否需要在每次迭代时为 Y 重新分配内存?
解决方案
推荐阅读
- reactjs - 登录后获取 401(未经授权)点击 ticketmaster api
- c++ - 使用运算符从文件中逐字读取 >>
- c++ - 有没有办法一次运行 3 个 CreateWindow 函数?
- quantlib - 量化库;如何使用 PiecewiseFlatForward
- database - 与酒精有关的犯罪统计
- c# - mysql entityframework核心的自动增量字段重复
- kentico-kontent - 如何在 Kentico Kontent .NET Delivery Client 中记录 HttpClient 请求?
- simple-html-dom - SimpleDom 通过纯文本搜索
- python - 使用 python 发送屏幕截图
- r - 从Excel文件中绑定多个dfs