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
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
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
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
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
8bb98a80b4
split the coeffs accessors/mutators into a separate Coeffs.h file
2007-12-18 16:02:14 +00:00
Benoit Jacob
2c656c51e6
add matrix constructor taking an array. update unit-tests.
2007-12-18 08:56:18 +00:00
Benoit Jacob
53040f53d9
add constructors and accessors/mutators specific to small vectors.
...
Add corresponding unit-test.
2007-12-17 20:51:40 +00:00
Benoit Jacob
7c38475291
-add Ones, DiagonalMatrix, DiagonalCoeffs
...
-expand and improve unit-tests
-various renaming and improvements
2007-12-15 18:16:30 +00:00
Benoit Jacob
fc7b2b5c20
expand unit-tests and fix const-qualifaction bugs thus discovered
2007-12-12 17:48:20 +00:00
Benoit Jacob
0cbdaf6bb8
revert most of my previous commit. forcing the compiler to inline only increased
...
its memory usage.
2007-12-11 14:57:42 +00:00
Benoit Jacob
936b0de9cc
play with inlining to get better performance when the compiler is not asked to optimize
2007-12-11 13:14:14 +00:00
Benoit Jacob
2b20814ced
Expand and improve unit-tests
2007-12-11 10:07:18 +00:00
Benoit Jacob
68eba600b1
big reorganisation of asserts, so that:
...
0) asserts are only done in the public API, except for a few ones explicitly
named eigen_internal_assert.
1) internal asserts are disabled unless EIGEN_INTERNAL_DEBUGGING is defined.
This limits the impact of debugging on performance.
2) no 'unused argument' warnings anymore when compiling with -DNDEBUG
2007-12-05 08:56:42 +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
346c00f4c8
Rework the unit-tests to use lower precision, so as to eliminate
...
false positives. Also some cleanup in the fuzzy compares.
2007-12-03 10:23:08 +00:00
Benoit Jacob
5abaaf9688
Test application now takes 'seed' and 'repeat' command-line args
2007-12-03 08:35:23 +00:00
Benoit Jacob
e05f29191e
Much more convenient, less over-engineered NumTraits. Done during this KDE-Edu weekend.
2007-12-02 18:32:59 +00:00
Benoit Jacob
2fdd067d9e
add more unit-tests (covering transpose, conjugate, adjoint, dot product...)
2007-11-28 15:34:40 +00:00
Benoit Jacob
39f1776bde
rename Object -> MatrixBase
2007-11-27 13:57:51 +00:00
Benoit Jacob
5309ef5b5e
- improve and comment the "BasicStuff" test.
...
- adjust behavior of Matrix(int,int) constructor
- s/EI_/EIGEN_/
2007-11-26 08:47:07 +00:00
Benoit Jacob
f14712a1a3
Fix damage done by automatic search-and-replace
2007-11-25 22:05:49 +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
Benoit Jacob
3f97918760
restrict identity() to square matrices; small change helping g++ optimize.
2007-10-14 10:01:25 +00:00
Benoit Jacob
6c8f159635
add zero() and identity() static methods, update unit-tests
2007-10-14 09:18:18 +00:00
Benoit Jacob
0f2df4b202
remove support for type std::complex<int>. Simplify NumTraits accordingly.
2007-10-14 08:16:50 +00:00
Benoit Jacob
e445f5085a
implement the first _real_ unit-tests, testing the results for correctness instead
...
of just checking compilation.
Fix the many issues discovered by these unit-tests, by the way fixing a performance bug.
2007-10-13 16:56:24 +00:00
Benoit Jacob
12bcafdc75
some renaming in the fuzzy compares, and in the multiplications
2007-10-13 14:19:23 +00:00
Benoit Jacob
a4626cc808
rework the numeric traits now that we're using a namespace and no prefix
2007-10-12 05:56:36 +00:00
Benoit Jacob
3654ee8b07
SVN_SILENT:
...
repair some damage made by the automatic search and replace used in the
prefix->namespace move
2007-10-12 05:15:25 +00:00
Benoit Jacob
61de15f361
Democracy 1 - 0 Dictatorship
...
After huge thread on eigen mailing list, it appears that i'm the
only one in favor of prefix Ei. Everybody else prefers namespace
Eigen like we did in Eigen 1. So, revert.
Also add a macro USING_EIGEN_DATA_TYPES that application programmers
can use to automatically do "using"on the Matrix class and its
matrix/vector typedefs:
using Eigen::Matrix;
using Eigen::Matrix2d;
using Eigen::Vector2d;
... (the list of typedefs is really long).
thanks to the suffixes, the Vector typedefs aren't really polluting.
CCMAIL:eigen@lists.tuxfamily.org
P.S. Danny, please skip this one :) I know you already reported the
namespace->prefix move, now that one would be too much noise :)
2007-10-11 20:14:01 +00:00
Benoit Jacob
06e1e0d83b
fix dot product, add norm/norm2/normalized
...
add fuzzy compares for matrices/vectors
add random matrix/vector generation
2007-10-10 06:09:56 +00:00
Benoit Jacob
4fe78b8e10
reorganization of headers, part 2/2...
2007-10-07 15:59:09 +00:00
Benoit Jacob
9eff685428
add matrix conjugation and adjunction.
...
compilation fixes in the numeric traits.
2007-10-07 15:12:41 +00:00
Benoit Jacob
ae2072406c
Introduce Numeric Traits, with fuzzy compares, random numbers, etc.
2007-10-07 12:44:42 +00:00
Benoit Jacob
4241dddee9
temporarily remove division unit-tests. they caused div-by-zero's , reported by Michael Olbrich.
...
The solution will consist in adding a real Traits system.
2007-09-30 16:45:40 +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
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
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
Benoit Jacob
fe9b6b8f17
remove the MatrixConstXpr and MatrixConstRef classes.
...
Now the user doesn't need anymore to call .xpr() and can simply do:
matrix.row(i) += matrix.row(j)
Also remove the obsolete MatrixXpr::hasDynamicSize() method (thanks to
Michael Olbrich for reporting this).
CCMAIL:<michael.olbrich@gmx.net>
2007-09-09 08:15:48 +00:00
Benoit Jacob
c030e570fd
extend operators += and -= to aliases
2007-09-07 07:56:22 +00:00
Benoit Jacob
c3731b36d1
Add operator += and operator -= between matrices/vectors/expressions
2007-09-07 07:41:10 +00:00
Benoit Jacob
e7ef6dba9d
- Introduce aliasing system
...
- Remove operator<<, use .alias() instead
- Introduce operator/ (scalar)
- Cleanup, unit-tests update.
2007-09-06 10:16:51 +00:00
Benoit Jacob
1dabb45d94
Hello, World!
...
This is the initial commit for Eigen2, since I restarted it from scratch on Sunday.
2007-09-05 10:42:15 +00:00