Proxy.hpp   Proxy.hpp 
skipping to change at line 1376 skipping to change at line 1376
arma_inline ea_type get_ea() const { return Q; } arma_inline ea_type get_ea() const { return Q; }
arma_inline aligned_ea_type get_aligned_ea() const { return Q; } arma_inline aligned_ea_type get_aligned_ea() const { return Q; }
template<typename eT2> template<typename eT2>
arma_inline bool is_alias(const Mat<eT2>& X) const { return (void_ptr(&(Q .sv_row.m)) == void_ptr(&X)); } arma_inline bool is_alias(const Mat<eT2>& X) const { return (void_ptr(&(Q .sv_row.m)) == void_ptr(&X)); }
arma_inline bool is_aligned() const { return false; } arma_inline bool is_aligned() const { return false; }
}; };
template<typename eT>
class Proxy< xvec_htrans<eT> >
{
public:
typedef eT elem_type;
typedef typename get_pod_type<elem_type>::result pod_type;
typedef Mat<eT> stored_type;
typedef const eT* ea_type;
typedef const Mat<eT>& aligned_ea_type;
static const bool prefer_at_accessor = false;
static const bool has_subview = false;
static const bool is_fixed = false;
static const bool fake_mat = false;
static const bool is_row = false;
static const bool is_col = false;
arma_aligned const Mat<eT> Q;
inline explicit Proxy(const xvec_htrans<eT>& A)
: Q(A)
{
arma_extra_debug_sigprint();
}
arma_inline uword get_n_rows() const { return Q.n_rows; }
arma_inline uword get_n_cols() const { return Q.n_cols; }
arma_inline uword get_n_elem() const { return Q.n_elem; }
arma_inline elem_type operator[] (const uword i) const
{ return Q[i]; }
arma_inline elem_type at (const uword row, const uword col) const
{ return Q.at(row,col); }
arma_inline elem_type at_alt (const uword i) const
{ return Q.at_alt(i); }
arma_inline ea_type get_ea() const { return Q.memptr(); }
arma_inline aligned_ea_type get_aligned_ea() const { return Q; }
template<typename eT2>
arma_inline bool is_alias(const Mat<eT2>& X) const { return false; }
arma_inline bool is_aligned() const { return memory::is_aligned(Q.memptr(
)); }
};
template<typename eT, typename T1> template<typename eT, typename T1>
class Proxy< subview_elem1<eT,T1> > class Proxy< subview_elem1<eT,T1> >
{ {
public: public:
typedef eT elem_type; typedef eT elem_type;
typedef typename get_pod_type<elem_type>::result pod_type; typedef typename get_pod_type<elem_type>::result pod_type;
typedef Mat<eT> stored_type; typedef Mat<eT> stored_type;
typedef const eT* ea_type; typedef const eT* ea_type;
typedef const Mat<eT>& aligned_ea_type; typedef const Mat<eT>& aligned_ea_type;
 End of changes. 1 change blocks. 
0 lines changed or deleted 48 lines changed or added


 arma_version.hpp   arma_version.hpp 
skipping to change at line 13 skipping to change at line 13
// //
// This Source Code Form is subject to the terms of the Mozilla Public // This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this // License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/. // file, You can obtain one at http://mozilla.org/MPL/2.0/.
//! \addtogroup arma_version //! \addtogroup arma_version
//! @{ //! @{
#define ARMA_VERSION_MAJOR 3 #define ARMA_VERSION_MAJOR 3
#define ARMA_VERSION_MINOR 900 #define ARMA_VERSION_MINOR 900
#define ARMA_VERSION_PATCH 1 #define ARMA_VERSION_PATCH 2
#define ARMA_VERSION_NAME "Bavarian Sunflower" #define ARMA_VERSION_NAME "Bavarian Sunflower"
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


 fn_as_scalar.hpp   fn_as_scalar.hpp 
skipping to change at line 40 skipping to change at line 40
}; };
template<uword N> template<uword N>
template<typename T1> template<typename T1>
inline inline
typename T1::elem_type typename T1::elem_type
as_scalar_redirect<N>::apply(const T1& X) as_scalar_redirect<N>::apply(const T1& X)
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
typedef typename T1::elem_type eT; // typedef typename T1::elem_type eT;
const Proxy<T1> P(X); const Proxy<T1> P(X);
arma_debug_check( (P.get_n_elem() != 1), "as_scalar(): expression doesn't evaluate to exactly one element" ); arma_debug_check( (P.get_n_elem() != 1), "as_scalar(): expression doesn't evaluate to exactly one element" );
return (Proxy<T1>::prefer_at_accessor == true) ? P.at(0,0) : P[0]; return (Proxy<T1>::prefer_at_accessor == true) ? P.at(0,0) : P[0];
} }
template<typename T1, typename T2> template<typename T1, typename T2>
inline inline
skipping to change at line 296 skipping to change at line 296
} }
template<typename T1> template<typename T1>
inline inline
arma_warn_unused arma_warn_unused
typename T1::elem_type typename T1::elem_type
as_scalar(const Base<typename T1::elem_type,T1>& X) as_scalar(const Base<typename T1::elem_type,T1>& X)
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
typedef typename T1::elem_type eT; // typedef typename T1::elem_type eT;
const Proxy<T1> P(X.get_ref()); const Proxy<T1> P(X.get_ref());
arma_debug_check( (P.get_n_elem() != 1), "as_scalar(): expression doesn't evaluate to exactly one element" ); arma_debug_check( (P.get_n_elem() != 1), "as_scalar(): expression doesn't evaluate to exactly one element" );
return (Proxy<T1>::prefer_at_accessor == true) ? P.at(0,0) : P[0]; return (Proxy<T1>::prefer_at_accessor == true) ? P.at(0,0) : P[0];
} }
// ensure the following two functions are aware of each other // ensure the following two functions are aware of each other
template<typename T1, typename eop_type> inline arma_warn_un used typename T1::elem_type as_scalar(const eOp<T1, eop_type>& X); template<typename T1, typename eop_type> inline arma_warn_un used typename T1::elem_type as_scalar(const eOp<T1, eop_type>& X);
skipping to change at line 353 skipping to change at line 353
} }
template<typename T1> template<typename T1>
inline inline
arma_warn_unused arma_warn_unused
typename T1::elem_type typename T1::elem_type
as_scalar(const BaseCube<typename T1::elem_type,T1>& X) as_scalar(const BaseCube<typename T1::elem_type,T1>& X)
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
typedef typename T1::elem_type eT; // typedef typename T1::elem_type eT;
const ProxyCube<T1> P(X.get_ref()); const ProxyCube<T1> P(X.get_ref());
arma_debug_check( (P.get_n_elem() != 1), "as_scalar(): expression doesn't evaluate to exactly one element" ); arma_debug_check( (P.get_n_elem() != 1), "as_scalar(): expression doesn't evaluate to exactly one element" );
return (ProxyCube<T1>::prefer_at_accessor == true) ? P.at(0,0,0) : P[0]; return (ProxyCube<T1>::prefer_at_accessor == true) ? P.at(0,0,0) : P[0];
} }
template<typename T> template<typename T>
arma_inline arma_inline
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 xvec_htrans_bones.hpp   xvec_htrans_bones.hpp 
skipping to change at line 33 skipping to change at line 33
const uword n_rows; const uword n_rows;
const uword n_cols; const uword n_cols;
const uword n_elem; const uword n_elem;
inline explicit xvec_htrans(const eT* const in_mem, const uword in_n_rows , const uword in_n_cols); inline explicit xvec_htrans(const eT* const in_mem, const uword in_n_rows , const uword in_n_cols);
inline void extract(Mat<eT>& out) const; inline void extract(Mat<eT>& out) const;
inline eT operator[](const uword ii) const; inline eT operator[](const uword ii) const;
inline eT at_alt (const uword ii) const; inline eT at_alt (const uword ii) const;
inline eT at (const uword in_row, const uword in_col) const;
}; };
//! @} //! @}
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 xvec_htrans_meat.hpp   xvec_htrans_meat.hpp 
skipping to change at line 57 skipping to change at line 57
} }
template<typename eT> template<typename eT>
inline inline
eT eT
xvec_htrans<eT>::at_alt(const uword ii) const xvec_htrans<eT>::at_alt(const uword ii) const
{ {
return access::alt_conj( mem[ii] ); return access::alt_conj( mem[ii] );
} }
template<typename eT>
inline
eT
xvec_htrans<eT>::at(const uword in_row, const uword in_col) const
{
//return (n_rows == 1) ? access::alt_conj( mem[in_col] ) : access::alt_co
nj( mem[in_row] );
return access::alt_conj( mem[in_row + in_col] ); // either in_row or in_
col must be zero, as we're storing a vector
}
//! @} //! @}
 End of changes. 1 change blocks. 
0 lines changed or deleted 12 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/