Gael Guennebaud
cf0857c44d
fix MSVC stupid warnings
2009-01-29 09:45:25 +00:00
Gael Guennebaud
36c8a64923
add MatrixBase::stableNorm() avoiding over/under-flow
...
using it in QR reduced the error of Keir test from 1e-12 to 1e-24 but
that's much more expensive !
2009-01-28 22:11:56 +00:00
Gael Guennebaud
42b237b83a
* make sum and redux honor EvalBeforeNestingBit too
...
* fix MSVC issues (hopefully)
2009-01-28 21:09:08 +00:00
Gael Guennebaud
cc6159743d
make dot() honor EvalBeforeNestingBit
2009-01-28 20:53:27 +00:00
Benoit Jacob
9bc44094c5
add EIGEN_NO_AUTOMATIC_RESIZING
...
if defined, already initialized matrices won't be automatically resized in assignments
uninitialized matrices may still be initialized
2009-01-28 16:44:03 +00:00
Gael Guennebaud
1b194193ef
Big change in DiagonalMatrix and Geometry/Scaling:
...
* previous DiagonalMatrix expression is now DiagonalMatrixWrapper
* DiagonalMatrix class is now for storage
* add the DiagonalMatrixBase class to factorize code of the
two previous classes
* remove Scaling class (it is now a global function)
* add UniformScaling helper class
(don't use it directly, use the Scaling function)
* add the Scaling global function to simplify the creation
of scaling objects
There is still a lot to do, in particular about DiagonalProduct for which
the goal is to get rid of the "if()" in the coeff() function. At least
it is not worse than before ! Also need to uptade the tutorial and add more doc.
2009-01-28 16:26:06 +00:00
Gael Guennebaud
da555585e2
Patch from Frank fixing stupid MSVC internal crash
2009-01-28 12:52:26 +00:00
Gael Guennebaud
8ce4503494
add support for read/write sub sets of inner vectors (sparse module)
2009-01-27 22:48:17 +00:00
Gael Guennebaud
4ac8cabf8a
fix my previous commit with EIGEN_EMPTY macro bug
2009-01-27 19:08:20 +00:00
Gael Guennebaud
d700343632
fix "empty macro arguments are undefined in ISO C90 and ISO C++98"
...
warning found by gcc-svn
2009-01-27 17:40:14 +00:00
Benoit Jacob
f6aa60bcf3
centralize those static asserts more upstream, reduces duplication and ensures they can't be bypassed (e.g.
...
until now it was possible to bypass the static assert on sizes)
2009-01-27 15:40:05 +00:00
Benoit Jacob
8d236e74a1
add a missing static assertion on the scalar types
2009-01-27 15:29:07 +00:00
Benoit Jacob
046a84c0ef
fix doc for norm() and squaredNorm(): these are not only for vectors
2009-01-27 14:05:20 +00:00
Benoit Jacob
00d7f8e567
* solveTriangularInPlace(): take a const ref and const_cast it, to allow passing temporary xprs.
...
* improvements, simplifications in LU::solve()
* remove remnant of old norm2()
2009-01-25 23:46:51 +00:00
Gael Guennebaud
81b0ab53cf
add fill() function as an alias for setConstant
2009-01-24 10:52:18 +00:00
Gael Guennebaud
9849931500
eventually it turns out that our current
...
EIGEN_WORK_AROUND_QT_BUG_CALLING_WRONG_OPERATOR_NEW_FIXED_IN_QT_4_5
is the right way to go for allowing placement new on a class having
overloaded operator new. Qt 4.5 won't add the :: prefix. (I still do not
understand how you can distinghish a placement new from an overloaded
operator new taking an allocator as argument...)
2009-01-23 16:31:03 +00:00
Benoit Jacob
9e3c73110a
fix a bunch of warnings (actual issues) reported by Frank
2009-01-22 00:09:34 +00:00
Benoit Jacob
7ccea9222c
fix warnings
2009-01-21 20:06:16 +00:00
Gael Guennebaud
52cf07d266
sparse module:
...
* add row(i), col(i) functions
* add prune() function to remove small coefficients
2009-01-21 18:46:04 +00:00
Benoit Jacob
5f43a42ee7
* remove set(), revert to old behavior where = resizes
...
* try to be clever in matrix ctors and operator=: be lazy when we can, always allow
to copy rowvector into columnvector, check the template parameters,
try to factor the code better
* add missing copy ctor in UnalignedType
* fix bug in the traits of DiagonalProduct
* renaming: EIGEN_TUNE_FOR_CPU_CACHE_SIZE
* update the dox a little
2009-01-21 17:10:23 +00:00
Gael Guennebaud
8973d12cda
* QR: add a rank() method and improve the accuracy of the rank
...
* computation
* Array: add a count() method and rename AllAndAny.h file to
BooleanRedux.h
2009-01-20 16:37:52 +00:00
Gael Guennebaud
178858f1bd
add a flexible sparse matrix class designed for fast matrix assembly
2009-01-19 15:20:45 +00:00
Benoit Jacob
385fd3d918
* clarify the situation with experimental parts
...
* remove all what was marked deprecated
2009-01-19 15:02:24 +00:00
Gael Guennebaud
708fa36750
revert bad commit
2009-01-19 08:21:32 +00:00
Gael Guennebaud
0c7974dd4d
bugfix in Map by Keir Mierle
2009-01-18 09:53:06 +00:00
Gael Guennebaud
c5020c6e8e
patch from Ricard Marxer: add doc example for select()
2009-01-17 09:59:32 +00:00
Gael Guennebaud
1eec38dc36
Rewrite the vectorized meta unroller of sum to reduce instruction
...
dependency => significant speed up
2009-01-17 09:48:58 +00:00
Gael Guennebaud
48df9ed715
Add a data() function in Map and Block
2009-01-16 10:25:53 +00:00
Gael Guennebaud
0b606dcccd
Add support for sparse * dense and dense * sparse matrix/vector products
2009-01-14 17:41:55 +00:00
Gael Guennebaud
c4c70669d1
Big rewrite in the Sparse module: SparseMatrixBase no longer inherits MatrixBase.
...
That means a lot of features which were available for sparse matrices
via the dense (and super slow) implemention are no longer available.
All features which make sense for sparse matrices (aka can be implemented efficiently) will be
implemented soon, but don't expect to see an API as rich as for the dense path.
Other changes:
* no block(), row(), col() anymore.
* instead use .innerVector() to get a col or row vector of a matrix.
* .segment(), start(), end() will be back soon, not sure for block()
* faster cwise product
2009-01-14 14:24:10 +00:00
Benoit Jacob
a5632fe1db
add EIGEN_FUNCTORS_PLUGIN
2009-01-13 16:27:26 +00:00
Benoit Jacob
e8e1084267
add EIGEN_CWISE_PLUGIN support for extending class Cwise
2009-01-13 15:31:06 +00:00
Gael Guennebaud
ec0b2f900c
fix a couple of doxygen issues
2009-01-13 08:30:17 +00:00
Benoit Jacob
b179f8e1a4
add NetBSD to the list of OSes on which malloc is guaranteed to be 16
...
byte aligned, after discussion with Mark Davies.
CCMAIL: mark@ecs.vuw.ac.nz
2009-01-12 22:39:26 +00:00
Benoit Jacob
4d44ca226e
* make std::vector specializations also for Transform and for Quaternion
...
* update test_stdvector
* Quaternion() does nothing (instead of bug)
* update test_geometry
* some renaming
2009-01-12 16:06:04 +00:00
Gael Guennebaud
6efaece8ce
disable/enable msvc headers are allowed to be included multiple times
2009-01-12 14:46:11 +00:00
Gael Guennebaud
f86818b5a6
bug fix in ei_stack_free
2009-01-12 14:20:21 +00:00
Benoit Jacob
336ad58213
* move cwise *= and /= to Core (like * and /)
...
* tidy the StdVector module
* fix warnings (especially a | instead of ||) in stdvector test
2009-01-12 13:41:40 +00:00
Gael Guennebaud
a4252584ed
bugfix in ei_handmade_aligned_free for null pointers
2009-01-12 12:54:32 +00:00
Gael Guennebaud
f268e79709
simplify some ei_traits<> using inheritance
...
(less loc and slight compilation speed up)
2009-01-11 22:03:40 +00:00
Benoit Jacob
a30b498ab4
add cwise operator *= and /=.
...
Keir says hi!!
2009-01-11 20:48:56 +00:00
Armin Berres
6c84b03d77
add missing newline at EOF
2009-01-11 13:32:55 +00:00
Benoit Jacob
4361cb8913
EIGEN_NO_MALLOC must also block traditional unaligned malloc
2009-01-10 14:24:55 +00:00
Benoit Jacob
0c1ef2f4c6
make the std::vector fix work also with dynamic size Eigen objects, e.g.
...
std::vector<VectorXd>
update unit test
2009-01-10 13:10:23 +00:00
Benoit Jacob
3efe6e4176
remove ei_new_allocator
...
remove corresponding part of test_dynalloc
2009-01-10 02:50:09 +00:00
Benoit Jacob
335d3bcf05
Based on code + help from Alex Stapleton:
...
*Add Eigen/StdVector header.
Including it #includes<vector> and "Core" and generates a partial
specialization of std::vector<T> for T=Eigen::Matrix<...>
that will work even with vectorizable fixed-size Eigen types
(working around a design issue in the c++ STL)
*Add unit-test
CCMAIL: alex.stapleton@gmail.com
2009-01-09 23:26:45 +00:00
Benoit Jacob
5052d3659b
oops, fix compilation (sorry for all that noise!)
2009-01-09 21:43:46 +00:00
Benoit Jacob
5bef59e371
(previous commit was bad)
2009-01-09 21:32:44 +00:00
Benoit Jacob
265ab86005
overloaded operator delete should call ei_conditinal_aligned_free, not
...
ei_aligned_free
2009-01-09 21:28:53 +00:00
Benoit Jacob
b3d580dec7
ei_aligned_delete was running through the various paths in the wrong
...
order
2009-01-09 20:57:06 +00:00