Code Monkey home page Code Monkey logo

eigenchinesedocument's Introduction

Eigen教程

目的

这是我学习Eigen时翻译的Eigen官方文档。 翻译的主要原因在于:

  • 与其只在用到某一部分的时候查找API,不如先进行初步的整体学习,建立知识体系,益于程序的编写和解Bug;
  • 不知为何,英文文档不能一目十行,所以还是翻译一下,利于再次使用时的快速访问和理解;
  • 在百度,github等网站未能找到中文版的文档;
  • 官方文档中的代码不利于在本地运行,每次还得复制粘贴,编译运行,个人认为较为麻烦;
  • 为后来者种一棵小树,方便大家快速掌握Eigen。

当前文档已初步完成,内容肯定需要改善。

版本

Eigen 3.3.7

请注意,此程序在3.2版本下会报错!请您确保版本的正确,或者您需要注释掉源码中的部分内容!

翻译说明

此文档按照官方教程的结构体系,我把相关内容全部放入到C++代码中, 为了防止命名冲突,使用了两层命名空间,例如:

Chapter1_DenseMatrixAndArrary::Section1_MatrixClass::CoefficientAccessors();
Chapter1_DenseMatrixAndArrary::Section1_MatrixClass::MatrixAndVectorRunTime();
Chapter1_DenseMatrixAndArrary::Section3_ArrayAndCoefficientwiseOperations::AdditionAndSubtraction();

我并不是逐字翻译,某些部分也添加了自己的理解,并且叙述的应该是十分口水话。 当然,部分内容也是机器翻译的,但是我想它并不影响理解。 此外,可能去掉了文档中比较简单的内容,文档中的Reference也没有翻译(东西太多,本质原因,懒)。

当前进展

  1. 第一章翻译完成,代码测试通过,见Chapter1_DenseMatrixAndArrary文件夹;
  2. 第二章翻译完成,代码测试通过,见Chapter2_DenseLinearProblemsAndDecompositions文件夹;
  3. 第三章和第四章翻译完成,但是这两章的代码较少,较多的是翻译的内容。

编译代码

  1. 请在上文中的github网址中下载代码;
  2. 确认CMakeLists.txt文件中的eigen头文件路径正确,确认CMakeLists.txt文件中的Qt5或者Qt4
  3. 若只想显示部分内容,请注释chapterX_test.cpp文件中的非相关内容。此外,有些会产生错误的代码,为了编译通过,我给注释了。若想让程序报错,请取消注释这些代码。
  4. cd 主目录
  5. mkdir build
  6. cd build
  7. cmake ..
  8. make
  9. 运行程序 ./chapterX_test

翻译记录

  • 2019年10月18-20日,初步完成第一、二章的内容;
  • 2019年10月21日,翻译了第三章部分内容;
  • 2019年10月22-24日,初步完成了整体内容。

TODO

  • 查缺补漏,提高翻译质量
  • 把关键的内容整理,写一篇心得体会

Contact

由于本人精力和水平有限,希望和大家一起讨论,欢迎想一起翻译的小伙伴。 [email protected]

eigenchinesedocument's People

Contributors

qixianyu-buaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eigenchinesedocument's Issues

编译错误问题

Subject

编译时存在未声明的变量,错误信息如下:

In file included from /home/wtc/Project/EigenChineseDocument/Eigen/chapter3_test.cpp:1:
~/Project/EigenChineseDocument/Eigen/Chapter3_SparseLinearAlgebra/Section1_SparseMatrixManipulations.hpp: In function ‘void Chapter3_SparseLinearAlgebra::Section1_SparseMatrixManipulations::TheSparseMatrixClass()’:
~Project/EigenChineseDocument/Eigen/Chapter3_SparseLinearAlgebra/Section1_SparseMatrixManipulations.hpp:133:42: error: ‘rows’ was not declared in this scope
  133 |                 SparseMatrix<double> mat(rows, cols);
      |                                          ^~~~
~/Project/EigenChineseDocument/Eigen/Chapter3_SparseLinearAlgebra/Section1_SparseMatrixManipulations.hpp:133:48: error: ‘cols’ was not declared in this scope; did you mean ‘cosl’?
  133 |                 SparseMatrix<double> mat(rows, cols);
      |                                                ^~~~
      |                                                cosl
make[2]: *** [CMakeFiles/chapter3_test.dir/build.make:76: CMakeFiles/chapter3_test.dir/chapter3_test.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:113: CMakeFiles/chapter3_test.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

看起来是文档中的伪代码部分被错误地复制为了可运行的代码部分。我稍后会提一个PR解决这个问题。

我的环境

  • Ubuntu 20.04
  • Eigen 3.3.7

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.