223 Commits

Author SHA1 Message Date
Benoit Jacob
af131fe770 update to fix compilation 2008-03-16 21:04:33 +00:00
Benoit Jacob
fb3438e609 - expand MathFunctions.h to provide more functions, like exp, log...
- add cwiseExp(), cwiseLog()...
   --> for example, doing a gamma-correction on a bitmap image stored as
       an array of floats is a simple matter of:
         Eigen::Map<VectorXf> m = VectorXf::map(bitmap,size);
         m = m.cwisePow(gamma);
- apidoc improvements, reorganization of the \name's
- remove obsolete examples
- remove EIGEN_ALWAYS_INLINE on lazyProduct(), it seems useless.
2008-03-14 10:38:37 +00:00
Benoit Jacob
fe569b060c get rid of MatrixRef, simplifications. 2008-03-13 20:36:01 +00:00
Benoit Jacob
afc64f3332 a lot of renaming
internal classes: AaBb -> ei_aa_bb
IntAtRunTimeIfDynamic -> ei_int_if_dynamic
unify UNROLLING_LIMIT (there was no reason to have operator= use
a higher limit)
etc...
2008-03-13 09:33:26 +00:00
Gael Guennebaud
35bce20954 Removed Column and Row in favor of Block 2008-03-12 18:10:52 +00:00
Benoit Jacob
6da4d9d256 fix compilation (forgot to update that file after last big change) 2008-03-12 17:25:14 +00:00
Benoit Jacob
01572b9f54 big change: MatrixBase only takes one template parameter "Derived", the
template parameter "Scalar" is removed. This is achieved by introducting a
template <typename Derived> struct Scalar to achieve a forward-declaration of
the Scalar typedefs.
2008-03-10 17:23:11 +00:00
Gael Guennebaud
9d9d81ad71 * basic support for multicore CPU via a .evalOMP() which
internaly uses OpenMP if enabled at compile time.
 * added a bench/ folder with a couple benchmarks and benchmark tools.
2008-03-09 16:13:47 +00:00
Gael Guennebaud
f64311e07d Extended the comma initializer to support xpr on the right side:
Matrix3i mat; Vector2i vec(33,66);
  mat << vec.transpose(), 99,
         vec, Matrix2i::random();
2008-03-08 19:46:06 +00:00
Gael Guennebaud
721626dfc5 * Added support for a comma initializer: mat.block(i,j,2,2) << 1, 2, 3, 4;
If the number of coefficients does not match the matrix size, then an assertion is raised.
  No support for xpr on the right side for the moment.

* Added support for assertion checking. This allows to test that an assertion is indeed raised
  when it should be.

* Fixed a mistake in the CwiseUnary example.
2008-03-08 19:02:24 +00:00
Gael Guennebaud
138aad0ed0 * coefficient wise operators are more generic, with controllable result type.
- compatible with current STL's functors as well as with the extention proposal (TR1)
 * thanks to the above, Cast and ScalarMultiple have been removed
 * benchmark_suite is more flexible (compiler and matrix size)
2008-03-06 11:36:27 +00:00
Benoit Jacob
861c6f4c9b renaming: ref() --> asArg() 2008-03-04 17:08:23 +00:00
Gael Guennebaud
f65cca5d1d * Eigen compiles with any GCC versions from, at least, 3.3 without the previous ugly hack :)
* Renamed the scalar functors with the "Scalar" prefix (instead of "Cwise")
2008-03-04 12:34:58 +00:00
Gael Guennebaud
255689231d * Added generic unary operators (replace Opposite and Conjugate)
* functor templates are not template template parameter anymore
   (this allows to make templated functors !)
 * Main page: extented compiler discussion
 * A small hack to support gcc 3.4 and 4.0 (see the main page)
 * Fix a cast type issue in Cast
 * Various doxygen updates (mainly Cwise stuff and added doxygen groups
   in MatrixBase to split the huge memeber list, still not perfect though)
 * Updated Gael's email address
2008-03-03 10:52:44 +00:00
Benoit Jacob
ed20f64d68 release alpha4, Gael edition 2008-02-29 14:50:11 +00:00
Benoit Jacob
f12e9c53ac Patch by Gael Guennebaud: unify fixed-size and dynamic-size Block
expressions, update documentation.
2008-02-29 13:56:40 +00:00
Benoit Jacob
3698d8cf33 Relicense --> dual-license LGPL3+/GPL2+ 2008-02-28 15:44:45 +00:00
Benoit Jacob
6907886a15 prefix global functions with ei_ as previous solution was rather
fragile. also fix compilation with g++ 4.3.
2008-02-28 12:38:12 +00:00
Benoit Jacob
c67e717404 alpha 3.1. in this commit:
- finally get the Eval stuff right. get back to having Eval as
  a subclass of Matrix with limited functionality, and then,
  add a typedef MatrixType to get the actual matrix type.
- add swap(), findBiggestCoeff()
- bugfix by Ramon in Transpose
- new demo: doc/echelon.cpp
2008-01-15 13:55:47 +00:00
Benoit Jacob
183bf54d27 final fixes and updates for alpha3 2008-01-13 23:38:48 +00:00
Benoit Jacob
57d7b7d97b documentation update for alpha 3 2008-01-13 23:17:51 +00:00
Benoit Jacob
6ce996f219 big improvement of the block-manipulation API
- reduction of sizeof(Block) for vector types
- variants of block() and fixedBlock() for vector blocks
- convenience methods start() and end() for vectors
- convenience method corner() for matrices
2008-01-13 22:48:57 +00:00
Benoit Jacob
95dc68dc86 renaming:
Block -> FixedBlock
DynBlock -> Block
indeed, previous commit solves the main issue with DynBlock so
is should now be the more commonly used one.
2008-01-13 20:19:14 +00:00
Benoit Jacob
89a134ba0b big architecture change dissociating "actual" dimensions from "maximum possible"
dimension. The advantage is that evaluating a dynamic-sized block in a fixed-size
matrix no longer causes a dynamic memory allocation. Other new thing:
IntAtRunTimeIfDynamic allows storing an integer at zero cost if it is known at
compile time.
2008-01-13 19:55:23 +00:00
Benoit Jacob
bcf7b29185 rework Identity API: no longer restricted to square matrices 2008-01-11 15:56:21 +00:00
Benoit Jacob
e092cbc75c -add set...() methods and their documentation; remove Generic
-use row-major traversal when the number of columns is fixed
 and the number of rows is dynamic
-other minor changes
2008-01-11 15:08:04 +00:00
Benoit Jacob
45a4b61b5f switch to enums everywhere 2008-01-10 20:45:35 +00:00
Benoit Jacob
209cf7c91f TODO is now on techbase 2008-01-09 13:04:04 +00:00
Benoit Jacob
8ba3055447 Ready for alpha2 release.
- complete documentation
- add TODO
- update copyright years
2008-01-07 09:34:21 +00:00
Benoit Jacob
84934ea217 - move: DerivedTraits becomes MatrixBase::Traits
- the static constants are private again in the Derived classes
- more documentation and code snippets
- new isDiagonal() method
2008-01-06 16:35:21 +00:00
Benoit Jacob
d1d55e67e9 - make MatrixBase and all expressions aware of their preferred traversal order.
Honor this preference in operator=.
- add several methods to the API
- rework API for diagonal matrices
- add benchmarking code
2008-01-05 10:57:14 +00:00
Benoit Jacob
23ffede3d0 more documentation, 12 more code snippets 2008-01-03 19:36:32 +00:00
Benoit Jacob
42f6590bb2 cleanup: remove copy contructors when the compiler is able to generate a satisfactory
default copy constructor; remove useless static_cast's; some misc cleanup.
2007-12-31 13:29:51 +00:00
Benoit Jacob
86220784b6 part 2 of the reorganization. Benefits/changes:
1) Eigen2 co-installable with Eigen1 without conflict, without affecting programs including either.
2) #include<Eigen/Core> without the .h without conflict with the Core/ directory
3) Uniformize coding style of the CMakeLists.
2007-12-28 16:20:00 +00:00
Benoit Jacob
e7bdbe2e6a matrix storage order can now also be row-dominant (choosable for each matrix separately)
map() moves from MatrixBase to Matrix
much more documentation/examples/snippets
2007-12-27 21:43:10 +00:00
Benoit Jacob
6b9370e0f0 more changes in ScalarMultiple, reintroduce FloatingPoint in NumTraits, improve
examples
2007-12-26 09:25:00 +00:00
Benoit Jacob
dad245af56 - eigen2 now fully enforces constness! found a way to achieve that
with minimal code duplication. There now are only two (2)
  const_cast remaining in the whole source code.
- eigen2 now fully allows copying a row-vector into a column-vector.
  added a unit-test for that.
- split unit tests, improve docs, various improvements.
2007-12-25 17:20:58 +00:00
Benoit Jacob
3cd2a125b2 - rework the coefficients API
- make vectors use a separate loop unroller, so that copying a
row-vector into a col-vector is now possible
- add much more documentation
- misc improvements
2007-12-24 11:14:25 +00:00
Benoit Jacob
e937583655 everything works, make now runs doxygen once and only once, after all
the required files have been generated.
2007-12-21 11:29:04 +00:00
Benoit Jacob
c38156a217 now we also have a examples/ directory for self-contained examples,
and this is already used to document DynBlock
2007-12-21 10:35:00 +00:00
Benoit Jacob
a316cd8a76 now cmake takes snippets of code, completes them into compilable sources, builds them,
executes them and stores their output in files.
2007-12-21 09:30:32 +00:00
Benoit Jacob
ee3410f79a renaming (commit in order to avoid svn breakage) 2007-12-21 09:05:41 +00:00
Benoit Jacob
04e3512eb6 first version of CMakeLists auto-generating examples outputs 2007-12-21 09:02:24 +00:00
Benoit Jacob
64f5d5d318 move the documentation to doc/, add dummy documentation to srcdir/ compiling to
an explanation of how to generate the docs
2007-12-21 07:30:15 +00:00
Benoit Jacob
a52c74095f rename src/ to Eigen/ so that we're able to #include<Eigen/Core.h>
in the examples instead of ugly things like #include"../../src/Core.h"
2007-12-20 21:25:13 +00:00
Benoit Jacob
647a817b2e more documentation and examples, add Doxyfile and Mainpage.dox and also
the benchmark program
2007-12-20 21:11:05 +00:00
Benoit Jacob
1a94c28bfe and here is the fixed-size Block class 2007-12-05 07:39:26 +00:00
Benoit Jacob
04502cccd9 rename Block to DynBlock and rework API to make place for
upcoming fixed-size Block matrix. Also some cleanup.
2007-12-05 07:22:22 +00:00
Benoit Jacob
39f1776bde rename Object -> MatrixBase 2007-11-27 13:57:51 +00:00
Benoit Jacob
f355ef2df0 Merge WrapArray into FromArray. Less code. The downside is that we're using one more
const_cast. But I think that anyway trying to maintain const strictness in Eigen2 is not
worth the hassle.

Konstantin: so the code snippet I sent you won't work anymore, replace wrapArray with fromArray.

CCMAIL:konst.heil@stud.uni-heidelberg.de
2007-10-14 18:02:16 +00:00