Commit 876c77e4 authored by Davis King's avatar Davis King

Fixed some bugs and cleaned up the code.

--HG--
extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%402773
parent 01b0f10a
...@@ -237,9 +237,10 @@ namespace dlib ...@@ -237,9 +237,10 @@ namespace dlib
{ {
if (add_to) if (add_to)
{ {
matrix<T,NR,NC,MM,L> temp(dest); matrix<T,NR,NC,MM,L> temp(dest.nr(),dest.nc());
set_all_elements(temp,0);
default_matrix_multiply(temp, src.lhs, src.rhs); default_matrix_multiply(temp, src.lhs, src.rhs);
dest = alpha*temp; dest += alpha*temp;
} }
else else
{ {
...@@ -288,6 +289,8 @@ namespace dlib ...@@ -288,6 +289,8 @@ namespace dlib
/*! /*!
requires requires
- src.aliases(dest) == false - src.aliases(dest) == false
- dest.nr() == src.nr()
- dest.nc() == src.nc()
!*/ !*/
template < template <
...@@ -303,6 +306,8 @@ namespace dlib ...@@ -303,6 +306,8 @@ namespace dlib
/*! /*!
requires requires
- src.aliases(dest) == false - src.aliases(dest) == false
- dest.nr() == src.nr()
- dest.nc() == src.nc()
!*/ !*/
template < template <
...@@ -318,6 +323,8 @@ namespace dlib ...@@ -318,6 +323,8 @@ namespace dlib
/*! /*!
requires requires
- src.aliases(dest) == false - src.aliases(dest) == false
- dest.nr() == src.nr()
- dest.nc() == src.nc()
!*/ !*/
template < template <
...@@ -333,6 +340,8 @@ namespace dlib ...@@ -333,6 +340,8 @@ namespace dlib
/*! /*!
requires requires
- src.aliases(dest) == false - src.aliases(dest) == false
- dest.nr() == src.nr()
- dest.nc() == src.nc()
!*/ !*/
// ------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------
...@@ -481,7 +490,7 @@ namespace dlib ...@@ -481,7 +490,7 @@ namespace dlib
{ {
if (src.aliases(dest)) if (src.aliases(dest))
{ {
matrix<T,NR,NC,MM,L> temp; matrix<T,NR,NC,MM,L> temp(dest.nr(),dest.nc());
matrix_assign_blas_proxy(temp,src,1,false); matrix_assign_blas_proxy(temp,src,1,false);
temp.swap(dest); temp.swap(dest);
} }
...@@ -526,6 +535,24 @@ namespace dlib ...@@ -526,6 +535,24 @@ namespace dlib
} }
} }
// ------------------------------------------------------------------------------------
template <
typename T, long NR, long NC, typename MM, typename L,
typename src_exp
>
void matrix_assign_blas (
matrix<T,NR,NC,MM,L>& dest,
const matrix_add_exp<src_exp, matrix<T,NR,NC,MM,L> >& src
)
{
// Just switch around the left and right hand sides of the incoming
// add expression and pass it back into matrix_assign_blas() so that
// the above function will be called.
typedef matrix_add_exp<matrix<T,NR,NC,MM,L> ,src_exp> swapped_add_exp;
matrix_assign_blas(dest, swapped_add_exp(src.rhs, src.lhs));
}
// ------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------
template < template <
......
...@@ -47,6 +47,8 @@ namespace dlib ...@@ -47,6 +47,8 @@ namespace dlib
/*! /*!
requires requires
- src.destructively_aliases(dest) == false - src.destructively_aliases(dest) == false
- dest.nr() == src.nr()
- dest.nc() == src.nc()
ensures ensures
- #dest == src - #dest == src
!*/ !*/
...@@ -72,6 +74,8 @@ namespace dlib ...@@ -72,6 +74,8 @@ namespace dlib
/*! /*!
requires requires
- src.destructively_aliases(dest) == false - src.destructively_aliases(dest) == false
- dest.nr() == src.nr()
- dest.nc() == src.nc()
ensures ensures
- if (add_to == false) then - if (add_to == false) then
- #dest == alpha*src - #dest == alpha*src
...@@ -164,6 +168,8 @@ namespace dlib ...@@ -164,6 +168,8 @@ namespace dlib
/*! /*!
requires requires
- src.destructively_aliases(dest) == false - src.destructively_aliases(dest) == false
- dest.nr() == src.nr()
- dest.nc() == src.nc()
ensures ensures
- #dest == src - #dest == src
!*/ !*/
...@@ -187,6 +193,8 @@ namespace dlib ...@@ -187,6 +193,8 @@ namespace dlib
/*! /*!
requires requires
- src.destructively_aliases(dest) == false - src.destructively_aliases(dest) == false
- dest.nr() == src.nr()
- dest.nc() == src.nc()
ensures ensures
- #dest == src - #dest == src
!*/ !*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment