在 C++ 中使用特征库定义全局向量

ssl1996

我正在使用 pthreads 和 eigen 库编写一个并行程序。我的程序看起来像这样:

#include <Eigen/...>
#include <pthread.h>
...

typedef Eigen::SparseMatrix<long double> matrizLD;
matrizLD mat;
typedef Eigen::Matrix<long double, Dynamic, 1> VectorLD;
VectorLD v1;
VectorLD v2;

void *power_method(int rank){
    ...
    int from = from_array[rank]
    int length = length_array[rank]
    v1.segment(from,length) = mat.block(from,0,length,size)*v2; //something like this
}

int main(...){
    size = ...; //an input parameter
    matrizLD mat(size,size) = ...;
    VectorLD v1(size) = ...;
    VectorLD v2(size) = ...;
    ...
    pthread_create(..., power_method, ...);
    ...
}

我基本上需要向量和矩阵作为全局变量才能在函数中访问它们。该程序编译但当我执行它时,我收到以下错误:

断言失败:(startRow >= 0 && blockRows >= 0 && startRow <= xpr.rows() - blockRows && startCol >= 0 && blockCols >= 0 && startCol <= xpr.cols() - blockCols),功能块,文件 ...

起初我以为我试图访问向量的非法部分,但后来我将“power_method”函数更改为:

void *power_method(int rank){
    v1(0); // I can do this from main with no problem
}

我仍然遇到同样的错误。我的猜测是我定义向量和矩阵的方式不正确,但我找不到任何说明什么是正确方式的内容。

爱医生

你有两个v1变量:

VectorLD v1; //global

void *power_method(int rank){
    v1.segment(from,length) = mat.block(from,0,length,size)*v2; //something like this
}

int main(...){
    size = ...; //an input parameter
    VectorLD v1(size) = ...; //oops another one
}

您主要需要初始化全局变量。我想像

int main(...){
    size = ...; //an input parameter
    v1 = VectorLD(size);// global one
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C中使用自定义向量

来自分类Dev

如何在C#中使用静态全局定义变量?

来自分类Dev

在C ++中使用向量

来自分类Dev

在C ++中使用向量数组的向量

来自分类Dev

在C ++中使用库时“未定义的引用”

来自分类Dev

在C ++中使用rust库时的未定义参考

来自分类Dev

在C ++中使用库时出现“未定义的引用”

来自分类Dev

如何在LLVM中定义全局变量并在C中使用它?

来自分类Dev

运行时定义的C ++全局外部常量可在多个源文件中使用

来自分类Dev

Cython:C ++在字典中使用向量?

来自分类Dev

C ++如何在模板中使用向量?

来自分类Dev

在C ++中使用向量实现检查功能?

来自分类Dev

如何在C ++中使用向量?

来自分类Dev

C ++自定义全局新/删除覆盖系统库

来自分类Dev

在Java中使用C ++库

来自分类Dev

在C中使用libtar库

来自分类Dev

C库-在C ++中使用:重新定义,不同的类型修饰符

来自分类Dev

在C中使用结构定义

来自分类Dev

在C中使用结构定义

来自分类Dev

在C ++程序中使用C共享库

来自分类Dev

在 C/C++ 中使用 swift 库?

来自分类Dev

如何在Swift项目中使用Obj-c库/自定义界面

来自分类Dev

在MYSQL中使用C#建立连接后如何定义数据库

来自分类Dev

如何在使用Xcode 7.3的C ++中使用向量?

来自分类Dev

通过引用传递或在C中使用全局变量

来自分类Dev

在Objective-C中使用全局变量

来自分类Dev

在C ++中使用全局变量进行练习

来自分类Dev

在C ++中使用全局变量初始化

来自分类Dev

如何在C#中使用全局数组?