arma_version.hpp | arma_version.hpp | |||
---|---|---|---|---|
skipping to change at line 17 | skipping to change at line 17 | |||
// and/or modify it under the terms of the GNU | // and/or modify it under the terms of the GNU | |||
// 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 1 | #define ARMA_VERSION_MINOR 2 | |||
#define ARMA_VERSION_PATCH 91 | #define ARMA_VERSION_PATCH 0 | |||
#define ARMA_VERSION_NAME "2.2 beta 1" | #define ARMA_VERSION_NAME "Blue Skies Debauchery" | |||
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. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
fn_det.hpp | fn_det.hpp | |||
---|---|---|---|---|
skipping to change at line 97 | skipping to change at line 97 | |||
//! determinant of trans(A) | //! determinant of trans(A) | |||
template<typename T1> | template<typename T1> | |||
inline | inline | |||
arma_warn_unused | arma_warn_unused | |||
typename T1::elem_type | typename T1::elem_type | |||
det | det | |||
( | ( | |||
const Op<T1,op_htrans>& in, | const Op<T1,op_htrans>& in, | |||
const bool slow = false, | const bool slow = false, | |||
const typename arma_blas_type_only<typename T1::elem_type>::result* junk | const typename arma_blas_type_only<typename T1::elem_type>::result* junk1 | |||
= 0) | = 0, | |||
const typename arma_not_cx<typename T1::elem_type>::result* junk2 | ||||
= 0 | ||||
) | ||||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
arma_ignore(junk); | arma_ignore(junk1); | |||
arma_ignore(junk2); | ||||
typedef typename T1::elem_type eT; | typedef typename T1::elem_type eT; | |||
const unwrap<T1> tmp(in.m); | const unwrap<T1> tmp(in.m); | |||
const Mat<eT>& X = tmp.M; | const Mat<eT>& X = tmp.M; | |||
return det(X, slow); | return det(X, slow); | |||
} | } | |||
//! @} | //! @} | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 7 lines changed or added | |||
glue_cov_meat.hpp | glue_cov_meat.hpp | |||
---|---|---|---|---|
// Copyright (C) 2009-2010 NICTA (www.nicta.com.au) | // Copyright (C) 2009-2011 NICTA (www.nicta.com.au) | |||
// Copyright (C) 2009-2010 Conrad Sanderson | // Copyright (C) 2009-2011 Conrad Sanderson | |||
// Copyright (C) 2009-2010 Dimitrios Bouzas | // Copyright (C) 2009-2010 Dimitrios Bouzas | |||
// | // | |||
// This file is part of the Armadillo C++ library. | // This file is part of the Armadillo C++ library. | |||
// It is provided without any warranty of fitness | // It is provided without any warranty of fitness | |||
// for any purpose. You can redistribute this file | // for any purpose. You can redistribute this file | |||
// and/or modify it under the terms of the GNU | // and/or modify it under the terms of the GNU | |||
// 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) | |||
skipping to change at line 115 | skipping to change at line 115 | |||
out.set_size(1,1); | out.set_size(1,1); | |||
out[0] = out_acc/norm_val; | out[0] = out_acc/norm_val; | |||
} | } | |||
else | else | |||
{ | { | |||
arma_debug_assert_same_size(A, B, "cov()"); | arma_debug_assert_same_size(A, B, "cov()"); | |||
const u32 N = A.n_rows; | const u32 N = A.n_rows; | |||
const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) : eT(N); | const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) : eT(N); | |||
out = trans(conj(A)) * B; | out = trans(A) * B; // out = strans(conj(A)) * B; | |||
out -= (trans(conj(sum(A))) * sum(B))/eT(N); | out -= (trans(sum(A)) * sum(B))/eT(N); // out -= (strans(conj(sum(A))) | |||
* sum(B))/eT(N); | ||||
out /= norm_val; | out /= norm_val; | |||
} | } | |||
} | } | |||
template<typename T1, typename T2> | template<typename T1, typename T2> | |||
inline | inline | |||
void | void | |||
glue_cov::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_cov >& X) | glue_cov::apply(Mat<typename T1::elem_type>& out, const Glue<T1,T2,glue_cov >& X) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 5 lines changed or added | |||
op_cov_meat.hpp | op_cov_meat.hpp | |||
---|---|---|---|---|
// Copyright (C) 2009-2010 NICTA (www.nicta.com.au) | // Copyright (C) 2009-2011 NICTA (www.nicta.com.au) | |||
// Copyright (C) 2009-2010 Conrad Sanderson | // Copyright (C) 2009-2011 Conrad Sanderson | |||
// Copyright (C) 2009-2010 Dimitrios Bouzas | // Copyright (C) 2009-2010 Dimitrios Bouzas | |||
// | // | |||
// This file is part of the Armadillo C++ library. | // This file is part of the Armadillo C++ library. | |||
// It is provided without any warranty of fitness | // It is provided without any warranty of fitness | |||
// for any purpose. You can redistribute this file | // for any purpose. You can redistribute this file | |||
// and/or modify it under the terms of the GNU | // and/or modify it under the terms of the GNU | |||
// 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) | |||
skipping to change at line 79 | skipping to change at line 79 | |||
out[0] = tmp_mat[0]; | out[0] = tmp_mat[0]; | |||
} | } | |||
} | } | |||
else | else | |||
{ | { | |||
const u32 N = A.n_rows; | const u32 N = A.n_rows; | |||
const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) : eT(N); | const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) : eT(N); | |||
const Row<eT> acc = sum(A); | const Row<eT> acc = sum(A); | |||
out = trans(conj(A)) * A; | out = trans(A) * A; // out = strans(conj(A)) * A; | |||
out -= (trans(conj(acc)) * acc)/eT(N); | out -= (trans(acc) * acc)/eT(N); // out -= (strans(conj(acc)) * acc)/e | |||
T(N); | ||||
out /= norm_val; | out /= norm_val; | |||
} | } | |||
} | } | |||
template<typename T1> | template<typename T1> | |||
inline | inline | |||
void | void | |||
op_cov::apply(Mat<typename T1::elem_type>& out, const Op<T1,op_cov>& in) | op_cov::apply(Mat<typename T1::elem_type>& out, const Op<T1,op_cov>& in) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 5 lines changed or added | |||
running_stat_vec_meat.hpp | running_stat_vec_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 454 | skipping to change at line 454 | |||
if(x.calc_cov == true) | if(x.calc_cov == true) | |||
{ | { | |||
Mat<eT>& tmp1 = x.tmp1; | Mat<eT>& tmp1 = x.tmp1; | |||
Mat<eT>& tmp2 = x.tmp2; | Mat<eT>& tmp2 = x.tmp2; | |||
tmp1 = sample - x.r_mean; | tmp1 = sample - x.r_mean; | |||
if(sample.n_cols == 1) | if(sample.n_cols == 1) | |||
{ | { | |||
tmp2 = conj(tmp1)*trans(tmp1); | tmp2 = conj(tmp1)*strans(tmp1); | |||
} | } | |||
else | else | |||
{ | { | |||
tmp2 = trans(conj(tmp1))*tmp1; | tmp2 = trans(tmp1)*tmp1; //tmp2 = strans(conj(tmp1))*tmp1; | |||
} | } | |||
x.r_cov *= (N_minus_1/N); | x.r_cov *= (N_minus_1/N); | |||
x.r_cov += tmp2 / N_plus_1; | x.r_cov += tmp2 / N_plus_1; | |||
} | } | |||
for(u32 i=0; i<n_elem; ++i) | for(u32 i=0; i<n_elem; ++i) | |||
{ | { | |||
const eT& val = sample_mem[i]; | const eT& val = sample_mem[i]; | |||
const T val_norm = std::norm(val); | const T val_norm = std::norm(val); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||