From 2a3e8d60314c3a4d6dc7cebea2f7324da3ac1929 Mon Sep 17 00:00:00 2001 From: Christian Beckmann <c.beckmann@donders.ru.nl> Date: Mon, 10 Nov 2008 17:57:18 +0000 Subject: [PATCH] added sqrtm --- miscmaths.cc | 10 ++++++++++ miscmaths.h | 1 + 2 files changed, 11 insertions(+) diff --git a/miscmaths.cc b/miscmaths.cc index 5e9cf87..d617395 100644 --- a/miscmaths.cc +++ b/miscmaths.cc @@ -1368,6 +1368,16 @@ ReturnMatrix sqrt(const Matrix& mat) return res; } +ReturnMatrix sqrtm(const Matrix& mat) +{ + Matrix res, tmpU, tmpV; + DiagonalMatrix tmpD; + SVD(mat, tmpD, tmpU, tmpV); + res = tmpU*sqrt(tmpD)*tmpV.t(); + res.Release(); + return res; +} + ReturnMatrix log(const Matrix& mat) { Matrix res = mat; diff --git a/miscmaths.h b/miscmaths.h index 197ae44..bd1a994 100644 --- a/miscmaths.h +++ b/miscmaths.h @@ -214,6 +214,7 @@ namespace MISCMATHS { ReturnMatrix dist2(const Matrix& mat1, const Matrix& mat2); ReturnMatrix abs(const Matrix& mat); ReturnMatrix sqrt(const Matrix& mat); + ReturnMatrix sqrtm(const Matrix& mat); ReturnMatrix log(const Matrix& mat); ReturnMatrix exp(const Matrix& mat); ReturnMatrix tanh(const Matrix& mat); -- GitLab