aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util/Macros.h
Commit message (Collapse)AuthorAge
* fix warnings with unused static functionsGravatar Benoit Jacob2009-05-04
|
* let the user disable alignment altogether by #defining EIGEN_DONT_ALIGN.Gravatar Benoit Jacob2009-05-03
| | | | | | | Until now, the user had to edit the source code to do that. Internally, add EIGEN_ALIGN that takes into account both EIGEN_DONT_ALIGN.and EIGEN_ARCH_WANTS_ALIGNMENT. From now on, only EIGEN_ALIGN should be used to test whether we want to align.
* * Find SuperLU also when it is installed without a superlu/ prefixGravatar Benoit Jacob2009-04-01
| | | | * Some more CoeffReturnType changes
* The ABI break:Gravatar Benoit Jacob2009-03-26
| | | | | | | * set AutoAlign=0, DontAlign!=0 * set Dynamic=33331 * add check on fixed sizes * bump version to 2.0.52
* * enable vectorization of sin, cos, etc. by default with an option toGravatar Gael Guennebaud2009-03-26
| | | | | | | disable them (-DEIGEN_FAST_MATH=0) * add a specialization of MatrixBase::operator*(RealScalar) for fast "matrix of complex" times scalar products (even more useful for autodiff scalar types)
* more MSVC fixes (asm comments...)Gravatar Gael Guennebaud2009-03-17
|
* fix MapBase's ForceAligned concept which was not working at all....Gravatar Gael Guennebaud2009-03-09
|
* significantly reduce the default stack allocation limit which was muchGravatar Gael Guennebaud2009-03-06
| | | | too high
* increase version number for stepGravatar Gael Guennebaud2009-02-19
|
* should be __powerpc__ instead of __ppc__Gravatar Konstantinos A. Margaritis2009-02-08
|
* Add sub/super-diagonal expression (read/write) as a trivial extension ofGravatar Gael Guennebaud2009-02-05
| | | | | | | DiagonalCoeffs. The current API is simply: m.diagonal<1>() => 1st super diagonal m.diagonal<-2>() => the 2nd sub diagonal I'll add a code snippet once we agree on this API.
* disable alignment altogether outside of the platforms which potentially have ↵Gravatar Benoit Jacob2009-02-04
| | | | | | | SSE or AltiVec This should remove most portability issues to other platforms where data alignment issues (including overloading operator new and new[]) can be tricky, and where data alignment is not needed in the first place.
* call it "Eigen 2.0.50-unstable" to make things clear, and update ↵Gravatar Benoit Jacob2009-02-02
| | | | EIGEN_MINOR_VERSION to 50
* fix my previous commit with EIGEN_EMPTY macro bugGravatar Gael Guennebaud2009-01-27
|
* fix "empty macro arguments are undefined in ISO C90 and ISO C++98"Gravatar Gael Guennebaud2009-01-27
| | | | warning found by gcc-svn
* * remove set(), revert to old behavior where = resizesGravatar Benoit Jacob2009-01-21
| | | | | | | | | | * 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
* revert bad commitGravatar Gael Guennebaud2009-01-19
|
* patch from Ricard Marxer: add doc example for select()Gravatar Gael Guennebaud2009-01-17
|
* remove the Matrix_ prefixGravatar Benoit Jacob2009-01-06
|
* * require CMake 2.6.2 everywhere, Alexander Neundorf says it'd make itGravatar Benoit Jacob2009-01-04
| | | | | | easier to have a uniform requirement in kdesupport for when he makes fixes. * add eigen versioning macros
* * the 4th template param of Matrix is now Options. One bit for storageGravatar Benoit Jacob2009-01-04
| | | | | | | | | | | | | | | | order, one bit for enabling/disabling auto-alignment. If you want to disable, do: Matrix<float,4,1,Matrix_DontAlign> The Matrix_ prefix is the only way I can see to avoid ambiguity/pollution. The old RowMajor, ColMajor constants are deprecated, remain for now. * this prompted several improvements in matrix_storage. ei_aligned_array renamed to ei_matrix_array and moved there. The %16==0 tests are now much more centralized in 1 place there. * unalignedassert test: updated * update FindEigen2.cmake from KDElibs * determinant test: use VERIFY_IS_APPROX to fix false positives; add testing of 1 big matrix
* * fix a vectorization issue in ProductGravatar Gael Guennebaud2008-12-19
| | | | | | * use _mm_malloc/_mm_free on other platforms than linux of MSVC (eg., cygwin, OSX) * replace a lot of inline keywords by EIGEN_STRONG_INLINE to compensate for poor MSVC inlining
* * fix in IO.h, a useless copy was made because of assignment fromGravatar Benoit Jacob2008-12-18
| | | | | | | | | | | | | | | Derived to MatrixBase. * the optimization of eval() for Matrix now consists in a partial specialization of ei_eval, which returns a reference type for Matrix. No overriding of eval() in Matrix anymore. Consequence: careful, ei_eval is no longer guaranteed to give a plain matrix type! For that, use ei_plain_matrix_type, or the PlainMatrixType typedef. * so lots of changes to adapt to that everywhere. Hope this doesn't break (too much) MSVC compilation. * add code examples for the new image() stuff. * lower a bit the precision for floats in the unit tests as we were already doing some workarounds in inverse.cpp and we got some failed tests.
* Macros: add MSVC paths, add an important comment on EIGEN_ALIGN_128Gravatar Benoit Jacob2008-12-18
|
* * replace postfix ++ by prefix ++ wherever that makes sense in Eigen/Gravatar Benoit Jacob2008-12-17
| | | | | * fix some "unused variable" warnings in the tests; there remains a libstdc++ "deprecated" warning which I haven't looked much into
* actually honor EIGEN_STACK_ALLOCATION.Gravatar Benoit Jacob2008-12-16
| | | | Can set it to 0 to disable stack alloc which guarantees that bad alloc throws exceptions if they are enabled.
* Fix memory alignment (hence vectorization) on MSVC thanks to help from Armin ↵Gravatar Benoit Jacob2008-12-15
| | | | Berres.
* Use an aligned IOFormat in the docsGravatar Benoit Jacob2008-12-06
|
* * fix compile error when C++0x is enabled: static_assert() needs ;Gravatar Benoit Jacob2008-12-06
| | | | | | thanks to devurandom for reporting * remove redundant ; in ei_internal_assert * minor fixes in InsideEigenExample.dox
* add internal documentationGravatar Benoit Jacob2008-11-30
|
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* * add Gael a (c) line in IO.hGravatar Benoit Jacob2008-11-17
| | | | | * let user change default format by defining EIGEN_DEFAULT_IO_FORMAT * improve docs a little
* add Eigen namespace in EIGEN_INHERIT_ASSIGNMENT_OPERATORGravatar Gael Guennebaud2008-10-27
|
* Big API change in Cholesky module:Gravatar Gael Guennebaud2008-10-13
| | | | | | | | | | | | | | | | * rename Cholesky to LLT * rename CholeskyWithoutSquareRoot to LDLT * rename MatrixBase::cholesky() to llt() * rename MatrixBase::choleskyNoSqrt() to ldlt() * make {LLT,LDLT}::solve() API consistent with other modules Note that we are going to keep a source compatibility untill the next beta release. E.g., the "old" Cholesky* classes, etc are still available for some time. To be clear, Eigen beta2 should be (hopefully) source compatible with beta1, and so beta2 will contain all the deprecated API of beta1. Those features marked as deprecated will be removed in beta3 (or in the final 2.0 if there is no beta 3 !). Also includes various updated in sparse Cholesky.
* * move memory related stuff to util/Memory.hGravatar Gael Guennebaud2008-08-26
| | | | | * clean ugly doxygen inheritence of expressions * keep improving the documentation... slowly !
* * split Meta.h to Meta.h (generic meta programming) and XprHelper.h (relates ↵Gravatar Gael Guennebaud2008-08-24
| | | | | | | | | to eigen mechanism) * added a meta.cpp unit test * EIGEN_TUNE_FOR_L2_CACHE_SIZE now represents L2 block size in Bytes (whence the ei_meta_sqrt...) * added a CustomizeEigen.dox page * added a TOC to QuickStartGuide.dox
* * remove LargeBit and related stuffGravatar Gael Guennebaud2008-08-23
| | | | | | | * replaced the Flags template parameter of Matrix by StorageOrder and move it back to the 4th position such that we don't have to worry about the two Max* template parameters * extended EIGEN_USING_MATRIX_TYPEDEFS with the ei_* math functions
* - remove the ASM macro as in fact Gael had been removing all the remainingGravatar Benoit Jacob2008-08-21
| | | | | | | | | asm("...") from the code while fixing MSVC compat (so your changes crossed one another). - move the pragma warning to CoreDeclarations, it's the right place to do early platform checks. CCMAIL:ps_ml@gmx.de
* patch by Patrick Spendrin: fix MSVC compatibilityGravatar Benoit Jacob2008-08-21
|
* * Fix CMakeLists.txt issue with SVDGravatar Gael Guennebaud2008-08-20
| | | | * Fix on stack memory allocation issues
* Various compilation fixes for MSVC 9. All tests compile but someGravatar Gael Guennebaud2008-08-19
| | | | still fail at runtime in ei_aligned_free() (even without vectorization).
* only use alloca on linux. Use malloc on other platforms. Needed for mingwGravatar Benoit Jacob2008-08-18
| | | | compatibility.
* * add Regression module, from eigen1, improved, with doc and unit-test.Gravatar Benoit Jacob2008-08-11
| | | | | | | | | * fix .normalized() so that Random().normalized() works; since the return type became complicated to write down i just let it return an actual vector, perhaps not optimal. * add Sparse/CMakeLists.txt. I suppose that it was intentional that it didn't have CMakeLists, but in <=2.0 releases I'll just manually remove Sparse.
* * LU decomposition, supporting all rectangular matrices, with fullGravatar Benoit Jacob2008-08-04
| | | | | | | | | | pivoting for better numerical stability. For now the only application is determinant. * New determinant unit-test. * Disable most of Swap.h for now as it makes LU fail (mysterious). Anyway Swap needs a big overhaul as proposed on IRC. * Remnants of old class Inverse removed. * Some warnings fixed.
* Added MatrixBase::Unit*() static function to easily create unit/basis vectors.Gravatar Gael Guennebaud2008-07-19
| | | | | | | Removed EulerAngles, addes typdefs for Quaternion and AngleAxis, and added automatic conversions from Quaternion/AngleAxis to Matrix3 such that: Matrix3f m = AngleAxisf(0.2,Vector3f::UnitX) * AngleAxisf(0.2,Vector3f::UnitY); just works.
* * rework Map, allow vectorizationGravatar Benoit Jacob2008-06-27
| | | | | | | | * rework PacketMath and DummyPacketMath, make these actual template specializations instead of just overriding by non-template inline functions * introduce ei_ploadt and ei_pstoret, make use of them in Map and Matrix * remove Matrix::map() methods, use Map constructors instead.
* * move some compile time "if" to their respective unroller (assign and dot)Gravatar Gael Guennebaud2008-06-07
| | | | | * fix a couple of compilation issues when unrolling is disabled * reduce default unrolling limit to a more reasonable value
* many small fixes and documentation improvements,Gravatar Benoit Jacob2008-05-29
| | | | this should be alpha5.
* * updated the assignement operator macro so that overloadsGravatar Gael Guennebaud2008-05-28
| | | | | | in MatrixBase work * removed product_selector and cleaned Product.h a bit * cleaned Assign.h a bit
* hehe, the complicated nesting scheme in Flagged in the previous commitGravatar Benoit Jacob2008-05-28
| | | | | | | | | | | was a sign that we were doing something wrong. In fact, having NestByValue as a special case of Flagged was wrong, and the previous commit, while not buggy, was inefficient because then when the resulting NestByValue xpr was nested -- hence copied -- the original xpr which was already nested by value was copied again; hence instead of 1 copy we got 3 copies. The solution was to ressuscitate the old Temporary.h (renamed NestByValue.h) as it was the right approach.