arma_version.hpp | arma_version.hpp | |||
---|---|---|---|---|
skipping to change at line 18 | skipping to change at line 18 | |||
// Lesser General Public License (LGPL) as published | // Lesser General Public License (LGPL) as published | |||
// by the Free Software Foundation, either version 3 | // by the Free Software Foundation, either version 3 | |||
// of the License or (at your option) any later version. | // of the License or (at your option) any later version. | |||
// (see http://www.opensource.org/licenses for more info) | // (see http://www.opensource.org/licenses for more info) | |||
//! \addtogroup arma_version | //! \addtogroup arma_version | |||
//! @{ | //! @{ | |||
#define ARMA_VERSION_MAJOR 2 | #define ARMA_VERSION_MAJOR 2 | |||
#define ARMA_VERSION_MINOR 4 | #define ARMA_VERSION_MINOR 4 | |||
#define ARMA_VERSION_PATCH 4 | #define ARMA_VERSION_PATCH 5 | |||
#define ARMA_VERSION_NAME "Loco Lounge Lizard" | #define ARMA_VERSION_NAME "Loco Lounge Lizard" | |||
struct arma_version | struct arma_version | |||
{ | { | |||
static const unsigned int major = ARMA_VERSION_MAJOR; | static const unsigned int major = ARMA_VERSION_MAJOR; | |||
static const unsigned int minor = ARMA_VERSION_MINOR; | static const unsigned int minor = ARMA_VERSION_MINOR; | |||
static const unsigned int patch = ARMA_VERSION_PATCH; | static const unsigned int patch = ARMA_VERSION_PATCH; | |||
static | static | |||
inline | inline | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
auxlib_meat.hpp | auxlib_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 609 | skipping to change at line 609 | |||
{ | { | |||
const eT tmp_det = auxlib::det_tinymat(A, N); | const eT tmp_det = auxlib::det_tinymat(A, N); | |||
return (tmp_det != eT(0)) ? tmp_det : auxlib::det_lapack(A, make_co py); | return (tmp_det != eT(0)) ? tmp_det : auxlib::det_lapack(A, make_co py); | |||
} | } | |||
break; | break; | |||
default: | default: | |||
return auxlib::det_lapack(A, make_copy); | return auxlib::det_lapack(A, make_copy); | |||
} | } | |||
} | } | |||
else | ||||
{ | return auxlib::det_lapack(A, make_copy); | |||
return auxlib::det_lapack(A, make_copy); | ||||
} | ||||
} | } | |||
template<typename eT> | template<typename eT> | |||
inline | inline | |||
eT | eT | |||
auxlib::det_tinymat(const Mat<eT>& X, const uword N) | auxlib::det_tinymat(const Mat<eT>& X, const uword N) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
switch(N) | switch(N) | |||
End of changes. 1 change blocks. | ||||
4 lines changed or deleted | 2 lines changed or added | |||
diskio_meat.hpp | diskio_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 1225 | skipping to change at line 1225 | |||
f.close(); | f.close(); | |||
} | } | |||
return load_okay; | return load_okay; | |||
} | } | |||
//! Load a matrix in CSV text format (human readable) | //! Load a matrix in CSV text format (human readable) | |||
template<typename eT> | template<typename eT> | |||
inline | inline | |||
bool | bool | |||
diskio::load_csv_ascii(Mat<eT>& x, std::istream& f, std::string& err_msg) | diskio::load_csv_ascii(Mat<eT>& x, std::istream& f, std::string&) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
bool load_okay = f.good(); | bool load_okay = f.good(); | |||
f.clear(); | f.clear(); | |||
const std::fstream::pos_type pos1 = f.tellg(); | const std::fstream::pos_type pos1 = f.tellg(); | |||
// | // | |||
// work out the size | // work out the size | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
gemm.hpp | gemm.hpp | |||
---|---|---|---|---|
skipping to change at line 334 | skipping to change at line 334 | |||
public: | public: | |||
template<typename eT> | template<typename eT> | |||
inline | inline | |||
static | static | |||
void | void | |||
apply_blas_type( Mat<eT>& C, const Mat<eT>& A, const Mat<eT>& B, const eT alpha = eT(1), const eT beta = eT(0) ) | apply_blas_type( Mat<eT>& C, const Mat<eT>& A, const Mat<eT>& B, const eT alpha = eT(1), const eT beta = eT(0) ) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
if( (A.n_elem <= 48u) && (B.n_elem <= 48u) ) | const uword threshold = (is_complex<eT>::value == true) ? 16u : 48u; | |||
if( (A.n_elem <= threshold) && (B.n_elem <= threshold) ) | ||||
{ | { | |||
gemm_emul<do_trans_A, do_trans_B, use_alpha, use_beta>::apply(C,A,B,a lpha,beta); | gemm_emul<do_trans_A, do_trans_B, use_alpha, use_beta>::apply(C,A,B,a lpha,beta); | |||
} | } | |||
else | else | |||
{ | { | |||
#if defined(ARMA_USE_ATLAS) | #if defined(ARMA_USE_ATLAS) | |||
{ | { | |||
arma_extra_debug_print("atlas::cblas_gemm()"); | arma_extra_debug_print("atlas::cblas_gemm()"); | |||
atlas::cblas_gemm<eT> | atlas::cblas_gemm<eT> | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
gemv.hpp | gemv.hpp | |||
---|---|---|---|---|
skipping to change at line 282 | skipping to change at line 282 | |||
} | } | |||
template<typename eT> | template<typename eT> | |||
arma_hot | arma_hot | |||
inline | inline | |||
static | static | |||
void | void | |||
apply( eT* y, const Mat<eT>& A, const eT* x, const eT alpha = eT(1), cons t eT beta = eT(0), const typename arma_cx_only<eT>::result* junk = 0 ) | apply( eT* y, const Mat<eT>& A, const eT* x, const eT alpha = eT(1), cons t eT beta = eT(0), const typename arma_cx_only<eT>::result* junk = 0 ) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
arma_ignore(junk); | ||||
Mat<eT> tmp_A; | Mat<eT> tmp_A; | |||
if(do_trans_A) | if(do_trans_A) | |||
{ | { | |||
op_htrans::apply_noalias(tmp_A, A); | op_htrans::apply_noalias(tmp_A, A); | |||
} | } | |||
const Mat<eT>& AA = (do_trans_A == false) ? A : tmp_A; | const Mat<eT>& AA = (do_trans_A == false) ? A : tmp_A; | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
op_median_meat.hpp | op_median_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 339 | skipping to change at line 339 | |||
out.set_size(X_n_rows, 1); | out.set_size(X_n_rows, 1); | |||
std::vector< arma_cx_median_packet<T> > tmp_vec(X_n_cols); | std::vector< arma_cx_median_packet<T> > tmp_vec(X_n_cols); | |||
for(uword row=0; row<X_n_rows; ++row) | for(uword row=0; row<X_n_rows; ++row) | |||
{ | { | |||
for(uword col=0; col<X_n_cols; ++col) | for(uword col=0; col<X_n_cols; ++col) | |||
{ | { | |||
tmp_vec[col].val = std::abs(X.at(row,col)); | tmp_vec[col].val = std::abs(X.at(row,col)); | |||
tmp_vec[row].index = col; | tmp_vec[col].index = col; | |||
} | } | |||
uword index1; | uword index1; | |||
uword index2; | uword index2; | |||
op_median::direct_cx_median_index(index1, index2, tmp_vec); | op_median::direct_cx_median_index(index1, index2, tmp_vec); | |||
out[row] = op_median::robust_mean( X.at(row,index1), X.at(row,index2) ); | out[row] = op_median::robust_mean( X.at(row,index1), X.at(row,index2) ); | |||
} | } | |||
} | } | |||
} | } | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
operator_plus.hpp | operator_plus.hpp | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
// by the Free Software Foundation, either version 3 | // by the Free Software Foundation, either version 3 | |||
// of the License or (at your option) any later version. | // of the License or (at your option) any later version. | |||
// (see http://www.opensource.org/licenses for more info) | // (see http://www.opensource.org/licenses for more info) | |||
//! \addtogroup operator_plus | //! \addtogroup operator_plus | |||
//! @{ | //! @{ | |||
//! unary plus operation (does nothing, but is required for completeness) | //! unary plus operation (does nothing, but is required for completeness) | |||
template<typename T1> | template<typename T1> | |||
arma_inline | arma_inline | |||
const Base<typename T1::elem_type,T1>& | const T1& | |||
operator+ | operator+ | |||
(const Base<typename T1::elem_type,T1>& X) | (const Base<typename T1::elem_type,T1>& X) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
return X; | return X.get_ref(); | |||
} | } | |||
//! Base + scalar | //! Base + scalar | |||
template<typename T1> | template<typename T1> | |||
arma_inline | arma_inline | |||
const eOp<T1, eop_scalar_plus> | const eOp<T1, eop_scalar_plus> | |||
operator+ | operator+ | |||
(const Base<typename T1::elem_type,T1>& X, const typename T1::elem_type k) | (const Base<typename T1::elem_type,T1>& X, const typename T1::elem_type k) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||