Skip to content

Commit cb52d24

Browse files
committed
fixed optional args processing in SVD::compute()
1 parent 0a3a2df commit cb52d24

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

modules/core/src/lapack.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1560,18 +1560,18 @@ static void _SVDcompute( InputArray _aarr, OutputArray _w,
15601560
JacobiSVD(temp_a.ptr<double>(), temp_u.step, temp_w.ptr<double>(),
15611561
temp_v.ptr<double>(), temp_v.step, m, n, compute_uv ? urows : 0);
15621562
}
1563-
temp_w.copyTo(_w);
1563+
if(_w.needed()) temp_w.copyTo(_w);
15641564
if( compute_uv )
15651565
{
15661566
if( !at )
15671567
{
1568-
transpose(temp_u, _u);
1569-
temp_v.copyTo(_vt);
1568+
if(_u.needed()) transpose(temp_u, _u);
1569+
if(_vt.needed()) temp_v.copyTo(_vt);
15701570
}
15711571
else
15721572
{
1573-
transpose(temp_v, _u);
1574-
temp_u.copyTo(_vt);
1573+
if(_u.needed()) transpose(temp_v, _u);
1574+
if(_vt.needed()) temp_u.copyTo(_vt);
15751575
}
15761576
}
15771577
}

0 commit comments

Comments
 (0)