小编Sol*_*kar的帖子

在python中使用Eigen Library函数调用C++

我在Eigen Library的帮助下用C++做一些计算,函数是这样的:

MatrixXd Cov(MatrixXd Data)
{

  VectorXd meanVector;
  ...
  return Covariance;
}
Run Code Online (Sandbox Code Playgroud)

..在wrap python函数中:

static PyObject *Wrap_Cov(PyObject *self,PyObject *args)
{   
      Pyobject *Objectdata;

      if(!PyArg_ParseTuple(args,"O", &ObjectData))
        return NULL;

      Cov(ObjectData);

      return Py_BuildValue("O",&covariance_answer);

  }
Run Code Online (Sandbox Code Playgroud)

显然,Python不知道我定义的''对象'',它不能将''MatrixXd''转换为''对象'',我认为它是某种''数组'',而不是''对象' "

如何在不使用boost的情况下执行此操作?

c++ python matrix python-c-api eigen

15
推荐指数
1
解决办法
3193
查看次数

使用lex/yacc替代品的原因?

大约每年一次,我必须开发或至少设计一个语法和解析器 - 这似乎是我工作生活的一个常数.

每次我面对这个任务,大约一年,我,相当一个lex/yacc(flex/bison resp.)的家伙,考虑或重新考虑普通lex/yacc的替代品,并在经过一些沉思和尝试之后回到普通的lex/yacc.

因为我在应用程序的中心有一个CORBA服务器,我可以用几乎所有语言编写的解析器调用,所以这次我看看

  • antlr4(Java)和antlr3(Java但其他语言有RT),
  • SableCC(Java),
  • Parse :: EBNF,Parse :: Yapp和Marpa(Perl),
  • 和SimpleParse(Python),

对我来说,带有antlrworks的串联antlr4看起来是最有希望的候选者,但是我还不确定花在进入它上面的时间最终会被摊销.


我必须开发的语法类似于SQL DDL(在结构方面,而不是在主题方面).

为什么任何替代方案都会使我的任务比使用普通lex/yacc更容易?

multilingual parsing yacc antlr lex

12
推荐指数
2
解决办法
3710
查看次数

标签 统计

antlr ×1

c++ ×1

eigen ×1

lex ×1

matrix ×1

multilingual ×1

parsing ×1

python ×1

python-c-api ×1

yacc ×1