mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-02-17 18:09:55 +08:00
* cleanup: in public api docs, don't put \sa links to \internal things.
(the global funcs in MathFunctions.h and Fuzzy.h don't count as internal). * Mainpage.dox. Add a few prospective Eigen users; change the recommended -finline-limit from 10000 to 1000. The reason is: it could be harmful to have a too big value here, couldn't it? (e.g. exceedingly large executables, cache misses). Looking at gcc, a value of 900 would exactly mean "determine the inlining of all functions as if they were marked with 'inline' keyword". So a value of 1000 seems a reasonable round number. In the benchmark that motivated this (TestEigenSolvers) a value of 400 is enough on my system.
This commit is contained in:
parent
af131fe770
commit
0ef1efdbdb
@ -111,7 +111,7 @@ struct ei_coeff_visitor
|
||||
/** \internal
|
||||
* \brief Visitor computing the min coefficient with its value and coordinates
|
||||
*
|
||||
* \sa ei_coeff_visitor, ei_max_coeff_visitor, MatrixBase::minCoeff(int*, int*)
|
||||
* \sa MatrixBase::minCoeff(int*, int*)
|
||||
*/
|
||||
template <typename Scalar>
|
||||
struct ei_min_coeff_visitor : ei_coeff_visitor<Scalar>
|
||||
@ -130,7 +130,7 @@ struct ei_min_coeff_visitor : ei_coeff_visitor<Scalar>
|
||||
/** \internal
|
||||
* \brief Visitor computing the max coefficient with its value and coordinates
|
||||
*
|
||||
* \sa ei_coeff_visitor, ei_min_coeff_visitor, MatrixBase::maxCoeff(int*, int*)
|
||||
* \sa MatrixBase::maxCoeff(int*, int*)
|
||||
*/
|
||||
template <typename Scalar>
|
||||
struct ei_max_coeff_visitor : ei_coeff_visitor<Scalar>
|
||||
|
@ -75,7 +75,7 @@ Eigen is well tested with recent versions of GCC and ICC. Both GCC 4.2 and ICC g
|
||||
|
||||
For best performance, we recommend the following compilation flags:
|
||||
<ul>
|
||||
<li>\b GCC: \c -O3 \c -DNDEBUG \c -finline-limit=10000 </li>
|
||||
<li>\b GCC: \c -O3 \c -DNDEBUG \c -finline-limit=1000 </li>
|
||||
<li>\b ICC: \c -O3 \c -DNDEBUG \c -xT \c -ipo \c -no-prec-div \c -no-inline-max-size </li>
|
||||
</ul>
|
||||
|
||||
@ -120,8 +120,8 @@ standalone "demos".
|
||||
|
||||
TODO: update this section; make web links
|
||||
|
||||
Currently: Kalzium, Avogadro, KSpread(a bit), Krita(a bit)
|
||||
Planned: much more use in KOffice 2.1, Step (if we make Eigen good enough!)
|
||||
Currently: Kalzium, Avogadro, KSpread(a bit), Krita(a bit), KGLLib<br>
|
||||
Planned: much more use in KOffice 2.1, Step (if we make Eigen good enough!), OpenBabel (maybe)
|
||||
|
||||
Please tell us if you know of other interesting projects using Eigen!
|
||||
|
||||
|
@ -28,17 +28,17 @@ void doSomeRankPreservingOperations(MatrixBase<Derived>& m)
|
||||
{
|
||||
for(int a = 0; a < 3*(m.rows()+m.cols()); a++)
|
||||
{
|
||||
double d = Eigen::ei_random<double>(-1,1);
|
||||
int i = Eigen::ei_random<int>(0,m.rows()-1); // i is a random row number
|
||||
double d = ei_random<double>(-1,1);
|
||||
int i = ei_random<int>(0,m.rows()-1); // i is a random row number
|
||||
int j;
|
||||
do {
|
||||
j = Eigen::ei_random<int>(0,m.rows()-1);
|
||||
j = ei_random<int>(0,m.rows()-1);
|
||||
} while (i==j); // j is another one (must be different)
|
||||
m.row(i) += d * m.row(j);
|
||||
|
||||
i = Eigen::ei_random<int>(0,m.cols()-1); // i is a random column number
|
||||
i = ei_random<int>(0,m.cols()-1); // i is a random column number
|
||||
do {
|
||||
j = Eigen::ei_random<int>(0,m.cols()-1);
|
||||
j = ei_random<int>(0,m.cols()-1);
|
||||
} while (i==j); // j is another one (must be different)
|
||||
m.col(i) += d * m.col(j);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user