1*bf2c3715SXin Linamespace Eigen { 2*bf2c3715SXin Li 3*bf2c3715SXin Li/** \page Experimental Experimental parts of Eigen 4*bf2c3715SXin Li 5*bf2c3715SXin Li\eigenAutoToc 6*bf2c3715SXin Li 7*bf2c3715SXin Li\section Experimental_summary Summary 8*bf2c3715SXin Li 9*bf2c3715SXin LiWith the 2.0 release, Eigen's API is, to a large extent, stable. However, we wish to retain the freedom to make API incompatible changes. To that effect, we call many parts of Eigen "experimental" which means that they are not subject to API stability guarantee. 10*bf2c3715SXin Li 11*bf2c3715SXin LiOur goal is that for the 2.1 release (expected in July 2009) most of these parts become API-stable too. 12*bf2c3715SXin Li 13*bf2c3715SXin LiWe are aware that API stability is a major concern for our users. That's why it's a priority for us to reach it, but at the same time we're being serious about not calling Eigen API-stable too early. 14*bf2c3715SXin Li 15*bf2c3715SXin LiExperimental features may at any time: 16*bf2c3715SXin Li\li be removed; 17*bf2c3715SXin Li\li be subject to an API incompatible change; 18*bf2c3715SXin Li\li introduce API or ABI incompatible changes in your own code if you let them affect your API or ABI. 19*bf2c3715SXin Li 20*bf2c3715SXin Li\section Experimental_modules Experimental modules 21*bf2c3715SXin Li 22*bf2c3715SXin LiThe following modules are considered entirely experimental, and we make no firm API stability guarantee about them for the time being: 23*bf2c3715SXin Li\li SVD 24*bf2c3715SXin Li\li QR 25*bf2c3715SXin Li\li Cholesky 26*bf2c3715SXin Li\li Sparse 27*bf2c3715SXin Li\li Geometry (this one should be mostly stable, but it's a little too early to make a formal guarantee) 28*bf2c3715SXin Li 29*bf2c3715SXin Li\section Experimental_core Experimental parts of the Core module 30*bf2c3715SXin Li 31*bf2c3715SXin LiIn the Core module, the only classes subject to ABI stability guarantee (meaning that you can use it for data members in your public ABI) is: 32*bf2c3715SXin Li\li Matrix 33*bf2c3715SXin Li\li Map 34*bf2c3715SXin Li 35*bf2c3715SXin LiAll other classes offer no ABI guarantee, e.g. the layout of their data can be changed. 36*bf2c3715SXin Li 37*bf2c3715SXin LiThe only classes subject to (even partial) API stability guarantee (meaning that you can safely construct and use objects) are: 38*bf2c3715SXin Li\li MatrixBase : partial API stability (see below) 39*bf2c3715SXin Li\li Matrix : full API stability (except for experimental stuff inherited from MatrixBase) 40*bf2c3715SXin Li\li Map : full API stability (except for experimental stuff inherited from MatrixBase) 41*bf2c3715SXin Li 42*bf2c3715SXin LiAll other classes offer no direct API guarantee, e.g. their methods can be changed; however notice that most classes inherit MatrixBase and that this is where most of their API comes from -- so in practice most of the API is stable. 43*bf2c3715SXin Li 44*bf2c3715SXin LiA few MatrixBase methods are considered experimental, hence not part of any API stability guarantee: 45*bf2c3715SXin Li\li all methods documented as internal 46*bf2c3715SXin Li\li all methods hidden in the Doxygen documentation 47*bf2c3715SXin Li\li all methods marked as experimental 48*bf2c3715SXin Li\li all methods defined in experimental modules 49*bf2c3715SXin Li 50*bf2c3715SXin Li*/ 51*bf2c3715SXin Li 52*bf2c3715SXin Li} 53