From 486fdb26a1d9fa2cd74855d3d459aeb906967b8b Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Thu, 29 May 2008 03:12:30 +0000 Subject: many small fixes and documentation improvements, this should be alpha5. --- doc/Mainpage.dox | 155 +++---------------------------------------------------- 1 file changed, 6 insertions(+), 149 deletions(-) (limited to 'doc/Mainpage.dox') diff --git a/doc/Mainpage.dox b/doc/Mainpage.dox index a64c9286e..fae8e3fec 100644 --- a/doc/Mainpage.dox +++ b/doc/Mainpage.dox @@ -1,156 +1,13 @@ -o /** @mainpage Eigen +o /** \mainpage Eigen -

Table of contents

-Overview
-License
-Features
-To-do wiki
-Compiler Support
-News
-Download
-Relation to KDE
-Examples
-Applications using Eigen
-Credits
-Contact us
-Mailing list
+This is the API documentation for Eigen. - -

Overview

+Most of the API is available as methods in MatrixBase, so this is a good starting point for browsing. Also have a look at Matrix, as a few methods and the matrix constructors are there. -Eigen is a C++ template library for vector and matrix math, a.k.a. linear algebra. It aims to concile speed, ease of use, and completeness. +For a first contact with Eigen, it is enough to look at Matrix and MatrixBase. In fact, except for advanced use, the only class that you'll have to explicitly name in your program, i.e. of which you'll explicitly contruct objects, is Matrix. For instance, vectors are handled as a special case of Matrix with one column. - -

License

+The many other classes are typically return types for MatrixBase methods. -Eigen is dual-licensed: it can be redistributed and/or modified, at your choice, - - -Note that this is an OR, not an AND. You do not need to conform to both licenses, you just pick the one that you prefer. Typically, GPL projects will regard Eigen as GPL-licensed while non-GPL projects will regard Eigen as LGPL-licensed. - -Short licensing FAQ: - -Question: Why not just license under the LGPL, since anyway it is more liberal than the GPL?
-Answer: A library licensed under the LGPL3 cannot be used by a program licensed under the GPL2 (see here for details). Therefore, we offer the GPL2 as an alternative license choice for Eigen, in order to allow GPL2 programs to use it. - -Question: Why require the LGPL version to be at least 3?
-Answer: Because up to version 2.1, the LGPL does not handle the case of C++ template libraries, where all the code is in headers. This problem was solved in version 3 of the LGPL. - - -

Features

- -WARNING: this alpha release is NOT feature complete -- far from it! It contains only the Core module, while several other modules are planned. - -Here are general features of Eigen and more specific features of the Core module: - - - - -

To-do wiki

- -The To-do wiki for Eigen is here: http://techbase.kde.org/index.php?title=Projects/Eigen/TODO. - - -

Compiler Support

- -Eigen is standard C++98 and so should theoretically be compatible with any compliant compiler. Of course, in practice, things might be slightly different. At least, Eigen is known to compile with any version of GCC from 3.3 to 4.3 as well as with recent versions of ICC. - -Eigen is well tested with recent versions of GCC and ICC. Both GCC 4.2 and ICC give very good performance. ICC might provide even better performance when the auto-vectorization makes sense. For some reason the performance is not so great with GCC 4.1. - -For best performance, we recommend the following compilation flags: - - - - -

News

- -If you want to stay informed of Eigen news and releases, please subscribe to our mailing list. You can also browse the archive. - - -

Download

-The source code of the latest release is here: eigen-2.0-alpha4.tar.gz
- -Alternatively, you can checkout the development tree by anonymous svn, by doing: -
svn co svn://anonsvn.kde.org/home/kde/branches/work/eigen2
-or view it online at this address: -http://websvn.kde.org/branches/work/eigen2 - - -

Relation to KDE

- -First of all: Eigen doesn't have any dependency. In particular, it doesn't depend on any part of KDE or on Qt.
- -Eigen is part of the KDE project, in the sense that: - -However, we quickly realized that Eigen could be useful for non-KDE projects, whence our decision to make sure that it has no dependency on KDE or Qt. - -Although Eigen itself doesn't have any dependency, the unit-tests require Qt. - - -

Examples

- -There are a lot of small examples throughout the documentation. TODO: write more interesting, -standalone "demos". - - -

Applications using Eigen

- -TODO: update this section; make web links - -Currently: Kalzium, Avogadro, KSpread(a bit), Krita(a bit), KGLLib
-Planned: much more use in KOffice 2.1, Step (if we make Eigen good enough!), OpenBabel (maybe) - -Please tell us if you know of other interesting projects using Eigen! - - -

Credits

- - - - -

Contact us

- -The best way to contact us is by means of our mailing list.
-IRC Channel: \#eigen on Freenode.
-Website (you're here): http://eigen.tuxfamily.org
- - -

Mailing list

- -The Mailing list for Eigen is: eigen at lists tuxfamily org.
- -To subscribe, send a mail with subject "subscribe" to eigen-request at lists tuxfamily org.
-To unsubscribe, send a mail with subject "unsubscribe" to eigen-request at lists tuxfamily org.
- -You can also browse the archive. +This API documentation contains many short examples. For bigger examples, tutorials, and general explanations on Eigen, see the wiki. */ -- cgit v1.2.3