|
template<typename MT1 , bool SO1, typename MT2 , bool SO2> |
auto | blaze::smpAssign (Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs) -> EnableIf_t< IsDenseMatrix_v< MT1 > > |
| Default implementation of the SMP assignment of a matrix to a dense matrix. More...
|
|
template<typename MT1 , bool SO1, typename MT2 , bool SO2> |
auto | blaze::smpAddAssign (Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs) -> EnableIf_t< IsDenseMatrix_v< MT1 > > |
| Default implementation of the SMP addition assignment of a matrix to a dense matrix. More...
|
|
template<typename MT1 , bool SO1, typename MT2 , bool SO2> |
auto | blaze::smpSubAssign (Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs) -> EnableIf_t< IsDenseMatrix_v< MT1 > > |
| Default implementation of the SMP subtraction assignment of a matrix to dense matrix. More...
|
|
template<typename MT1 , bool SO1, typename MT2 , bool SO2> |
auto | blaze::smpSchurAssign (Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs) -> EnableIf_t< IsDenseMatrix_v< MT1 > > |
| Default implementation of the SMP Schur product assignment of a matrix to dense matrix. More...
|
|
|
template<typename VT1 , bool TF1, typename VT2 , bool TF2> |
auto | blaze::smpAssign (Vector< VT1, TF1 > &lhs, const Vector< VT2, TF2 > &rhs) -> EnableIf_t< IsDenseVector_v< VT1 > > |
| Default implementation of the SMP assignment of a vector to a dense vector. More...
|
|
template<typename VT1 , bool TF1, typename VT2 , bool TF2> |
auto | blaze::smpAddAssign (Vector< VT1, TF1 > &lhs, const Vector< VT2, TF2 > &rhs) -> EnableIf_t< IsDenseVector_v< VT1 > > |
| Default implementation of the SMP addition assignment of a vector to a dense vector. More...
|
|
template<typename VT1 , bool TF1, typename VT2 , bool TF2> |
auto | blaze::smpSubAssign (Vector< VT1, TF1 > &lhs, const Vector< VT2, TF2 > &rhs) -> EnableIf_t< IsDenseVector_v< VT1 > > |
| Default implementation of the SMP subtraction assignment of a vector to a dense vector. More...
|
|
template<typename VT1 , bool TF1, typename VT2 , bool TF2> |
auto | blaze::smpMultAssign (Vector< VT1, TF1 > &lhs, const Vector< VT2, TF2 > &rhs) -> EnableIf_t< IsDenseVector_v< VT1 > > |
| Default implementation of the SMP multiplication assignment of a vector to a dense vector. More...
|
|
template<typename VT1 , bool TF1, typename VT2 , bool TF2> |
auto | blaze::smpDivAssign (Vector< VT1, TF1 > &lhs, const Vector< VT2, TF2 > &rhs) -> EnableIf_t< IsDenseVector_v< VT1 > > |
| Default implementation of the SMP division assignment of a vector to a dense vector. More...
|
|
#define BLAZE_PARALLEL_SECTION if( blaze::ParallelSection<int> BLAZE_JOIN( parallelSection, __LINE__ ) = true ) |
Section for the debugging of the shared-memory parallelization.
During the shared-memory parallel (SMP) execution of an operation nested calls to the SMP assign functions are conceptually not allowed. In other words, it is not allowed to call a SMP assign function from within a non-SMP assign function. The BLAZE_PARALLEL_SECTION macro can be used to mark the start of a parallel section and with that detect nested SMP assign function calls. In case a nested use of a parallel section is detected, a std::runtime_error exception is thrown.
Note that this macro is reserved for internal debugging purposes only and therefore must NOT be used explicitly! Using this macro might result in erroneous results, runtime or compilation errors.
Provides a reliable shutdown of C++11 threads for Visual Studio compilers.
- Returns
- void
There is a known issue in Visual Studio 2012 and 2013 that may cause C++11 threads to hang if their destructor is executed after the main()
function:
http://connect.microsoft.com/VisualStudio/feedback/details/747145
This function, which has only an effect for Visual Studio compilers, provides a reliable way to circumvent this problem. If called directly before the end of the main()
function it blocks until all threads have been destroyed:
int main()
{
}
BLAZE_ALWAYS_INLINE void shutDownThreads()
Provides a reliable shutdown of C++11 threads for Visual Studio compilers.
Definition: Functions.h:128
template<typename MT1 , bool SO1, typename MT2 , bool SO2>
auto blaze::smpAddAssign |
( |
Matrix< MT1, SO1 > & |
lhs, |
|
|
const Matrix< MT2, SO2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseMatrix_v< MT1 > > |
|
inline |
Default implementation of the SMP addition assignment of a matrix to a dense matrix.
Default implementation of the SMP addition assignment of a matrix to a sparse matrix.
- Parameters
-
lhs | The target left-hand side dense matrix. |
rhs | The right-hand side matrix to be added. |
- Returns
- void
This function implements the default SMP addition assignment of a matrix to a dense matrix.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
- Parameters
-
lhs | The target left-hand side sparse matrix. |
rhs | The right-hand side matrix to be added. |
- Returns
- void
This function implements the default SMP addition assignment of a matrix to a sparse matrix.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
template<typename VT1 , bool TF1, typename VT2 , bool TF2>
auto blaze::smpAddAssign |
( |
Vector< VT1, TF1 > & |
lhs, |
|
|
const Vector< VT2, TF2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseVector_v< VT1 > > |
|
inline |
Default implementation of the SMP addition assignment of a vector to a dense vector.
Default implementation of the SMP addition assignment of a vector to a sparse vector.
- Parameters
-
lhs | The target left-hand side dense vector. |
rhs | The right-hand side vector to be added. |
- Returns
- void
This function implements the default SMP addition assignment of a vector to a dense vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
- Parameters
-
lhs | The target left-hand side sparse vector. |
rhs | The right-hand side vector to be added. |
- Returns
- void
This function implements the default SMP addition assignment of a vector to a sparse vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
template<typename MT1 , bool SO1, typename MT2 , bool SO2>
auto blaze::smpAssign |
( |
Matrix< MT1, SO1 > & |
lhs, |
|
|
const Matrix< MT2, SO2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseMatrix_v< MT1 > > |
|
inline |
Default implementation of the SMP assignment of a matrix to a dense matrix.
Default implementation of the SMP assignment of a matrix to a sparse matrix.
- Parameters
-
lhs | The target left-hand side dense matrix. |
rhs | The right-hand side matrix to be assigned. |
- Returns
- void
This function implements the default SMP assignment of a matrix to a dense matrix.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
- Parameters
-
lhs | The target left-hand side sparse matrix. |
rhs | The right-hand side matrix to be assigned. |
- Returns
- void
This function implements the default SMP assignment of a matrix to a sparse matrix.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
template<typename VT1 , bool TF1, typename VT2 , bool TF2>
auto blaze::smpAssign |
( |
Vector< VT1, TF1 > & |
lhs, |
|
|
const Vector< VT2, TF2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseVector_v< VT1 > > |
|
inline |
Default implementation of the SMP assignment of a vector to a dense vector.
Default implementation of the SMP assignment of a vector to a sparse vector.
- Parameters
-
lhs | The target left-hand side dense vector. |
rhs | The right-hand side vector to be assigned. |
- Returns
- void
This function implements the default SMP assignment of a vector to a dense vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
- Parameters
-
lhs | The target left-hand side sparse vector. |
rhs | The right-hand side vector to be assigned. |
- Returns
- void
This function implements the default SMP assignment of a vector to a sparse vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
template<typename VT1 , bool TF1, typename VT2 , bool TF2>
auto blaze::smpDivAssign |
( |
Vector< VT1, TF1 > & |
lhs, |
|
|
const Vector< VT2, TF2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseVector_v< VT1 > > |
|
inline |
Default implementation of the SMP division assignment of a vector to a dense vector.
- Parameters
-
lhs | The target left-hand side dense vector. |
rhs | The right-hand side vector divisor. |
- Returns
- void
This function implements the default SMP division assignment of a vector to a dense vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
template<typename VT1 , bool TF1, typename VT2 , bool TF2>
auto blaze::smpMultAssign |
( |
Vector< VT1, TF1 > & |
lhs, |
|
|
const Vector< VT2, TF2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseVector_v< VT1 > > |
|
inline |
Default implementation of the SMP multiplication assignment of a vector to a dense vector.
Default implementation of the SMP multiplication assignment of a vector to a sparse vector.
- Parameters
-
lhs | The target left-hand side dense vector. |
rhs | The right-hand side vector to be multiplied. |
- Returns
- void
This function implements the default SMP multiplication assignment of a vector to a dense vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
- Parameters
-
lhs | The target left-hand side sparse vector. |
rhs | The right-hand side vector to be multiplied. |
- Returns
- void
This function implements the default SMP multiplication assignment of a vector to a sparse vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
template<typename MT1 , bool SO1, typename MT2 , bool SO2>
auto blaze::smpSchurAssign |
( |
Matrix< MT1, SO1 > & |
lhs, |
|
|
const Matrix< MT2, SO2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseMatrix_v< MT1 > > |
|
inline |
Default implementation of the SMP Schur product assignment of a matrix to dense matrix.
Default implementation of the SMP Schur product assignment of a matrix to sparse matrix.
- Parameters
-
lhs | The target left-hand side dense matrix. |
rhs | The right-hand side matrix for the Schur product. |
- Returns
- void
This function implements the default SMP Schur product assignment of a matrix to a dense matrix.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
- Parameters
-
lhs | The target left-hand side sparse matrix. |
rhs | The right-hand side matrix for the Schur product. |
- Returns
- void
This function implements the default SMP Schur product assignment of a matrix to a sparse matrix.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
template<typename MT1 , bool SO1, typename MT2 , bool SO2>
auto blaze::smpSubAssign |
( |
Matrix< MT1, SO1 > & |
lhs, |
|
|
const Matrix< MT2, SO2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseMatrix_v< MT1 > > |
|
inline |
Default implementation of the SMP subtraction assignment of a matrix to dense matrix.
Default implementation of the SMP subtraction assignment of a matrix to sparse matrix.
- Parameters
-
lhs | The target left-hand side dense matrix. |
rhs | The right-hand side matrix to be subtracted. |
- Returns
- void
This function implements the default SMP subtraction assignment of a matrix to a dense matrix.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
- Parameters
-
lhs | The target left-hand side sparse matrix. |
rhs | The right-hand side matrix to be subtracted. |
- Returns
- void
This function implements the default SMP subtraction assignment of a matrix to a sparse matrix.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
template<typename VT1 , bool TF1, typename VT2 , bool TF2>
auto blaze::smpSubAssign |
( |
Vector< VT1, TF1 > & |
lhs, |
|
|
const Vector< VT2, TF2 > & |
rhs |
|
) |
| -> EnableIf_t< IsDenseVector_v< VT1 > > |
|
inline |
Default implementation of the SMP subtraction assignment of a vector to a dense vector.
Default implementation of the SMP subtraction assignment of a vector to a sparse vector.
- Parameters
-
lhs | The target left-hand side dense vector. |
rhs | The right-hand side vector to be subtracted. |
- Returns
- void
This function implements the default SMP subtraction assignment of a vector to a dense vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
- Parameters
-
lhs | The target left-hand side sparse vector. |
rhs | The right-hand side vector to be subtracted. |
- Returns
- void
This function implements the default SMP subtraction assignment of a vector to a sparse vector.
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.