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
Benoit Jacob
fd831d5a12
* implement handmade aligned malloc, fast but always wastes 16 bytes of memory.
...
only used as fallback for now, needs benchmarking.
also notice that some malloc() impls do waste memory to keep track of alignment
and other stuff (check msdn's page on malloc).
* expand test_dynalloc to cover low level aligned alloc funcs. Remove the old
#ifdef EIGEN_VECTORIZE...
* rewrite the logic choosing an aligned alloc, some new stuff:
* malloc() already aligned on freebsd and windows x64 (plus apple already)
* _mm_malloc() used only if EIGEN_VECTORIZE
* posix_memalign: correct detection according to man page (not necessarily
linux specific), don't attempt to declare it if the platform didn't declare it
(there had to be a reason why it didn't declare it, right?)
2009-01-09 14:56:44 +00:00
Kenneth Frank Riddile
f52a9e5315
* Added aligned_allocator for using 16-byte aligned types with STL containers. There is still a compile-time problem with STL containers that have a standard-conformant resize() method, but this should resolve the original user issue which was storing aligned objects in a std::map.
2009-01-09 00:55:53 +00:00
Benoit Jacob
003d0ce03e
add missing inline keywords (compilation error) spotted by timvdm
2009-01-08 20:20:11 +00:00
Gael Guennebaud
b315f4c359
add a ctest testsuite.cmake script to simplify the generation of nightly builds
2009-01-08 18:38:58 +00:00
Benoit Jacob
51aa62a5d4
add EIGEN_WORK_AROUND_QT_BUG_CALLING_WRONG_OPERATOR_NEW_FIXED_IN_QT_4_5
...
an ugly hack that allows people to do QVector<Vector4f> with Qt <= 4.4
the Qt bug this is working around is fixed by Gael in Qt 4.5
2009-01-08 16:03:24 +00:00
Benoit Jacob
eb7dcbbfce
EIGEN_MAKE_ALIGNED_OPERATOR_NEW didn't actually need to get the class
...
name as parameter
2009-01-08 15:37:13 +00:00