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 3 | #define ARMA_VERSION_MAJOR 3 | |||
#define ARMA_VERSION_MINOR 1 | #define ARMA_VERSION_MINOR 1 | |||
#define ARMA_VERSION_PATCH 95 | #define ARMA_VERSION_PATCH 96 | |||
#define ARMA_VERSION_NAME "v3.2 beta 5" | #define ARMA_VERSION_NAME "v3.2 beta 6" | |||
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 | |||
std::string | std::string | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
fn_strans.hpp | fn_strans.hpp | |||
---|---|---|---|---|
skipping to change at line 21 | skipping to change at line 21 | |||
// (see http://www.opensource.org/licenses for more info) | // (see http://www.opensource.org/licenses for more info) | |||
//! \addtogroup fn_strans | //! \addtogroup fn_strans | |||
//! @{ | //! @{ | |||
template<typename T1> | template<typename T1> | |||
arma_inline | arma_inline | |||
const Op<T1, op_strans> | const Op<T1, op_strans> | |||
strans | strans | |||
( | ( | |||
const Base<typename T1::elem_type,T1>& X, | ||||
const typename enable_if<is_basevec<T1>::value == false>::result* junk1 = | ||||
0, | ||||
const typename arma_cx_only<typename T1::elem_type>::result* junk2 = 0 | ||||
) | ||||
{ | ||||
arma_extra_debug_sigprint(); | ||||
arma_ignore(junk1); | ||||
arma_ignore(junk2); | ||||
return Op<T1, op_strans>(X.get_ref()); | ||||
} | ||||
// NOTE: deliberately returning op_htrans instead of op_strans, | ||||
// NOTE: due to currently more optimisations available when using op_htrans | ||||
, especially by glue_times | ||||
template<typename T1> | ||||
arma_inline | ||||
const Op<T1, op_htrans> | ||||
strans | ||||
( | ||||
const Base<typename T1::elem_type,T1>& X, | ||||
const typename enable_if<is_basevec<T1>::value == false>::result* junk1 = | ||||
0, | ||||
const typename arma_not_cx<typename T1::elem_type>::result* junk2 = 0 | ||||
) | ||||
{ | ||||
arma_extra_debug_sigprint(); | ||||
arma_ignore(junk1); | ||||
arma_ignore(junk2); | ||||
return Op<T1, op_htrans>(X.get_ref()); | ||||
} | ||||
template<typename T1> | ||||
arma_inline | ||||
const Op<T1, op_strans> | ||||
strans | ||||
( | ||||
const T1& X, | const T1& X, | |||
const typename enable_if<is_basevec<T1>::value == true>::result* junk1 = | const typename enable_if< is_arma_type<T1>::value == true >::result* junk | |||
0, | 1 = 0, | |||
const typename arma_cx_only<typename T1::elem_type>::result* junk2 = 0 | const typename arma_cx_only<typename T1::elem_type>::result* junk | |||
2 = 0 | ||||
) | ) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
arma_ignore(junk1); | arma_ignore(junk1); | |||
arma_ignore(junk2); | arma_ignore(junk2); | |||
return Op<T1, op_strans>(X); | return Op<T1, op_strans>(X); | |||
} | } | |||
// NOTE: deliberately returning op_htrans instead of op_strans, | // NOTE: for non-complex objects, deliberately returning op_htrans instead of op_strans, | |||
// NOTE: due to currently more optimisations available when using op_htrans , especially by glue_times | // NOTE: due to currently more optimisations available when using op_htrans , especially by glue_times | |||
template<typename T1> | template<typename T1> | |||
arma_inline | arma_inline | |||
const Op<T1, op_htrans> | const Op<T1, op_htrans> | |||
strans | strans | |||
( | ( | |||
const T1& X, | const T1& X, | |||
const typename enable_if<is_basevec<T1>::value == true>::result* junk1 = | const typename enable_if< is_arma_type<T1>::value == true >::result* junk | |||
0, | 1 = 0, | |||
const typename arma_not_cx<typename T1::elem_type>::result* junk2 = 0 | const typename arma_not_cx<typename T1::elem_type>::result* junk | |||
2 = 0 | ||||
) | ) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
arma_ignore(junk1); | arma_ignore(junk1); | |||
arma_ignore(junk2); | arma_ignore(junk2); | |||
return Op<T1, op_htrans>(X); | return Op<T1, op_htrans>(X); | |||
} | } | |||
//! two consecutive transpose operations cancel each other | //! two consecutive transpose operations cancel each other | |||
End of changes. 4 change blocks. | ||||
46 lines changed or deleted | 9 lines changed or added | |||
fn_trans.hpp | fn_trans.hpp | |||
---|---|---|---|---|
skipping to change at line 21 | skipping to change at line 21 | |||
// (see http://www.opensource.org/licenses for more info) | // (see http://www.opensource.org/licenses for more info) | |||
//! \addtogroup fn_trans | //! \addtogroup fn_trans | |||
//! @{ | //! @{ | |||
template<typename T1> | template<typename T1> | |||
arma_inline | arma_inline | |||
const Op<T1, op_htrans> | const Op<T1, op_htrans> | |||
trans | trans | |||
( | ( | |||
const Base<typename T1::elem_type,T1>& X, | ||||
const typename enable_if<is_basevec<T1>::value == false>::result* junk = | ||||
0 | ||||
) | ||||
{ | ||||
arma_extra_debug_sigprint(); | ||||
arma_ignore(junk); | ||||
return Op<T1, op_htrans>(X.get_ref()); | ||||
} | ||||
template<typename T1> | ||||
arma_inline | ||||
arma_warn_unused | ||||
const Op<T1, op_htrans> | ||||
trans | ||||
( | ||||
const T1& X, | const T1& X, | |||
const typename enable_if<is_basevec<T1>::value == true>::result* junk = 0 | const typename enable_if< is_arma_type<T1>::value == true >::result* junk = 0 | |||
) | ) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
arma_ignore(junk); | arma_ignore(junk); | |||
return Op<T1, op_htrans>(X); | return Op<T1, op_htrans>(X); | |||
} | } | |||
template<typename T1> | template<typename T1> | |||
arma_inline | arma_inline | |||
const Op<T1, op_htrans> | const Op<T1, op_htrans> | |||
htrans | htrans | |||
( | ( | |||
const Base<typename T1::elem_type,T1>& X, | ||||
const typename enable_if<is_basevec<T1>::value == false>::result* junk = | ||||
0 | ||||
) | ||||
{ | ||||
arma_extra_debug_sigprint(); | ||||
arma_ignore(junk); | ||||
return Op<T1, op_htrans>(X.get_ref()); | ||||
} | ||||
template<typename T1> | ||||
arma_inline | ||||
arma_warn_unused | ||||
const Op<T1, op_htrans> | ||||
htrans | ||||
( | ||||
const T1& X, | const T1& X, | |||
const typename enable_if<is_basevec<T1>::value == true>::result* junk = 0 | const typename enable_if< is_arma_type<T1>::value == true >::result* junk = 0 | |||
) | ) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
arma_ignore(junk); | arma_ignore(junk); | |||
return Op<T1, op_htrans>(X); | return Op<T1, op_htrans>(X); | |||
} | } | |||
//! two consecutive transpose operations cancel each other | //! two consecutive transpose operations cancel each other | |||
template<typename T1> | template<typename T1> | |||
End of changes. 4 change blocks. | ||||
36 lines changed or deleted | 2 lines changed or added | |||