@@ -850,10 +850,15 @@ CARed2BandResult<T, D> CAReductionToBand<B, D, T>::call(comm::CommunicatorGrid&
850
850
// copy - set - send
851
851
ex::start_detached (ex::when_all (mat_a.read (ij_head), panel_heads.readwrite (idx_panel_head)) |
852
852
di::transform (di::Policy<B>(), [=](const auto & head_in, auto && head) {
853
- // TODO FIXME change copy and if possible just lower
853
+ // TODO FIXME workaround for over-sized panel
854
+ if (head_in.size () != head.size ())
855
+ tile::internal::set0 (head);
856
+
857
+ // TODO FIXME change copy and if possible just upper
854
858
// matrix::internal::copy(head_in, head);
855
- lapack::lacpy (blas::Uplo::General, head.size ().rows (), head.size ().cols (),
856
- head_in.ptr (), head_in.ld (), head.ptr (), head.ld ());
859
+ lapack::lacpy (blas::Uplo::General, head_in.size ().rows (),
860
+ head_in.size ().cols (), head_in.ptr (), head_in.ld (),
861
+ head.ptr (), head.ld ());
857
862
lapack::laset (blas::Uplo::Lower, head.size ().rows () - 1 ,
858
863
head.size ().cols (), T (0 ), T (0 ), head.ptr ({1 , 0 }),
859
864
head.ld ());
0 commit comments