C++ 减速器的计算最小值函数最小值指数为';找不到
嘿,伙计们,我正试图用cilk plus减速机做一个简单的find min操作。出于某种奇怪的原因,我可以包括reducer_min库,但我不能使用函数calc_min。有人知道我为什么会出现此错误吗 47:错误:“类cilk::reducer\u min\u index”没有名为“calc\u min”的成员C++ 减速器的计算最小值函数最小值指数为';找不到,c++,c,cilk-plus,C++,C,Cilk Plus,嘿,伙计们,我正试图用cilk plus减速机做一个简单的find min操作。出于某种奇怪的原因,我可以包括reducer_min库,但我不能使用函数calc_min。有人知道我为什么会出现此错误吗 47:错误:“类cilk::reducer\u min\u index”没有名为“calc\u min”的成员 #include <cilk.h> #include <reducer_min.h> #include <iostream> void findMin
#include <cilk.h>
#include <reducer_min.h>
#include <iostream>
void findMin(int *d, int *v)
{
int nv, totalnv;
*d = largeint;
cilk::reducer_min_index<unsigned,int> min;
cilk_for (int i = 0; i < totalnv ; i++)
{
if(notdone[i] && mind[i] < min.get_value())
{
min.calc_min(i,ohd[i]);
}
}
cilk_sync;
*v = min.get_index();
*d = min.get_value();
}
#包括
#包括
#包括
void findMin(int*d,int*v)
{
int nv,totalnv;
*d=较大;
cilk::减速器_min _索引min;
cilk_表示(int i=0;i
任何建议都将不胜感激 您可能必须将i强制转换为unsigned,以适应模板
cilk::reducer\u min\u index
因此,替换
min.calc_min(i,ohd[i])代码>带有min.calc_min((未签名)i,ohd[i])代码>
资料来源:我可以肯定的是,它对我有效
了解您所在的平台以及您使用的Cilk库的版本会有所帮助。(如果您使用的是英特尔编译器,则与您的编译器版本相同。如果您使用的是Cilk开源工具包,则可以定义环境变量Cilk_version
,并运行任何Cilk程序来打印Cilk版本信息。)
顺便说一句,请注意Cilk库头将位于默认编译器包含路径中目录的Cilk
子目录中,因此包含它们的正常方式是使用
#include <cilk/cilk.h>
#include <cilk/reducer_min.h>
#包括
#包括
如果使用该表单,您将从标准位置获取标题,而无需将Cilk库添加到包含路径
尼尔·费曼
“英特尔Cilk Plus运行时开发”我已经尝试过了,但仍然不起作用。它给了我同样的错误。你使用的是什么编译器(以及它的版本?)。在我添加了largeint、notdone、mind和ohd的缺失声明之后,您的示例使用ICC14.0.1为我编译。