Revert "Revert "implement SkScalar versions in terms of float versions""

This reverts commit 0e6db75eebab430e7f6665c8cfa1e7dcd2fef123.

Bug: skia:
Change-Id: I015d01efc58dfe03dae6bcc57c4b1102276e7566
Reviewed-on: https://skia-review.googlesource.com/127967
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/src/core/SkMatrix44.cpp b/src/core/SkMatrix44.cpp
index c8bd191..bc3b35f 100644
--- a/src/core/SkMatrix44.cpp
+++ b/src/core/SkMatrix44.cpp
@@ -579,11 +579,11 @@
         // Calculate the determinant
         double det = b00 * b11 - b01 * b10 + b03 * b08;
 
-        double invdet = 1.0 / det;
+        double invdet = sk_ieee_double_divide(1.0, det);
         // If det is zero, we want to return false. However, we also want to return false
         // if 1/det overflows to infinity (i.e. det is denormalized). Both of these are
         // handled by checking that 1/det is finite.
-        if (!sk_float_isfinite(invdet)) {
+        if (!sk_float_isfinite(sk_double_to_float(invdet))) {
             return false;
         }
 
@@ -640,11 +640,11 @@
     // Calculate the determinant
     double det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
 
-    double invdet = 1.0 / det;
+    double invdet = sk_ieee_double_divide(1.0, det);
     // If det is zero, we want to return false. However, we also want to return false
     // if 1/det overflows to infinity (i.e. det is denormalized). Both of these are
     // handled by checking that 1/det is finite.
-    if (!sk_float_isfinite(invdet)) {
+    if (!sk_float_isfinite(sk_double_to_float(invdet))) {
         return false;
     }