From cb52d249fed9c72fb2bb75a7c5f46a915ec209b6 Mon Sep 17 00:00:00 2001 From: Rostislav Vasilikhin Date: Tue, 6 Sep 2016 14:09:44 +0300 Subject: [PATCH] fixed optional args processing in SVD::compute() --- modules/core/src/lapack.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/core/src/lapack.cpp b/modules/core/src/lapack.cpp index 0168610572..3084a5354b 100644 --- a/modules/core/src/lapack.cpp +++ b/modules/core/src/lapack.cpp @@ -1560,18 +1560,18 @@ static void _SVDcompute( InputArray _aarr, OutputArray _w, JacobiSVD(temp_a.ptr(), temp_u.step, temp_w.ptr(), temp_v.ptr(), temp_v.step, m, n, compute_uv ? urows : 0); } - temp_w.copyTo(_w); + if(_w.needed()) temp_w.copyTo(_w); if( compute_uv ) { if( !at ) { - transpose(temp_u, _u); - temp_v.copyTo(_vt); + if(_u.needed()) transpose(temp_u, _u); + if(_vt.needed()) temp_v.copyTo(_vt); } else { - transpose(temp_v, _u); - temp_u.copyTo(_vt); + if(_u.needed()) transpose(temp_v, _u); + if(_vt.needed()) temp_u.copyTo(_vt); } } }