?

Average Error: 59.39% → 18.38%
Time: 11.0s
Precision: binary64
Cost: 26696

?

\[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]
\[\begin{array}{l} \mathbf{if}\;re \leq -1.6 \cdot 10^{+235}:\\ \;\;\;\;0.5 \cdot \sqrt{\frac{-im}{\frac{re}{im}}}\\ \mathbf{elif}\;re \leq -1.26 \cdot 10^{+132}:\\ \;\;\;\;0.5 \cdot \left(\frac{\sqrt{im \cdot -0.5}}{\frac{\sqrt{-re}}{\sqrt{-im}}} \cdot \sqrt{2}\right)\\ \mathbf{elif}\;re \leq -3.7 \cdot 10^{+50}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \left(im \cdot {\left(\frac{im}{re}\right)}^{3}\right) + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \sqrt{\frac{1}{\frac{1}{re + \mathsf{hypot}\left(re, im\right)}}}\right)\\ \end{array} \]
(FPCore (re im)
 :precision binary64
 (* 0.5 (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re)))))
(FPCore (re im)
 :precision binary64
 (if (<= re -1.6e+235)
   (* 0.5 (sqrt (/ (- im) (/ re im))))
   (if (<= re -1.26e+132)
     (*
      0.5
      (* (/ (sqrt (* im -0.5)) (/ (sqrt (- re)) (sqrt (- im)))) (sqrt 2.0)))
     (if (<= re -3.7e+50)
       (*
        0.5
        (sqrt
         (*
          2.0
          (+ (* 0.125 (* im (pow (/ im re) 3.0))) (* -0.5 (* im (/ im re)))))))
       (* 0.5 (* (sqrt 2.0) (sqrt (/ 1.0 (/ 1.0 (+ re (hypot re im)))))))))))
double code(double re, double im) {
	return 0.5 * sqrt((2.0 * (sqrt(((re * re) + (im * im))) + re)));
}
double code(double re, double im) {
	double tmp;
	if (re <= -1.6e+235) {
		tmp = 0.5 * sqrt((-im / (re / im)));
	} else if (re <= -1.26e+132) {
		tmp = 0.5 * ((sqrt((im * -0.5)) / (sqrt(-re) / sqrt(-im))) * sqrt(2.0));
	} else if (re <= -3.7e+50) {
		tmp = 0.5 * sqrt((2.0 * ((0.125 * (im * pow((im / re), 3.0))) + (-0.5 * (im * (im / re))))));
	} else {
		tmp = 0.5 * (sqrt(2.0) * sqrt((1.0 / (1.0 / (re + hypot(re, im))))));
	}
	return tmp;
}
public static double code(double re, double im) {
	return 0.5 * Math.sqrt((2.0 * (Math.sqrt(((re * re) + (im * im))) + re)));
}
public static double code(double re, double im) {
	double tmp;
	if (re <= -1.6e+235) {
		tmp = 0.5 * Math.sqrt((-im / (re / im)));
	} else if (re <= -1.26e+132) {
		tmp = 0.5 * ((Math.sqrt((im * -0.5)) / (Math.sqrt(-re) / Math.sqrt(-im))) * Math.sqrt(2.0));
	} else if (re <= -3.7e+50) {
		tmp = 0.5 * Math.sqrt((2.0 * ((0.125 * (im * Math.pow((im / re), 3.0))) + (-0.5 * (im * (im / re))))));
	} else {
		tmp = 0.5 * (Math.sqrt(2.0) * Math.sqrt((1.0 / (1.0 / (re + Math.hypot(re, im))))));
	}
	return tmp;
}
def code(re, im):
	return 0.5 * math.sqrt((2.0 * (math.sqrt(((re * re) + (im * im))) + re)))
def code(re, im):
	tmp = 0
	if re <= -1.6e+235:
		tmp = 0.5 * math.sqrt((-im / (re / im)))
	elif re <= -1.26e+132:
		tmp = 0.5 * ((math.sqrt((im * -0.5)) / (math.sqrt(-re) / math.sqrt(-im))) * math.sqrt(2.0))
	elif re <= -3.7e+50:
		tmp = 0.5 * math.sqrt((2.0 * ((0.125 * (im * math.pow((im / re), 3.0))) + (-0.5 * (im * (im / re))))))
	else:
		tmp = 0.5 * (math.sqrt(2.0) * math.sqrt((1.0 / (1.0 / (re + math.hypot(re, im))))))
	return tmp
function code(re, im)
	return Float64(0.5 * sqrt(Float64(2.0 * Float64(sqrt(Float64(Float64(re * re) + Float64(im * im))) + re))))
end
function code(re, im)
	tmp = 0.0
	if (re <= -1.6e+235)
		tmp = Float64(0.5 * sqrt(Float64(Float64(-im) / Float64(re / im))));
	elseif (re <= -1.26e+132)
		tmp = Float64(0.5 * Float64(Float64(sqrt(Float64(im * -0.5)) / Float64(sqrt(Float64(-re)) / sqrt(Float64(-im)))) * sqrt(2.0)));
	elseif (re <= -3.7e+50)
		tmp = Float64(0.5 * sqrt(Float64(2.0 * Float64(Float64(0.125 * Float64(im * (Float64(im / re) ^ 3.0))) + Float64(-0.5 * Float64(im * Float64(im / re)))))));
	else
		tmp = Float64(0.5 * Float64(sqrt(2.0) * sqrt(Float64(1.0 / Float64(1.0 / Float64(re + hypot(re, im)))))));
	end
	return tmp
end
function tmp = code(re, im)
	tmp = 0.5 * sqrt((2.0 * (sqrt(((re * re) + (im * im))) + re)));
end
function tmp_2 = code(re, im)
	tmp = 0.0;
	if (re <= -1.6e+235)
		tmp = 0.5 * sqrt((-im / (re / im)));
	elseif (re <= -1.26e+132)
		tmp = 0.5 * ((sqrt((im * -0.5)) / (sqrt(-re) / sqrt(-im))) * sqrt(2.0));
	elseif (re <= -3.7e+50)
		tmp = 0.5 * sqrt((2.0 * ((0.125 * (im * ((im / re) ^ 3.0))) + (-0.5 * (im * (im / re))))));
	else
		tmp = 0.5 * (sqrt(2.0) * sqrt((1.0 / (1.0 / (re + hypot(re, im))))));
	end
	tmp_2 = tmp;
end
code[re_, im_] := N[(0.5 * N[Sqrt[N[(2.0 * N[(N[Sqrt[N[(N[(re * re), $MachinePrecision] + N[(im * im), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] + re), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
code[re_, im_] := If[LessEqual[re, -1.6e+235], N[(0.5 * N[Sqrt[N[((-im) / N[(re / im), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[re, -1.26e+132], N[(0.5 * N[(N[(N[Sqrt[N[(im * -0.5), $MachinePrecision]], $MachinePrecision] / N[(N[Sqrt[(-re)], $MachinePrecision] / N[Sqrt[(-im)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[re, -3.7e+50], N[(0.5 * N[Sqrt[N[(2.0 * N[(N[(0.125 * N[(im * N[Power[N[(im / re), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-0.5 * N[(im * N[(im / re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(0.5 * N[(N[Sqrt[2.0], $MachinePrecision] * N[Sqrt[N[(1.0 / N[(1.0 / N[(re + N[Sqrt[re ^ 2 + im ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)}
\begin{array}{l}
\mathbf{if}\;re \leq -1.6 \cdot 10^{+235}:\\
\;\;\;\;0.5 \cdot \sqrt{\frac{-im}{\frac{re}{im}}}\\

\mathbf{elif}\;re \leq -1.26 \cdot 10^{+132}:\\
\;\;\;\;0.5 \cdot \left(\frac{\sqrt{im \cdot -0.5}}{\frac{\sqrt{-re}}{\sqrt{-im}}} \cdot \sqrt{2}\right)\\

\mathbf{elif}\;re \leq -3.7 \cdot 10^{+50}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \left(im \cdot {\left(\frac{im}{re}\right)}^{3}\right) + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \sqrt{\frac{1}{\frac{1}{re + \mathsf{hypot}\left(re, im\right)}}}\right)\\


\end{array}

Error?

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original59.39%
Target51.81%
Herbie18.38%
\[\begin{array}{l} \mathbf{if}\;re < 0:\\ \;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \sqrt{\frac{im \cdot im}{\sqrt{re \cdot re + im \cdot im} - re}}\right)\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)}\\ \end{array} \]

Derivation?

  1. Split input into 4 regimes
  2. if re < -1.60000000000000003e235

    1. Initial program 100

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]
    2. Simplified67.41

      \[\leadsto \color{blue}{0.5 \cdot \sqrt{2 \cdot \left(re + \mathsf{hypot}\left(re, im\right)\right)}} \]
      Proof

      [Start]100

      \[ 0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]

      +-commutative [=>]100

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(re + \sqrt{re \cdot re + im \cdot im}\right)}} \]

      hypot-def [=>]67.41

      \[ 0.5 \cdot \sqrt{2 \cdot \left(re + \color{blue}{\mathsf{hypot}\left(re, im\right)}\right)} \]
    3. Taylor expanded in re around -inf 62.53

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(0.125 \cdot \frac{{im}^{4}}{{re}^{3}} + -0.5 \cdot \frac{{im}^{2}}{re}\right)}} \]
    4. Simplified62.58

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\mathsf{fma}\left(-0.5, \frac{im}{\frac{re}{im}}, \frac{0.125}{\frac{{re}^{3}}{{im}^{4}}}\right)}} \]
      Proof

      [Start]62.53

      \[ 0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \frac{{im}^{4}}{{re}^{3}} + -0.5 \cdot \frac{{im}^{2}}{re}\right)} \]

      +-commutative [=>]62.53

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(-0.5 \cdot \frac{{im}^{2}}{re} + 0.125 \cdot \frac{{im}^{4}}{{re}^{3}}\right)}} \]

      fma-def [=>]62.53

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\mathsf{fma}\left(-0.5, \frac{{im}^{2}}{re}, 0.125 \cdot \frac{{im}^{4}}{{re}^{3}}\right)}} \]

      unpow2 [=>]62.53

      \[ 0.5 \cdot \sqrt{2 \cdot \mathsf{fma}\left(-0.5, \frac{\color{blue}{im \cdot im}}{re}, 0.125 \cdot \frac{{im}^{4}}{{re}^{3}}\right)} \]

      associate-/l* [=>]62.58

      \[ 0.5 \cdot \sqrt{2 \cdot \mathsf{fma}\left(-0.5, \color{blue}{\frac{im}{\frac{re}{im}}}, 0.125 \cdot \frac{{im}^{4}}{{re}^{3}}\right)} \]

      associate-*r/ [=>]62.58

      \[ 0.5 \cdot \sqrt{2 \cdot \mathsf{fma}\left(-0.5, \frac{im}{\frac{re}{im}}, \color{blue}{\frac{0.125 \cdot {im}^{4}}{{re}^{3}}}\right)} \]

      associate-/l* [=>]62.58

      \[ 0.5 \cdot \sqrt{2 \cdot \mathsf{fma}\left(-0.5, \frac{im}{\frac{re}{im}}, \color{blue}{\frac{0.125}{\frac{{re}^{3}}{{im}^{4}}}}\right)} \]
    5. Taylor expanded in im around 0 52.38

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(-0.5 \cdot \frac{{im}^{2}}{re}\right)}} \]
    6. Simplified30.59

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(\frac{im}{re} \cdot \left(-0.5 \cdot im\right)\right)}} \]
      Proof

      [Start]52.38

      \[ 0.5 \cdot \sqrt{2 \cdot \left(-0.5 \cdot \frac{{im}^{2}}{re}\right)} \]

      unpow2 [=>]52.38

      \[ 0.5 \cdot \sqrt{2 \cdot \left(-0.5 \cdot \frac{\color{blue}{im \cdot im}}{re}\right)} \]

      associate-*r/ [<=]30.59

      \[ 0.5 \cdot \sqrt{2 \cdot \left(-0.5 \cdot \color{blue}{\left(im \cdot \frac{im}{re}\right)}\right)} \]

      associate-*r* [=>]30.59

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(\left(-0.5 \cdot im\right) \cdot \frac{im}{re}\right)}} \]

      *-commutative [=>]30.59

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(\frac{im}{re} \cdot \left(-0.5 \cdot im\right)\right)}} \]
    7. Applied egg-rr50.38

      \[\leadsto 0.5 \cdot \color{blue}{\left(e^{\mathsf{log1p}\left(\sqrt{\frac{-1}{\frac{re}{im}} \cdot im}\right)} - 1\right)} \]
    8. Simplified30.63

      \[\leadsto 0.5 \cdot \color{blue}{\sqrt{\frac{-im}{\frac{re}{im}}}} \]
      Proof

      [Start]50.38

      \[ 0.5 \cdot \left(e^{\mathsf{log1p}\left(\sqrt{\frac{-1}{\frac{re}{im}} \cdot im}\right)} - 1\right) \]

      expm1-def [=>]32.23

      \[ 0.5 \cdot \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{\frac{-1}{\frac{re}{im}} \cdot im}\right)\right)} \]

      expm1-log1p [=>]30.67

      \[ 0.5 \cdot \color{blue}{\sqrt{\frac{-1}{\frac{re}{im}} \cdot im}} \]

      associate-*l/ [=>]30.63

      \[ 0.5 \cdot \sqrt{\color{blue}{\frac{-1 \cdot im}{\frac{re}{im}}}} \]

      neg-mul-1 [<=]30.63

      \[ 0.5 \cdot \sqrt{\frac{\color{blue}{-im}}{\frac{re}{im}}} \]

    if -1.60000000000000003e235 < re < -1.25999999999999999e132

    1. Initial program 96.73

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]
    2. Simplified62.7

      \[\leadsto \color{blue}{0.5 \cdot \sqrt{2 \cdot \left(re + \mathsf{hypot}\left(re, im\right)\right)}} \]
      Proof

      [Start]96.73

      \[ 0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]

      +-commutative [=>]96.73

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(re + \sqrt{re \cdot re + im \cdot im}\right)}} \]

      hypot-def [=>]62.7

      \[ 0.5 \cdot \sqrt{2 \cdot \left(re + \color{blue}{\mathsf{hypot}\left(re, im\right)}\right)} \]
    3. Applied egg-rr62.83

      \[\leadsto 0.5 \cdot \color{blue}{\left(\sqrt{re + \mathsf{hypot}\left(re, im\right)} \cdot \sqrt{2}\right)} \]
    4. Applied egg-rr62.83

      \[\leadsto 0.5 \cdot \left(\sqrt{\color{blue}{\frac{1}{\frac{1}{re + \mathsf{hypot}\left(re, im\right)}}}} \cdot \sqrt{2}\right) \]
    5. Taylor expanded in re around -inf 50.01

      \[\leadsto 0.5 \cdot \left(\sqrt{\color{blue}{-0.5 \cdot \frac{{im}^{2}}{re}}} \cdot \sqrt{2}\right) \]
    6. Simplified43.05

      \[\leadsto 0.5 \cdot \left(\sqrt{\color{blue}{-0.5 \cdot \frac{im}{\frac{re}{im}}}} \cdot \sqrt{2}\right) \]
      Proof

      [Start]50.01

      \[ 0.5 \cdot \left(\sqrt{-0.5 \cdot \frac{{im}^{2}}{re}} \cdot \sqrt{2}\right) \]

      unpow2 [=>]50.01

      \[ 0.5 \cdot \left(\sqrt{-0.5 \cdot \frac{\color{blue}{im \cdot im}}{re}} \cdot \sqrt{2}\right) \]

      associate-/l* [=>]43.05

      \[ 0.5 \cdot \left(\sqrt{-0.5 \cdot \color{blue}{\frac{im}{\frac{re}{im}}}} \cdot \sqrt{2}\right) \]
    7. Applied egg-rr54.74

      \[\leadsto 0.5 \cdot \left(\color{blue}{\left(\frac{\sqrt{-0.5 \cdot im}}{\sqrt{-re}} \cdot \sqrt{-im}\right)} \cdot \sqrt{2}\right) \]
    8. Simplified54.77

      \[\leadsto 0.5 \cdot \left(\color{blue}{\frac{\sqrt{-0.5 \cdot im}}{\frac{\sqrt{-re}}{\sqrt{-im}}}} \cdot \sqrt{2}\right) \]
      Proof

      [Start]54.74

      \[ 0.5 \cdot \left(\left(\frac{\sqrt{-0.5 \cdot im}}{\sqrt{-re}} \cdot \sqrt{-im}\right) \cdot \sqrt{2}\right) \]

      associate-/r/ [<=]54.77

      \[ 0.5 \cdot \left(\color{blue}{\frac{\sqrt{-0.5 \cdot im}}{\frac{\sqrt{-re}}{\sqrt{-im}}}} \cdot \sqrt{2}\right) \]

    if -1.25999999999999999e132 < re < -3.7000000000000001e50

    1. Initial program 80.85

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]
    2. Simplified53.56

      \[\leadsto \color{blue}{0.5 \cdot \sqrt{2 \cdot \left(re + \mathsf{hypot}\left(re, im\right)\right)}} \]
      Proof

      [Start]80.85

      \[ 0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]

      +-commutative [=>]80.85

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(re + \sqrt{re \cdot re + im \cdot im}\right)}} \]

      hypot-def [=>]53.56

      \[ 0.5 \cdot \sqrt{2 \cdot \left(re + \color{blue}{\mathsf{hypot}\left(re, im\right)}\right)} \]
    3. Taylor expanded in re around -inf 65.63

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(0.125 \cdot \frac{{im}^{4}}{{re}^{3}} + -0.5 \cdot \frac{{im}^{2}}{re}\right)}} \]
    4. Simplified65.62

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\mathsf{fma}\left(-0.5, \frac{im}{\frac{re}{im}}, \frac{0.125}{\frac{{re}^{3}}{{im}^{4}}}\right)}} \]
      Proof

      [Start]65.63

      \[ 0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \frac{{im}^{4}}{{re}^{3}} + -0.5 \cdot \frac{{im}^{2}}{re}\right)} \]

      +-commutative [=>]65.63

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(-0.5 \cdot \frac{{im}^{2}}{re} + 0.125 \cdot \frac{{im}^{4}}{{re}^{3}}\right)}} \]

      fma-def [=>]65.63

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\mathsf{fma}\left(-0.5, \frac{{im}^{2}}{re}, 0.125 \cdot \frac{{im}^{4}}{{re}^{3}}\right)}} \]

      unpow2 [=>]65.63

      \[ 0.5 \cdot \sqrt{2 \cdot \mathsf{fma}\left(-0.5, \frac{\color{blue}{im \cdot im}}{re}, 0.125 \cdot \frac{{im}^{4}}{{re}^{3}}\right)} \]

      associate-/l* [=>]65.62

      \[ 0.5 \cdot \sqrt{2 \cdot \mathsf{fma}\left(-0.5, \color{blue}{\frac{im}{\frac{re}{im}}}, 0.125 \cdot \frac{{im}^{4}}{{re}^{3}}\right)} \]

      associate-*r/ [=>]65.62

      \[ 0.5 \cdot \sqrt{2 \cdot \mathsf{fma}\left(-0.5, \frac{im}{\frac{re}{im}}, \color{blue}{\frac{0.125 \cdot {im}^{4}}{{re}^{3}}}\right)} \]

      associate-/l* [=>]65.62

      \[ 0.5 \cdot \sqrt{2 \cdot \mathsf{fma}\left(-0.5, \frac{im}{\frac{re}{im}}, \color{blue}{\frac{0.125}{\frac{{re}^{3}}{{im}^{4}}}}\right)} \]
    5. Applied egg-rr65.6

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(0.125 \cdot \frac{{im}^{4}}{{re}^{3}} + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)}} \]
    6. Applied egg-rr62.73

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \color{blue}{\left(\left(im \cdot \frac{im}{re}\right) \cdot {\left(\frac{im}{re}\right)}^{2}\right)} + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)} \]
    7. Simplified62.73

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \color{blue}{\left(im \cdot {\left(\frac{im}{re}\right)}^{3}\right)} + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)} \]
      Proof

      [Start]62.73

      \[ 0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \left(\left(im \cdot \frac{im}{re}\right) \cdot {\left(\frac{im}{re}\right)}^{2}\right) + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)} \]

      associate-*l* [=>]62.73

      \[ 0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \color{blue}{\left(im \cdot \left(\frac{im}{re} \cdot {\left(\frac{im}{re}\right)}^{2}\right)\right)} + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)} \]

      unpow2 [=>]62.73

      \[ 0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \left(im \cdot \left(\frac{im}{re} \cdot \color{blue}{\left(\frac{im}{re} \cdot \frac{im}{re}\right)}\right)\right) + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)} \]

      cube-mult [<=]62.73

      \[ 0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \left(im \cdot \color{blue}{{\left(\frac{im}{re}\right)}^{3}}\right) + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)} \]

    if -3.7000000000000001e50 < re

    1. Initial program 50.98

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]
    2. Simplified9.71

      \[\leadsto \color{blue}{0.5 \cdot \sqrt{2 \cdot \left(re + \mathsf{hypot}\left(re, im\right)\right)}} \]
      Proof

      [Start]50.98

      \[ 0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} + re\right)} \]

      +-commutative [=>]50.98

      \[ 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(re + \sqrt{re \cdot re + im \cdot im}\right)}} \]

      hypot-def [=>]9.71

      \[ 0.5 \cdot \sqrt{2 \cdot \left(re + \color{blue}{\mathsf{hypot}\left(re, im\right)}\right)} \]
    3. Applied egg-rr10.28

      \[\leadsto 0.5 \cdot \color{blue}{\left(\sqrt{re + \mathsf{hypot}\left(re, im\right)} \cdot \sqrt{2}\right)} \]
    4. Applied egg-rr10.32

      \[\leadsto 0.5 \cdot \left(\sqrt{\color{blue}{\frac{1}{\frac{1}{re + \mathsf{hypot}\left(re, im\right)}}}} \cdot \sqrt{2}\right) \]
  3. Recombined 4 regimes into one program.
  4. Final simplification18.38

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \leq -1.6 \cdot 10^{+235}:\\ \;\;\;\;0.5 \cdot \sqrt{\frac{-im}{\frac{re}{im}}}\\ \mathbf{elif}\;re \leq -1.26 \cdot 10^{+132}:\\ \;\;\;\;0.5 \cdot \left(\frac{\sqrt{im \cdot -0.5}}{\frac{\sqrt{-re}}{\sqrt{-im}}} \cdot \sqrt{2}\right)\\ \mathbf{elif}\;re \leq -3.7 \cdot 10^{+50}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.125 \cdot \left(im \cdot {\left(\frac{im}{re}\right)}^{3}\right) + -0.5 \cdot \left(im \cdot \frac{im}{re}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \sqrt{\frac{1}{\frac{1}{re + \mathsf{hypot}\left(re, im\right)}}}\right)\\ \end{array} \]

Alternatives

Alternative 1
Error17.42%
Cost20100
\[\begin{array}{l} \mathbf{if}\;re \leq -2.5 \cdot 10^{+50}:\\ \;\;\;\;\sqrt{\left(im \cdot \frac{-1}{\frac{re}{im}}\right) \cdot 0.25}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \sqrt{\frac{1}{\frac{1}{re + \mathsf{hypot}\left(re, im\right)}}}\right)\\ \end{array} \]
Alternative 2
Error17.39%
Cost19844
\[\begin{array}{l} \mathbf{if}\;re \leq -2.6 \cdot 10^{+50}:\\ \;\;\;\;\sqrt{\left(im \cdot \frac{-1}{\frac{re}{im}}\right) \cdot 0.25}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \sqrt{re + \mathsf{hypot}\left(re, im\right)}\right)\\ \end{array} \]
Alternative 3
Error16.91%
Cost13444
\[\begin{array}{l} \mathbf{if}\;re \leq -5.5 \cdot 10^{+50}:\\ \;\;\;\;\sqrt{\left(im \cdot \frac{-1}{\frac{re}{im}}\right) \cdot 0.25}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re + \mathsf{hypot}\left(re, im\right)\right)}\\ \end{array} \]
Alternative 4
Error47.88%
Cost7640
\[\begin{array}{l} t_0 := 0.5 \cdot \left(2 \cdot \sqrt{re}\right)\\ \mathbf{if}\;re \leq -4.5 \cdot 10^{+32}:\\ \;\;\;\;0.5 \cdot \sqrt{im \cdot \frac{-im}{re}}\\ \mathbf{elif}\;re \leq -7 \cdot 10^{-219}:\\ \;\;\;\;0.5 \cdot \sqrt{im \cdot 2}\\ \mathbf{elif}\;re \leq 5.2 \cdot 10^{-124}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re - im\right)}\\ \mathbf{elif}\;re \leq 1.02 \cdot 10^{-40}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;re \leq 1.5 \cdot 10^{-34}:\\ \;\;\;\;0.5 \cdot \sqrt{im \cdot -2}\\ \mathbf{elif}\;re \leq 2.55 \cdot 10^{+39}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re + im\right)}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 5
Error48.1%
Cost7640
\[\begin{array}{l} t_0 := 0.5 \cdot \left(2 \cdot \sqrt{re}\right)\\ \mathbf{if}\;re \leq -4.8 \cdot 10^{+49}:\\ \;\;\;\;\sqrt{\left(im \cdot \frac{-1}{\frac{re}{im}}\right) \cdot 0.25}\\ \mathbf{elif}\;re \leq -2.4 \cdot 10^{-217}:\\ \;\;\;\;0.5 \cdot \sqrt{im \cdot 2}\\ \mathbf{elif}\;re \leq 1.85 \cdot 10^{-124}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re - im\right)}\\ \mathbf{elif}\;re \leq 7.6 \cdot 10^{-41}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;re \leq 2.5 \cdot 10^{-33}:\\ \;\;\;\;0.5 \cdot \sqrt{im \cdot -2}\\ \mathbf{elif}\;re \leq 3.3 \cdot 10^{+37}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re + im\right)}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 6
Error42.16%
Cost7376
\[\begin{array}{l} t_0 := 0.5 \cdot \sqrt{im \cdot -2}\\ t_1 := 0.5 \cdot \left(2 \cdot \sqrt{re}\right)\\ \mathbf{if}\;im \leq -1.55 \cdot 10^{+36}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;im \leq -1.14 \cdot 10^{-26}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;im \leq -2.2 \cdot 10^{-229}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;im \leq 5.2 \cdot 10^{-117}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re + im\right)}\\ \end{array} \]
Alternative 7
Error40.91%
Cost7376
\[\begin{array}{l} t_0 := 0.5 \cdot \left(2 \cdot \sqrt{re}\right)\\ t_1 := 0.5 \cdot \sqrt{2 \cdot \left(re - im\right)}\\ \mathbf{if}\;im \leq -1.55 \cdot 10^{+36}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;im \leq -4.2 \cdot 10^{-29}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;im \leq -1.5 \cdot 10^{-190}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;im \leq 6.5 \cdot 10^{-117}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re + im\right)}\\ \end{array} \]
Alternative 8
Error42.61%
Cost7248
\[\begin{array}{l} t_0 := 0.5 \cdot \sqrt{im \cdot -2}\\ t_1 := 0.5 \cdot \left(2 \cdot \sqrt{re}\right)\\ \mathbf{if}\;im \leq -1.55 \cdot 10^{+36}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;im \leq -1.14 \cdot 10^{-26}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;im \leq -4.2 \cdot 10^{-229}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;im \leq 3.85 \cdot 10^{-115}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \sqrt{im \cdot 2}\\ \end{array} \]
Alternative 9
Error47.49%
Cost6852
\[\begin{array}{l} \mathbf{if}\;im \leq -2 \cdot 10^{-310}:\\ \;\;\;\;0.5 \cdot \sqrt{im \cdot -2}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \sqrt{im \cdot 2}\\ \end{array} \]
Alternative 10
Error74.42%
Cost6720
\[0.5 \cdot \sqrt{im \cdot -2} \]

Error

Reproduce?

herbie shell --seed 2023102 
(FPCore (re im)
  :name "math.sqrt on complex, real part"
  :precision binary64

  :herbie-target
  (if (< re 0.0) (* 0.5 (* (sqrt 2.0) (sqrt (/ (* im im) (- (sqrt (+ (* re re) (* im im))) re))))) (* 0.5 (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re)))))

  (* 0.5 (sqrt (* 2.0 (+ (sqrt (+ (* re re) (* im im))) re)))))