2
0
mirror of https://github.com/boostorg/ublas.git synced 2026-02-21 15:32:12 +00:00

fix #3501: merge changes 57202,57208,61114 into release

boost/numeric/ublas/detail/concepts.hpp
libs/numeric/ublas/doc/release_notes.htm



[SVN r61115]
This commit is contained in:
Gunter Winkler
2010-04-06 20:18:13 +00:00
parent b0d995246b
commit 45f0ee6cca
2 changed files with 11 additions and 25 deletions

View File

@@ -25,6 +25,8 @@
<ul>
<li><a href="https://svn.boost.org/trac/boost/ticket/3968">[3968]</a> fixed coordinate_matrix sort problem on MSVC10
</li>
<li><a href="https://svn.boost.org/trac/boost/ticket/3501">[3501]</a> Moved free functions in <code>concepts.hpp</code> into anonymous namespace.
</li>
</ul>
<h2>Release 1.41.1</h2>
@@ -45,11 +47,9 @@ the new tests in <tt>libs/numeric/ublas/test</tt> and the inline documentation o
<h3>bug fixes</h3>
<ul>
<li><a href="https://svn.boost.org/trac/boost/ticket/3293">[3293]</a>Fix resizing problem in <code>identity_matrix</code>
<li><a href="https://svn.boost.org/trac/boost/ticket/3293">[3293]</a> Fix resizing problem in <code>identity_matrix</code>
</li>
<li><a href="https://svn.boost.org/trac/boost/ticket/3499">[3499]</a>Add DefaultConstructible to concept checks
</li>
<li><a href="https://svn.boost.org/trac/boost/ticket/3501">[3501]</a>Add <i>inline</i> to free functions in <code>concepts.hpp</code>
<li><a href="https://svn.boost.org/trac/boost/ticket/3499">[3499]</a> Add DefaultConstructible to concept checks
</li>
</ul>

View File

@@ -634,77 +634,70 @@ namespace boost { namespace numeric { namespace ublas {
}
};
/** introduce anonymous namespace to make following functions
* local to the current compilation unit.
*/
namespace {
template<class T>
T
ZeroElement (T);
template<>
BOOST_UBLAS_INLINE
float
ZeroElement (float) {
return 0.f;
}
template<>
BOOST_UBLAS_INLINE
double
ZeroElement (double) {
return 0.;
}
template<>
BOOST_UBLAS_INLINE
vector<float>
ZeroElement (vector<float>) {
return zero_vector<float> ();
}
template<>
BOOST_UBLAS_INLINE
vector<double>
ZeroElement (vector<double>) {
return zero_vector<double> ();
}
template<>
BOOST_UBLAS_INLINE
matrix<float>
ZeroElement (matrix<float>) {
return zero_matrix<float> ();
}
template<>
BOOST_UBLAS_INLINE
matrix<double>
ZeroElement (matrix<double>) {
return zero_matrix<double> ();
}
template<>
BOOST_UBLAS_INLINE
std::complex<float>
ZeroElement (std::complex<float>) {
return std::complex<float> (0.f);
}
template<>
BOOST_UBLAS_INLINE
std::complex<double>
ZeroElement (std::complex<double>) {
return std::complex<double> (0.);
}
template<>
BOOST_UBLAS_INLINE
vector<std::complex<float> >
ZeroElement (vector<std::complex<float> >) {
return zero_vector<std::complex<float> > ();
}
template<>
BOOST_UBLAS_INLINE
vector<std::complex<double> >
ZeroElement (vector<std::complex<double> >) {
return zero_vector<std::complex<double> > ();
}
template<>
BOOST_UBLAS_INLINE
matrix<std::complex<float> >
ZeroElement (matrix<std::complex<float> >) {
return zero_matrix<std::complex<float> > ();
}
template<>
BOOST_UBLAS_INLINE
matrix<std::complex<double> >
ZeroElement (matrix<std::complex<double> >) {
return zero_matrix<std::complex<double> > ();
@@ -714,49 +707,41 @@ namespace boost { namespace numeric { namespace ublas {
T
OneElement (T);
template<>
BOOST_UBLAS_INLINE
float
OneElement (float) {
return 1.f;
}
template<>
BOOST_UBLAS_INLINE
double
OneElement (double) {
return 1.;
}
template<>
BOOST_UBLAS_INLINE
matrix<float>
OneElement (matrix<float>) {
return identity_matrix<float> ();
}
template<>
BOOST_UBLAS_INLINE
matrix<double>
OneElement (matrix<double>) {
return identity_matrix<double> ();
}
template<>
BOOST_UBLAS_INLINE
std::complex<float>
OneElement (std::complex<float>) {
return std::complex<float> (1.f);
}
template<>
BOOST_UBLAS_INLINE
std::complex<double>
OneElement (std::complex<double>) {
return std::complex<double> (1.);
}
template<>
BOOST_UBLAS_INLINE
matrix<std::complex<float> >
OneElement (matrix<std::complex<float> >) {
return identity_matrix<std::complex<float> > ();
}
template<>
BOOST_UBLAS_INLINE
matrix<std::complex<double> >
OneElement (matrix<std::complex<double> >) {
return identity_matrix<std::complex<double> > ();
@@ -908,7 +893,6 @@ namespace boost { namespace numeric { namespace ublas {
}
};
BOOST_UBLAS_INLINE
void concept_checks () {
// Allow tests to be group to keep down compiler storage requirement
@@ -1549,6 +1533,8 @@ namespace boost { namespace numeric { namespace ublas {
#endif
}
} // end of anonymous namespace
}}}
#endif