Index: src/LinearAlgebra/MatrixContent.cpp
===================================================================
--- src/LinearAlgebra/MatrixContent.cpp	(revision b4cf2b752620d3a300d2fa3fef55de302a2b7065)
+++ src/LinearAlgebra/MatrixContent.cpp	(revision 8e9ce1f9895161c968ecfcdfd3228bebdd711671)
@@ -48,4 +48,16 @@
 }
 
+/** Constructor of class VectorContent.
+ * We need this MatrixBaseCase for the VectorContentView class.
+ * There no content should be allocated, as it is just a view with an internal
+ * gsl_vector_view. Hence, MatrixBaseCase is just dummy class to give the
+ * constructor a unique signature.
+ * \param MatrixBaseCase
+ */
+MatrixContent::MatrixContent(size_t _rows, size_t _columns, MatrixBaseCase) :
+    rows(_rows),
+    columns(_columns)
+{}
+
 /** Constructor for class MatrixContent.
  * \param rows number of rows
@@ -54,6 +66,6 @@
  */
 MatrixContent::MatrixContent(size_t _rows, size_t _columns, const double *src) :
-        rows(_rows),
-        columns(_columns)
+    rows(_rows),
+    columns(_columns)
 {
   content = gsl_matrix_calloc(rows, columns);
@@ -77,6 +89,6 @@
  */
 MatrixContent::MatrixContent(gsl_matrix *&src) :
-        rows(src->size1),
-        columns(src->size2)
+    rows(src->size1),
+    columns(src->size2)
 {
   content = gsl_matrix_alloc(src->size1, src->size2);
@@ -90,6 +102,6 @@
  */
 MatrixContent::MatrixContent(const MatrixContent &src) :
-        rows(src.rows),
-        columns(src.columns)
+    rows(src.rows),
+    columns(src.columns)
 {
   content = gsl_matrix_alloc(src.rows, src.columns);
@@ -101,6 +113,6 @@
  */
 MatrixContent::MatrixContent(const MatrixContent *src) :
-        rows(src->rows),
-        columns(src->columns)
+    rows(src->rows),
+    columns(src->columns)
 {
   ASSERT(src != NULL, "MatrixContent::MatrixContent - pointer to source matrix is NULL!");
@@ -376,4 +388,9 @@
     }
 
+    // show squared matrix
+    MatrixContent *ContentSquare = new MatrixViewContent(gsl_matrix_submatrix(content,0,0,content->size1, content->size2));
+    std::cout << "The squared matrix is " << *ContentSquare << std::endl;
+    delete ContentSquare;
+
     // solve eigenvalue problem
     gsl_eigen_nonsymmv_workspace *T = gsl_eigen_nonsymmv_alloc(rows);
@@ -383,5 +400,6 @@
     gsl_eigen_nonsymmv_free(T);
 
-    // copy eigenvectors real-parts into content_square and display
+    // copy eigenvectors real-parts into content_square and ...
+    // ... show complex-valued eigenvector matrix
     std::cout << "Resulting eigenvector matrix is [";
     for (size_t i=0; i<greaterDimension; i++) {
Index: src/LinearAlgebra/MatrixContent.hpp
===================================================================
--- src/LinearAlgebra/MatrixContent.hpp	(revision b4cf2b752620d3a300d2fa3fef55de302a2b7065)
+++ src/LinearAlgebra/MatrixContent.hpp	(revision 8e9ce1f9895161c968ecfcdfd3228bebdd711671)
@@ -39,4 +39,9 @@
 class Vector;
 
+/** Dummy structure to create a unique signature.
+ *
+ */
+struct MatrixBaseCase{};
+
 class MatrixContent
 {
@@ -50,9 +55,10 @@
 public:
   MatrixContent(size_t rows, size_t columns);
+  MatrixContent(size_t _rows, size_t _columns, MatrixBaseCase);
   MatrixContent(size_t rows, size_t columns, const double *src);
   MatrixContent(gsl_matrix *&src);
   MatrixContent(const MatrixContent &src);
   MatrixContent(const MatrixContent *src);
-  ~MatrixContent();
+  virtual ~MatrixContent();
 
   // Accessing
@@ -98,8 +104,9 @@
   const double *const_Pointer(size_t m, size_t n) const;
 
-private:
   gsl_matrix * content;
   const size_t rows;      // store for internal purposes
   const size_t columns;  // store for internal purposes
+
+private:
 };
 
@@ -109,3 +116,26 @@
 std::ostream & operator<<(std::ostream &ost, const MatrixContent &mat);
 
+/** Matrix view.
+ * Extension of MatrixContent to contain not a gsl_matrix but only a view on a
+ * gsl_matrix
+ *
+ * We need the above MatrixBaseCase here:
+ * content, i.e. the gsl_matrix, must not be allocated, as it is just a view
+ * with an internal gsl_matrix_view. Hence, MatrixBaseCase is just dummy class
+ * to give the constructor a unique signature.
+ */
+struct MatrixViewContent : public MatrixContent
+{
+  MatrixViewContent(gsl_matrix_view _view) :
+    MatrixContent(_view.matrix.size1, _view.matrix.size2, MatrixBaseCase()),
+    view(_view)
+  {
+    content = &view.matrix;
+  }
+  ~MatrixViewContent(){
+    content=0;
+  }
+  gsl_matrix_view view;
+};
+
 #endif /* MATRIXCONTENT_HPP_ */
Index: src/LinearAlgebra/VectorContent.cpp
===================================================================
--- src/LinearAlgebra/VectorContent.cpp	(revision b4cf2b752620d3a300d2fa3fef55de302a2b7065)
+++ src/LinearAlgebra/VectorContent.cpp	(revision 8e9ce1f9895161c968ecfcdfd3228bebdd711671)
@@ -39,11 +39,11 @@
 
 /** Constructor of class VectorContent.
- * We need this BaseCase for the VectorContentView class.
+ * We need this VectorBaseCase for the VectorContentView class.
  * There no content should be allocated, as it is just a view with an internal
- * gsl_vector_view. Hence, BaseCase is just dummy class to give the constructor
- * a unique signature.
- * \param BaseCase
- */
-VectorContent::VectorContent(BaseCase)
+ * gsl_vector_view. Hence, VectorBaseCase is just dummy class to give the
+ * constructor a unique signature.
+ * \param VectorBaseCase
+ */
+VectorContent::VectorContent(VectorBaseCase)
 {}
 
Index: src/LinearAlgebra/VectorContent.hpp
===================================================================
--- src/LinearAlgebra/VectorContent.hpp	(revision b4cf2b752620d3a300d2fa3fef55de302a2b7065)
+++ src/LinearAlgebra/VectorContent.hpp	(revision 8e9ce1f9895161c968ecfcdfd3228bebdd711671)
@@ -27,5 +27,5 @@
  *
  */
-struct BaseCase{};
+struct VectorBaseCase{};
 
 class VectorContent{
@@ -38,5 +38,5 @@
 public:
   explicit VectorContent(size_t _dim);
-  VectorContent(BaseCase);
+  VectorContent(VectorBaseCase);
   VectorContent(const VectorContent * const src);
   VectorContent(const VectorContent & src);
@@ -99,13 +99,13 @@
  * gsl_vector (or row/column in a gsl_matrix).
  *
- * We need the above BaseCase here:
+ * We need the above VectorBaseCase here:
  * content, i.e. the gsl_vector, must not be allocated, as it is just a view
- * with an internal gsl_vector_view. Hence, BaseCase is just dummy class to
- * give the constructor a unique signature.
+ * with an internal gsl_vector_view. Hence, VectorBaseCase is just dummy class
+ * to give the constructor a unique signature.
  */
 struct VectorViewContent : public VectorContent
 {
   VectorViewContent(gsl_vector_view _view) :
-    VectorContent(BaseCase()),
+    VectorContent(VectorBaseCase()),
     view(_view)
   {
