aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/examples
diff options
context:
space:
mode:
authorGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2010-07-14 10:16:12 +0100
committerGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2010-07-14 10:16:12 +0100
commitb0bd1cfa059983925456630c02fbaf0a76db8aae (patch)
treec0cd933006183500c3e9b161d491186e1535a2ec /doc/examples
parentc36316f2845287b913b303641479aef45b14c3fe (diff)
Tutorial page 4: add some text, diversify examples.
Use \verbinclude for output text to disable syntax highlighting. Give tables consistent look.
Diffstat (limited to 'doc/examples')
-rw-r--r--doc/examples/Tutorial_BlockOperations_block_assignment.cpp23
-rw-r--r--doc/examples/Tutorial_BlockOperations_colrow.cpp11
-rw-r--r--doc/examples/Tutorial_BlockOperations_corner.cpp20
-rw-r--r--doc/examples/Tutorial_BlockOperations_print_block.cpp20
-rw-r--r--doc/examples/Tutorial_BlockOperations_vector.cpp20
5 files changed, 32 insertions, 62 deletions
diff --git a/doc/examples/Tutorial_BlockOperations_block_assignment.cpp b/doc/examples/Tutorial_BlockOperations_block_assignment.cpp
index 0419a500f..56ca69a6e 100644
--- a/doc/examples/Tutorial_BlockOperations_block_assignment.cpp
+++ b/doc/examples/Tutorial_BlockOperations_block_assignment.cpp
@@ -6,26 +6,13 @@ using namespace Eigen;
int main()
{
- MatrixXf m(3,3), n(2,2);
-
+ Array33f m;
m << 1,2,3,
4,5,6,
7,8,9;
-
- // assignment through a block operation,
- // block as rvalue
- n = m.block(0,0,2,2);
-
- //print n
+ Array<float,5,5> n = Array<float,5,5>::Constant(0.6);
+ n.block(1,1,3,3) = m;
cout << "n = " << endl << n << endl << endl;
-
-
- n << 1,1,
- 1,1;
-
- // block as lvalue
- m.block(0,0,2,2) = n;
-
- //print m
- cout << "m = " << endl << m << endl;
+ Array33f res = n.block(0,0,3,3) * m;
+ cout << "res =" << endl << res << endl;
}
diff --git a/doc/examples/Tutorial_BlockOperations_colrow.cpp b/doc/examples/Tutorial_BlockOperations_colrow.cpp
index e639324b2..e98263057 100644
--- a/doc/examples/Tutorial_BlockOperations_colrow.cpp
+++ b/doc/examples/Tutorial_BlockOperations_colrow.cpp
@@ -1,15 +1,14 @@
#include <Eigen/Dense>
#include <iostream>
-using namespace Eigen;
int main()
{
- MatrixXf m(3,3);
-
+ Eigen::MatrixXf m(3,3);
m << 1,2,3,
4,5,6,
7,8,9;
-
- std::cout << "2nd Row: "
- << m.row(1) << std::endl;
+ std::cout << "2nd Row: " << m.row(1) << std::endl;
+ m.col(0) += m.col(2);
+ std::cout << "m after adding third column to first:\n";
+ std::cout << m << std::endl;
}
diff --git a/doc/examples/Tutorial_BlockOperations_corner.cpp b/doc/examples/Tutorial_BlockOperations_corner.cpp
index 96c6df62b..3a31507aa 100644
--- a/doc/examples/Tutorial_BlockOperations_corner.cpp
+++ b/doc/examples/Tutorial_BlockOperations_corner.cpp
@@ -2,26 +2,16 @@
#include <iostream>
using namespace std;
-using namespace Eigen;
int main()
{
- MatrixXf m(4,4);
-
+ Eigen::Matrix4f m;
m << 1, 2, 3, 4,
5, 6, 7, 8,
9, 10,11,12,
13,14,15,16;
-
- //print first two columns
- cout << "-- leftCols(2) --" << endl
- << m.leftCols(2) << endl << endl;
-
- //print last two rows
- cout << "-- bottomRows(2) --" << endl
- << m.bottomRows(2) << endl << endl;
-
- //print top-left 2x3 corner
- cout << "-- topLeftCorner(2,3) --" << endl
- << m.topLeftCorner(2,3) << endl;
+ cout << "m.leftCols(2) =" << endl << m.leftCols(2) << endl << endl;
+ cout << "m.bottomRows<2>() =" << endl << m.bottomRows<2>() << endl << endl;
+ m.topLeftCorner(1,3) = m.bottomRightCorner(3,1).transpose();
+ cout << "After assignment, m = " << endl << m << endl;
}
diff --git a/doc/examples/Tutorial_BlockOperations_print_block.cpp b/doc/examples/Tutorial_BlockOperations_print_block.cpp
index a2d0db864..0fdefecdf 100644
--- a/doc/examples/Tutorial_BlockOperations_print_block.cpp
+++ b/doc/examples/Tutorial_BlockOperations_print_block.cpp
@@ -1,14 +1,18 @@
#include <Eigen/Dense>
#include <iostream>
-using namespace Eigen;
int main()
{
- MatrixXf m(3,3);
-
- m << 1,2,3,
- 4,5,6,
- 7,8,9;
-
- std::cout << m.block(0,0,2,2) << std::endl;
+ Eigen::MatrixXf m(4,4);
+ m << 1, 2, 3, 4,
+ 5, 6, 7, 8,
+ 9,10,11,12,
+ 13,14,15,16;
+ std::cout << "Block in the middle" << std::endl;
+ std::cout << m.block<2,2>(1,1) << std::endl << std::endl;
+ for (int i = 1; i < 4; ++i)
+ {
+ std::cout << "Block of size " << i << std::endl;
+ std::cout << m.block(0,0,i,i) << std::endl << std::endl;
+ }
}
diff --git a/doc/examples/Tutorial_BlockOperations_vector.cpp b/doc/examples/Tutorial_BlockOperations_vector.cpp
index 211b55472..4a0b02342 100644
--- a/doc/examples/Tutorial_BlockOperations_vector.cpp
+++ b/doc/examples/Tutorial_BlockOperations_vector.cpp
@@ -2,23 +2,13 @@
#include <iostream>
using namespace std;
-using namespace Eigen;
int main()
{
- VectorXf v(6);
-
+ Eigen::ArrayXf v(6);
v << 1, 2, 3, 4, 5, 6;
-
- //print first three elements
- cout << "-- head(3) --" << endl
- << v.head(3) << endl << endl;
-
- //print last three elements
- cout << "-- tail(3) --" << endl
- << v.tail(3) << endl << endl;
-
- //print between 2nd and 5th elem. inclusive
- cout << "-- segment(1,4) --" << endl
- << v.segment(1,4) << endl;
+ cout << "v.head(3) =" << endl << v.head(3) << endl << endl;
+ cout << "v.tail<3>() = " << endl << v.tail<3>() << endl << endl;
+ v.segment(1,4) *= 2;
+ cout << "after 'v.segment(1,4) *= 2', v =" << endl << v << endl;
}