Commit Graph

326 Commits

Author SHA1 Message Date
Gael Guennebaud
5274c5c326 quick update of TopicLazyEvaluation 2009-08-16 11:01:32 +02:00
Gael Guennebaud
fc9480cbb3 bugfix in compute_matrix_flags, optimization in LU,
improve doc, and workaround aliasing detection in MatrixBase_eval snippet
(not very nice but I don't know how to do it in a better way)
2009-08-16 10:55:10 +02:00
Benoit Jacob
8372bd12bd update snippet 2009-08-14 20:23:13 -04:00
Gael Guennebaud
508f06ac0f update doc 2009-07-28 17:11:15 +02:00
Gael Guennebaud
6713c75fac update doc 2009-07-28 12:08:26 +02:00
Gael Guennebaud
7579360672 fix compilation of the doc and started a page dedicated to high performance and or BLAS users 2009-07-27 18:50:39 +02:00
Benoit Jacob
e093b43b2c * rename QR to HouseholderQR because really that impacts the API, not just the impl.
* rename qr() to householderQr(), for same reason.
* clarify that it's non-pivoting, non-rank-revealing, so remove all the rank API, make solve() be void instead of bool, update the docs/test, etc.
* fix warning in SVD
2009-07-06 17:12:10 +02:00
Gael Guennebaud
c6f610093b add a VectorBlock expr as a specialization of Block 2009-07-05 11:33:55 +02:00
Benoit Jacob
60467e54a5 some docs improvements 2009-07-05 01:52:42 +02:00
Benoit Jacob
7b750182f2 * polish computeInverseWithCheck to share more code, fix documentation, fix coding style
* add snippet for computeInverseWithCheck documentation
* expand unit-tests to cover computeInverseWithCheck
2009-06-29 22:07:37 +02:00
Benoit Jacob
903acf0d5c add missing code snippets for newer Matrix methods and PartialLU::solve() 2009-06-25 00:57:51 +02:00
Benoit Jacob
03ad303d14 * add resize(int, NoChange) and resize(NoChange, int)
* add missing assert in resize(int)
* add examples for all resize variants
* expand docs (part of which is from Tim Hutt's e-mail)
2009-06-24 22:07:03 +02:00
Gael Guennebaud
ec8596f863 update the stack alignment doc 2009-06-22 10:44:09 +02:00
Benoit Jacob
ac9680fb20 document the "wrong stack alignment" issue. 2009-06-21 17:25:57 +02:00
Benoit Jacob
8be088bfb0 add Eigen/Eigen 2009-06-19 20:46:55 +02:00
Benoit Jacob
fe8ab0147b add "Dense" header 2009-06-19 19:09:35 +02:00
Gael Guennebaud
627595ad19 * rename PartialRedux to VectorwiseOp
* add VectorwiseOp's +, -, +=, -= operators
2009-06-10 11:20:30 +02:00
Hauke Heibel
db5647abae Added Umeyama implementation. 2009-05-26 19:22:25 +02:00
Hauke Heibel
6ea7cbdc87 * added missing project definition (see doc of add_subdirectory and EXCLUDE_FROM_ALL) to fix a win build issue
* commented out non-existing unsupported-snippets and -examples
2009-05-17 12:12:39 +02:00
Benoit Jacob
9afd1324fd constant Diagonal ---> DiagonalBits
introduce ei_is_diagonal to check for it
DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic
-> add MatrixBase::diagonal(int) with unittest and doc
2009-05-10 16:24:39 +00:00
Benoit Jacob
4f0af00e51 *add missing overloads of setZero, etc... that were mentioned in the tutorial
--->they go into Matrix as they resize.
*add isConstant() alias to isApproxToConstant()
*extend unit-test
*change an assert into a static assert
2009-05-06 21:40:24 +00:00
Gael Guennebaud
e0904a70ce update STL vector doc 2009-04-22 21:29:42 +00:00
Benoit Jacob
8e2b191acf fix typo found by noir.sender from KDE forums 2009-03-31 17:00:30 +00:00
Gael Guennebaud
4bb5221d22 Add BVH module in unsupported (patch from Ilya Baran)
(I thought I committed it a week ago but it seems the command failed)
2009-03-18 20:06:06 +00:00
Gael Guennebaud
3298320007 fix doxygen generation of unsupported modules 2009-03-11 13:11:38 +00:00
Benoit Jacob
177500f37e fix typo found by markusfroeb (forum) 2009-02-21 14:30:49 +00:00
Keir Mierle
22b9de1849 Fix some formatting in quick ref. Add references to headers. 2009-02-19 16:46:35 +00:00
Gael Guennebaud
747d83a05a add size, rows, cols, (), (,) functions in ASCII ref 2009-02-18 16:35:16 +00:00
Gael Guennebaud
eb2cc8f502 patch from Jitse Niesen: fix ascii quick ref matlab operator ' 2009-02-18 16:24:15 +00:00
Gael Guennebaud
23f543ee5e add the ASCII quick reference made by Kier 2009-02-18 10:27:18 +00:00
Gael Guennebaud
e6f1104b57 * fix Quaternion::setFromTwoVectors (thanks to "benv" from the forum)
* extend PartialRedux::cross() to any matrix sizes with automatic
  vectorization when possible
* unit tests: add "geo_" prefix to all unit tests related to the
  geometry module and start splitting the big "geometry.cpp" tests to
  multiple smaller ones (also include new tests)
2009-02-17 09:53:05 +00:00
Gael Guennebaud
cbbc6d940b * add ei_predux_mul internal function
* apply Ricard Marxer's prod() patch with fixes for the vectorized path
2009-02-10 18:06:05 +00:00
Gael Guennebaud
40ad661183 added an experimental IterativeSolvers module (currently in unsupported)
with a constrained conjugate gradient algorithm adapted from GMM++/ITL.
This algorithm is needed for Step.
2009-02-10 10:02:41 +00:00
Gael Guennebaud
9c14d20656 add select snippet 2009-02-09 10:01:42 +00:00
Gael Guennebaud
666ade0c93 add "remap" snippet using placement new 2009-02-09 09:54:48 +00:00
Thomas Capricelli
5b4c3b21f3 documentation about inheriting from Eigen::Matrix 2009-02-08 22:36:28 +00:00
Gael Guennebaud
6fbca94803 apply Ricard patch for Reverse with minor modifications 2009-02-06 09:01:50 +00:00
Gael Guennebaud
a4487ef198 add snippet for sub/super diagonal
fix a few doc issues
2009-02-05 21:19:40 +00:00
Gael Guennebaud
95db32fcdc setup the unsupported directory structure.
The unsupported module documentation is automatically generated in:
  build/doc/unsupported/
with bidirectional cross references.
I leave a class Foo in AdolcForward module to illustrate the
cross-reference behavior. I will remove it in the next commit.
2009-02-04 15:37:00 +00:00
Gael Guennebaud
44a527dfa5 * classify and sort the doxygen "related pages"
by tweaking the filename and adding 2 categories:
   Troubleshooting and Advanced
* use the EXCLUDE_SYMBOLS to clean the class list
  (insteaded of a homemade bash script)
* remove the broken "exemple list"
* re-structure the unsupported directory as mentionned in the ML and
  integrate the doc as follow:
  - snippets of the unsupported directory are directly imported from the
    main snippets/CMakefile.txt (no need to duplicate code)
  - add a top level "Unsupported modules" group
  - unsupported modules have to defined their own sub group and nest it
    using \ingroup Unsupported_modules
  - then a pair of //@{ //@} will put everything in the submodule
  - this is just a proposal !
2009-02-04 09:44:44 +00:00
Benoit Jacob
61e45ed500 * label Cholesky and solveTriangular.* as experimental
* improve Experimental.dox
* update urls from /api/ to /dox/
2009-02-02 14:21:35 +00:00
Gael Guennebaud
42c4bc0ecf fix tutorial abs/abs2 (thanks to Keir) 2009-02-01 22:38:51 +00:00
Gael Guennebaud
4111316104 forgot to commit QR_solve snippet 2009-02-01 20:47:19 +00:00
Gael Guennebaud
0f15a8d829 QR: add isInjective(), isSurjective(),
mark isFullRank() deprecated,
    add solve() (mix of Keir's patch and LU::solve())
=> there is big problem with complex which are not working
2009-01-28 09:45:53 +00:00
Benoit Jacob
9b06e072a5 fix type mismatch caught by new static assert 2009-01-27 17:42:04 +00:00
Benoit Jacob
a79deafc6d * mark Geometry as experimental
* install QtAlignedMalloc
* finish the renaming Regression->LeastSquares
* install LeastSquares directory (!!!)
* misc dox fixes
2009-01-26 13:53:43 +00:00
Benoit Jacob
414ee1db4b Optimization in LU::solve: when rows<=cols, no need to compute the L matrix
Remove matrixL() and matrixU() methods: they were tricky, returning a Part,
and matrixL() was useless for non-square LU. Also they were untested. This is
the occasion to simplify the docs (class_LU.cpp) removing the most confusing part.
I think that it's better to let the user do his own cooking with Part's.
2009-01-25 16:33:06 +00:00
Gael Guennebaud
56c7e164f0 add partial count redux (adapted patch from Ricard Marxer) 2009-01-24 15:22:44 +00:00
Gael Guennebaud
25f1658fce update sparse matrix tutorial (far to be satisfactory yet) 2009-01-21 17:44:58 +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
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
86a192681e * Started a tutorial page for sparse matrix.
* Updated Mainpage.dox's directives used by kde's scripts
2009-01-16 17:20:12 +00:00
Gael Guennebaud
ec0b2f900c fix a couple of doxygen issues 2009-01-13 08:30:17 +00:00
Benoit Jacob
24fd14dab6 * minor dox tweaks
* pretext to bump to beta6
2009-01-12 16:14:13 +00:00
Benoit Jacob
294f5f16dd muuuch improved documentation for the unaligned array assert.
also split into several pages for better reusability (more generally useful than
just for this assert)
2009-01-12 14:41:12 +00:00
Benoit Jacob
a30b498ab4 add cwise operator *= and /=.
Keir says hi!!
2009-01-11 20:48:56 +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
Benoit Jacob
1d52bd4cad the big memory changes. the most important changes are:
ei_aligned_malloc now really behaves like a malloc
 (untyped, doesn't call ctor)
ei_aligned_new is the typed variant calling ctor
EIGEN_MAKE_ALIGNED_OPERATOR_NEW now takes the class name as parameter
2009-01-08 15:20:21 +00:00
Benoit Jacob
1c29d70312 * introduce macros to replace inheritance for operator new overloading
(former solution still available and tested)
  This plays much better with classes that already have base classes --
  don't force the user to mess with multiple inheritance, which gave
  much trouble with MSVC.
* Expand the unaligned assert dox page
* Minor fixes in the lazy evaluation dox page
2009-01-06 03:16:50 +00:00
Benoit Jacob
8551505436 problem solved, we really want public inheritance and it is only
automatic when the _child_ class is a struct.
2009-01-05 18:21:44 +00:00
Benoit Jacob
789ea9d676 unless i find more failures in the tests, this will be beta3...
* fixes for mistakes (especially in the cast() methods in Geometry) revealed by the new "mixing types" test
* dox love, including a section on coeff access in core and an overview in geometry
2008-12-22 20:50:47 +00:00
Benoit Jacob
9e00d94543 * the Upper->UpperTriangular change
* finally get ei_add_test right
2008-12-20 13:36:12 +00:00
Benoit Jacob
fabaa6915b * fix in IO.h, a useless copy was made because of assignment from
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.
2008-12-18 20:36:25 +00:00
Gael Guennebaud
52a30c1d54 fix minor mistake in the inside eigen example 2008-12-08 10:07:09 +00:00
Benoit Jacob
069ecbb4ab * complete the change norm2->squaredNorm in PartialRedux
* somehow the NICE_RANDOM stuff wasn't being used anymore and
  tests were sometimes failing again. Fixed by #including Eigen/Array
  instead of cherry-picking just Random.h.
* little fixes in the unaligned assert page
2008-12-07 21:40:53 +00:00
Benoit Jacob
08e6b7ad80 Make deluxe assertion with deluxe error message with link to deluxe web page
for this very nasty bug (unaligned member in dynamically allocated struct)
that our friends at Krita just encountered:

http://bugs.kde.org/show_bug.cgi?id=177133

CCBUG:177133
2008-12-07 16:31:32 +00:00
Benoit Jacob
93c1f62979 Use an aligned IOFormat in the docs 2008-12-06 23:20:30 +00:00
Benoit Jacob
2b20da624a * improvements in the tutorial: triangular matrices, linear algebra
* minor fixes in Part and StaticAssert
* EulerAngles: remove the FIXME as I think the current version is fine
2008-12-06 22:21:29 +00:00
Benoit Jacob
bb33ec4ef3 * fix compile error when C++0x is enabled: static_assert() needs ;
thanks to devurandom for reporting
* remove redundant ; in ei_internal_assert
* minor fixes in InsideEigenExample.dox
2008-12-06 16:49:03 +00:00
Benoit Jacob
6d1439a52f add big "what happens inside eigen" tutorial for people interested in
Eigen internals
2008-12-05 14:45:42 +00:00
Benoit Jacob
2ff7961c10 split off the lazy evaluation part from the quickstartguide; actually by mistake i had
already committed part of that change so i commit the rest even if it's not much, so
building docs from trunk works again.
2008-12-03 23:15:26 +00:00
Alexander Neundorf
84cc69f0f3 -add quotes around the configured directories so build dirs with spaces produce some errors less
Alex
2008-12-02 13:04:32 +00:00
Gael Guennebaud
20c11bc52c prefix all Eigen cmake variable with EIGEN_ and switched to lowercase for all cmake files 2008-12-02 12:59:10 +00:00
Alexander Neundorf
6b3d0e68e2 -use the cmake-provided Eigen_(SOURCE|BINARY)_DIR variables instead of setting own versions (EIGEN_(SOURCE|BINARY)_DIR
Alex
2008-12-02 11:00:51 +00:00
Benoit Jacob
00f89a8f37 Update e-mail address 2008-11-24 13:40:43 +00:00
Gael Guennebaud
582c1f92c8 doc: add a "non stable" warning for parts which are not part
of the stable API yet and a couple of other minor doc updates...
2008-11-22 19:51:05 +00:00
Gael Guennebaud
a040b7f15d tutorial: extend casting section with set 2008-11-20 11:01:17 +00:00
Gael Guennebaud
cc6121b98d tutorial: add the cast function 2008-11-20 10:47:12 +00:00
Gael Guennebaud
a3b89e0ee6 tutorial: add array module warnings when needed 2008-11-17 15:38:57 +00:00
Benoit Jacob
3d90c13970 norm2() renamed to squaredNorm(), kept as deprecated for now. 2008-11-03 19:14:17 +00:00
Gael Guennebaud
8ea8b481de As discussed on ML:
* remove the automatic resizing feature of operator =
 * add function Matrix::set() to be used when the previous
   behavior is wanted
 * the default constructor of dynamic-size matrices now
   creates a "null" matrix (data=0, rows = cols = 0)
   instead of a 1x1 matrix
 * fix UnixX typos ;)
2008-10-24 21:42:03 +00:00
Gael Guennebaud
727dfa1c43 fix some documentation issues 2008-10-17 11:20:46 +00:00
Gael Guennebaud
e747b338ee Started the third chapter of the tutorial on linear solvers.
It is only a first draft and I think it should be reorganized a bit in 2 parts:
1 - a compact table summarizing the main API and its use
    (this is what would expect an "expert" user)
2 - a discussion about the various algorithm in Eigen to guide the newbies in linear algebra
Currently I mixed the discussion with the API, but it is still better than nothing !
2008-10-16 22:28:23 +00:00
Gael Guennebaud
765219aa51 Big API change in Cholesky module:
* 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.
2008-10-13 15:53:27 +00:00
Gael Guennebaud
373331e3bf remove apidox_preprocessing script which is not used anymore 2008-09-16 13:26:46 +00:00
Gael Guennebaud
fb5b62fbac block => segment in the tutorial 2008-09-15 16:26:55 +00:00
Benoit Jacob
af991a6bdb small dox fixes 2008-09-15 16:19:48 +00:00
Benoit Jacob
247f2b0ffa * block() for vectors ---> segment()
* documentation improvements, especially in quickstart guide
2008-09-15 15:45:41 +00:00
Gael Guennebaud
db030d4e28 * fix issues with "long double" type (useful to enforce the use of x87 registers)
* extend the documentation on "extending Eigen"
2008-09-14 11:59:10 +00:00
Gael Guennebaud
a62bd110a2 fix doc compilation 2008-09-13 10:44:23 +00:00
Gael Guennebaud
703539110b add the missing templated version of block for sub-vectors 2008-09-09 09:30:23 +00:00
Gael Guennebaud
6825c8dd6b QTransform conversion and doc 2008-09-01 06:33:19 +00:00
Gael Guennebaud
994629721a update of the geometry tutorial 2008-08-31 17:30:09 +00:00
Benoit Jacob
d74916e4fe same thing with EIGEN_BINARY_DIR. Now the doc generation works from kdesupport. 2008-08-31 15:20:25 +00:00
Benoit Jacob
c931867909 also use EIGEN_SOURCE_DIR here. according to grep this was the last place to
change.
2008-08-31 15:12:55 +00:00
Benoit Jacob
ff60c9ccb1 fix cmakelists: wrong assumption on CMAKE_SOURCE_DIR. One can now use
EIGEN_SOURCE_DIR for that use, guaranteed to point to eigen2/ directory.
2008-08-31 15:08:41 +00:00
Gael Guennebaud
7e8aa63bb7 * Add Hyperplane::transform(Matrix/Transform)
* Fix compilations with gcc 3.4, ICC and doxygen
* Fix krazy directives (hopefully)
2008-08-31 13:32:29 +00:00
Gael Guennebaud
236b7a545d update Transform::inverse() to take an optional argument stating whether the transformation is:
NonAffine, Affine (default), contains NoShear, contains NoScaling
that allows significant speed improvements. If you like it, this concept could be applied to
Transform::extractRotation (or to a more advanced decomposition function) and to Hyperplane::transformed()
and maybe to some other places... e.g., I think a Transform::normalMatrix() function would not harm and
warn user that the transformation of normals is not that trivial (I saw this mistake much too often)
2008-08-30 12:42:06 +00:00
Gael Guennebaud
13a9d93bc0 minor doc fixes 2008-08-29 17:45:11 +00:00
Gael Guennebaud
063d1bb811 tweak root/Mainpage.dox to make it compatible with kde's doxygen.sh script
plus some hacks to compile the examples from doxygen...
Hopefully, api.kde.org/eigen2 will be beautiful by tomorrow....
2008-08-29 16:17:06 +00:00
Gael Guennebaud
409e82be06 doc and use sed to clean the class hierarchy instead of
preprocessor directives.
2008-08-28 23:25:27 +00:00
Gael Guennebaud
7ea821d18e spelling + some krazy directives 2008-08-28 21:44:56 +00:00
Gael Guennebaud
3ced3f91c2 * temporarily remove doxygen customization, we'll see if that fix api.kde.org
but I no hope, that would be too simple !
* added Rotation2D typedefs
* remove CoreDeclarations header file
2008-08-28 15:28:23 +00:00
Gael Guennebaud
70266b4d05 doc + quick bug fix in Matrix ctor 2008-08-28 00:33:58 +00:00
Benoit Jacob
252e0c45b2 * missing cmake make_directory command
* show svn revision number if available
* fix warnings about unused argc/argv

Gael: I just saw your latest docs, it's completely awesome.
2008-08-27 06:43:42 +00:00
Gael Guennebaud
8e8019d289 improvements in geometry tutorial 2008-08-27 00:46:24 +00:00
Gael Guennebaud
63d3ef8204 * remove debug code commited by mistake in Assign
* keep going on the doc: added a short geometry tutorial
2008-08-26 23:07:33 +00:00
Gael Guennebaud
00a8d314c5 * move memory related stuff to util/Memory.h
* clean ugly doxygen inheritence of expressions
* keep improving the documentation... slowly !
2008-08-26 19:12:23 +00:00
Gael Guennebaud
9e25dfcb2c Various doc improvements... including a owl in the API doc header. 2008-08-25 10:49:53 +00:00
Gael Guennebaud
854d6e8458 Documentation: fill the placeholders, add a custom CSS file,
add a reference to the tutorial in the main page.
2008-08-24 19:14:20 +00:00
Gael Guennebaud
ba100998bf * split Meta.h to Meta.h (generic meta programming) and XprHelper.h (relates 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
2008-08-24 15:15:32 +00:00
Gael Guennebaud
bfe86b8fc0 * add documentation of the cool (?) "print with format" feature
* move the ioformat.cpp test to a documentation example
* rename IoFormat => IOFormat
2008-08-23 19:41:00 +00:00
Gael Guennebaud
c3f46cf55b need to commit this file before changing its name 2008-08-23 19:32:13 +00:00
Gael Guennebaud
84a39e04bf added Sub matrices section and a couple of cross ref to the API doc 2008-08-20 23:04:58 +00:00
Gael Guennebaud
8afaeb4ad5 doc fixes, and extended Basic Linear Algebra and Reductions sections 2008-08-20 13:07:46 +00:00
Gael Guennebaud
db8fbf2b39 some updated of the quick start guide 2008-08-20 11:31:50 +00:00
Benoit Jacob
c705c38a23 * it's \returns not \Returns
* add some explanations in the typedefs page
* expand a bit the new QuickStartGuide. Some placeholders (not a pb since
it's not even yet linked to from other pages). The point I want to make is
that it's super important to have fully compilable short programs (even
with compile instructions for the first one) not just small snippets, at
least at the beginning. Let's start with examples of compilable programs.
2008-08-20 04:34:04 +00:00
Gael Guennebaud
8551fe28ce fix a few typos 2008-08-20 01:12:56 +00:00
Gael Guennebaud
7aba51ce53 * Added .all() and .any() members to PartialRedux
* Bug fixes in euler angle snippet, Assign and MapBase
* Started a "quick start guide" (draft state)
2008-08-20 00:58:25 +00:00
Gael Guennebaud
104f8fd36e Added a SVD module:
- the decompostion code has been adfapted from JAMA
 - handles non square matrices of size MxN with M>=N
 - does not work for complex matrices
 - includes a solver where the parts corresponding to zero singular values are set to zero
2008-08-19 17:52:04 +00:00
Benoit Jacob
9466e5f94e * doc improvements in Cwise and PartialRedux:
- 33 new snippets
  - unfuck doxygen output in Cwise (issues with function macros)
  - more see-also links from outside, making Cwise more discoverable
* rename matrixNorm() to operatorNorm(). There are many matrix norms
  (the L2 is another one) but only one is called the operator norm.
  Risk of confusion with keyword operator is not too scary after all.
2008-08-19 04:30:28 +00:00
Benoit Jacob
d9d69de382 updated tutorial 2008-08-15 14:28:06 +00:00
Benoit Jacob
13ad88736e last small fixes, this is alpha6, eigen2 is now ready for eigen1 apps to
port to.
2008-08-12 02:14:02 +00:00
Benoit Jacob
f04c1cb774 Complete LU documentation 2008-08-11 21:26:37 +00:00
Benoit Jacob
17ec407ccd * add Regression module, from eigen1, improved, with doc and unit-test.
* 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.
2008-08-11 02:25:40 +00:00
Gael Guennebaud
b13148c358 renamed inverseProduct => solveTriangular 2008-08-09 20:06:25 +00:00
Gael Guennebaud
e77ccf2928 * Rewrite the triangular solver so that we can take advantage of our efficient matrix-vector products:
=> up to 6 times faster !
* Added DirectAccessBit to Part
* Added an exemple of a cwise operator
* Renamed perpendicular() => someOrthogonal() (geometry module)
* Fix a weired bug in ei_constant_functor: the default copy constructor did not copy
  the imaginary part when the single member of the class is a complex...
2008-07-26 20:40:29 +00:00
Gael Guennebaud
172000aaeb Add .perpendicular() function in Geometry module (adapted from Eigen1)
Documentation:
 * add an overview for each module.
 * add an example for .all() and Cwise::operator<
2008-07-22 10:54:42 +00:00
Gael Guennebaud
c10f069b6b * Merge Extract and Part to the Part expression.
Renamed "MatrixBase::extract() const" to "MatrixBase::part() const"
* Renamed static functions identity, zero, ones, random with an upper case
  first letter: Identity, Zero, Ones and Random.
2008-07-21 00:34:46 +00:00
Gael Guennebaud
ce425d92f1 Various documentation improvements, in particualr in Cholesky and Geometry module.
Added doxygen groups for Matrix typedefs and the Geometry module
2008-07-20 15:18:54 +00:00
Gael Guennebaud
269f683902 Add cholesky's members to MatrixBase
Various documentation improvements including new snippets (AngleAxis and Cholesky)
2008-07-19 22:59:05 +00:00
Gael Guennebaud
6e2c53e056 Added an automatically generated list of selected examples in the documentation.
Added the custom gemetry_module tag, and use it.
2008-07-19 20:36:41 +00:00
Benoit Jacob
62ec1dd616 * big rework of Inverse.h:
- remove all invertibility checking, will be redundant with LU
  - general case: adapt to matrix storage order for better perf
  - size 4 case: handle corner cases without falling back to gen case.
  - rationalize with selectors instead of compile time if
  - add C-style computeInverse()
* update inverse test.
* in snippets, default cout precision to 3 decimal places
* add some cmake module from kdelibs to support btl with cmake 2.4
2008-07-15 23:56:17 +00:00
Benoit Jacob
6f09d3a67d - many updates after Cwise change
- fix compilation in product.cpp with std::complex
- fix bug in MatrixBase::operator!=
2008-07-08 07:56:01 +00:00
Benoit Jacob
3b94436d2f * vectorize dot product, copying code from sum.
* make the conj functor vectorizable: it is just identity in real case,
  and complex doesn't use the vectorized path anyway.
* fix bug in Block: a 3x1 block in a 4x4 matrix (all fixed-size)
  should not be vectorizable, since in fixed-size we are assuming
  the size to be a multiple of packet size. (Or would you prefer
  Vector3d to be flagged "packetaccess" even though no packet access
  is possible on vectors of that type?)
* rename:
  isOrtho for vectors ---> isOrthogonal
  isOrtho for matrices ---> isUnitary
* add normalize()
* reimplement normalized with quotient1 functor
2008-06-24 15:13:00 +00:00
Gael Guennebaud
bcb32839c2 fix building of examples 2008-06-03 09:43:59 +00:00
Benoit Jacob
8de4d92b70 - get the doc of the enums in MatrixBase right
- get the doc of the flags in Constants right
- finally give up with SEPARATE_MEMBER_PAGES: it triggers too big
  Doxygen bugs, and produces too many small pages. So we have one
  huge page for MatrixBase at currently 300kb and going up, so the
  solution especially for users with low bandwidth will be to provide
  an archive of the html documentation.
2008-06-03 02:06:18 +00:00
Benoit Jacob
75de41a00b big changes in Doxygen configuration; work around bug with doxygen parsing of
initialized enum values showing the last word the initializer instead of the actual
enum value's name; add some more docs.
2008-06-02 20:08:37 +00:00
Benoit Jacob
ac88feebb7 work around Doxygen bug triggered by r814874, which caused many classes to disappear
from the docs.
2008-06-02 19:29:23 +00:00
Benoit Jacob
6209bbe286 doc improvements: fix linking in Mainpage.dox, improved Doxyfile.in 2008-06-02 18:27:37 +00:00
Benoit Jacob
dc5fd8dfff meagre outcome for so much time spent!
* fix inverse() bug discovered by Gael's test
* fix warnings introduced by the new Diagonal stuff
* update Doxyfile to v1.5.6
2008-06-01 03:36:49 +00:00
Benoit Jacob
486fdb26a1 many small fixes and documentation improvements,
this should be alpha5.
2008-05-29 03:12:30 +00:00
Benoit Jacob
aebecae510 * find the proper way of nesting the expression in Flagged:
finally that's more subtle than just using ei_nested, because when
  flagging with NestByValueBit we want to store the expression by value
  already, regardless of whether it already had the NestByValueBit set.
* rename temporary() ----> nestByValue()
* move the old Product.h to disabled/, replace by what was ProductWIP.h
* tweak -O and -g flags for tests and examples
* reorder the tests -- basic things go first
* simplifications, e.g. in many methoeds return derived() and count on
  implicit casting to the actual return type.
* strip some not-really-useful stuff from the heaviest tests
2008-05-28 04:38:16 +00:00
Gael Guennebaud
8f1fc80a77 some documentation fixes (Cwise* and Cholesky) 2008-05-22 16:31:00 +00:00
Gael Guennebaud
4754fa4868 removed "sort brief" in doxygen documentation 2008-05-08 08:13:38 +00:00
Benoit Jacob
ea3ccb1e8c * Start of the LU module, with matrix inversion already there and
fully optimized.
* Even if LargeBit is set, only parallelize for large enough objects
  (controlled by EIGEN_PARALLELIZATION_TRESHOLD).
2008-04-14 08:20:24 +00:00
Benoit Jacob
ab4046970b * Add fixed-size template versions of corner(), start(), end().
* Use them to write an unrolled path in echelon.cpp, as an
  experiment before I do this LU module.
* For floating-point types, make ei_random() use an amplitude
  of 1.
2008-04-12 17:37:27 +00:00
Benoit Jacob
d1a29d6319 -new: recursive costs system, useful to determine automatically
when to evaluate arguments and when to meta-unroll.
-use it in Product to determine when to eval args. not yet used
 to determine when to unroll. for now, not used anywhere else but
 that'll follow.
-fix badness of my last commit
2008-04-03 11:10:17 +00:00
Benoit Jacob
e74fbfb2bc - remove Eval/EvalOMP (moving them to a disabled/ subdir in order
to preserve SVN history). They are made useless by the new
  ei_eval_unless_lazy.
- introduce a generic Eval member typedef so one can do e.g.
  T t; U u; Product<T, U>::Eval m; m = t*u;
2008-03-31 17:24:09 +00:00
Benoit Jacob
c9b0dcd733 look at that subtle difference in Product.h...
the cacheOptimal is only good for large enough matrices.
When taking a block in a fixed-size (hence small) matrix,
the SizeAtCompileTime is Dynamic hence that's not a good
indicator. This example shows that the good indicator is
MaxSizeAtCompileTime.
Result: +10% speed in echelon.cpp
2008-03-26 09:29:29 +00:00