Benoit Jacob
ae2072406c
Introduce Numeric Traits, with fuzzy compares, random numbers, etc.
2007-10-07 12:44:42 +00:00
Benoit Jacob
c768a44909
Add matrix transposition
2007-10-01 18:20:35 +00:00
Benoit Jacob
f5f45d751c
Move the meta loop unrolling to a separate file, Loop.h
2007-10-01 17:07:38 +00:00
Benoit Jacob
96524fc573
Split Row and Column into separate files.
...
Introduce a notion of RowVector (typedef for Matriw with 1 row)
Make row() return a row vector instead of a "column vector"
Introduce operator[] to access elements of row/column vectors uniformly
Remove default arguments in operator(), these were for vectors, now use operator[] instead
2007-10-01 07:45:30 +00:00
Benoit Jacob
3cf6caba1a
remove useless typedefs
2007-10-01 06:51:25 +00:00
Benoit Jacob
6015698047
Michael was right, it's best to base the unrolling limit on the product Rows*Cols.
2007-10-01 06:30:20 +00:00
Benoit Jacob
656919619f
- add copyright line for Michael Olbrich
...
- some meta unrolling improvements
2007-10-01 06:23:05 +00:00
Benoit Jacob
e116aba444
adapt to coding style used elsewhere in eigen2
2007-10-01 04:57:51 +00:00
Michael Olbrich
2d823d8ef6
Generic loop unrolling with template metaprograms. It seems to be as fast as
...
manually unrolling.
TODO: decide when to stop unrolling (speed vs. code size).
maybe only unroll one loop for larger matixes.
2007-09-30 20:38:09 +00:00
Michael Olbrich
1d3743d2c5
for dynamic size matrix (Rows|Cols)AtCompileTime is always EiDynamic and not
...
"(Rows|Cols)AtCompileTime - 1" which would be EiDynamic - 1 == -2
2007-09-30 20:23:24 +00:00
Benoit Jacob
023773beaa
Fix super-nasty bug in the declaration of the storage array of fixed-size matrices.
...
Also some simplifications.
2007-09-30 14:56:11 +00:00
Benoit Jacob
7d41ad9d90
Get rid of a nasty const_cast by introducing a MatrixConstRef class.
...
Remove the __restrict__'s for now.
2007-09-29 17:27:20 +00:00
Benoit Jacob
ee63e15e2c
make matrix multiplication do immediate evaluation; add lazyMul() for the old behaviour
...
some reorganization, especially in MatrixStorage
start playing with loop unrolling, always_inline, and __restrict__
2007-09-29 08:28:36 +00:00
Benoit Jacob
51e29ae4bd
some reorganization leading to simpler expression trees
2007-09-28 11:20:29 +00:00
Benoit Jacob
835e0c9f67
Found a way to have eval() be a member function of class EiObject, instead of a global function.
...
CCMAIL:bensch128@yahoo.com
2007-09-28 06:10:34 +00:00
Benoit Jacob
28c44a95c2
Finish prefixing everything with "Ei"
2007-09-27 19:54:04 +00:00
Benoit Jacob
5160e9d029
Half-way commit prefixing object names. I am forced to commit now
...
because I renamed a file once with a wrong filename and svn refuses to
let me rename it again, tells me i should propagate first.
2007-09-27 19:38:40 +00:00
Benoit Jacob
4e299afb1f
don't enclose eigen in a namespace. prefixing is the way to go.
...
For example Qt uses a prefix and no namespace (except for a few things)
2007-09-27 19:24:57 +00:00
Benoit Jacob
d99d9407df
add operators *= and /=
2007-09-27 19:20:06 +00:00
Benoit Jacob
628b1a8f6d
implement scalar operators separately for each type using a macro.
...
This is required e.g. to allow "2 * m" with m a matrix of doubles.
2007-09-27 07:42:12 +00:00
Benoit Jacob
8a024825d2
fix bugs caused by default copy constructors being called. valgrind,
...
you saved my life.
2007-09-26 14:06:32 +00:00
Benoit Jacob
a2dd9dd6f9
Give the axe to the aliasing system.
...
Improve the evaluation system instead.
2007-09-26 14:06:26 +00:00
Benoit Jacob
55227b1f63
Deep refactoring.
...
1) Kill MatrixXpr class, instead let all class inherit a common EigenBase class
2) Kill MatrixBase/Matrix/Vector classes, instead introduce a single Matrix class,
a MatrixStorage class, and typedefs to emulate vectors
3) Huge code cleanup, remove large preprocessor macros, sloccount drop to ~750
down from 1100.
4) Introduce compile-time-known sizes
2007-09-26 14:06:14 +00:00
Benoit Jacob
1af61c6ff0
reorganize header files, split MatrixBase into smaller files.
...
expose only a few meta-headers to the user, the rest moves to a internal/ subdirectory
2007-09-09 09:41:15 +00:00