我有一个明显的印象,我的Git repo以某种方式被破坏了.
这是我正在做的序列:
git clone [remote的克隆字符串]
这创建了一个文件"App/android/AndroidManifest.xml",以及其他许多文件.
git mv App/android/AndroidManifest.xml App/android/AndroidManifestTemplate.xml
这给出了错误消息"致命:不受版本控制,源= App/And ......"
最初我认为这可能是一个gitignore的事情,但那也不是.我试过git fsck,它没有报告任何内容.
有关如何修复它的任何建议?
我有一个对向量引用进行操作的函数,例如
void auto_bias(const Eigen::VectorXf& v, Eigen:Ref<Eigen::VectorXf>> out)
{
out = ...
}
Run Code Online (Sandbox Code Playgroud)
在某些时候,我需要让这个函数在矩阵行上运行。现在,因为默认的内存布局是列主的,所以我不能只将行指向的数据映射到向量中。那么,我该如何将行传递到上面的函数中以便我可以对其进行操作呢?
不太漂亮的解决方案是有一个临时向量,例如
VectorXf tmpVec = matrix.row(5);
auto_bias(otherVector, tmpVec);
matrix.row(5) = tmpVec;
Run Code Online (Sandbox Code Playgroud)
但有没有办法直接做到这一点?
我有以下示例代码:
#include <Eigen/Eigen>
#include <iostream>
int main() {
Eigen::MatrixXf M = Eigen::MatrixXf::Random(1000, 1000);
std::cout.precision(17);
std::cout << M.colwise().sum().sum() << std::endl;
std::cout << M.rowwise().sum().sum() << std::endl;
std::cout << M.sum() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
我使用以下命令进行编译:(g ++ 7.3版,但是我在其他编译器中也看到了这一点)
g++ -O0 -o test -Ieigen-3.3.7 test.cc
Run Code Online (Sandbox Code Playgroud)
输出是
13.219823837280273
13.220325469970703
13.217720031738281
Run Code Online (Sandbox Code Playgroud)
这三个值不应该都一样吗?我毕竟没有使用任何优化。