0

我刚刚从以前的开发人员那里继承了一个代码库,并且正在我的本地 LAMP vagrant box 中进行设置。

出于某种原因,包装在其中的 php 代码<?没有被呈现。<?php它可以很好地呈现代码。

是否需要调整 php.ini 设置以启用速记 php 声明支持?

环境:Ubuntu 14.04 | PHP 5.5.9-1ubuntu4.5


可以修改 RcppEigen 中的映射矩阵吗?

我正在 RcppEigen 中编写一些代码,我在文档中遇到了这个不祥的警告:

当然,必须注意不要在 C++ 代码中修改 R 对象的内容。推荐的做法是始终将映射对象声明为 const。

这指的是“映射”矩阵,即 Eigen 中使用与相应 R 对象相同的内存的矩阵。

这个警告只是关于良好的函数式编程实践,还是如果我使用映射对象进行就地修改,是否还有其他可能出错的事情?


这是我在 Rcpp 中所做的简化版本:

#include <RcppEigen.h>
// [[Rcpp::depends(RcppEigen)]]

// [[Rcpp::export]]
void modify(Eigen::Map<Eigen::MatrixXd> X) {

    X(0,0) = 0;
    return;
}

哪个在R中做这样的事情:

X <- matrix(1:4, 2) + 0
X
#      [,1] [,2]
# [1,]    1    3
# [2,]    2    4
modify(X)
X
#      [,1] [,2]
# [1,]    0    3
# [2,]    2    4

对于我正在处理的特定问题,通过就地修改我的矩阵,我得到了 5 倍的速度提升,所以我已经准备好在可读性和可维护性方面做出小小的牺牲。据我所知,它按预期工作,但我担心我会在未来的某个时间邀请某种微妙的错误。

4

1 回答 1

4

您需要更改 php.ini 文件,特别是short_open_tags

于 2015-01-14T02:49:50.157 回答