mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 19:59:05 +08:00
Merged in dtrebbien/eigen/patch-1 (pull request PR-312)
Work around a compilation error seen with nvcc V8.0.61
This commit is contained in:
parent
b223918ea9
commit
fc39d5954b
@ -137,7 +137,13 @@ EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,true,
|
|||||||
ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
|
ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
|
||||||
ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
|
ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
|
||||||
|
|
||||||
Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,LhsStorageOrder> triangularBuffer((internal::constructor_without_unaligned_array_assert()));
|
// To work around an "error: member reference base type 'Matrix<...>
|
||||||
|
// (Eigen::internal::constructor_without_unaligned_array_assert (*)())' is
|
||||||
|
// not a structure or union" compilation error in nvcc (tested V8.0.61),
|
||||||
|
// create a dummy internal::constructor_without_unaligned_array_assert
|
||||||
|
// object to pass to the Matrix constructor.
|
||||||
|
internal::constructor_without_unaligned_array_assert a;
|
||||||
|
Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,LhsStorageOrder> triangularBuffer(a);
|
||||||
triangularBuffer.setZero();
|
triangularBuffer.setZero();
|
||||||
if((Mode&ZeroDiag)==ZeroDiag)
|
if((Mode&ZeroDiag)==ZeroDiag)
|
||||||
triangularBuffer.diagonal().setZero();
|
triangularBuffer.diagonal().setZero();
|
||||||
@ -284,7 +290,8 @@ EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,false,
|
|||||||
ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
|
ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
|
||||||
ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
|
ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
|
||||||
|
|
||||||
Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,RhsStorageOrder> triangularBuffer((internal::constructor_without_unaligned_array_assert()));
|
internal::constructor_without_unaligned_array_assert a;
|
||||||
|
Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,RhsStorageOrder> triangularBuffer(a);
|
||||||
triangularBuffer.setZero();
|
triangularBuffer.setZero();
|
||||||
if((Mode&ZeroDiag)==ZeroDiag)
|
if((Mode&ZeroDiag)==ZeroDiag)
|
||||||
triangularBuffer.diagonal().setZero();
|
triangularBuffer.diagonal().setZero();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user