Average Error: 29.8 → 0.0
Time: 2.5s
Precision: 64
Internal Precision: 128
\[\sqrt{re \cdot re + im \cdot im}\]
\[\sqrt{re^2 + im^2}^*\]

Error

Bits error versus re

Bits error versus im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 29.8

    \[\sqrt{re \cdot re + im \cdot im}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\sqrt{re^2 + im^2}^*}\]
  3. Final simplification0.0

    \[\leadsto \sqrt{re^2 + im^2}^*\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (re im)
  :name "math.abs on complex"
  (sqrt (+ (* re re) (* im im))))

Details

Time bar (total: 2.2s)Debug log

sample42.0ms

Algorithm
intervals

simplify7.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
7.0ms
(sqrt (+ (* re re) (* im im)))

prune9.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.0b

localize4.0ms

Local error

Found 1 expressions with local error:

0.0b
(hypot re im)

rewrite0.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
log1p-expm1-u
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
hypot-udef
pow1
expm1-log1p-u
add-sqr-sqrt
Counts
1 → 10
Calls
1 calls:
Slowest
0.0ms
(hypot re im)

series32.0ms

Counts
1 → 3
Calls
1 calls:
Slowest
32.0ms
(hypot re im)

simplify5.0ms

Counts
3 → 13
Calls
3 calls:
Slowest
3.0ms
(* -1 re)
1.0ms
im
1.0ms
re

prune75.0ms

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0.0b

localize14.0ms

Local error

Found 2 expressions with local error:

29.5b
(sqrt (+ (* re re) (* im im)))
0.0b
(+ (* re re) (* im im))

rewrite12.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
add-sqr-sqrt
sqrt-prod
add-cube-cbrt
*-un-lft-identity
log1p-expm1-u
flip-+
add-exp-log
sqrt-div
add-cbrt-cube
flip3-+
pow1
expm1-log1p-u
hypot-def
pow1/2
fma-def
sum-log
rem-sqrt-square
+-commutative
Counts
2 → 31
Calls
2 calls:
Slowest
7.0ms
(sqrt (+ (* re re) (* im im)))
4.0ms
(+ (* re re) (* im im))

series34.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
19.0ms
(sqrt (+ (* re re) (* im im)))
15.0ms
(+ (* re re) (* im im))

simplify223.0ms

Counts
13 → 37
Calls
13 calls:
Slowest
142.0ms
(sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))
36.0ms
(sqrt (+ (pow (* re re) 3) (pow (* im im) 3)))
8.0ms
(* (exp (* re re)) (exp (* im im)))
7.0ms
(+ (pow im 2) (pow re 2))
6.0ms
(sqrt (+ (* re re) (* im im)))

prune246.0ms

Pruning

2 alts after pruning (0 fresh and 2 done)

Merged error: 0.0b

regimes174.0ms

Accuracy

0% (0.0b remaining)

Error of 0.0b against oracle of 0.0b and baseline of 0.0b

bsearch1.0ms

end0.0ms

sample1.3s

Algorithm
intervals