math.exp on complex, imaginary part

Time bar (total: 8.9s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

analyze0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 7 to 7 computations (0% saved)

sample1.3s (14.3%)

Memory
-7.5MiB live, 1 207.9MiB allocated; 273ms collecting garbage
Samples
952.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 755.0ms
ival-sin: 523.0ms (69.3% of total)
ival-exp: 117.0ms (15.5% of total)
ival-mult: 104.0ms (13.8% of total)
ival-true: 6.0ms (0.8% of total)
ival-assert: 4.0ms (0.5% of total)
adjust: 2.0ms (0.3% of total)
Bogosity

explain191.0ms (2.1%)

Memory
-8.8MiB live, 120.7MiB allocated; 28ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(*.f64 (exp.f64 re) (sin.f64 im))
00-0-(sin.f64 im)
00-0-re
00-0-(exp.f64 re)
00-0-im
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
38.0ms512×0valid
Compiler

Compiled 31 to 19 computations (38.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
ival-sin: 17.0ms (68% of total)
ival-exp: 4.0ms (16% of total)
ival-mult: 3.0ms (12% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess286.0ms (3.2%)

Memory
-65.4MiB live, 253.7MiB allocated; 87ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01531
13829
211527
340727
4164827
055
085
1125
2265
3675
42795
522965
081255
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
Symmetry

(negabs im)

Compiler

Compiled 5 to 5 computations (0% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 5 to 5 computations (0% saved)

simplify505.0ms (5.7%)

Memory
28.6MiB live, 161.8MiB allocated; 19ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sin.f64 im)
cost-diff0
(exp.f64 re)
cost-diff0
(*.f64 (exp.f64 re) (sin.f64 im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
0811
11211
22611
36711
427911
5229611
0812511
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(exp.f64 re)
re
(sin.f64 im)
im
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (sin.f64 im) (exp.f64 re))
(exp.f64 re)
re
(sin.f64 im)
im

localize113.0ms (1.3%)

Memory
-16.2MiB live, 80.5MiB allocated; 19ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(sin.f64 im)
accuracy0.0
(exp.f64 re)
accuracy0.00390625
(*.f64 (exp.f64 re) (sin.f64 im))
Samples
38.0ms256×0valid
Compiler

Compiled 13 to 7 computations (46.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
ival-sin: 24.0ms (75.4% of total)
ival-exp: 6.0ms (18.8% of total)
ival-mult: 2.0ms (6.3% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0%)

Memory
8.6MiB live, 8.6MiB allocated; 0ms collecting garbage
Counts
3 → 18
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(exp.f64 re)
(sin.f64 im)
Outputs
(sin im)
(+ (sin im) (* re (sin im)))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
1
(+ 1 re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(* (exp re) (sin im))
(exp re)
(* im (exp re))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
im
(* im (+ 1 (* -1/6 (pow im 2))))
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
Calls

6 calls:

TimeVariablePointExpression
1.0ms
re
@inf
((* (exp re) (sin im)) (exp re) (sin im))
1.0ms
im
@0
((* (exp re) (sin im)) (exp re) (sin im))
1.0ms
re
@-inf
((* (exp re) (sin im)) (exp re) (sin im))
0.0ms
re
@0
((* (exp re) (sin im)) (exp re) (sin im))
0.0ms
im
@-inf
((* (exp re) (sin im)) (exp re) (sin im))

simplify231.0ms (2.6%)

Memory
12.0MiB live, 230.7MiB allocated; 51ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
071192
1274181
21066169
35077163
08576143
Stop Event
iter limit
node limit
Counts
18 → 17
Calls
Call 1
Inputs
(sin im)
(+ (sin im) (* re (sin im)))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
1
(+ 1 re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(* (exp re) (sin im))
(exp re)
(* im (exp re))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
im
(* im (+ 1 (* -1/6 (pow im 2))))
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
Outputs
(sin im)
(sin.f64 im)
(+ (sin im) (* re (sin im)))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)) (sin.f64 im))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
(*.f64 (sin.f64 im) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 re)
(+.f64 #s(literal 1 binary64) re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(* (exp re) (sin im))
(*.f64 (exp.f64 re) (sin.f64 im))
(exp re)
(exp.f64 re)
(* im (exp re))
(*.f64 (exp.f64 re) im)
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im) (exp.f64 re))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(*.f64 (exp.f64 re) (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (pow.f64 im #s(literal 3 binary64)) im))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(*.f64 (*.f64 (exp.f64 re) (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 im im) #s(literal 1/120 binary64)) (pow.f64 im #s(literal 4 binary64)) (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal 1 binary64)))) im)
im
(* im (+ 1 (* -1/6 (pow im 2))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 im im)) #s(literal 1/6 binary64)) im)
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/5040 binary64) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 im im)) #s(literal 1/6 binary64))) im)

rewrite138.0ms (1.5%)

Memory
-27.0MiB live, 123.0MiB allocated; 24ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059
089
1129
2409
32929
046279
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
3 → 147
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(exp.f64 re)
(sin.f64 im)
Outputs
(*.f64 (/.f64 (sin.f64 im) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (pow.f64 (sinh.f64 re) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 re) (exp.f64 re) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))))
(*.f64 (/.f64 (sin.f64 im) (-.f64 (*.f64 #s(literal 4 binary64) (cosh.f64 re)) (*.f64 #s(literal 4 binary64) (sinh.f64 re)))) #s(literal 4 binary64))
(*.f64 (/.f64 (sin.f64 im) (*.f64 #s(literal 2 binary64) (exp.f64 (neg.f64 re)))) #s(literal 2 binary64))
(*.f64 (/.f64 (sin.f64 im) #s(literal 1 binary64)) (exp.f64 re))
(*.f64 (/.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (sin.f64 im)) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 4 binary64)) (pow.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) #s(literal 2 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 (sinh.f64 re) (cosh.f64 re))))
(*.f64 (/.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (sin.f64 im)) (+.f64 (pow.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) (-.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))) (pow.f64 (cosh.f64 re) #s(literal 4 binary64))))
(*.f64 #s(literal 1 binary64) (*.f64 (sin.f64 im) (exp.f64 re)))
(*.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (/.f64 (sin.f64 im) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) (sin.f64 im))
(/.f64 (*.f64 (*.f64 (exp.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re))) (sin.f64 im)) (-.f64 (sinh.f64 re) (cosh.f64 re)))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (exp.f64 re)) (sin.f64 im)) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal -1 binary64) (sin.f64 im)) (/.f64 #s(literal -1 binary64) (exp.f64 re)))
(/.f64 (*.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64)))) (sin.f64 im)) (neg.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(/.f64 (*.f64 (fma.f64 #s(literal 4 binary64) (sinh.f64 re) (*.f64 #s(literal 4 binary64) (cosh.f64 re))) (sin.f64 im)) #s(literal 4 binary64))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (exp.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re)))) (-.f64 (sinh.f64 re) (cosh.f64 re)))
(/.f64 (*.f64 (sin.f64 im) (*.f64 #s(literal 2 binary64) (exp.f64 re))) #s(literal 2 binary64))
(/.f64 (*.f64 (sin.f64 im) #s(literal -1 binary64)) (/.f64 #s(literal -1 binary64) (exp.f64 re)))
(/.f64 (*.f64 (sin.f64 im) (neg.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))))) (neg.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(/.f64 (*.f64 (sin.f64 im) (fma.f64 #s(literal 4 binary64) (sinh.f64 re) (*.f64 #s(literal 4 binary64) (cosh.f64 re)))) #s(literal 4 binary64))
(/.f64 (-.f64 (pow.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) #s(literal 2 binary64)) (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 2 binary64))) (-.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (*.f64 (cosh.f64 re) (sin.f64 im))))
(/.f64 (-.f64 (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 (sin.f64 im)) (sinh.f64 re)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) #s(literal 2 binary64)) (*.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) (*.f64 (neg.f64 (sin.f64 im)) (sinh.f64 re))))))
(/.f64 (fma.f64 (*.f64 (sin.f64 im) #s(literal 2 binary64)) (sinh.f64 re) (*.f64 (*.f64 (sin.f64 im) #s(literal 2 binary64)) (cosh.f64 re))) #s(literal 2 binary64))
(/.f64 (fma.f64 (*.f64 (sin.f64 im) #s(literal 2 binary64)) (cosh.f64 re) (*.f64 (*.f64 (sin.f64 im) #s(literal 2 binary64)) (sinh.f64 re))) #s(literal 2 binary64))
(/.f64 (neg.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (sin.f64 im))) (neg.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(/.f64 (neg.f64 (*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (*.f64 (sin.f64 im) (exp.f64 (neg.f64 re))))) (neg.f64 (*.f64 (sin.f64 im) (exp.f64 (neg.f64 re)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) #s(literal 3 binary64)) (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (-.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (*.f64 (cosh.f64 re) (sin.f64 im))) (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 2 binary64)))))
(/.f64 (fma.f64 (*.f64 (*.f64 (sin.f64 im) #s(literal 2 binary64)) (sinh.f64 re)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 (*.f64 (sin.f64 im) #s(literal 2 binary64)) (cosh.f64 re)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 (*.f64 (sin.f64 im) #s(literal 2 binary64)) (cosh.f64 re)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 (*.f64 (sin.f64 im) #s(literal 2 binary64)) (sinh.f64 re)))) #s(literal 4 binary64))
(/.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (sin.f64 im)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))
(/.f64 (neg.f64 (sin.f64 im)) (/.f64 #s(literal -1 binary64) (exp.f64 re)))
(/.f64 (*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (*.f64 (sin.f64 im) (exp.f64 (neg.f64 re)))) (*.f64 (sin.f64 im) (exp.f64 (neg.f64 re))))
(/.f64 (+.f64 (pow.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) #s(literal 3 binary64)) (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) (sinh.f64 re)) (sin.f64 im)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) #s(literal 3 binary64)) (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 3 binary64))) (fma.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (-.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (*.f64 (cosh.f64 re) (sin.f64 im))) (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 2 binary64))))
(/.f64 (sin.f64 im) (exp.f64 (neg.f64 re)))
(fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (sin.f64 im) (*.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (sin.f64 im)))
(fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 re)) (/.f64 (sin.f64 im) #s(literal 2 binary64)) (*.f64 (neg.f64 (neg.f64 (sin.f64 im))) (sinh.f64 re)))
(fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 re)) (/.f64 (sin.f64 im) #s(literal 2 binary64)) (*.f64 (sinh.f64 re) (sin.f64 im)))
(fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 re)) (/.f64 (sin.f64 im) #s(literal 2 binary64)) (*.f64 (cosh.f64 re) (sin.f64 im)))
(fma.f64 (sinh.f64 re) (sin.f64 im) (*.f64 (cosh.f64 re) (sin.f64 im)))
(fma.f64 (cosh.f64 re) (sin.f64 im) (*.f64 (neg.f64 (neg.f64 (sin.f64 im))) (sinh.f64 re)))
(fma.f64 (cosh.f64 re) (sin.f64 im) (*.f64 (sinh.f64 re) (sin.f64 im)))
(fma.f64 (sin.f64 im) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (*.f64 (sin.f64 im) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))))
(fma.f64 (sin.f64 im) (sinh.f64 re) (*.f64 (cosh.f64 re) (sin.f64 im)))
(fma.f64 (sin.f64 im) (cosh.f64 re) (*.f64 (neg.f64 (neg.f64 (sin.f64 im))) (sinh.f64 re)))
(fma.f64 (sin.f64 im) (cosh.f64 re) (*.f64 (sinh.f64 re) (sin.f64 im)))
(-.f64 (/.f64 (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 2 binary64)) (*.f64 (sin.f64 im) (exp.f64 (neg.f64 re)))) (/.f64 (pow.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) #s(literal 2 binary64)) (*.f64 (sin.f64 im) (exp.f64 (neg.f64 re)))))
(-.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (*.f64 (neg.f64 (cosh.f64 re)) (sin.f64 im)))
(-.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (*.f64 (neg.f64 (sin.f64 im)) (cosh.f64 re)))
(-.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) (*.f64 (neg.f64 (sin.f64 im)) (sinh.f64 re)))
(+.f64 (*.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (sin.f64 im)) (*.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (sin.f64 im)))
(+.f64 (*.f64 (sin.f64 im) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))) (*.f64 (sin.f64 im) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))))
(+.f64 (/.f64 (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 3 binary64)) (fma.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (-.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (*.f64 (cosh.f64 re) (sin.f64 im))) (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) #s(literal 3 binary64)) (fma.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (-.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (*.f64 (cosh.f64 re) (sin.f64 im))) (pow.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) #s(literal 2 binary64)))))
(+.f64 (*.f64 (sinh.f64 re) (sin.f64 im)) (*.f64 (cosh.f64 re) (sin.f64 im)))
(+.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) (*.f64 (neg.f64 (neg.f64 (sin.f64 im))) (sinh.f64 re)))
(+.f64 (*.f64 (cosh.f64 re) (sin.f64 im)) (*.f64 (sinh.f64 re) (sin.f64 im)))
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (pow.f64 (sinh.f64 re) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 re) (exp.f64 re) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))))
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 4 binary64) (cosh.f64 re)) (*.f64 #s(literal 4 binary64) (sinh.f64 re)))) #s(literal 4 binary64))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (exp.f64 (neg.f64 re)))) #s(literal 2 binary64))
(*.f64 (/.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 4 binary64)) (pow.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) #s(literal 2 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 (sinh.f64 re) (cosh.f64 re))))
(*.f64 (/.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) (-.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))) (pow.f64 (cosh.f64 re) #s(literal 4 binary64))))
(*.f64 #s(literal 1 binary64) (exp.f64 re))
(*.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (/.f64 (exp.f64 re) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(*.f64 (exp.f64 re) #s(literal 1 binary64))
(pow.f64 (exp.f64 (neg.f64 re)) #s(literal -1 binary64))
(/.f64 (/.f64 (fma.f64 #s(literal 4 binary64) (sinh.f64 re) (*.f64 #s(literal 4 binary64) (cosh.f64 re))) #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re)))) (*.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))))) (fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) #s(literal 1 binary64)) (exp.f64 re) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re)))))
(/.f64 (-.f64 (*.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))) (*.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))) (-.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (fma.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (*.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re)))))))
(/.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (-.f64 (*.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))) (*.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))))))
(/.f64 (fma.f64 #s(literal -2 binary64) (sinh.f64 re) (*.f64 #s(literal -2 binary64) (cosh.f64 re))) #s(literal -2 binary64))
(/.f64 (fma.f64 #s(literal -2 binary64) (cosh.f64 re) (*.f64 #s(literal -2 binary64) (sinh.f64 re))) #s(literal -2 binary64))
(/.f64 (neg.f64 (*.f64 (exp.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re)))) (neg.f64 (-.f64 (sinh.f64 re) (cosh.f64 re))))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (exp.f64 re))) #s(literal -2 binary64))
(/.f64 (neg.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))))) (neg.f64 (neg.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))))
(/.f64 (neg.f64 (fma.f64 #s(literal 4 binary64) (sinh.f64 re) (*.f64 #s(literal 4 binary64) (cosh.f64 re)))) #s(literal -4 binary64))
(/.f64 (-.f64 (*.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (*.f64 (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (pow.f64 (exp.f64 (neg.f64 re)) #s(literal 2 binary64)))
(/.f64 (fma.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (*.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (pow.f64 (sinh.f64 re) #s(literal 3 binary64)))) (*.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(/.f64 (fma.f64 (*.f64 #s(literal -2 binary64) (sinh.f64 re)) #s(literal -2 binary64) (*.f64 #s(literal -2 binary64) (*.f64 #s(literal -2 binary64) (cosh.f64 re)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal -2 binary64) (sinh.f64 re)) #s(literal 2 binary64) (*.f64 #s(literal -2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 re)))) #s(literal -4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 re)) #s(literal -2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal -2 binary64) (cosh.f64 re)))) #s(literal -4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal -2 binary64) (cosh.f64 re)) #s(literal -2 binary64) (*.f64 #s(literal -2 binary64) (*.f64 #s(literal -2 binary64) (sinh.f64 re)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal -2 binary64) (cosh.f64 re)) #s(literal 2 binary64) (*.f64 #s(literal -2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 re)))) #s(literal -4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 re)) #s(literal -2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal -2 binary64) (sinh.f64 re)))) #s(literal -4 binary64))
(/.f64 (*.f64 (cosh.f64 (+.f64 re re)) #s(literal 1 binary64)) (*.f64 (cosh.f64 (+.f64 re re)) (exp.f64 (neg.f64 re))))
(/.f64 (*.f64 (exp.f64 re) (-.f64 (sinh.f64 re) (cosh.f64 re))) (-.f64 (sinh.f64 re) (cosh.f64 re)))
(/.f64 (-.f64 (pow.f64 (cosh.f64 re) #s(literal 6 binary64)) (pow.f64 (sinh.f64 re) #s(literal 6 binary64))) (*.f64 (fma.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (cosh.f64 (+.f64 re re)) (pow.f64 (cosh.f64 re) #s(literal 4 binary64))) (exp.f64 (neg.f64 re))))
(/.f64 (-.f64 (pow.f64 (cosh.f64 re) #s(literal 6 binary64)) (pow.f64 (sinh.f64 re) #s(literal 6 binary64))) (*.f64 (-.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (pow.f64 (sinh.f64 re) #s(literal 3 binary64))) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(/.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 9 binary64)) (pow.f64 (cosh.f64 re) #s(literal 9 binary64))) (*.f64 (-.f64 (+.f64 (pow.f64 (cosh.f64 re) #s(literal 6 binary64)) (pow.f64 (sinh.f64 re) #s(literal 6 binary64))) (pow.f64 (*.f64 (sinh.f64 re) (cosh.f64 re)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(/.f64 (*.f64 #s(literal 2 binary64) (exp.f64 re)) #s(literal 2 binary64))
(/.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 re)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(/.f64 (fma.f64 #s(literal 4 binary64) (sinh.f64 re) (*.f64 #s(literal 4 binary64) (cosh.f64 re))) #s(literal 4 binary64))
(/.f64 #s(literal 1 binary64) (neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 re))))
(/.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 re)))
(/.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))
(neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 (neg.f64 re))))
(neg.f64 (/.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64)))) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(neg.f64 (/.f64 #s(literal 1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 re))))
(neg.f64 (/.f64 (+.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 3 binary64))) (neg.f64 (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64))))))
(fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (pow.f64 (sinh.f64 re) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 re) (exp.f64 re) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))) (/.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (exp.f64 (neg.f64 re))))
(fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 4 binary64) (cosh.f64 re)) (*.f64 #s(literal 4 binary64) (sinh.f64 re)))) #s(literal 4 binary64) (/.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (exp.f64 (neg.f64 re))))
(fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (exp.f64 (neg.f64 re)))) #s(literal 2 binary64) (/.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (exp.f64 (neg.f64 re))))
(fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) #s(literal 1 binary64)) (exp.f64 re) (/.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (exp.f64 (neg.f64 re))))
(fma.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 4 binary64)) (pow.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) #s(literal 2 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 (sinh.f64 re) (cosh.f64 re))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) (-.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))) (pow.f64 (cosh.f64 re) #s(literal 4 binary64))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 4 binary64)) (pow.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) #s(literal 2 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 (sinh.f64 re) (cosh.f64 re))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) #s(literal 3 binary64)) (pow.f64 (cosh.f64 re) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) (-.f64 (*.f64 (-.f64 (sinh.f64 re) (cosh.f64 re)) (sinh.f64 re)) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))) (pow.f64 (cosh.f64 re) #s(literal 4 binary64))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 (pow.f64 (sinh.f64 re) #s(literal 3/2 binary64)) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3/2 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 (pow.f64 (cosh.f64 re) #s(literal 3/2 binary64)) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3/2 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 (neg.f64 (cosh.f64 re)) (/.f64 (neg.f64 (cosh.f64 re)) (exp.f64 (neg.f64 re))) (/.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (exp.f64 (neg.f64 re))))
(fma.f64 (fabs.f64 (cosh.f64 re)) (/.f64 (fabs.f64 (cosh.f64 re)) (exp.f64 (neg.f64 re))) (/.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (exp.f64 (neg.f64 re))))
(fma.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (/.f64 (sinh.f64 re) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (/.f64 (cosh.f64 re) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 #s(literal 2 binary64) (/.f64 (sinh.f64 re) #s(literal 2 binary64)) (cosh.f64 re))
(fma.f64 #s(literal 2 binary64) (/.f64 (cosh.f64 re) #s(literal 2 binary64)) (sinh.f64 re))
(fma.f64 (sinh.f64 re) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(fma.f64 (cosh.f64 re) (/.f64 (cosh.f64 re) (exp.f64 (neg.f64 re))) (/.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (exp.f64 (neg.f64 re))))
(fma.f64 (cosh.f64 re) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(-.f64 (+.f64 (cosh.f64 re) (/.f64 (exp.f64 re) #s(literal 2 binary64))) (/.f64 (exp.f64 (neg.f64 re)) #s(literal 2 binary64)))
(-.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (-.f64 (sinh.f64 re) (cosh.f64 re))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (-.f64 (sinh.f64 re) (cosh.f64 re))))
(-.f64 (/.f64 (exp.f64 re) #s(literal 2 binary64)) (-.f64 (/.f64 (exp.f64 (neg.f64 re)) #s(literal 2 binary64)) (cosh.f64 re)))
(-.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))))
(-.f64 (cosh.f64 re) (sinh.f64 (neg.f64 re)))
(exp.f64 re)
(+.f64 (+.f64 (sinh.f64 re) (/.f64 (exp.f64 re) #s(literal 2 binary64))) (/.f64 (exp.f64 (neg.f64 re)) #s(literal 2 binary64)))
(+.f64 (/.f64 (*.f64 #s(literal 4 binary64) (sinh.f64 re)) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal 4 binary64) (cosh.f64 re)) #s(literal 4 binary64)))
(+.f64 (/.f64 (*.f64 #s(literal 4 binary64) (cosh.f64 re)) #s(literal 4 binary64)) (/.f64 (*.f64 #s(literal 4 binary64) (sinh.f64 re)) #s(literal 4 binary64)))
(+.f64 (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(+.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 re) #s(literal 3 binary64)) (fma.f64 (cosh.f64 re) (exp.f64 (neg.f64 re)) (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(+.f64 (/.f64 (exp.f64 re) #s(literal 2 binary64)) (+.f64 (/.f64 (exp.f64 (neg.f64 re)) #s(literal 2 binary64)) (sinh.f64 re)))
(+.f64 (/.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (exp.f64 (neg.f64 re))) (/.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (exp.f64 (neg.f64 re))))
(+.f64 (sinh.f64 re) (cosh.f64 re))
(+.f64 (cosh.f64 re) (sinh.f64 re))
(*.f64 #s(literal 1 binary64) (sin.f64 im))
(*.f64 (*.f64 (sin.f64 im) (exp.f64 re)) (exp.f64 (neg.f64 re)))
(*.f64 (sin.f64 im) #s(literal 1 binary64))
(*.f64 (exp.f64 re) (*.f64 (exp.f64 (neg.f64 re)) (sin.f64 im)))
(/.f64 (*.f64 (*.f64 (cosh.f64 (+.f64 re re)) #s(literal 1 binary64)) (sin.f64 im)) (cosh.f64 (+.f64 re re)))
(/.f64 (*.f64 (-.f64 (pow.f64 (cosh.f64 re) #s(literal 6 binary64)) (pow.f64 (sinh.f64 re) #s(literal 6 binary64))) (sin.f64 im)) (fma.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (cosh.f64 (+.f64 re re)) (pow.f64 (cosh.f64 re) #s(literal 4 binary64))))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (cosh.f64 (+.f64 re re)) #s(literal 1 binary64))) (cosh.f64 (+.f64 re re)))
(/.f64 (*.f64 (sin.f64 im) (-.f64 (pow.f64 (cosh.f64 re) #s(literal 6 binary64)) (pow.f64 (sinh.f64 re) #s(literal 6 binary64)))) (fma.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)) (cosh.f64 (+.f64 re re)) (pow.f64 (cosh.f64 re) #s(literal 4 binary64))))
(fma.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (sin.f64 im) (*.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (sin.f64 im)))
(fma.f64 (sin.f64 im) (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (*.f64 (sin.f64 im) (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))
(sin.f64 im)
(+.f64 (*.f64 (pow.f64 (cosh.f64 re) #s(literal 2 binary64)) (sin.f64 im)) (*.f64 (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64))) (sin.f64 im)))
(+.f64 (*.f64 (sin.f64 im) (pow.f64 (cosh.f64 re) #s(literal 2 binary64))) (*.f64 (sin.f64 im) (neg.f64 (pow.f64 (sinh.f64 re) #s(literal 2 binary64)))))

eval17.0ms (0.2%)

Memory
37.2MiB live, 37.2MiB allocated; 0ms collecting garbage
Compiler

Compiled 3 626 to 539 computations (85.1% saved)

prune31.0ms (0.3%)

Memory
-13.1MiB live, 22.8MiB allocated; 8ms collecting garbage
Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1586164
Fresh000
Picked011
Done000
Total1587165
Accuracy
100.0%
Counts
165 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (exp.f64 re) (sin.f64 im))
67.0%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
63.4%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
51.2%
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
51.2%
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
67.2%
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
50.4%
#s(approx (* (exp re) (sin im)) (sin.f64 im))
Compiler

Compiled 141 to 111 computations (21.3% saved)

simplify859.0ms (9.7%)

Memory
6.2MiB live, 594.2MiB allocated; 85ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
cost-diff0
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
cost-diff0
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
cost-diff0
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
cost-diff0
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
cost-diff0
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
cost-diff0
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
cost-diff0
(sin.f64 im)
cost-diff0
(+.f64 #s(literal 1 binary64) re)
cost-diff0
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re))
cost-diff0
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
cost-diff0
(sin.f64 im)
cost-diff0
#s(approx (* (exp re) (sin im)) (sin.f64 im))
cost-diff0
(exp.f64 re)
cost-diff0
(*.f64 (exp.f64 re) im)
cost-diff0
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025149
043149
164149
2134149
3408149
41645149
57230149
08435149
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
(*.f64 (exp.f64 re) im)
(exp.f64 re)
re
im
#s(approx (* (exp re) (sin im)) (sin.f64 im))
(sin.f64 im)
im
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re))
(+.f64 #s(literal 1 binary64) re)
#s(literal 1 binary64)
re
(sin.f64 im)
im
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
#s(literal 1/2 binary64)
re
#s(literal 1 binary64)
(sin.f64 im)
im
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
#s(literal 1/6 binary64)
re
#s(literal 1/2 binary64)
#s(literal 1 binary64)
(sin.f64 im)
im
Outputs
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) (*.f64 im (exp.f64 re)))
(*.f64 (exp.f64 re) im)
(*.f64 im (exp.f64 re))
(exp.f64 re)
re
im
#s(approx (* (exp re) (sin im)) (sin.f64 im))
(sin.f64 im)
im
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) (sin.f64 im))
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re))
#s(approx (exp re) (-.f64 re #s(literal -1 binary64)))
(+.f64 #s(literal 1 binary64) re)
(-.f64 re #s(literal -1 binary64))
#s(literal 1 binary64)
re
(sin.f64 im)
im
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
#s(literal 1/2 binary64)
re
#s(literal 1 binary64)
(sin.f64 im)
im
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
#s(literal 1/6 binary64)
re
#s(literal 1/2 binary64)
#s(literal 1 binary64)
(sin.f64 im)
im

localize151.0ms (1.7%)

Memory
-12.7MiB live, 124.4MiB allocated; 27ms collecting garbage
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
accuracy0.06640625
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
accuracy0.078125
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
accuracy0.203125
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
accuracy21.11807429164231
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
accuracy0.0
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
accuracy0.0
(sin.f64 im)
accuracy0.00390625
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
accuracy23.381630793492096
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
accuracy0.0
(+.f64 #s(literal 1 binary64) re)
accuracy0.0
(sin.f64 im)
accuracy0.00390625
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
accuracy31.220557498423553
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re))
accuracy0.0
(sin.f64 im)
accuracy31.74467132953756
#s(approx (* (exp re) (sin im)) (sin.f64 im))
accuracy0.0
(exp.f64 re)
accuracy0.0078125
(*.f64 (exp.f64 re) im)
accuracy20.998347756809036
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
Samples
137.0ms256×0valid
Compiler

Compiled 106 to 22 computations (79.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 37.0ms
ival-sin: 13.0ms (34.9% of total)
ival-mult: 11.0ms (29.6% of total)
ival-add: 7.0ms (18.8% of total)
const: 4.0ms (10.7% of total)
ival-exp: 2.0ms (5.4% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series7.0ms (0.1%)

Memory
11.7MiB live, 11.7MiB allocated; 0ms collecting garbage
Counts
17 → 43
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
(*.f64 (exp.f64 re) im)
(exp.f64 re)
#s(approx (* (exp re) (sin im)) (sin.f64 im))
(sin.f64 im)
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re))
(+.f64 #s(literal 1 binary64) re)
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
Outputs
(sin im)
(+ (sin im) (* re (sin im)))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
im
(+ im (* im re))
(+ im (* re (+ im (* 1/2 (* im re)))))
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
1
(+ 1 re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(+ 1 (* 1/2 re))
(+ 1 (* re (+ 1/2 (* 1/6 re))))
1/2
(+ 1/2 (* 1/6 re))
(* (exp re) (sin im))
(* im (exp re))
(exp re)
re
(* re (+ 1 (/ 1 re)))
(* 1/2 (pow re 2))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(* 1/2 re)
(* re (+ 1/2 (/ 1 re)))
(* 1/6 (pow re 3))
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re))))
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3))))))
(* 1/6 (pow re 2))
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re))))
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(* 1/6 re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6)))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6)))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(* im (+ 1 (* -1/6 (pow im 2))))
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
Calls

6 calls:

TimeVariablePointExpression
2.0ms
re
@inf
((* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (sin im) (* (exp re) (sin im)) (exp re) (+ 1 re) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (+ (* 1/6 re) 1/2))
2.0ms
re
@-inf
((* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (sin im) (* (exp re) (sin im)) (exp re) (+ 1 re) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (+ (* 1/6 re) 1/2))
1.0ms
re
@0
((* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (sin im) (* (exp re) (sin im)) (exp re) (+ 1 re) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (+ (* 1/6 re) 1/2))
1.0ms
im
@-inf
((* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (sin im) (* (exp re) (sin im)) (exp re) (+ 1 re) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (+ (* 1/6 re) 1/2))
1.0ms
im
@0
((* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (sin im) (* (exp re) (sin im)) (exp re) (+ 1 re) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (+ (* 1/2 re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (+ (* 1/6 re) 1/2))

simplify286.0ms (3.2%)

Memory
-23.4MiB live, 285.3MiB allocated; 39ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0125389
1478372
21811354
36914354
08016310
Stop Event
iter limit
node limit
Counts
43 → 41
Calls
Call 1
Inputs
(sin im)
(+ (sin im) (* re (sin im)))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
im
(+ im (* im re))
(+ im (* re (+ im (* 1/2 (* im re)))))
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
1
(+ 1 re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(+ 1 (* 1/2 re))
(+ 1 (* re (+ 1/2 (* 1/6 re))))
1/2
(+ 1/2 (* 1/6 re))
(* (exp re) (sin im))
(* im (exp re))
(exp re)
re
(* re (+ 1 (/ 1 re)))
(* 1/2 (pow re 2))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(* 1/2 re)
(* re (+ 1/2 (/ 1 re)))
(* 1/6 (pow re 3))
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re))))
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3))))))
(* 1/6 (pow re 2))
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re))))
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(* 1/6 re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6)))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6)))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(* im (+ 1 (* -1/6 (pow im 2))))
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
Outputs
(sin im)
(sin.f64 im)
(+ (sin im) (* re (sin im)))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(*.f64 (sin.f64 im) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
(fma.f64 (*.f64 (sin.f64 im) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re (sin.f64 im))
im
(+ im (* im re))
(fma.f64 im re im)
(+ im (* re (+ im (* 1/2 (* im re)))))
(fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
(fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)
1
#s(literal 1 binary64)
(+ 1 re)
(-.f64 re #s(literal -1 binary64))
(+ 1 (* re (+ 1 (* 1/2 re))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(+ 1 (* 1/2 re))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(+ 1 (* re (+ 1/2 (* 1/6 re))))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* 1/6 re))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(* (exp re) (sin im))
(*.f64 (sin.f64 im) (exp.f64 re))
(* im (exp re))
(*.f64 im (exp.f64 re))
(exp re)
(exp.f64 re)
re
(* re (+ 1 (/ 1 re)))
(-.f64 re #s(literal -1 binary64))
(* 1/2 (pow re 2))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
(* re (+ 1/2 (/ 1 re)))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(* 1/6 (pow re 3))
(*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64))
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re))))
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(* 1/6 (pow re 2))
(*.f64 (*.f64 re re) #s(literal 1/6 binary64))
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re))))
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(* 1/6 re)
(*.f64 #s(literal 1/6 binary64) re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6)))
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1 binary64) re)) re) #s(literal 1/6 binary64)))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6)))
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (/.f64 (neg.f64 (-.f64 (/.f64 (/.f64 (-.f64 re #s(literal -1 binary64)) re) re) #s(literal -1/2 binary64))) re) #s(literal 1/6 binary64)))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(*.f64 (exp.f64 re) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (*.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (exp.f64 re)) (*.f64 im (exp.f64 re)))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 im im) #s(literal 1/120 binary64)) (exp.f64 re)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal 1 binary64)) (exp.f64 re))) im)
(* im (+ 1 (* -1/6 (pow im 2))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 im im)) #s(literal 1/6 binary64)) im)
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/5040 binary64) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 im im)) #s(literal 1/6 binary64))) im)

rewrite49.0ms (0.6%)

Memory
-3.2MiB live, 57.4MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025128
043128
1131128
0934128
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
17 → 137
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
(*.f64 (exp.f64 re) im)
(exp.f64 re)
#s(approx (* (exp re) (sin im)) (sin.f64 im))
(sin.f64 im)
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
#s(approx (exp re) (+.f64 #s(literal 1 binary64) re))
(+.f64 #s(literal 1 binary64) re)
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
Outputs
#s(approx (* (exp re) (sin im)) (*.f64 im (exp.f64 re)))
(*.f64 im (exp.f64 re))
(*.f64 (exp.f64 re) im)
(fma.f64 (cosh.f64 re) im (*.f64 (sinh.f64 re) im))
(fma.f64 im (cosh.f64 re) (*.f64 im (sinh.f64 re)))
(+.f64 (*.f64 (cosh.f64 re) im) (*.f64 (sinh.f64 re) im))
(+.f64 (*.f64 im (cosh.f64 re)) (*.f64 im (sinh.f64 re)))
(/.f64 (-.f64 (*.f64 (cosh.f64 re) (cosh.f64 re)) (*.f64 (sinh.f64 re) (sinh.f64 re))) (-.f64 (cosh.f64 re) (sinh.f64 re)))
(/.f64 (+.f64 (pow.f64 (cosh.f64 re) #s(literal 3 binary64)) (pow.f64 (sinh.f64 re) #s(literal 3 binary64))) (fma.f64 (cosh.f64 re) (cosh.f64 re) (-.f64 (*.f64 (sinh.f64 re) (sinh.f64 re)) (*.f64 (cosh.f64 re) (sinh.f64 re)))))
(exp.f64 re)
(+.f64 (sinh.f64 re) (cosh.f64 re))
(+.f64 (cosh.f64 re) (sinh.f64 re))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
(sin.f64 im)
(*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) (sin.f64 im))
(*.f64 (sin.f64 im) #s(approx (exp re) (-.f64 re #s(literal -1 binary64))))
#s(approx (exp re) (-.f64 re #s(literal -1 binary64)))
(/.f64 (-.f64 (*.f64 re re) #s(literal 1 binary64)) (-.f64 re #s(literal 1 binary64)))
(/.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 re re (-.f64 #s(literal 1 binary64) re)))
(/.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 re re))) (neg.f64 (-.f64 #s(literal 1 binary64) re)))
(/.f64 (neg.f64 (+.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 re re)) (-.f64 #s(literal 1 binary64) re))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) re)
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) re)
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) re)
(fma.f64 #s(literal 1 binary64) re #s(literal 1 binary64))
(fma.f64 re #s(literal 1 binary64) #s(literal 1 binary64))
(-.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) re)) (/.f64 (*.f64 re re) (-.f64 #s(literal 1 binary64) re)))
(-.f64 re #s(literal -1 binary64))
(+.f64 (/.f64 #s(literal 1 binary64) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))) (/.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 re (-.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))))
(+.f64 #s(literal 1 binary64) re)
(+.f64 re #s(literal 1 binary64))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 (sin.f64 im) #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))))
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64)))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 re (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64))))
(-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))) re))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))))
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))
(/.f64 (neg.f64 (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) #s(literal -1 binary64))) (neg.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64))) (neg.f64 (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))))
(/.f64 (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) #s(literal -1 binary64)) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64)))
(/.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) re))))
(/.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64)) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 #s(literal 1/2 binary64) re))
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 #s(literal 1/2 binary64) re))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))
(fma.f64 re #s(literal 1/2 binary64) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 2 binary64)) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))))
(-.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) re))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) #s(literal 1/2 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 3 binary64)) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 (sin.f64 im) #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))))
#s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64)))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(fma.f64 re (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 re (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal -1 binary64))))
(-.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))))
(+.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 re (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))))
(-.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))))
(+.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))
(/.f64 (neg.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))))
(/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (*.f64 re #s(literal 1/12 binary64)))))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) re))
(fma.f64 re #s(literal 1/6 binary64) #s(literal 1/2 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) re))
(-.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 re) #s(literal 1/6 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) (/.f64 #s(literal 1/8 binary64) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))))
(+.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re))

eval80.0ms (0.9%)

Memory
-2.7MiB live, 43.7MiB allocated; 3ms collecting garbage
Compiler

Compiled 3 827 to 776 computations (79.7% saved)

prune40.0ms (0.5%)

Memory
-11.6MiB live, 33.8MiB allocated; 4ms collecting garbage
Pruning

22 alts after pruning (16 fresh and 6 done)

PrunedKeptTotal
New16815183
Fresh011
Picked055
Done011
Total16822190
Accuracy
100.0%
Counts
190 → 22
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (exp.f64 re) (sin.f64 im))
67.0%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
63.4%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
38.2%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
66.0%
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
51.2%
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
31.7%
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
19.7%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
19.8%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im))
16.3%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (sin.f64 im))
16.5%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
51.2%
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
67.2%
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
37.5%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
33.8%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
27.6%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
26.0%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
50.4%
#s(approx (* (exp re) (sin im)) (sin.f64 im))
36.8%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
32.7%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
27.6%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
30.1%
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
Compiler

Compiled 681 to 494 computations (27.5% saved)

simplify514.0ms (5.8%)

Memory
39.0MiB live, 366.9MiB allocated; 52ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
cost-diff0
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
cost-diff0
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
cost-diff0
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
cost-diff0
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
cost-diff0
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))
cost-diff0
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64))))
cost-diff0
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
cost-diff0
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
cost-diff0
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)
cost-diff0
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
cost-diff0
#s(approx (exp re) #s(literal 1 binary64))
cost-diff0
(*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)
cost-diff0
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
cost-diff0
#s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
cost-diff0
(fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))
cost-diff0
#s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64)))
cost-diff0
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043323
062323
195323
2190323
3530323
41823323
57170323
08027320
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64)))
(fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))
#s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
(*.f64 (*.f64 re re) #s(literal 1/6 binary64))
(*.f64 re re)
re
#s(literal 1/6 binary64)
#s(literal 1 binary64)
(sin.f64 im)
im
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
(*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)
#s(approx (exp re) #s(literal 1 binary64))
#s(literal 1 binary64)
im
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
#s(literal 1/2 binary64)
re
#s(literal 1 binary64)
im
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64))))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(*.f64 re re)
re
#s(literal 1/2 binary64)
(sin.f64 im)
im
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
#s(literal 1/6 binary64)
re
#s(literal 1/2 binary64)
#s(literal 1 binary64)
(sin.f64 im)
im
Outputs
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 (sin.f64 im) #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))))
#s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64)))
(fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))
#s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
(*.f64 (*.f64 re re) #s(literal 1/6 binary64))
(*.f64 re re)
re
#s(literal 1/6 binary64)
#s(literal 1 binary64)
(sin.f64 im)
im
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
(*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)
#s(approx (exp re) #s(literal 1 binary64))
#s(literal 1 binary64)
im
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
#s(literal 1/2 binary64)
re
#s(literal 1 binary64)
im
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re))) (sin.f64 im))
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64))))
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) re)
(*.f64 re re)
re
#s(literal 1/2 binary64)
(sin.f64 im)
im
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
#s(literal 1/6 binary64)
re
#s(literal 1/2 binary64)
#s(literal 1 binary64)
(sin.f64 im)
im

localize114.0ms (1.3%)

Memory
-11.4MiB live, 133.5MiB allocated; 28ms collecting garbage
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
accuracy0.078125
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
accuracy0.203125
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
accuracy21.11807429164231
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
accuracy30.988880890086072
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
accuracy0.0
(sin.f64 im)
accuracy0.00390625
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
accuracy23.381630793492096
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64))))
accuracy30.993547859655955
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))
accuracy0.0
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
accuracy0.0078125
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)
accuracy20.998347756809036
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
accuracy23.381630793492096
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
accuracy0.0078125
(*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)
accuracy20.998347756809036
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
accuracy31.861353577021205
#s(approx (exp re) #s(literal 1 binary64))
accuracy0.06640625
(fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))
accuracy0.2109375
(*.f64 (*.f64 re re) #s(literal 1/6 binary64))
accuracy21.11807429164231
#s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64)))
accuracy31.007944674706266
#s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
Samples
63.0ms256×0valid
Compiler

Compiled 168 to 24 computations (85.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 46.0ms
ival-mult: 28.0ms (60.8% of total)
ival-add: 6.0ms (13% of total)
ival-sin: 6.0ms (13% of total)
const: 4.0ms (8.7% of total)
ival-exp: 2.0ms (4.3% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series8.0ms (0.1%)

Memory
12.0MiB live, 12.0MiB allocated; 0ms collecting garbage
Counts
24 → 44
Calls
Call 1
Inputs
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64)))
(fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))
#s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
(*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)
#s(approx (exp re) #s(literal 1 binary64))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64))))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
(*.f64 (*.f64 re re) #s(literal 1/6 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(sin.f64 im)
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
Outputs
(sin im)
(+ (sin im) (* re (sin im)))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
1
(+ 1 re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(+ 1 (* 1/2 re))
(+ 1 (* re (+ 1/2 (* 1/6 re))))
im
(+ im (* im re))
(+ im (* re (+ im (* 1/2 (* im re)))))
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
(* 1/2 (pow re 2))
re
(* re (+ 1 (* 1/2 re)))
(* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))
(* 1/6 (pow re 2))
1/2
(+ 1/2 (* 1/6 re))
(* (exp re) (sin im))
(exp re)
(* 1/6 (pow re 3))
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re))))
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3))))))
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re))))
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(* im (exp re))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(* 1/2 re)
(* re (+ 1/2 (/ 1 re)))
(* 1/6 re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6)))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6)))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(* im (+ 1 (* -1/6 (pow im 2))))
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
Calls

6 calls:

TimeVariablePointExpression
2.0ms
re
@0
((* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (* re re) 1/2) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) (* (* re re) 1/6) (+ (* 1/2 re) 1) (sin im) (+ (* 1/6 re) 1/2) (+ (* (+ (* 1/6 re) 1/2) re) 1))
2.0ms
re
@inf
((* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (* re re) 1/2) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) (* (* re re) 1/6) (+ (* 1/2 re) 1) (sin im) (+ (* 1/6 re) 1/2) (+ (* (+ (* 1/6 re) 1/2) re) 1))
2.0ms
re
@-inf
((* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (* re re) 1/2) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) (* (* re re) 1/6) (+ (* 1/2 re) 1) (sin im) (+ (* 1/6 re) 1/2) (+ (* (+ (* 1/6 re) 1/2) re) 1))
1.0ms
im
@-inf
((* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (* re re) 1/2) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) (* (* re re) 1/6) (+ (* 1/2 re) 1) (sin im) (+ (* 1/6 re) 1/2) (+ (* (+ (* 1/6 re) 1/2) re) 1))
0.0ms
im
@inf
((* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (+ (* (+ (* 1/6 re) 1/2) re) 1) (* (exp re) (sin im)) (* (exp re) im) (exp re) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (* re re) 1/2) (* (exp re) (sin im)) (exp re) (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) (* (* re re) 1/6) (+ (* 1/2 re) 1) (sin im) (+ (* 1/6 re) 1/2) (+ (* (+ (* 1/6 re) 1/2) re) 1))

simplify168.0ms (1.9%)

Memory
0.3MiB live, 229.0MiB allocated; 26ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0123398
1472385
21803369
36880369
08104322
Stop Event
iter limit
node limit
Counts
44 → 42
Calls
Call 1
Inputs
(sin im)
(+ (sin im) (* re (sin im)))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
1
(+ 1 re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(+ 1 (* 1/2 re))
(+ 1 (* re (+ 1/2 (* 1/6 re))))
im
(+ im (* im re))
(+ im (* re (+ im (* 1/2 (* im re)))))
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
(* 1/2 (pow re 2))
re
(* re (+ 1 (* 1/2 re)))
(* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))
(* 1/6 (pow re 2))
1/2
(+ 1/2 (* 1/6 re))
(* (exp re) (sin im))
(exp re)
(* 1/6 (pow re 3))
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re))))
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3))))))
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re))))
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(* im (exp re))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(* 1/2 re)
(* re (+ 1/2 (/ 1 re)))
(* 1/6 re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6)))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6)))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(* im (+ 1 (* -1/6 (pow im 2))))
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
Outputs
(sin im)
(sin.f64 im)
(+ (sin im) (* re (sin im)))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(*.f64 (sin.f64 im) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
(fma.f64 (*.f64 (sin.f64 im) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))) re (sin.f64 im))
1
#s(literal 1 binary64)
(+ 1 re)
(-.f64 re #s(literal -1 binary64))
(+ 1 (* re (+ 1 (* 1/2 re))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(+ 1 (* 1/2 re))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(+ 1 (* re (+ 1/2 (* 1/6 re))))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
im
(+ im (* im re))
(fma.f64 im re im)
(+ im (* re (+ im (* 1/2 (* im re)))))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) im) re im)
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
(fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)
(* 1/2 (pow re 2))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
re
(* re (+ 1 (* 1/2 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
(* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
(* 1/6 (pow re 2))
(*.f64 (*.f64 re re) #s(literal 1/6 binary64))
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* 1/6 re))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(* (exp re) (sin im))
(*.f64 (sin.f64 im) (exp.f64 re))
(exp re)
(exp.f64 re)
(* 1/6 (pow re 3))
(*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64))
(* (pow re 3) (+ 1/6 (* 1/2 (/ 1 re))))
(*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re)
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
(* (pow re 3) (+ 1/6 (+ (* 1/2 (/ 1 re)) (+ (/ 1 (pow re 2)) (/ 1 (pow re 3))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(* (pow re 2) (+ 1/6 (* 1/2 (/ 1 re))))
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)
(* (pow re 2) (+ 1/6 (+ (* 1/2 (/ 1 re)) (/ 1 (pow re 2)))))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(* im (exp re))
(*.f64 im (exp.f64 re))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
(* re (+ 1/2 (/ 1 re)))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(* 1/6 re)
(*.f64 #s(literal 1/6 binary64) re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (/ 1 re)) re)) 1/6)))
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (/.f64 (-.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1 binary64) re)) re) #s(literal 1/6 binary64)))
(* -1 (* (pow re 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))) re)) 1/6)))
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (-.f64 (/.f64 (neg.f64 (-.f64 (/.f64 (/.f64 (-.f64 re #s(literal -1 binary64)) re) re) #s(literal -1/2 binary64))) re) #s(literal 1/6 binary64)))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(*.f64 (exp.f64 re) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (*.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (exp.f64 re)) (*.f64 im (exp.f64 re)))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 im im) #s(literal 1/120 binary64)) (exp.f64 re)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal 1 binary64)) (exp.f64 re))) im)
(* im (+ 1 (* -1/6 (pow im 2))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 im im)) #s(literal 1/6 binary64)) im)
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/5040 binary64) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 im im)) #s(literal 1/6 binary64))) im)

rewrite59.0ms (0.7%)

Memory
10.7MiB live, 101.0MiB allocated; 11ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043295
062295
1164295
01015292
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
24 → 157
Calls
Call 1
Inputs
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64)))
(fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))
#s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
(*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)
#s(approx (exp re) #s(literal 1 binary64))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64))))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
(*.f64 (*.f64 re re) #s(literal 1/6 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(sin.f64 im)
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
Outputs
(*.f64 (sin.f64 im) #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))))
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re)))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64)) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re))))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re)) (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal -1 binary64))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re)) (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal -1 binary64)))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re))
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re))
(fma.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) (*.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re))
(fma.f64 re (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 re #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64)) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal -1 binary64))))
(-.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))) re))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 3 binary64)) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re)) (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re)) (pow.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 2 binary64)))))
(+.f64 (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re))
#s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
(*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)
(*.f64 im #s(approx (exp re) #s(literal 1 binary64)))
#s(approx (exp re) #s(literal 1 binary64))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)
(*.f64 im #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))))
#s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64)))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) (*.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 re (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal -1 binary64))))
(-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))) re))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))))
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re))) (sin.f64 im))
(*.f64 (sin.f64 im) #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re))))
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re)))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) (neg.f64 re)) (neg.f64 re))
(*.f64 (*.f64 #s(literal 1/2 binary64) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (neg.f64 re) (*.f64 (neg.f64 re) #s(literal 1/2 binary64)))
(*.f64 (fabs.f64 re) (*.f64 (fabs.f64 re) #s(literal 1/2 binary64)))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) re)
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 re re))
(*.f64 re (*.f64 #s(literal 1/2 binary64) re))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 (sin.f64 im) #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))))
#s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re) #s(literal 1 binary64))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) (*.f64 re #s(literal 1 binary64)))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re)
(*.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))
(*.f64 re (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) #s(literal 1 binary64)))
(*.f64 re (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) re) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) re) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(/.f64 (*.f64 re (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))
(/.f64 (*.f64 re (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re (*.f64 #s(literal 1 binary64) re))
(fma.f64 #s(literal 1 binary64) re (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) (*.f64 re #s(literal 1 binary64)))
(fma.f64 re #s(literal 1 binary64) (*.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(+.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re) (*.f64 #s(literal 1 binary64) re))
(+.f64 (*.f64 #s(literal 1 binary64) re) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))
(+.f64 (*.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)) (*.f64 re #s(literal 1 binary64)))
(+.f64 (*.f64 re #s(literal 1 binary64)) (*.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(*.f64 (*.f64 #s(literal 1/6 binary64) (neg.f64 re)) (neg.f64 re))
(*.f64 (*.f64 #s(literal 1/6 binary64) (fabs.f64 re)) (fabs.f64 re))
(*.f64 (neg.f64 re) (*.f64 (neg.f64 re) #s(literal 1/6 binary64)))
(*.f64 (fabs.f64 re) (*.f64 (fabs.f64 re) #s(literal 1/6 binary64)))
(*.f64 (*.f64 re re) #s(literal 1/6 binary64))
(*.f64 (*.f64 #s(literal 1/6 binary64) re) re)
(*.f64 #s(literal 1/6 binary64) (*.f64 re re))
(*.f64 re (*.f64 #s(literal 1/6 binary64) re))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/4 binary64) (*.f64 re re))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/4 binary64) (*.f64 re re) #s(literal -1 binary64))) (neg.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64))) (neg.f64 (fma.f64 #s(literal 1/4 binary64) (*.f64 re re) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))))
(/.f64 (fma.f64 #s(literal 1/4 binary64) (*.f64 re re) #s(literal -1 binary64)) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64)))
(/.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 #s(literal 1/4 binary64) (*.f64 re re)) (*.f64 #s(literal 1/2 binary64) re))))
(/.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64)) (fma.f64 #s(literal 1/4 binary64) (*.f64 re re) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 #s(literal 1/2 binary64) re))
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 #s(literal 1/2 binary64) re))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))
(fma.f64 #s(literal 1/2 binary64) (*.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
(fma.f64 re #s(literal 1/2 binary64) #s(literal 1 binary64))
(-.f64 (/.f64 (*.f64 #s(literal 1/4 binary64) (*.f64 re re)) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64))))
(-.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) re))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) #s(literal 1/2 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 3 binary64)) (fma.f64 #s(literal 1/4 binary64) (*.f64 re re) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/4 binary64) (*.f64 re re) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re)))))
(+.f64 (*.f64 #s(literal 1/2 binary64) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))
(sin.f64 im)
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 #s(literal 1/36 binary64) (*.f64 re re))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))
(/.f64 (neg.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))))
(/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/36 binary64) (*.f64 re re)) (*.f64 re #s(literal 1/12 binary64)))))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) re))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(fma.f64 re #s(literal 1/6 binary64) #s(literal 1/2 binary64))
(-.f64 (/.f64 (*.f64 #s(literal 1/36 binary64) (*.f64 re re)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) re))
(-.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 re) #s(literal 1/6 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) (/.f64 #s(literal 1/8 binary64) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re))
(+.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64)))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(fma.f64 (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (pow.f64 #s(literal 1 binary64) #s(literal 3/2 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))
(fma.f64 #s(literal -1 binary64) #s(literal -1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) (*.f64 re #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 re (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal -1 binary64))))
(-.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 re) (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))))
(+.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re))

eval46.0ms (0.5%)

Memory
-16.3MiB live, 80.1MiB allocated; 34ms collecting garbage
Compiler

Compiled 5 954 to 936 computations (84.3% saved)

prune17.0ms (0.2%)

Memory
4.3MiB live, 50.6MiB allocated; 3ms collecting garbage
Pruning

23 alts after pruning (12 fresh and 11 done)

PrunedKeptTotal
New1993202
Fresh2911
Picked055
Done066
Total20123224
Accuracy
100.0%
Counts
224 → 23
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (exp.f64 re) (sin.f64 im))
67.0%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
63.4%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
66.0%
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
51.2%
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
31.7%
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
19.7%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
16.3%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
19.8%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im))
16.5%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
15.2%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
51.2%
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
67.2%
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
37.5%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
33.8%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
27.6%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
11.1%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
26.0%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
50.4%
#s(approx (* (exp re) (sin im)) (sin.f64 im))
36.8%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
32.7%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
27.6%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
30.1%
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
Compiler

Compiled 667 to 474 computations (28.9% saved)

simplify457.0ms (5.1%)

Memory
-8.4MiB live, 219.3MiB allocated; 39ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
cost-diff0
(pow.f64 im #s(literal 3 binary64))
cost-diff0
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
cost-diff0
#s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im))
cost-diff0
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
cost-diff0
(fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im)
cost-diff0
(fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)
cost-diff0
#s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im))
cost-diff0
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
cost-diff0
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
cost-diff0
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
cost-diff0
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im)
cost-diff0
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
cost-diff0
(fma.f64 im re im)
cost-diff0
#s(approx (* (exp re) im) (fma.f64 im re im))
cost-diff0
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
cost-diff0
(sin.f64 im)
cost-diff0
(fma.f64 (sin.f64 im) re (sin.f64 im))
cost-diff0
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037256
056256
192256
2219256
3654256
42573256
57923256
08024252
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(sin.f64 im)
im
re
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) im) (fma.f64 im re im))
(fma.f64 im re im)
im
re
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im)
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
#s(literal 1/2 binary64)
re
#s(literal 1 binary64)
im
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im))
(fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)
(fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im)
(*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))
im
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
#s(literal 1/6 binary64)
re
#s(literal 1/2 binary64)
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
#s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(pow.f64 im #s(literal 3 binary64))
im
#s(literal 3 binary64)
#s(literal -1/6 binary64)
Outputs
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(sin.f64 im)
im
re
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) im) (fma.f64 im re im))
(fma.f64 im re im)
im
re
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im)
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
(fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64))
#s(literal 1/2 binary64)
re
#s(literal 1 binary64)
im
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re im)))
#s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im))
#s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re im))
(fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)
(fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re im)
(fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im)
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im)
(*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im)
im
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
#s(literal 1/6 binary64)
re
#s(literal 1/2 binary64)
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)) im)))
#s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im))
#s(approx (sin im) (fma.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)) im))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(fma.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)) im)
(pow.f64 im #s(literal 3 binary64))
im
#s(literal 3 binary64)
#s(literal -1/6 binary64)

localize176.0ms (2%)

Memory
-0.1MiB live, 195.4MiB allocated; 93ms collecting garbage
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(pow.f64 im #s(literal 3 binary64))
accuracy0.08984375
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
accuracy31.74467132953756
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
accuracy31.936684778299334
#s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im))
accuracy0.09765625
(*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))
accuracy0.203125
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
accuracy19.944917335369528
#s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im))
accuracy20.998347756809036
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
accuracy0.01171875
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
accuracy20.998347756809036
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
accuracy23.381630793492096
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
accuracy31.035755857348384
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
accuracy0.0
(fma.f64 im re im)
accuracy20.998347756809036
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
accuracy27.324651973814557
#s(approx (* (exp re) im) (fma.f64 im re im))
accuracy0.0
(sin.f64 im)
accuracy0.078125
(fma.f64 (sin.f64 im) re (sin.f64 im))
accuracy31.259359088107903
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
Samples
153.0ms256×0valid
Compiler

Compiled 141 to 31 computations (78% saved)

Precisions
Click to see histograms. Total time spent on operations: 82.0ms
ival-mult: 47.0ms (57.6% of total)
ival-sin: 13.0ms (15.9% of total)
ival-add: 9.0ms (11% of total)
const: 7.0ms (8.6% of total)
ival-pow: 3.0ms (3.7% of total)
ival-exp: 2.0ms (2.5% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series19.0ms (0.2%)

Memory
34.0MiB live, 34.0MiB allocated; 0ms collecting garbage
Counts
21 → 68
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(sin.f64 im)
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) im) (fma.f64 im re im))
(fma.f64 im re im)
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im)
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im))
(fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)
(fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im)
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
#s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(pow.f64 im #s(literal 3 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))
Outputs
(sin im)
(+ (sin im) (* re (sin im)))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
im
(+ im (* im re))
(+ im (* re (+ im (* 1/2 (* im re)))))
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
1
(+ 1 re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(+ im (* 1/2 (* im re)))
(+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))
re
(* re (+ 1 (* 1/2 re)))
1/2
(+ 1/2 (* 1/6 re))
(* 1/2 im)
(+ (* 1/6 (* im re)) (* 1/2 im))
(* (exp re) (sin im))
(* re (sin im))
(* re (+ (sin im) (/ (sin im) re)))
(* im (exp re))
(* im re)
(* re (+ im (/ im re)))
(exp re)
(* 1/2 (pow re 2))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(* 1/6 (* im (pow re 3)))
(* (pow re 3) (+ (* 1/6 im) (* 1/2 (/ im re))))
(* (pow re 3) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (/ im (pow re 2)))))
(* (pow re 3) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (+ (/ im (pow re 2)) (/ im (pow re 3))))))
(* 1/6 (* im (pow re 2)))
(* (pow re 2) (+ (* 1/6 im) (* 1/2 (/ im re))))
(* (pow re 2) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (/ im (pow re 2)))))
(* 1/6 re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(* 1/6 (* im re))
(* re (+ (* 1/6 im) (* 1/2 (/ im re))))
(* -1 (* re (+ (* -1 (sin im)) (* -1 (/ (sin im) re)))))
(* -1 (* re (+ (* -1 im) (* -1 (/ im re)))))
(* -1 (* (pow re 3) (+ (* -1/2 (/ im re)) (* -1/6 im))))
(* -1 (* (pow re 3) (+ (* -1 (/ (+ (* 1/2 im) (/ im re)) re)) (* -1/6 im))))
(* -1 (* (pow re 3) (+ (* -1 (/ (+ (* -1 (/ (+ (* -1 im) (* -1 (/ im re))) re)) (* 1/2 im)) re)) (* -1/6 im))))
(* (pow re 2) (+ (* -1 (/ (+ (* -1 (/ im re)) (* -1/2 im)) re)) (* 1/6 im)))
(* -1 (* re (+ (* -1/2 (/ im re)) (* -1/6 im))))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(* im (+ 1 re))
(* im (+ 1 (+ re (* (pow im 2) (- (* -1/6 re) 1/6)))))
(* im (+ 1 (+ re (* (pow im 2) (- (+ (* -1/6 re) (* (pow im 2) (+ 1/120 (* 1/120 re)))) 1/6)))))
(* im (+ 1 (+ re (* (pow im 2) (- (+ (* -1/6 re) (* (pow im 2) (+ 1/120 (+ (* 1/120 re) (* (pow im 2) (- (* -1/5040 re) 1/5040)))))) 1/6)))))
(* im (+ 1 (* -1/6 (pow im 2))))
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
(* im (+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))))
(* im (+ 1 (* re (+ 1/2 (* 1/6 re)))))
(pow im 3)
(* im (+ 1/2 (* 1/6 re)))
(* -1/6 (pow im 3))
(* (pow im 3) (- (/ 1 (pow im 2)) 1/6))
(* -1 (* im (- (* -1 re) 1)))
(* -1 (* im (- (* re (- (* -1 (* re (+ 1/2 (* 1/6 re)))) 1)) 1)))
(* -1 (* im (- (* -1 (* re (+ 1/2 (* 1/6 re)))) 1)))
(* -1 (* (pow im 3) (- 1/6 (/ 1 (pow im 2)))))
Calls

6 calls:

TimeVariablePointExpression
5.0ms
im
@inf
((* (exp re) (sin im)) (+ (* (sin im) re) (sin im)) (sin im) (* (exp re) (sin im)) (* (exp re) im) (+ (* im re) im) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (* (exp re) im) (+ (* (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) re) im) (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (* (exp re) (sin im)) (sin im) (+ (* (pow im 3) -1/6) im) (pow im 3) (* (+ (* 1/2 re) 1) re) (+ (* 1/6 re) 1/2) (* im (+ (* 1/6 re) 1/2)))
3.0ms
im
@-inf
((* (exp re) (sin im)) (+ (* (sin im) re) (sin im)) (sin im) (* (exp re) (sin im)) (* (exp re) im) (+ (* im re) im) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (* (exp re) im) (+ (* (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) re) im) (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (* (exp re) (sin im)) (sin im) (+ (* (pow im 3) -1/6) im) (pow im 3) (* (+ (* 1/2 re) 1) re) (+ (* 1/6 re) 1/2) (* im (+ (* 1/6 re) 1/2)))
3.0ms
im
@0
((* (exp re) (sin im)) (+ (* (sin im) re) (sin im)) (sin im) (* (exp re) (sin im)) (* (exp re) im) (+ (* im re) im) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (* (exp re) im) (+ (* (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) re) im) (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (* (exp re) (sin im)) (sin im) (+ (* (pow im 3) -1/6) im) (pow im 3) (* (+ (* 1/2 re) 1) re) (+ (* 1/6 re) 1/2) (* im (+ (* 1/6 re) 1/2)))
2.0ms
re
@-inf
((* (exp re) (sin im)) (+ (* (sin im) re) (sin im)) (sin im) (* (exp re) (sin im)) (* (exp re) im) (+ (* im re) im) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (* (exp re) im) (+ (* (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) re) im) (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (* (exp re) (sin im)) (sin im) (+ (* (pow im 3) -1/6) im) (pow im 3) (* (+ (* 1/2 re) 1) re) (+ (* 1/6 re) 1/2) (* im (+ (* 1/6 re) 1/2)))
2.0ms
re
@inf
((* (exp re) (sin im)) (+ (* (sin im) re) (sin im)) (sin im) (* (exp re) (sin im)) (* (exp re) im) (+ (* im re) im) (* (exp re) (sin im)) (* (exp re) im) (exp re) (+ (* (+ (* 1/2 re) 1) re) 1) (* (exp re) (sin im)) (* (exp re) im) (+ (* (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) re) im) (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (* (exp re) (sin im)) (sin im) (+ (* (pow im 3) -1/6) im) (pow im 3) (* (+ (* 1/2 re) 1) re) (+ (* 1/6 re) 1/2) (* im (+ (* 1/6 re) 1/2)))

simplify290.0ms (3.3%)

Memory
-18.8MiB live, 277.5MiB allocated; 41ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0215740
1798697
23207689
08431616
Stop Event
iter limit
node limit
Counts
68 → 66
Calls
Call 1
Inputs
(sin im)
(+ (sin im) (* re (sin im)))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
im
(+ im (* im re))
(+ im (* re (+ im (* 1/2 (* im re)))))
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
1
(+ 1 re)
(+ 1 (* re (+ 1 (* 1/2 re))))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(+ im (* 1/2 (* im re)))
(+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))
re
(* re (+ 1 (* 1/2 re)))
1/2
(+ 1/2 (* 1/6 re))
(* 1/2 im)
(+ (* 1/6 (* im re)) (* 1/2 im))
(* (exp re) (sin im))
(* re (sin im))
(* re (+ (sin im) (/ (sin im) re)))
(* im (exp re))
(* im re)
(* re (+ im (/ im re)))
(exp re)
(* 1/2 (pow re 2))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(* 1/6 (* im (pow re 3)))
(* (pow re 3) (+ (* 1/6 im) (* 1/2 (/ im re))))
(* (pow re 3) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (/ im (pow re 2)))))
(* (pow re 3) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (+ (/ im (pow re 2)) (/ im (pow re 3))))))
(* 1/6 (* im (pow re 2)))
(* (pow re 2) (+ (* 1/6 im) (* 1/2 (/ im re))))
(* (pow re 2) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (/ im (pow re 2)))))
(* 1/6 re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(* 1/6 (* im re))
(* re (+ (* 1/6 im) (* 1/2 (/ im re))))
(* -1 (* re (+ (* -1 (sin im)) (* -1 (/ (sin im) re)))))
(* -1 (* re (+ (* -1 im) (* -1 (/ im re)))))
(* -1 (* (pow re 3) (+ (* -1/2 (/ im re)) (* -1/6 im))))
(* -1 (* (pow re 3) (+ (* -1 (/ (+ (* 1/2 im) (/ im re)) re)) (* -1/6 im))))
(* -1 (* (pow re 3) (+ (* -1 (/ (+ (* -1 (/ (+ (* -1 im) (* -1 (/ im re))) re)) (* 1/2 im)) re)) (* -1/6 im))))
(* (pow re 2) (+ (* -1 (/ (+ (* -1 (/ im re)) (* -1/2 im)) re)) (* 1/6 im)))
(* -1 (* re (+ (* -1/2 (/ im re)) (* -1/6 im))))
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(* im (+ 1 re))
(* im (+ 1 (+ re (* (pow im 2) (- (* -1/6 re) 1/6)))))
(* im (+ 1 (+ re (* (pow im 2) (- (+ (* -1/6 re) (* (pow im 2) (+ 1/120 (* 1/120 re)))) 1/6)))))
(* im (+ 1 (+ re (* (pow im 2) (- (+ (* -1/6 re) (* (pow im 2) (+ 1/120 (+ (* 1/120 re) (* (pow im 2) (- (* -1/5040 re) 1/5040)))))) 1/6)))))
(* im (+ 1 (* -1/6 (pow im 2))))
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
(* im (+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))))
(* im (+ 1 (* re (+ 1/2 (* 1/6 re)))))
(pow im 3)
(* im (+ 1/2 (* 1/6 re)))
(* -1/6 (pow im 3))
(* (pow im 3) (- (/ 1 (pow im 2)) 1/6))
(* -1 (* im (- (* -1 re) 1)))
(* -1 (* im (- (* re (- (* -1 (* re (+ 1/2 (* 1/6 re)))) 1)) 1)))
(* -1 (* im (- (* -1 (* re (+ 1/2 (* 1/6 re)))) 1)))
(* -1 (* (pow im 3) (- 1/6 (/ 1 (pow im 2)))))
Outputs
(sin im)
(sin.f64 im)
(+ (sin im) (* re (sin im)))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(+ (sin im) (* re (+ (sin im) (* 1/2 (* re (sin im))))))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) (sin.f64 im)) re (sin.f64 im))
(+ (sin im) (* re (+ (sin im) (* re (+ (* 1/6 (* re (sin im))) (* 1/2 (sin im)))))))
(fma.f64 (fma.f64 (*.f64 (sin.f64 im) (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re (sin.f64 im)) re (sin.f64 im))
im
(+ im (* im re))
(fma.f64 im re im)
(+ im (* re (+ im (* 1/2 (* im re)))))
(fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)
(+ im (* re (+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) im)
1
#s(literal 1 binary64)
(+ 1 re)
(-.f64 re #s(literal -1 binary64))
(+ 1 (* re (+ 1 (* 1/2 re))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))
(+ im (* 1/2 (* im re)))
(fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im)
(+ im (* re (+ (* 1/6 (* im re)) (* 1/2 im))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) im)
re
(* re (+ 1 (* 1/2 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* 1/6 re))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(* 1/2 im)
(*.f64 #s(literal 1/2 binary64) im)
(+ (* 1/6 (* im re)) (* 1/2 im))
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im)
(* (exp re) (sin im))
(*.f64 (sin.f64 im) (exp.f64 re))
(* re (sin im))
(*.f64 (sin.f64 im) re)
(* re (+ (sin im) (/ (sin im) re)))
(*.f64 (+.f64 (/.f64 (sin.f64 im) re) (sin.f64 im)) re)
(* im (exp re))
(*.f64 im (exp.f64 re))
(* im re)
(*.f64 im re)
(* re (+ im (/ im re)))
(*.f64 (+.f64 (/.f64 im re) im) re)
(exp re)
(exp.f64 re)
(* 1/2 (pow re 2))
(*.f64 (*.f64 re re) #s(literal 1/2 binary64))
(* (pow re 2) (+ 1/2 (/ 1 re)))
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) re) #s(literal -1/2 binary64)) re) re)
(* (pow re 2) (+ 1/2 (+ (/ 1 re) (/ 1 (pow re 2)))))
(*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re))
(* 1/6 (* im (pow re 3)))
(*.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) im) #s(literal 1/6 binary64))
(* (pow re 3) (+ (* 1/6 im) (* 1/2 (/ im re))))
(*.f64 (fma.f64 (/.f64 im re) #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) im)) (pow.f64 re #s(literal 3 binary64)))
(* (pow re 3) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (/ im (pow re 2)))))
(*.f64 (fma.f64 #s(literal 1/6 binary64) im (/.f64 (fma.f64 #s(literal 1/2 binary64) im (/.f64 im re)) re)) (pow.f64 re #s(literal 3 binary64)))
(* (pow re 3) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (+ (/ im (pow re 2)) (/ im (pow re 3))))))
(*.f64 (fma.f64 #s(literal 1/6 binary64) im (/.f64 (fma.f64 #s(literal 1/2 binary64) im (/.f64 (+.f64 (/.f64 im re) im) re)) re)) (pow.f64 re #s(literal 3 binary64)))
(* 1/6 (* im (pow re 2)))
(*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))
(* (pow re 2) (+ (* 1/6 im) (* 1/2 (/ im re))))
(*.f64 (*.f64 (fma.f64 (/.f64 im re) #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) im)) re) re)
(* (pow re 2) (+ (* 1/6 im) (+ (* 1/2 (/ im re)) (/ im (pow re 2)))))
(*.f64 (fma.f64 #s(literal 1/6 binary64) im (/.f64 (fma.f64 #s(literal 1/2 binary64) im (/.f64 im re)) re)) (*.f64 re re))
(* 1/6 re)
(*.f64 #s(literal 1/6 binary64) re)
(* re (+ 1/6 (* 1/2 (/ 1 re))))
(*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) re) #s(literal 1/6 binary64)) re)
(* 1/6 (* im re))
(*.f64 (*.f64 im re) #s(literal 1/6 binary64))
(* re (+ (* 1/6 im) (* 1/2 (/ im re))))
(*.f64 (fma.f64 (/.f64 im re) #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) im)) re)
(* -1 (* re (+ (* -1 (sin im)) (* -1 (/ (sin im) re)))))
(*.f64 (+.f64 (/.f64 (sin.f64 im) re) (sin.f64 im)) re)
(* -1 (* re (+ (* -1 im) (* -1 (/ im re)))))
(*.f64 (+.f64 (/.f64 im re) im) re)
(* -1 (* (pow re 3) (+ (* -1/2 (/ im re)) (* -1/6 im))))
(*.f64 (fma.f64 (/.f64 im re) #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) im)) (pow.f64 re #s(literal 3 binary64)))
(* -1 (* (pow re 3) (+ (* -1 (/ (+ (* 1/2 im) (/ im re)) re)) (* -1/6 im))))
(*.f64 (fma.f64 #s(literal 1/6 binary64) im (/.f64 (fma.f64 #s(literal 1/2 binary64) im (/.f64 im re)) re)) (pow.f64 re #s(literal 3 binary64)))
(* -1 (* (pow re 3) (+ (* -1 (/ (+ (* -1 (/ (+ (* -1 im) (* -1 (/ im re))) re)) (* 1/2 im)) re)) (* -1/6 im))))
(*.f64 (fma.f64 #s(literal 1/6 binary64) im (/.f64 (fma.f64 #s(literal 1/2 binary64) im (/.f64 (+.f64 (/.f64 im re) im) re)) re)) (pow.f64 re #s(literal 3 binary64)))
(* (pow re 2) (+ (* -1 (/ (+ (* -1 (/ im re)) (* -1/2 im)) re)) (* 1/6 im)))
(*.f64 (fma.f64 #s(literal 1/6 binary64) im (/.f64 (fma.f64 #s(literal 1/2 binary64) im (/.f64 im re)) re)) (*.f64 re re))
(* -1 (* re (+ (* -1/2 (/ im re)) (* -1/6 im))))
(*.f64 (fma.f64 (/.f64 im re) #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) im)) re)
(* im (+ (exp re) (* -1/6 (* (pow im 2) (exp re)))))
(*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal 1 binary64)) (exp.f64 re)) im)
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* 1/120 (* (pow im 2) (exp re)))))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (*.f64 (exp.f64 re) (fma.f64 #s(literal 1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64))) (*.f64 im (exp.f64 re)))
(* im (+ (exp re) (* (pow im 2) (+ (* -1/6 (exp re)) (* (pow im 2) (+ (* -1/5040 (* (pow im 2) (exp re))) (* 1/120 (exp re))))))))
(*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal 1 binary64)) (exp.f64 re) (*.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (exp.f64 re) (fma.f64 #s(literal -1/5040 binary64) (*.f64 im im) #s(literal 1/120 binary64))))) im)
(* im (+ 1 re))
(fma.f64 im re im)
(* im (+ 1 (+ re (* (pow im 2) (- (* -1/6 re) 1/6)))))
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)
(* im (+ 1 (+ re (* (pow im 2) (- (+ (* -1/6 re) (* (pow im 2) (+ 1/120 (* 1/120 re)))) 1/6)))))
(fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)
(* im (+ 1 (+ re (* (pow im 2) (- (+ (* -1/6 re) (* (pow im 2) (+ 1/120 (+ (* 1/120 re) (* (pow im 2) (- (* -1/5040 re) 1/5040)))))) 1/6)))))
(fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)
(* im (+ 1 (* -1/6 (pow im 2))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(* im (+ 1 (* (pow im 2) (- (* 1/120 (pow im 2)) 1/6))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 im im)) #s(literal 1/6 binary64)) im)
(* im (+ 1 (* (pow im 2) (- (* (pow im 2) (+ 1/120 (* -1/5040 (pow im 2)))) 1/6))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 im im) #s(literal 1/120 binary64)) im) im) #s(literal 1/6 binary64)) im)
(* im (+ 1 (* re (+ 1 (* re (+ 1/2 (* 1/6 re)))))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64)) im)
(* im (+ 1 (* re (+ 1/2 (* 1/6 re)))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) im)
(pow im 3)
(pow.f64 im #s(literal 3 binary64))
(* im (+ 1/2 (* 1/6 re)))
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im)
(* -1/6 (pow im 3))
(*.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64))
(* (pow im 3) (- (/ 1 (pow im 2)) 1/6))
(*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 im im)) #s(literal 1/6 binary64)) (pow.f64 im #s(literal 3 binary64)))
(* -1 (* im (- (* -1 re) 1)))
(fma.f64 im re im)
(* -1 (* im (- (* re (- (* -1 (* re (+ 1/2 (* 1/6 re)))) 1)) 1)))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) re #s(literal -1/2 binary64)) re #s(literal -1 binary64)) re #s(literal -1 binary64)) (neg.f64 im))
(* -1 (* im (- (* -1 (* re (+ 1/2 (* 1/6 re)))) 1)))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) im)
(* -1 (* (pow im 3) (- 1/6 (/ 1 (pow im 2)))))
(*.f64 (pow.f64 (neg.f64 im) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 im im))))

rewrite103.0ms (1.2%)

Memory
-20.7MiB live, 73.2MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037237
056237
1188237
01336233
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
21 → 160
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(sin.f64 im)
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) im) (fma.f64 im re im))
(fma.f64 im re im)
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im)
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im))
(fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)
(fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im)
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
#s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(pow.f64 im #s(literal 3 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))
Outputs
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
(*.f64 (+.f64 re #s(literal 1 binary64)) (sin.f64 im))
(/.f64 (-.f64 (pow.f64 (sin.f64 im) #s(literal 2 binary64)) (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64))) (-.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64)) (pow.f64 (sin.f64 im) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 (sin.f64 im) re) (sin.f64 im))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (sin.f64 im) (-.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64)) (pow.f64 (sin.f64 im) #s(literal 2 binary64))) (-.f64 (*.f64 (sin.f64 im) re) (sin.f64 im)))
(/.f64 (+.f64 (pow.f64 (sin.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 3 binary64))) (fma.f64 (sin.f64 im) (sin.f64 im) (-.f64 (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64)) (*.f64 re (pow.f64 (sin.f64 im) #s(literal 2 binary64))))))
(/.f64 (+.f64 (pow.f64 (sin.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 3 binary64))) (fma.f64 (sin.f64 im) (-.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64))))
(fma.f64 (sin.f64 im) re (sin.f64 im))
(fma.f64 re (sin.f64 im) (sin.f64 im))
(-.f64 (/.f64 (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64)) (-.f64 (*.f64 (sin.f64 im) re) (sin.f64 im))) (/.f64 (pow.f64 (sin.f64 im) #s(literal 2 binary64)) (-.f64 (*.f64 (sin.f64 im) re) (sin.f64 im))))
(-.f64 (sin.f64 im) (*.f64 (neg.f64 (sin.f64 im)) re))
(-.f64 (sin.f64 im) (*.f64 (neg.f64 re) (sin.f64 im)))
(+.f64 (/.f64 (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 3 binary64)) (fma.f64 (sin.f64 im) (-.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sin.f64 im) #s(literal 3 binary64)) (fma.f64 (sin.f64 im) (-.f64 (sin.f64 im) (*.f64 (sin.f64 im) re)) (pow.f64 (*.f64 (sin.f64 im) re) #s(literal 2 binary64)))))
(+.f64 (*.f64 (sin.f64 im) re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(sin.f64 im)
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) im) (fma.f64 im re im))
(*.f64 (+.f64 re #s(literal 1 binary64)) im)
(/.f64 (-.f64 (*.f64 im im) (pow.f64 (*.f64 im re) #s(literal 2 binary64))) (-.f64 im (*.f64 im re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 im re) #s(literal 2 binary64)) (*.f64 im im))) (neg.f64 (-.f64 (*.f64 im re) im)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 im re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (neg.f64 (fma.f64 im (-.f64 im (*.f64 im re)) (pow.f64 (*.f64 im re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 im re) #s(literal 2 binary64)) (*.f64 im im)) (-.f64 (*.f64 im re) im))
(/.f64 (+.f64 (pow.f64 (*.f64 im re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 im im (-.f64 (pow.f64 (*.f64 im re) #s(literal 2 binary64)) (*.f64 (*.f64 im re) im))))
(/.f64 (+.f64 (pow.f64 (*.f64 im re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 im (-.f64 im (*.f64 im re)) (pow.f64 (*.f64 im re) #s(literal 2 binary64))))
(fma.f64 im re im)
(fma.f64 re im im)
(-.f64 (/.f64 (pow.f64 (*.f64 im re) #s(literal 2 binary64)) (-.f64 (*.f64 im re) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 im re) im)))
(-.f64 im (*.f64 (neg.f64 im) re))
(-.f64 im (*.f64 (neg.f64 re) im))
(+.f64 (/.f64 (pow.f64 (*.f64 im re) #s(literal 3 binary64)) (fma.f64 im (-.f64 im (*.f64 im re)) (pow.f64 (*.f64 im re) #s(literal 2 binary64)))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 im (-.f64 im (*.f64 im re)) (pow.f64 (*.f64 im re) #s(literal 2 binary64)))))
(+.f64 (*.f64 im re) im)
(+.f64 im (*.f64 im re))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im)
(*.f64 im #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))))
#s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)))
#s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re im)))
#s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re im))
(/.f64 (-.f64 (*.f64 im im) (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64))) (-.f64 im (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64)) (*.f64 im im))) (neg.f64 (-.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) im)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (neg.f64 (fma.f64 im (-.f64 im (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re)) (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64)) (*.f64 im im)) (-.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) im))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 im im (-.f64 (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64)) (*.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) im))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 im (-.f64 im (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re)) (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64))))
(fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re im)
(fma.f64 re (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) im)
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64)) (-.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) im)))
(-.f64 im (*.f64 (neg.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im)) re))
(-.f64 im (*.f64 (neg.f64 re) (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im)))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 3 binary64)) (fma.f64 im (-.f64 im (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re)) (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64)))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 im (-.f64 im (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re)) (pow.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) #s(literal 2 binary64)))))
(+.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re) im)
(+.f64 im (*.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im) re))
(/.f64 (-.f64 (*.f64 im im) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64))) (-.f64 im (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64)) (*.f64 im im))) (neg.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) im)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (neg.f64 (fma.f64 im (-.f64 im (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64)) (*.f64 im im)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) im))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 im im (-.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) im))))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 im (-.f64 im (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64))))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) im im)
(fma.f64 (*.f64 im re) (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im)
(fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re im)
(fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) (*.f64 im re) im)
(fma.f64 im (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) im)
(fma.f64 re (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) im)
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) im)))
(-.f64 im (*.f64 (neg.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im)) re))
(-.f64 im (*.f64 (neg.f64 im) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re)))
(-.f64 im (*.f64 (neg.f64 re) (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 3 binary64)) (fma.f64 im (-.f64 im (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64)))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 im (-.f64 im (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re) im)
(+.f64 im (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im) re))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)) im)))
#s(approx (sin im) (fma.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)) im))
(/.f64 (-.f64 (*.f64 im im) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64))) (-.f64 im (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64)) (*.f64 im im))) (neg.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) im)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64)))) (neg.f64 (fma.f64 im (-.f64 im (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)))) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64)) (*.f64 im im)) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) im))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 im im (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) im))))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 3 binary64)) (pow.f64 im #s(literal 3 binary64))) (fma.f64 im (-.f64 im (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)))) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3/2 binary64))) (pow.f64 im #s(literal 3/2 binary64)) im)
(fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) (*.f64 im im) im)
(fma.f64 (pow.f64 im #s(literal 3/2 binary64)) (*.f64 (pow.f64 im #s(literal 3/2 binary64)) #s(literal -1/6 binary64)) im)
(fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)
(fma.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)) im)
(fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)
(fma.f64 im (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) im)
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) im)) (/.f64 (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) im)))
(-.f64 im (*.f64 #s(literal 1/6 binary64) (pow.f64 im #s(literal 3 binary64))))
(-.f64 im (*.f64 (neg.f64 (pow.f64 im #s(literal 3 binary64))) #s(literal -1/6 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 3 binary64)) (fma.f64 im (-.f64 im (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)))) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64)))) (/.f64 (pow.f64 im #s(literal 3 binary64)) (fma.f64 im (-.f64 im (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64)))) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) #s(literal 2 binary64)))))
(+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))) im)
(+.f64 im (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 3 binary64))))
(*.f64 (neg.f64 (pow.f64 im #s(literal 3/2 binary64))) (neg.f64 (pow.f64 im #s(literal 3/2 binary64))))
(*.f64 (fabs.f64 (pow.f64 im #s(literal 3/2 binary64))) (fabs.f64 (pow.f64 im #s(literal 3/2 binary64))))
(*.f64 (pow.f64 im #s(literal 3/2 binary64)) (pow.f64 im #s(literal 3/2 binary64)))
(*.f64 (*.f64 im im) im)
(*.f64 im (*.f64 im im))
(pow.f64 (exp.f64 (log.f64 im)) #s(literal 3 binary64))
(pow.f64 (pow.f64 im #s(literal 3/2 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 im im) #s(literal 3/2 binary64))
(pow.f64 im #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 im) #s(literal 3 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 im) #s(literal 3 binary64))) (sinh.f64 (*.f64 (log.f64 im) #s(literal 3 binary64))))
(*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re) #s(literal 1 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) (*.f64 re #s(literal 1 binary64)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re)
(*.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))
(*.f64 re (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) #s(literal 1 binary64)))
(*.f64 re (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)))
(/.f64 (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) #s(literal -1 binary64)) re) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64)))
(/.f64 (*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64)) re) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))))
(/.f64 (*.f64 re (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) #s(literal -1 binary64))) (fma.f64 #s(literal 1/2 binary64) re #s(literal -1 binary64)))
(/.f64 (*.f64 re (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/8 binary64) #s(literal 1 binary64))) (fma.f64 (*.f64 re re) #s(literal 1/4 binary64) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) re))))
(fma.f64 #s(literal 1 binary64) re (*.f64 (*.f64 #s(literal 1/2 binary64) re) re))
(fma.f64 (*.f64 #s(literal 1/2 binary64) re) re (*.f64 #s(literal 1 binary64) re))
(fma.f64 re #s(literal 1 binary64) (*.f64 re (*.f64 #s(literal 1/2 binary64) re)))
(fma.f64 re (*.f64 #s(literal 1/2 binary64) re) (*.f64 re #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) re) (*.f64 (*.f64 #s(literal 1/2 binary64) re) re))
(+.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) re) re) (*.f64 #s(literal 1 binary64) re))
(+.f64 (*.f64 re #s(literal 1 binary64)) (*.f64 re (*.f64 #s(literal 1/2 binary64) re)))
(+.f64 (*.f64 re (*.f64 #s(literal 1/2 binary64) re)) (*.f64 re #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))
(/.f64 (neg.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))))
(/.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (*.f64 re #s(literal 1/12 binary64)))))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))
(fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) re))
(fma.f64 re #s(literal 1/6 binary64) #s(literal 1/2 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) re))
(-.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 re) #s(literal 1/6 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))) (/.f64 #s(literal 1/8 binary64) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64))))))
(+.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) re))
(*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) im)
(*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)))
(/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))
(/.f64 (*.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64))) im) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))
(/.f64 (*.f64 im (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64))) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64)))
(/.f64 (*.f64 im (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 3 binary64)))) (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) (-.f64 #s(literal 1/4 binary64) (*.f64 re #s(literal 1/12 binary64)))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) (*.f64 (*.f64 #s(literal 1/2 binary64) im) (*.f64 #s(literal 1/2 binary64) im))) (-.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (*.f64 #s(literal 1/2 binary64) im)))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/2 binary64) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) im) (*.f64 #s(literal 1/2 binary64) im)) (*.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (*.f64 #s(literal 1/2 binary64) im)))))
(fma.f64 (*.f64 im #s(literal 1/6 binary64)) re (*.f64 #s(literal 1/2 binary64) im))
(fma.f64 (*.f64 im re) #s(literal 1/6 binary64) (*.f64 #s(literal 1/2 binary64) im))
(fma.f64 (*.f64 #s(literal 1/6 binary64) re) im (*.f64 #s(literal 1/2 binary64) im))
(fma.f64 #s(literal 1/6 binary64) (*.f64 im re) (*.f64 #s(literal 1/2 binary64) im))
(fma.f64 #s(literal 1/2 binary64) im (*.f64 (*.f64 im re) #s(literal 1/6 binary64)))
(fma.f64 im (*.f64 #s(literal 1/6 binary64) re) (*.f64 #s(literal 1/2 binary64) im))
(fma.f64 im #s(literal 1/2 binary64) (*.f64 (*.f64 im re) #s(literal 1/6 binary64)))
(fma.f64 re (*.f64 #s(literal 1/6 binary64) im) (*.f64 #s(literal 1/2 binary64) im))
(-.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (*.f64 #s(literal -1/2 binary64) im))
(-.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (*.f64 (neg.f64 im) #s(literal 1/2 binary64)))
(+.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (*.f64 #s(literal 1/2 binary64) im))
(+.f64 (*.f64 #s(literal 1/2 binary64) im) (*.f64 (*.f64 im re) #s(literal 1/6 binary64)))

eval61.0ms (0.7%)

Memory
4.3MiB live, 54.2MiB allocated; 12ms collecting garbage
Compiler

Compiled 6 082 to 1 081 computations (82.2% saved)

prune55.0ms (0.6%)

Memory
5.7MiB live, 51.4MiB allocated; 4ms collecting garbage
Pruning

30 alts after pruning (18 fresh and 12 done)

PrunedKeptTotal
New20414218
Fresh347
Picked325
Done11011
Total21130241
Accuracy
100.0%
Counts
241 → 30
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (exp.f64 re) (sin.f64 im))
67.0%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
63.4%
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
51.2%
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
19.7%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
16.3%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
19.8%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im))
16.5%
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
51.2%
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
67.2%
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
37.5%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
33.8%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
27.6%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
22.4%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
11.0%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
26.0%
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
50.4%
#s(approx (* (exp re) (sin im)) (sin.f64 im))
33.1%
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
29.9%
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
31.7%
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
4.3%
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (*.f64 (sin.f64 im) re)))
37.2%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
36.5%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
32.7%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
36.5%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
36.6%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
27.6%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
5.2%
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
30.1%
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
30.1%
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
Compiler

Compiled 1 493 to 634 computations (57.5% saved)

regimes77.0ms (0.9%)

Memory
18.2MiB live, 103.1MiB allocated; 22ms collecting garbage
Counts
39 → 1
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (*.f64 (sin.f64 im) re)))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 (exp.f64 re) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (fma.f64 (sin.f64 im) re (sin.f64 im)))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
Calls

5 calls:

27.0ms
re
18.0ms
(exp.f64 re)
11.0ms
im
10.0ms
(sin.f64 im)
9.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
Results
AccuracySegmentsBranch
100.0%1(sin.f64 im)
100.0%1(exp.f64 re)
100.0%1(*.f64 (exp.f64 re) (sin.f64 im))
100.0%1re
100.0%1im
Compiler

Compiled 11 to 15 computations (-36.4% saved)

regimes67.0ms (0.8%)

Memory
3.4MiB live, 59.6MiB allocated; 26ms collecting garbage
Counts
37 → 4
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (*.f64 (sin.f64 im) re)))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
Outputs
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
Calls

5 calls:

29.0ms
re
10.0ms
im
10.0ms
(sin.f64 im)
9.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
7.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
84.4%3(sin.f64 im)
92.0%2(exp.f64 re)
98.1%4(*.f64 (exp.f64 re) (sin.f64 im))
98.0%4re
83.6%2im
Compiler

Compiled 11 to 15 computations (-36.4% saved)

regimes52.0ms (0.6%)

Memory
-19.6MiB live, 25.9MiB allocated; 8ms collecting garbage
Counts
35 → 4
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (*.f64 (sin.f64 im) re)))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 #s(approx (+ (* (+ (* 1/6 re) 1/2) re) 1) (*.f64 (*.f64 re re) #s(literal 1/6 binary64))) re #s(literal 1 binary64))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
Outputs
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im))
Calls

2 calls:

42.0ms
re
8.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
Results
AccuracySegmentsBranch
97.8%4re
97.6%4(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 6 to 7 computations (-16.7% saved)

regimes17.0ms (0.2%)

Memory
26.0MiB live, 26.0MiB allocated; 0ms collecting garbage
Counts
31 → 5
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (*.f64 (sin.f64 im) re)))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
(*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
Calls

2 calls:

8.0ms
re
7.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
Results
AccuracySegmentsBranch
99.1%5(*.f64 (exp.f64 re) (sin.f64 im))
97.0%4re
Compiler

Compiled 6 to 7 computations (-16.7% saved)

regimes28.0ms (0.3%)

Memory
-31.2MiB live, 13.9MiB allocated; 5ms collecting garbage
Counts
30 → 5
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (*.f64 (sin.f64 im) re)))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) (sin.f64 im))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) (sin.f64 im))
(*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (fma.f64 #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re))) (sin.f64 im))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
(*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
Calls

1 calls:

26.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
Results
AccuracySegmentsBranch
99.1%5(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 5 to 5 computations (0% saved)

regimes8.0ms (0.1%)

Memory
11.8MiB live, 11.8MiB allocated; 0ms collecting garbage
Counts
25 → 5
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (*.f64 (sin.f64 im) re)))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) im)))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))
Calls

1 calls:

6.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
Results
AccuracySegmentsBranch
98.7%5(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 5 to 5 computations (0% saved)

regimes36.0ms (0.4%)

Memory
2.6MiB live, 47.8MiB allocated; 5ms collecting garbage
Counts
23 → 3
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (*.f64 (sin.f64 im) re)))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (sin.f64 im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
Calls

5 calls:

10.0ms
im
7.0ms
(sin.f64 im)
7.0ms
re
6.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
5.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
58.2%3(sin.f64 im)
57.8%2im
61.6%2(exp.f64 re)
61.6%2re
69.1%3(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 11 to 15 computations (-36.4% saved)

regimes53.0ms (0.6%)

Memory
10.6MiB live, 62.8MiB allocated; 9ms collecting garbage
Counts
21 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
Calls

5 calls:

30.0ms
im
6.0ms
(sin.f64 im)
6.0ms
re
5.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
4.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
45.3%2(sin.f64 im)
40.6%2im
37.5%1(exp.f64 re)
37.5%1re
45.4%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 11 to 15 computations (-36.4% saved)

regimes42.0ms (0.5%)

Memory
-7.6MiB live, 38.7MiB allocated; 3ms collecting garbage
Counts
20 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64)) im) im (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) re) #s(literal 1 binary64)) re) #s(literal -1/2 binary64)) (*.f64 re re)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (/.f64 (*.f64 (fma.f64 #s(literal 1/36 binary64) (*.f64 re re) #s(literal -1/4 binary64)) im) (-.f64 (*.f64 #s(literal 1/6 binary64) re) #s(literal 1/2 binary64))) re im) re im)))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
Calls

2 calls:

35.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
6.0ms
(sin.f64 im)
Results
AccuracySegmentsBranch
43.9%2(sin.f64 im)
44.1%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 7 to 8 computations (-14.3% saved)

regimes10.0ms (0.1%)

Memory
24.1MiB live, 24.1MiB allocated; 0ms collecting garbage
Counts
16 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
Calls

2 calls:

5.0ms
(sin.f64 im)
4.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
Results
AccuracySegmentsBranch
42.4%2(sin.f64 im)
42.8%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 7 to 8 computations (-14.3% saved)

regimes43.0ms (0.5%)

Memory
-23.6MiB live, 21.6MiB allocated; 4ms collecting garbage
Counts
15 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im)))
Calls

2 calls:

38.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
5.0ms
(sin.f64 im)
Results
AccuracySegmentsBranch
41.7%2(sin.f64 im)
42.0%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 7 to 8 computations (-14.3% saved)

regimes5.0ms (0.1%)

Memory
10.3MiB live, 10.3MiB allocated; 0ms collecting garbage
Counts
14 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 #s(approx (* im (+ (* 1/6 re) 1/2)) (*.f64 (*.f64 im re) #s(literal 1/6 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) (*.f64 #s(literal 1/6 binary64) re))) re im) re im)))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im)))
Calls

1 calls:

4.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
Results
AccuracySegmentsBranch
41.9%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 5 to 5 computations (0% saved)

regimes40.0ms (0.4%)

Memory
10.1MiB live, 56.2MiB allocated; 4ms collecting garbage
Counts
11 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))
Calls

5 calls:

25.0ms
im
4.0ms
(sin.f64 im)
4.0ms
re
3.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
3.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
33.8%1(exp.f64 re)
33.8%1re
36.9%2im
38.6%2(sin.f64 im)
38.9%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 11 to 15 computations (-36.4% saved)

regimes40.0ms (0.4%)

Memory
-23.8MiB live, 26.0MiB allocated; 8ms collecting garbage
Counts
10 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 im im) (*.f64 im #s(literal -1/6 binary64)) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im re) #s(literal 1/2 binary64) im) re im)))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im #s(approx (+ (* 1/6 re) 1/2) #s(literal 1/2 binary64))) re im) re im)))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
Calls

2 calls:

35.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
3.0ms
(sin.f64 im)
Results
AccuracySegmentsBranch
37.6%2(sin.f64 im)
38.4%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 7 to 8 computations (-14.3% saved)

regimes35.0ms (0.4%)

Memory
-0.4MiB live, 44.1MiB allocated; 4ms collecting garbage
Counts
5 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
Outputs
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im))
Calls

5 calls:

25.0ms
(exp.f64 re)
2.0ms
im
2.0ms
(sin.f64 im)
2.0ms
re
2.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
Results
AccuracySegmentsBranch
33.7%2re
33.7%2(exp.f64 re)
27.6%1im
27.6%1(sin.f64 im)
33.8%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 11 to 15 computations (-36.4% saved)

regimes6.0ms (0.1%)

Memory
20.0MiB live, 20.0MiB allocated; 0ms collecting garbage
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
Outputs
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
Calls

3 calls:

2.0ms
re
2.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
1.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
27.6%1(exp.f64 re)
27.6%1re
27.6%1(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 8 to 10 computations (-25% saved)

regimes32.0ms (0.4%)

Memory
-20.5MiB live, 26.2MiB allocated; 3ms collecting garbage
Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
Calls

5 calls:

26.0ms
(sin.f64 im)
2.0ms
im
2.0ms
re
1.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
1.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
27.6%1im
27.6%1(sin.f64 im)
27.6%1re
27.6%1(exp.f64 re)
27.6%1(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 11 to 15 computations (-36.4% saved)

regimes7.0ms (0.1%)

Memory
19.9MiB live, 19.9MiB allocated; 0ms collecting garbage
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
Outputs
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
Calls

5 calls:

1.0ms
re
1.0ms
(sin.f64 im)
1.0ms
im
1.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
1.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
27.8%2im
26.0%1(sin.f64 im)
27.7%2(exp.f64 re)
27.7%2re
27.7%2(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 11 to 15 computations (-36.4% saved)

regimes5.0ms (0.1%)

Memory
14.1MiB live, 14.1MiB allocated; 0ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
Outputs
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
Calls

5 calls:

1.0ms
(sin.f64 im)
1.0ms
im
1.0ms
re
1.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
1.0ms
(exp.f64 re)
Results
AccuracySegmentsBranch
5.2%1(sin.f64 im)
5.2%1re
5.2%1(exp.f64 re)
5.2%1(*.f64 (exp.f64 re) (sin.f64 im))
5.2%1im
Compiler

Compiled 11 to 15 computations (-36.4% saved)

bsearch1.0ms (0%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9997629019309353
+inf
0.0ms
4.1032397663473224e-96
6.106330451028808e-93
0.0ms
-0.003893073918862787
-0.0
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch83.0ms (0.9%)

Memory
-13.9MiB live, 87.6MiB allocated; 9ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
7.737019784198316e+93
2.1025703142937377e+94
33.0ms
5.1595366699537015
2.6871084755750605e+27
39.0ms
-4.2173099986702434e-5
-4.811488755535847e-15
Samples
63.0ms416×0valid
Compiler

Compiled 681 to 585 computations (14.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 54.0ms
ival-exp: 41.0ms (75.9% of total)
ival-sin: 10.0ms (18.5% of total)
ival-mult: 3.0ms (5.6% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch1.0ms (0%)

Memory
2.1MiB live, 2.0MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9997629019309353
+inf
0.0ms
4.1032397663473224e-96
6.106330451028808e-93
0.0ms
-0.003893073918862787
-0.0
0.0ms
-inf
-63.21694341997816
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch1.0ms (0%)

Memory
1.8MiB live, 1.8MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9997629019309353
+inf
0.0ms
4.1032397663473224e-96
6.106330451028808e-93
0.0ms
-0.003893073918862787
-0.0
0.0ms
-inf
-63.21694341997816
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch1.0ms (0%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9997629019309353
+inf
0.0ms
4.1032397663473224e-96
6.106330451028808e-93
0.0ms
-0.003893073918862787
-0.0
0.0ms
-inf
-63.21694341997816
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9997629019309353
+inf
0.0ms
-inf
-63.21694341997816
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
1.0160367991945642e-297
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
1.0160367991945642e-297
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
1.0160367991945642e-297
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
1.0160367991945642e-297
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.0224110348830295e-7
0.04596363940192659
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
1.0160367991945642e-297
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch13.0ms (0.1%)

Memory
-46.0MiB live, 0.8MiB allocated; 3ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.0224110348830295e-7
0.04596363940192659
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9997629019309353
+inf
Compiler

Compiled 8 to 10 computations (-25% saved)

bsearch19.0ms (0.2%)

Memory
30.6MiB live, 30.6MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
18.0ms
465.46721544179314
2249958170182.6157
Samples
12.0ms160×0valid
Compiler

Compiled 328 to 240 computations (26.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-sin: 6.0ms (74.4% of total)
ival-exp: 1.0ms (12.4% of total)
ival-mult: 1.0ms (12.4% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify113.0ms (1.3%)

Memory
-8.3MiB live, 81.3MiB allocated; 13ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01521047
11911034
23201034
37561034
429011034
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)))))
(if (<=.f64 re #s(literal -6198106008766409/147573952589676412928 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 re #s(literal 5854679515581645/1125899906842624 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im)) (if (<=.f64 re #s(literal 20999999999999998942457719432627585338389414676296292042037510260168864399904375195244594987008 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im)))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 944473296573929/2361183241434822606848 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 944473296573929/2361183241434822606848 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
(if (<=.f64 im #s(literal 1160000000 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)) #s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re)))))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im)) (if (or (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) (not (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)))) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) #s(approx (* (exp re) (sin im)) (sin.f64 im))))
(if (<=.f64 re #s(literal -6198106008766409/147573952589676412928 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 re #s(literal 5854679515581645/1125899906842624 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im)) (if (<=.f64 re #s(literal 20999999999999998942457719432627585338389414676296292042037510260168864399904375195244594987008 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* (+ (* 1/6 re) 1/2) re) 1) re) 1) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re) re))) (sin.f64 im)))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) (sin.f64 im)) (if (or (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) (not (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)))) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) #s(approx (* (exp re) (sin im)) (sin.f64 im)))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (*.f64 #s(approx (exp re) (+.f64 #s(literal 1 binary64) re)) (sin.f64 im)) (if (or (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) (not (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)))) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) #s(approx (* (exp re) (sin im)) (sin.f64 im)))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im)) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (or (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -1152921504606847/576460752303423488 binary64)) (not (or (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 6012269011901013/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712 binary64)) (not (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)))))) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 (exp.f64 re) im))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal -inf.0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) (if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (sin.f64 im)) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/5040 binary64) re) #s(literal 1/5040 binary64)) im) im (fma.f64 #s(literal 1/120 binary64) re #s(literal 1/120 binary64))) (*.f64 im im) (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64))) (*.f64 im im) re) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (+ (* (sin im) re) (sin im)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) re) #s(literal 1/6 binary64)) (*.f64 im im) re) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64)) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 (fma.f64 (*.f64 im (fma.f64 #s(literal 1/6 binary64) re #s(literal 1/2 binary64))) re im) re im))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 944473296573929/2361183241434822606848 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 #s(approx (+ (* (* im (+ (* 1/6 re) 1/2)) re) im) (*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))) re im))))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 0 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (fma.f64 (fma.f64 #s(literal 1/2 binary64) re #s(literal 1 binary64)) re #s(literal 1 binary64))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 944473296573929/2361183241434822606848 binary64)) #s(approx (* (exp re) (sin im)) #s(approx (sin im) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 im im)) im im))) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im)))
(if (<=.f64 (*.f64 (exp.f64 re) (sin.f64 im)) #s(literal 1 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(approx (+ (* (+ (* 1/2 re) 1) re) 1) (*.f64 (*.f64 re re) #s(literal 1/2 binary64)))) im)))
#s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) (-.f64 re #s(literal -1 binary64))) im))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) (fma.f64 im re im)))
(if (<=.f64 im #s(literal 1160000000 binary64)) #s(approx (* (exp re) (sin im)) (*.f64 #s(approx (exp re) #s(literal 1 binary64)) im)) #s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re)))))
#s(approx (* (exp re) (sin im)) #s(approx (* (exp re) im) #s(approx (+ (* im re) im) (*.f64 im re))))

derivations1.6s (17.7%)

Memory
-12.3MiB live, 1 290.6MiB allocated; 193ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0125389
1478372
21811354
36914354
08016310
037237
056237
1188237
01336233
071192
1274181
21066169
35077163
08576143
0123398
1472385
21803369
36880369
08104322
0215740
1798697
23207689
08431616
Stop Event
fuel
iter limit
node limit
iter limit
node limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
iter limit
node limit
Compiler

Compiled 1 040 to 158 computations (84.8% saved)

preprocess139.0ms (1.6%)

Memory
29.1MiB live, 207.7MiB allocated; 30ms collecting garbage
Remove

(negabs im)

Compiler

Compiled 2 110 to 346 computations (83.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...