dbaccess/source/ui/querydesign/ConnectionLine.cxx |    2 -
 filter/source/graphicfilter/icgm/bitmap.cxx       |    4 +--
 filter/source/graphicfilter/icgm/class4.cxx       |   24 +++++++++++-----------
 filter/source/svg/svgwriter.cxx                   |    3 --
 vcl/workben/svptest.cxx                           |    6 ++---
 5 files changed, 19 insertions(+), 20 deletions(-)

New commits:
commit a31aadb1ef7dfdd4ae76a15707ab51a82c95d868
Author:     pragat-pandya <pragat.pan...@gmail.com>
AuthorDate: Tue Mar 29 16:25:15 2022 +0530
Commit:     Hossein <hoss...@libreoffice.org>
CommitDate: Thu Mar 31 13:51:34 2022 +0200

    tdf#147906 Use std::hypot for Pythagorean addition
    
    Change-Id: I38166d36e9e8518ab86ded7ab630a35f3a0c39d7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132268
    Tested-by: Jenkins
    Reviewed-by: Hossein <hoss...@libreoffice.org>

diff --git a/dbaccess/source/ui/querydesign/ConnectionLine.cxx 
b/dbaccess/source/ui/querydesign/ConnectionLine.cxx
index 96086d60b682..77a67004e995 100644
--- a/dbaccess/source/ui/querydesign/ConnectionLine.cxx
+++ b/dbaccess/source/ui/querydesign/ConnectionLine.cxx
@@ -307,7 +307,7 @@ static double dist_Euklid(const Point &p1, const Point& 
p2,const Point& pM, Poin
 {
     Point v(p2 - p1);
     Point w(pM - p1);
-    double a = sqrt(static_cast<double>(v.X()*v.X() + v.Y()*v.Y()));
+    double a = std::hypot(v.X(), v.Y());
     double l = (v.X() * w.Y() - v.Y() * w.X()) / a;
     double a2 = w.X()*v.X()+w.Y()*v.Y();
     a = a2 / (a * a);
diff --git a/filter/source/graphicfilter/icgm/bitmap.cxx 
b/filter/source/graphicfilter/icgm/bitmap.cxx
index 2dc6ff370757..67652d9eccd6 100644
--- a/filter/source/graphicfilter/icgm/bitmap.cxx
+++ b/filter/source/graphicfilter/icgm/bitmap.cxx
@@ -216,12 +216,12 @@ void CGMBitmap::ImplGetBitmap( CGMBitmapDescriptor& rDesc 
)
         double nX = rDesc.mnR.X - rDesc.mnQ.X;
         double nY = rDesc.mnR.Y - rDesc.mnQ.Y;
 
-        rDesc.mndy = sqrt( nX * nX + nY * nY );
+        rDesc.mndy = std::hypot(nX, nY);
 
         nX = rDesc.mnR.X - rDesc.mnP.X;
         nY = rDesc.mnR.Y - rDesc.mnP.Y;
 
-        rDesc.mndx = sqrt( nX * nX + nY * nY );
+        rDesc.mndx = std::hypot(nX, nY);
 
         nX = rDesc.mnR.X - rDesc.mnP.X;
         nY = rDesc.mnR.Y - rDesc.mnP.Y;
diff --git a/filter/source/graphicfilter/icgm/class4.cxx 
b/filter/source/graphicfilter/icgm/class4.cxx
index c915576c2bdb..4ef817844570 100644
--- a/filter/source/graphicfilter/icgm/class4.cxx
+++ b/filter/source/graphicfilter/icgm/class4.cxx
@@ -89,10 +89,10 @@ bool CGM::ImplGetEllipse( FloatPoint& rCenter, FloatPoint& 
rRadius, double& rAng
     rAngle = ImplGetOrientation( rCenter, aPoint1 );
     aPoint1.X -= rCenter.X;
     aPoint1.Y -= rCenter.Y;
-    rRadius.X = sqrt( aPoint1.X * aPoint1.X + aPoint1.Y * aPoint1.Y );
+    rRadius.X = std::hypot(aPoint1.X, aPoint1.Y);
     aPoint2.X -= rCenter.X;
     aPoint2.Y -= rCenter.Y;
-    rRadius.Y = sqrt( aPoint2.X * aPoint2.X + aPoint2.Y * aPoint2.Y );
+    rRadius.Y = std::hypot(aPoint2.X, aPoint2.Y);
 
     if ( fRot1 > fRot2 )
     {
@@ -418,7 +418,7 @@ void CGM::ImplDoClass4()
                         fStartAngle = fEndAngle;
                         fEndAngle = fG;
                     }
-                    double fRadius = sqrt( pow( ( aStartingPoint.X - 
aCenterPoint.X ), 2 ) + pow( ( aStartingPoint.Y - aCenterPoint.Y ), 2 ) ) ;
+                    double fRadius = std::hypot(aStartingPoint.X - 
aCenterPoint.X, aStartingPoint.Y - aCenterPoint.Y);
 
                     if ( mbFigure )
                     {
@@ -508,7 +508,7 @@ void CGM::ImplDoClass4()
                         fEndAngle = fG;
                     }
                     FloatPoint fRadius;
-                    fRadius.Y = fRadius.X = sqrt( pow( ( aStartingPoint.X - 
aCenterPoint.X ), 2 ) + pow( ( aStartingPoint.Y - aCenterPoint.Y ), 2 ) ) ;
+                    fRadius.Y = fRadius.X = std::hypot(aStartingPoint.X - 
aCenterPoint.X, aStartingPoint.Y - aCenterPoint.Y);
 
                     sal_uInt32 nType = ImplGetUI16();
                     if ( nType == 0 )
@@ -548,9 +548,9 @@ void CGM::ImplDoClass4()
                 bool bUseless = useless(vector[0]) || useless(vector[1]) || 
useless(vector[2]) || useless(vector[3]);
                 if (!bUseless)
                 {
-                    const double fStartSqrt = sqrt(vector[0] * vector[ 0 ] + 
vector[1] * vector[1]);
+                    const double fStartSqrt = std::hypot(vector[0], vector[1]);
                     fStartAngle = fStartSqrt != 0.0 ? 
basegfx::rad2deg(acos(vector[0] / fStartSqrt)) : 0.0;
-                    const double fEndSqrt = sqrt(vector[2] * vector[ 2 ] + 
vector[3] * vector[3]);
+                    const double fEndSqrt = std::hypot(vector[2], vector[3]);
                     fEndAngle = fEndSqrt != 0.0 ? 
basegfx::rad2deg(acos(vector[ 2 ] / fEndSqrt)) : 0.0;
 
                     if ( vector[ 1 ] > 0 )
@@ -626,9 +626,9 @@ void CGM::ImplDoClass4()
                 bool bUseless = useless(vector[0]) || useless(vector[1]) || 
useless(vector[2]) || useless(vector[3]);
                 if (!bUseless)
                 {
-                    const double fStartSqrt = sqrt(vector[0] * vector[0] + 
vector[1] * vector[1]);
+                    const double fStartSqrt = std::hypot(vector[0], vector[1]);
                     double fStartAngle = fStartSqrt ? 
basegfx::rad2deg(acos(vector[0] / fStartSqrt)) : 0.0;
-                    const double fEndSqrt = sqrt(vector[2] * vector[2] + 
vector[3] * vector[3]);
+                    const double fEndSqrt = std::hypot(vector[2], vector[3]);
                     double fEndAngle = fEndSqrt ? 
basegfx::rad2deg(acos(vector[2] / fEndSqrt)) : 0.0;
 
                     if ( vector[ 1 ] > 0 )
@@ -683,9 +683,9 @@ void CGM::ImplDoClass4()
                 bool bUseless = useless(vector[0]) || useless(vector[1]) || 
useless(vector[2]) || useless(vector[3]);
                 if (!bUseless)
                 {
-                    double fStartSqrt = sqrt(vector[0] * vector[0] + vector[1] 
* vector[1]);
+                    double fStartSqrt = std::hypot(vector[0], vector[1]);
                     fStartAngle = fStartSqrt ? basegfx::rad2deg(acos(vector[0] 
/ fStartSqrt)) : 0.0;
-                    double fEndSqrt = sqrt(vector[2] * vector[2] + vector[3] * 
vector[3]);
+                    double fEndSqrt = std::hypot(vector[2], vector[3]);
                     fEndAngle = fEndSqrt ? basegfx::rad2deg(acos(vector[2] / 
fEndSqrt)) : 0.0;
 
                     if ( vector[ 1 ] > 0 )
@@ -719,9 +719,9 @@ void CGM::ImplDoClass4()
                 bool bUseless = useless(vector[0]) || useless(vector[1]) || 
useless(vector[2]) || useless(vector[3]);
                 if (!bUseless)
                 {
-                    double fStartSqrt = sqrt(vector[0] * vector[0] + vector[1] 
* vector[1]);
+                    double fStartSqrt = std::hypot(vector[0], vector[1]);
                     fStartAngle = fStartSqrt ? basegfx::rad2deg(acos(vector[0] 
/ fStartSqrt)) : 0.0;
-                    double fEndSqrt = sqrt(vector[2] * vector[2] + vector[3] * 
vector[3]);
+                    double fEndSqrt = std::hypot(vector[2], vector[3]);
                     fEndAngle = fEndSqrt ? basegfx::rad2deg(acos(vector[2] / 
fEndSqrt)) : 0.0;
 
                     if ( vector[ 1 ] > 0 )
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx
index 8e5f897ec5c8..9e7d5a5cb10d 100644
--- a/filter/source/svg/svgwriter.cxx
+++ b/filter/source/svg/svgwriter.cxx
@@ -301,8 +301,7 @@ void SVGAttributeWriter::AddGradientDef( const 
tools::Rectangle& rObjRect, const
             {
                 const double    fCenterX = rObjRect.Left() + 
rObjRect.GetWidth() * rGradient.GetOfsX() * 0.01;
                 const double    fCenterY = rObjRect.Top() + 
rObjRect.GetHeight() * rGradient.GetOfsY() * 0.01;
-                const double    fRadius = sqrt( static_cast< double >( 
rObjRect.GetWidth() ) * rObjRect.GetWidth() +
-                                                rObjRect.GetHeight() * 
rObjRect.GetHeight() ) * 0.5;
+                const double    fRadius = std::hypot(rObjRect.GetWidth(), 
rObjRect.GetHeight()) * 0.5;
 
                 mrExport.AddAttribute( XML_NAMESPACE_NONE, 
aXMLAttrGradientUnits, "userSpaceOnUse" );
                 mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrCX, 
OUString::number( ImplRound( fCenterX ) ) );
diff --git a/vcl/workben/svptest.cxx b/vcl/workben/svptest.cxx
index 37aa0dfa1a55..dde13e256ddd 100644
--- a/vcl/workben/svptest.cxx
+++ b/vcl/workben/svptest.cxx
@@ -115,13 +115,13 @@ MyWin::MyWin( vcl::Window* pParent, WinBits nWinStyle ) :
     {
         for( int nY = 0; nY < 256; nY++ )
         {
-            double fRed = 255.0-1.5*sqrt(static_cast<double>(nX*nX+nY*nY));
+            double fRed = 255.0-1.5*std::hypot(nX, nY);
             if( fRed < 0.0 )
                 fRed = 0.0;
-            double fGreen = 
255.0-1.5*sqrt(static_cast<double>((255-nX)*(255-nX)+nY*nY));
+            double fGreen = 255.0-1.5*std::hypot(255-nX, nY);
             if( fGreen < 0.0 )
                 fGreen = 0.0;
-            double fBlue = 
255.0-1.5*sqrt(static_cast<double>((128-nX)*(128-nX)+(255-nY)*(255-nY)));
+            double fBlue = 255.0-1.5*std::hypot(128-nX, 255-nY);
             if( fBlue < 0.0 )
                 fBlue = 0.0;
             pAcc->SetPixel( nY, nX, BitmapColor( sal_uInt8(fRed), 
sal_uInt8(fGreen), sal_uInt8(fBlue) ) );

Reply via email to