arma_version.hpp | arma_version.hpp | |||
---|---|---|---|---|
skipping to change at line 12 | skipping to change at line 12 | |||
// Copyright (C) 2009-2013 NICTA (www.nicta.com.au) | // Copyright (C) 2009-2013 NICTA (www.nicta.com.au) | |||
// | // | |||
// 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 909 | #define ARMA_VERSION_MINOR 910 | |||
#define ARMA_VERSION_PATCH 2 | #define ARMA_VERSION_PATCH 0 | |||
#define ARMA_VERSION_NAME "development version" | #define ARMA_VERSION_NAME "Pyrenees" | |||
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 | |||
injector_bones.hpp | injector_bones.hpp | |||
---|---|---|---|---|
// Copyright (C) 2010 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2010 Conrad Sanderson | // Copyright (C) 2010 Conrad Sanderson | |||
// Copyright (C) 2010 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 injector | //! \addtogroup injector | |||
//! @{ | //! @{ | |||
template<typename eT> | template<typename eT> | |||
class mat_injector_row | class mat_injector_row | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
injector_meat.hpp | injector_meat.hpp | |||
---|---|---|---|---|
// Copyright (C) 2010 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2010 Conrad Sanderson | // Copyright (C) 2010 Conrad Sanderson | |||
// Copyright (C) 2010 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 injector | //! \addtogroup injector | |||
//! @{ | //! @{ | |||
template<typename eT> | template<typename eT> | |||
inline | inline | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
lapack_bones.hpp | lapack_bones.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2012 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2012 Conrad Sanderson | // Copyright (C) 2008-2012 Conrad Sanderson | |||
// Copyright (C) 2008-2012 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2009 Edmund Highcock | // Copyright (C) 2009 Edmund Highcock | |||
// Copyright (C) 2011 James Sanders | // Copyright (C) 2011 James Sanders | |||
// Copyright (C) 2012 Eric Jon Sundstrom | // Copyright (C) 2012 Eric Jon Sundstrom | |||
// | // | |||
// 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/. | |||
#ifdef ARMA_USE_LAPACK | #ifdef ARMA_USE_LAPACK | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
lapack_wrapper.hpp | lapack_wrapper.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2012 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2012 Conrad Sanderson | // Copyright (C) 2008-2012 Conrad Sanderson | |||
// Copyright (C) 2008-2012 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2009 Edmund Highcock | // Copyright (C) 2009 Edmund Highcock | |||
// Copyright (C) 2011 James Sanders | // Copyright (C) 2011 James Sanders | |||
// Copyright (C) 2012 Eric Jon Sundstrom | // Copyright (C) 2012 Eric Jon Sundstrom | |||
// | // | |||
// 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/. | |||
#ifdef ARMA_USE_LAPACK | #ifdef ARMA_USE_LAPACK | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
memory.hpp | memory.hpp | |||
---|---|---|---|---|
// Copyright (C) 2012-2013 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2012-2013 Conrad Sanderson | // Copyright (C) 2012-2013 Conrad Sanderson | |||
// Copyright (C) 2012-2013 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 memory | //! \addtogroup memory | |||
//! @{ | //! @{ | |||
class memory | class memory | |||
{ | { | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mtGlueCube_bones.hpp | mtGlueCube_bones.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2011 Conrad Sanderson | // Copyright (C) 2008-2011 Conrad Sanderson | |||
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 mtGlueCube | //! \addtogroup mtGlueCube | |||
//! @{ | //! @{ | |||
template<typename out_eT, typename T1, typename T2, typename glue_type> | template<typename out_eT, typename T1, typename T2, typename glue_type> | |||
class mtGlueCube : public BaseCube<out_eT, mtGlueCube<out_eT, T1, T2, glue_ type> > | class mtGlueCube : public BaseCube<out_eT, mtGlueCube<out_eT, T1, T2, glue_ type> > | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mtGlueCube_meat.hpp | mtGlueCube_meat.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2011 Conrad Sanderson | // Copyright (C) 2008-2011 Conrad Sanderson | |||
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 mtGlueCube | //! \addtogroup mtGlueCube | |||
//! @{ | //! @{ | |||
template<typename out_eT, typename T1, typename T2, typename glue_type> | template<typename out_eT, typename T1, typename T2, typename glue_type> | |||
inline | inline | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mtGlue_bones.hpp | mtGlue_bones.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2012 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2012 Conrad Sanderson | // Copyright (C) 2008-2012 Conrad Sanderson | |||
// Copyright (C) 2008-2012 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 mtGlue | //! \addtogroup mtGlue | |||
//! @{ | //! @{ | |||
template<typename out_eT, typename T1, typename T2, typename glue_type> | template<typename out_eT, typename T1, typename T2, typename glue_type> | |||
class mtGlue : public Base<out_eT, mtGlue<out_eT, T1, T2, glue_type> > | class mtGlue : public Base<out_eT, mtGlue<out_eT, T1, T2, glue_type> > | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mtGlue_meat.hpp | mtGlue_meat.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2011 Conrad Sanderson | // Copyright (C) 2008-2011 Conrad Sanderson | |||
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 mtGlue | //! \addtogroup mtGlue | |||
//! @{ | //! @{ | |||
template<typename out_eT, typename T1, typename T2, typename glue_type> | template<typename out_eT, typename T1, typename T2, typename glue_type> | |||
inline | inline | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mtOpCube_bones.hpp | mtOpCube_bones.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2011 Conrad Sanderson | // Copyright (C) 2008-2011 Conrad Sanderson | |||
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 mtOpCube | //! \addtogroup mtOpCube | |||
//! @{ | //! @{ | |||
template<typename out_eT, typename T1, typename op_type> | template<typename out_eT, typename T1, typename op_type> | |||
class mtOpCube : public BaseCube<out_eT, mtOpCube<out_eT, T1, op_type> > | class mtOpCube : public BaseCube<out_eT, mtOpCube<out_eT, T1, op_type> > | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mtOpCube_meat.hpp | mtOpCube_meat.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2011 Conrad Sanderson | // Copyright (C) 2008-2011 Conrad Sanderson | |||
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 mtOpCube | //! \addtogroup mtOpCube | |||
//! @{ | //! @{ | |||
template<typename out_eT, typename T1, typename op_type> | template<typename out_eT, typename T1, typename op_type> | |||
inline | inline | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mtOp_bones.hpp | mtOp_bones.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2011 Conrad Sanderson | // Copyright (C) 2008-2011 Conrad Sanderson | |||
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 mtOp | //! \addtogroup mtOp | |||
//! @{ | //! @{ | |||
template<typename out_eT, typename T1, typename op_type> | template<typename out_eT, typename T1, typename op_type> | |||
class mtOp : public Base<out_eT, mtOp<out_eT, T1, op_type> > | class mtOp : public Base<out_eT, mtOp<out_eT, T1, op_type> > | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mtOp_meat.hpp | mtOp_meat.hpp | |||
---|---|---|---|---|
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// Copyright (C) 2008-2011 Conrad Sanderson | // Copyright (C) 2008-2011 Conrad Sanderson | |||
// Copyright (C) 2008-2011 NICTA (www.nicta.com.au) | ||||
// | // | |||
// 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 mtOp | //! \addtogroup mtOp | |||
//! @{ | //! @{ | |||
template<typename out_eT, typename T1, typename op_type> | template<typename out_eT, typename T1, typename op_type> | |||
inline | inline | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
mul_herk.hpp | mul_herk.hpp | |||
---|---|---|---|---|
skipping to change at line 125 | skipping to change at line 125 | |||
for(uword row_A=0; row_A < A_n_rows; ++row_A) | for(uword row_A=0; row_A < A_n_rows; ++row_A) | |||
{ | { | |||
const eT& A_rowdata = A_mem[row_A]; | const eT& A_rowdata = A_mem[row_A]; | |||
for(uword k=row_A; k < A_n_rows; ++k) | for(uword k=row_A; k < A_n_rows; ++k) | |||
{ | { | |||
const eT acc = A_rowdata * std::conj( A_mem[k] ); | const eT acc = A_rowdata * std::conj( A_mem[k] ); | |||
if( (use_alpha == false) && (use_beta == false) ) | if( (use_alpha == false) && (use_beta == false) ) | |||
{ | { | |||
C.at(row_A, k) = acc; | C.at(row_A, k) = acc; | |||
if(row_A != k) { C.at(k, row_A) = std::conj(acc); } | if(row_A != k) { C.at(k, row_A) = std::conj(acc); } | |||
} | } | |||
else | else | |||
if( (use_alpha == true) && (use_beta == false) ) | if( (use_alpha == true) && (use_beta == false) ) | |||
{ | { | |||
const eT val = alpha*acc; | const eT val = alpha*acc; | |||
C.at(row_A, k) = val; | C.at(row_A, k) = val; | |||
if(row_A != k) { C.at(k, row_A) = std::conj(val); } | if(row_A != k) { C.at(k, row_A) = std::conj(val); } | |||
} | } | |||
else | else | |||
if( (use_alpha == false) && (use_beta == true) ) | if( (use_alpha == false) && (use_beta == true) ) | |||
{ | { | |||
C.at(row_A, k) = acc + beta*C.at(row_A, k); | C.at(row_A, k) = acc + beta*C.at(r | |||
ow_A, k); | ||||
if(row_A != k) { C.at(k, row_A) = std::conj(acc) + beta*C.at(k , row_A); } | if(row_A != k) { C.at(k, row_A) = std::conj(acc) + beta*C.at(k , row_A); } | |||
} | } | |||
else | else | |||
if( (use_alpha == true) && (use_beta == true) ) | if( (use_alpha == true) && (use_beta == true) ) | |||
{ | { | |||
const eT val = alpha*acc; | const eT val = alpha*acc; | |||
C.at(row_A, k) = val + beta*C.at(row_A, k); | C.at(row_A, k) = val + beta*C.at(r | |||
ow_A, k); | ||||
if(row_A != k) { C.at(k, row_A) = std::conj(val) + beta*C.at(k , row_A); } | if(row_A != k) { C.at(k, row_A) = std::conj(val) + beta*C.at(k , row_A); } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
else | else | |||
if(do_trans_A == true) | if(do_trans_A == true) | |||
{ | { | |||
if(A_n_cols == 1) | if(A_n_cols == 1) | |||
{ | { | |||
skipping to change at line 182 | skipping to change at line 178 | |||
// col_A is interpreted as row_A when storing the results in matrix C | // col_A is interpreted as row_A when storing the results in matrix C | |||
const eT A_coldata = std::conj( A_mem[col_A] ); | const eT A_coldata = std::conj( A_mem[col_A] ); | |||
for(uword k=col_A; k < A_n_cols ; ++k) | for(uword k=col_A; k < A_n_cols ; ++k) | |||
{ | { | |||
const eT acc = A_coldata * A_mem[k]; | const eT acc = A_coldata * A_mem[k]; | |||
if( (use_alpha == false) && (use_beta == false) ) | if( (use_alpha == false) && (use_beta == false) ) | |||
{ | { | |||
C.at(col_A, k) = acc; | C.at(col_A, k) = acc; | |||
if(col_A != k) { C.at(k, col_A) = std::conj(acc); } | if(col_A != k) { C.at(k, col_A) = std::conj(acc); } | |||
} | } | |||
else | else | |||
if( (use_alpha == true ) && (use_beta == false) ) | if( (use_alpha == true ) && (use_beta == false) ) | |||
{ | { | |||
const eT val = alpha*acc; | const eT val = alpha*acc; | |||
C.at(col_A, k) = val; | C.at(col_A, k) = val; | |||
if(col_A != k) { C.at(k, col_A) = std::conj(val); } | if(col_A != k) { C.at(k, col_A) = std::conj(val); } | |||
} | } | |||
else | else | |||
if( (use_alpha == false) && (use_beta == true ) ) | if( (use_alpha == false) && (use_beta == true ) ) | |||
{ | { | |||
C.at(col_A, k) = acc + beta*C.at(col_A, k); | C.at(col_A, k) = acc + beta*C.at(c | |||
ol_A, k); | ||||
if(col_A != k) { C.at(k, col_A) = std::conj(acc) + beta*C.at(k , col_A); } | if(col_A != k) { C.at(k, col_A) = std::conj(acc) + beta*C.at(k , col_A); } | |||
} | } | |||
else | else | |||
if( (use_alpha == true ) && (use_beta == true ) ) | if( (use_alpha == true ) && (use_beta == true ) ) | |||
{ | { | |||
const eT val = alpha*acc; | const eT val = alpha*acc; | |||
C.at(col_A, k) = val + beta*C.at(col_A, k); | C.at(col_A, k) = val + beta*C.at(c | |||
ol_A, k); | ||||
if(col_A != k) { C.at(k, col_A) = std::conj(val) + beta*C.at(k , col_A); } | if(col_A != k) { C.at(k, col_A) = std::conj(val) + beta*C.at(k , col_A); } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
}; | }; | |||
template<const bool do_trans_A=false, const bool use_alpha=false, const boo l use_beta=false> | template<const bool do_trans_A=false, const bool use_alpha=false, const boo l use_beta=false> | |||
skipping to change at line 269 | skipping to change at line 261 | |||
// col_A is interpreted as row_A when storing the results in matrix C | // col_A is interpreted as row_A when storing the results in matrix C | |||
const eT* A_coldata = A.colptr(col_A); | const eT* A_coldata = A.colptr(col_A); | |||
for(uword k=col_A; k < A_n_cols ; ++k) | for(uword k=col_A; k < A_n_cols ; ++k) | |||
{ | { | |||
const eT acc = op_cdot::direct_cdot(A_n_rows, A_coldata, A.colptr (k)); | const eT acc = op_cdot::direct_cdot(A_n_rows, A_coldata, A.colptr (k)); | |||
if( (use_alpha == false) && (use_beta == false) ) | if( (use_alpha == false) && (use_beta == false) ) | |||
{ | { | |||
C.at(col_A, k) = acc; | C.at(col_A, k) = acc; | |||
if(col_A != k) { C.at(k, col_A) = std::conj(acc); } | if(col_A != k) { C.at(k, col_A) = std::conj(acc); } | |||
} | } | |||
else | else | |||
if( (use_alpha == true) && (use_beta == false) ) | if( (use_alpha == true) && (use_beta == false) ) | |||
{ | { | |||
const eT val = alpha*acc; | const eT val = alpha*acc; | |||
C.at(col_A, k) = val; | C.at(col_A, k) = val; | |||
if(col_A != k) { C.at(k, col_A) = std::conj(val); } | if(col_A != k) { C.at(k, col_A) = std::conj(val); } | |||
} | } | |||
else | else | |||
if( (use_alpha == false) && (use_beta == true) ) | if( (use_alpha == false) && (use_beta == true) ) | |||
{ | { | |||
C.at(col_A, k) = acc + beta*C.at(col_A, k); | C.at(col_A, k) = acc + beta*C.at(c | |||
ol_A, k); | ||||
if(col_A != k) { C.at(k, col_A) = std::conj(acc) + beta*C.at(k , col_A); } | if(col_A != k) { C.at(k, col_A) = std::conj(acc) + beta*C.at(k , col_A); } | |||
} | } | |||
else | else | |||
if( (use_alpha == true) && (use_beta == true) ) | if( (use_alpha == true) && (use_beta == true) ) | |||
{ | { | |||
const eT val = alpha*acc; | const eT val = alpha*acc; | |||
C.at(col_A, k) = val + beta*C.at(col_A, k); | C.at(col_A, k) = val + beta*C.at(c | |||
ol_A, k); | ||||
if(col_A != k) { C.at(k, col_A) = std::conj(val) + beta*C.at(k , col_A); } | if(col_A != k) { C.at(k, col_A) = std::conj(val) + beta*C.at(k , col_A); } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
}; | }; | |||
template<const bool do_trans_A=false, const bool use_alpha=false, const boo l use_beta=false> | template<const bool do_trans_A=false, const bool use_alpha=false, const boo l use_beta=false> | |||
End of changes. 12 change blocks. | ||||
24 lines changed or deleted | 18 lines changed or added | |||