diff options
Diffstat (limited to 'eigen/doc/special_examples')
-rw-r--r-- | eigen/doc/special_examples/CMakeLists.txt | 34 | ||||
-rw-r--r-- | eigen/doc/special_examples/Tutorial_sparse_example.cpp | 38 | ||||
-rw-r--r-- | eigen/doc/special_examples/Tutorial_sparse_example_details.cpp | 44 | ||||
-rw-r--r-- | eigen/doc/special_examples/random_cpp11.cpp | 14 |
4 files changed, 0 insertions, 130 deletions
diff --git a/eigen/doc/special_examples/CMakeLists.txt b/eigen/doc/special_examples/CMakeLists.txt deleted file mode 100644 index 66ba4de..0000000 --- a/eigen/doc/special_examples/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -if(NOT EIGEN_TEST_NOQT) - find_package(Qt4) - if(QT4_FOUND) - include(${QT_USE_FILE}) - endif() -endif(NOT EIGEN_TEST_NOQT) - -if(QT4_FOUND) - add_executable(Tutorial_sparse_example Tutorial_sparse_example.cpp Tutorial_sparse_example_details.cpp) - target_link_libraries(Tutorial_sparse_example ${EIGEN_STANDARD_LIBRARIES_TO_LINK_TO} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) - - add_custom_command( - TARGET Tutorial_sparse_example - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/../html/ - COMMAND Tutorial_sparse_example ARGS ${CMAKE_CURRENT_BINARY_DIR}/../html/Tutorial_sparse_example.jpeg - ) - - add_dependencies(all_examples Tutorial_sparse_example) -endif(QT4_FOUND) - -if(EIGEN_COMPILER_SUPPORT_CPP11) - add_executable(random_cpp11 random_cpp11.cpp) - target_link_libraries(random_cpp11 ${EIGEN_STANDARD_LIBRARIES_TO_LINK_TO}) - add_dependencies(all_examples random_cpp11) - ei_add_target_property(random_cpp11 COMPILE_FLAGS "-std=c++11") - - add_custom_command( - TARGET random_cpp11 - POST_BUILD - COMMAND random_cpp11 - ARGS >${CMAKE_CURRENT_BINARY_DIR}/random_cpp11.out - ) -endif() diff --git a/eigen/doc/special_examples/Tutorial_sparse_example.cpp b/eigen/doc/special_examples/Tutorial_sparse_example.cpp deleted file mode 100644 index c5767a8..0000000 --- a/eigen/doc/special_examples/Tutorial_sparse_example.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include <Eigen/Sparse> -#include <vector> -#include <iostream> - -typedef Eigen::SparseMatrix<double> SpMat; // declares a column-major sparse matrix type of double -typedef Eigen::Triplet<double> T; - -void buildProblem(std::vector<T>& coefficients, Eigen::VectorXd& b, int n); -void saveAsBitmap(const Eigen::VectorXd& x, int n, const char* filename); - -int main(int argc, char** argv) -{ - if(argc!=2) { - std::cerr << "Error: expected one and only one argument.\n"; - return -1; - } - - int n = 300; // size of the image - int m = n*n; // number of unknows (=number of pixels) - - // Assembly: - std::vector<T> coefficients; // list of non-zeros coefficients - Eigen::VectorXd b(m); // the right hand side-vector resulting from the constraints - buildProblem(coefficients, b, n); - - SpMat A(m,m); - A.setFromTriplets(coefficients.begin(), coefficients.end()); - - // Solving: - Eigen::SimplicialCholesky<SpMat> chol(A); // performs a Cholesky factorization of A - Eigen::VectorXd x = chol.solve(b); // use the factorization to solve for the given right hand side - - // Export the result to a file: - saveAsBitmap(x, n, argv[1]); - - return 0; -} - diff --git a/eigen/doc/special_examples/Tutorial_sparse_example_details.cpp b/eigen/doc/special_examples/Tutorial_sparse_example_details.cpp deleted file mode 100644 index bc18b01..0000000 --- a/eigen/doc/special_examples/Tutorial_sparse_example_details.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include <Eigen/Sparse> -#include <vector> -#include <QImage> - -typedef Eigen::SparseMatrix<double> SpMat; // declares a column-major sparse matrix type of double -typedef Eigen::Triplet<double> T; - -void insertCoefficient(int id, int i, int j, double w, std::vector<T>& coeffs, - Eigen::VectorXd& b, const Eigen::VectorXd& boundary) -{ - int n = int(boundary.size()); - int id1 = i+j*n; - - if(i==-1 || i==n) b(id) -= w * boundary(j); // constrained coefficient - else if(j==-1 || j==n) b(id) -= w * boundary(i); // constrained coefficient - else coeffs.push_back(T(id,id1,w)); // unknown coefficient -} - -void buildProblem(std::vector<T>& coefficients, Eigen::VectorXd& b, int n) -{ - b.setZero(); - Eigen::ArrayXd boundary = Eigen::ArrayXd::LinSpaced(n, 0,M_PI).sin().pow(2); - for(int j=0; j<n; ++j) - { - for(int i=0; i<n; ++i) - { - int id = i+j*n; - insertCoefficient(id, i-1,j, -1, coefficients, b, boundary); - insertCoefficient(id, i+1,j, -1, coefficients, b, boundary); - insertCoefficient(id, i,j-1, -1, coefficients, b, boundary); - insertCoefficient(id, i,j+1, -1, coefficients, b, boundary); - insertCoefficient(id, i,j, 4, coefficients, b, boundary); - } - } -} - -void saveAsBitmap(const Eigen::VectorXd& x, int n, const char* filename) -{ - Eigen::Array<unsigned char,Eigen::Dynamic,Eigen::Dynamic> bits = (x*255).cast<unsigned char>(); - QImage img(bits.data(), n,n,QImage::Format_Indexed8); - img.setColorCount(256); - for(int i=0;i<256;i++) img.setColor(i,qRgb(i,i,i)); - img.save(filename); -} diff --git a/eigen/doc/special_examples/random_cpp11.cpp b/eigen/doc/special_examples/random_cpp11.cpp deleted file mode 100644 index 33744c0..0000000 --- a/eigen/doc/special_examples/random_cpp11.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include <Eigen/Core> -#include <iostream> -#include <random> - -using namespace Eigen; - -int main() { - std::default_random_engine generator; - std::poisson_distribution<int> distribution(4.1); - auto poisson = [&] () {return distribution(generator);}; - - RowVectorXi v = RowVectorXi::NullaryExpr(10, poisson ); - std::cout << v << "\n"; -} |