Benoit Jacob
b3268a6e2f
-merge patch from Gael Guennebaud adding NumTraits for long long
...
and long double.
-define scalar-multiple operators only for the current Scalar type;
thanks to Gael for expaining how to make the compiler understand
when automatic casting is needed.
-take ScalarMultiple take only 1 template param, again.
We lose some flexibility especially when dealing with complex numbers,
but we gain a lot of extensibility to new scalar types.
2008-02-29 13:20:44 +00:00
Benoit Jacob
aa8e2bcbde
Patch by Gael Guennebaud:
...
Rework the matrix storage to ensure optimal sizeof in all cases, while
keeping the decoupling of matrix sizes versus storage sizes.
Also fixing (recently introduced) bugs caused by unwanted
reallocations of the buffers.
2008-02-29 10:55:53 +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
9c9a42cc49
Eval is now implemented like the other expression types, it no longer
...
inherits Matrix. Remove the typedefs I added in Matrix.
2008-01-14 22:36:37 +00:00
Benoit Jacob
2ee7969f0a
re-optimize Matrix::resize(), add some comments
2008-01-14 13:14:49 +00:00
Benoit Jacob
e20aceb6eb
cleanup in Eval; instead introduce convenient typedefs in Matrix
...
for naming special related matrix types: RowType, ColumnType,
BlockType
2008-01-14 11:25:09 +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
e05a1aba1d
one bugfix and one optimization
2008-01-11 16:06:31 +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
aae0667e1e
reorganization/cleanup
2008-01-11 07:16:18 +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
47d354924b
revert most of previous commit. It really is better to forbid default
...
constructor for dynamic-size matrices. Now why do I feel like a beheaded
chicken running around?
2008-01-08 10:39:36 +00:00
Benoit Jacob
b036eca902
Revert to allowing default Matrix constructor even for dynamic size (which is
...
then set to 1). Discussion with jonasp made me remember why we did so in Eigen1.
Also add default constructor to Eval
2008-01-07 21:19:36 +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
5111ace0d6
move default parameter values from function definition to function declaration.
...
doxygen likes it and this fixes compilation on ICC.
2008-01-06 19:34:28 +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
aaf889e72b
remove all the _Order mechanics, now we are always traversing matrices in
...
column-major order, even if storage is row-major. Benchmark showed that adapting
the traversal order to the storage order brought no benefit.
Also do some cleanup after Gael's big patch.
2008-01-06 13:57:29 +00:00
Benoit Jacob
495eb7053a
Patch by Gael Guennebaud, making Eigen compatible with the Intel compiler (icc).
...
CCMAIL:eigen@lists.tuxfamily.org
2008-01-06 13:17:07 +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
dfdad129a3
move Core/ to a src/ subdir, in preparation for following changes
2007-12-28 16:00:55 +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
05a49547e1
in ScalarMultiple, make the factor type independent from the matrix scalar type.
...
This is an optimization for complex matrices, allowing to do only a real multiplication
when a complex multiplication is not needed, e.g. in normalized().
2007-12-26 08:30:21 +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
eb6ee51fdf
will svn finally let me remove this dir?
2007-12-21 09:31:17 +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
cddeeee17d
- make RowsAtCompileTime and ColsAtCompileTime public in
...
MatrixBase and private in derived types
- initial documentation in MatrixBase
2007-12-19 09:30:53 +00:00
Benoit Jacob
59be5c3124
enforce constness in map(), do only one const_cast, and improve API
2007-12-19 08:14:00 +00:00
Benoit Jacob
8bb98a80b4
split the coeffs accessors/mutators into a separate Coeffs.h file
2007-12-18 16:02:14 +00:00
Benoit Jacob
3380429e3a
Improve the "map" API and corresponding Matrix constructors
2007-12-18 15:29:28 +00:00
Benoit Jacob
a32690a222
Eval is read-only, don't generate any assignment operator
2007-12-18 12:12:37 +00:00