math.cos on complex, imaginary part

Time bar (total: 10.1s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.9MiB live, 0.9MiB 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 13 to 12 computations (7.7% saved)

sample2.9s (28.7%)

Memory
81.8MiB live, 3 471.5MiB allocated; 672ms collecting garbage
Samples
938.0ms2 863×1valid
808.0ms1 161×2valid
717.0ms4 232×0valid
Precisions
Click to see histograms. Total time spent on operations: 2.0s
ival-exp: 896.0ms (44.2% of total)
ival-sin: 437.0ms (21.5% of total)
adjust: 260.0ms (12.8% of total)
ival-mult: 205.0ms (10.1% of total)
ival-neg: 116.0ms (5.7% of total)
ival-sub: 99.0ms (4.9% of total)
ival-true: 6.0ms (0.3% of total)
exact: 6.0ms (0.3% of total)
ival-assert: 3.0ms (0.1% of total)
Bogosity

explain323.0ms (3.2%)

Memory
-17.8MiB live, 446.9MiB allocated; 180ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1250-0-(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
00-0-(exp.f64 im)
00-0-(neg.f64 im)
01(4.594092219358691e-246 -465.46721544179314)0-(exp.f64 (neg.f64 im))
00-0-(sin.f64 re)
00-0-im
00-0-(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
00-0-(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
00-0-re
00-0-#s(literal 1/2 binary64)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))cancellation1250
exp.f64(exp.f64 (neg.f64 im))sensitivity10
Confusion
Predicted +Predicted -
+1060
-20130
Precision
0.8412698412698413
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+10600
-200130
Precision?
0.8412698412698413
Recall?
1.0
Freqs
test
numberfreq
0130
1126
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
40.0ms78×2valid
39.0ms170×1valid
25.0ms264×0valid
Compiler

Compiled 81 to 34 computations (58% saved)

Precisions
Click to see histograms. Total time spent on operations: 80.0ms
ival-exp: 41.0ms (50.9% of total)
ival-mult: 12.0ms (14.9% of total)
ival-sin: 12.0ms (14.9% of total)
adjust: 8.0ms (9.9% of total)
ival-sub: 4.0ms (5% of total)
ival-neg: 2.0ms (2.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess143.0ms (1.4%)

Memory
-19.8MiB live, 212.0MiB allocated; 36ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02559
17056
217755
374055
4422935
01011
01711
13011
25811
318411
479510
0850510
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))
Symmetry

(negabs re)

Compiler

Compiled 11 to 10 computations (9.1% saved)

eval0.0ms (0%)

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

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
63.6%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 11 to 10 computations (9.1% saved)

simplify179.0ms (1.8%)

Memory
14.8MiB live, 155.5MiB allocated; 42ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sin.f64 re)
cost-diff0
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
cost-diff0
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
cost-diff1
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01033
01733
13033
25833
318433
479531
0850531
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(literal 1/2 binary64)
(sin.f64 re)
re
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(exp.f64 (neg.f64 im))
(neg.f64 im)
im
(exp.f64 im)
Outputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
(*.f64 (sin.f64 re) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(sin.f64 re)
re
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))
(exp.f64 (neg.f64 im))
(neg.f64 im)
im
(exp.f64 im)

localize81.0ms (0.8%)

Memory
16.7MiB live, 105.0MiB allocated; 18ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(exp.f64 (neg.f64 im))
accuracy0.0
(exp.f64 im)
accuracy0.06640625
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
accuracy28.874471314447508
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Samples
42.0ms39×2valid
18.0ms85×1valid
13.0ms132×0valid
Compiler

Compiled 35 to 12 computations (65.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 41.0ms
ival-exp: 19.0ms (46.6% of total)
ival-mult: 8.0ms (19.6% of total)
ival-sin: 6.0ms (14.7% of total)
adjust: 4.0ms (9.8% of total)
ival-sub: 2.0ms (4.9% of total)
ival-neg: 1.0ms (2.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series26.0ms (0.3%)

Memory
-41.8MiB live, 25.9MiB allocated; 22ms collecting garbage
Counts
6 → 36
Calls
Call 1
Inputs
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
(sin.f64 re)
(exp.f64 im)
(exp.f64 (neg.f64 im))
Outputs
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(* 1/2 re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
re
(* re (+ 1 (* -1/6 (pow re 2))))
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(* 1/2 (sin re))
(sin re)
(* -2 im)
(* im (- (* -1/3 (pow im 2)) 2))
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(* -1 (* im (sin re)))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
1
(+ 1 im)
(+ 1 (* im (+ 1 (* 1/2 im))))
(+ 1 (* im (+ 1 (* im (+ 1/2 (* 1/6 im))))))
(+ 1 (* -1 im))
(+ 1 (* im (- (* 1/2 im) 1)))
(+ 1 (* im (- (* im (+ 1/2 (* -1/6 im))) 1)))
(- (exp (neg im)) (exp im))
(exp im)
(exp (neg im))
(- (exp (* -1 im)) (exp im))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(exp (* -1 im))
Calls

6 calls:

TimeVariablePointExpression
20.0ms
im
@-inf
((- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (sin re) (exp im) (exp (neg im)))
1.0ms
im
@0
((- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (sin re) (exp im) (exp (neg im)))
1.0ms
re
@inf
((- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (sin re) (exp im) (exp (neg im)))
1.0ms
re
@0
((- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (sin re) (exp im) (exp (neg im)))
1.0ms
im
@inf
((- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (sin re) (exp im) (exp (neg im)))

simplify189.0ms (1.9%)

Memory
8.7MiB live, 200.7MiB allocated; 23ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0146434
1474401
21628388
35196378
08646348
Stop Event
iter limit
node limit
Counts
36 → 35
Calls
Call 1
Inputs
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(* 1/2 re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
re
(* re (+ 1 (* -1/6 (pow re 2))))
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(* 1/2 (sin re))
(sin re)
(* -2 im)
(* im (- (* -1/3 (pow im 2)) 2))
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(* -1 (* im (sin re)))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
1
(+ 1 im)
(+ 1 (* im (+ 1 (* 1/2 im))))
(+ 1 (* im (+ 1 (* im (+ 1/2 (* 1/6 im))))))
(+ 1 (* -1 im))
(+ 1 (* im (- (* 1/2 im) 1)))
(+ 1 (* im (- (* im (+ 1/2 (* -1/6 im))) 1)))
(- (exp (neg im)) (exp im))
(exp im)
(exp (neg im))
(- (exp (* -1 im)) (exp im))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(exp (* -1 im))
Outputs
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) re))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) (fma.f64 #s(literal 1/240 binary64) (*.f64 re re) #s(literal -1/12 binary64)) #s(literal 1/2 binary64))) re)
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/10080 binary64) (fma.f64 #s(literal 1/240 binary64) (*.f64 re re) #s(literal -1/12 binary64)))) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(*.f64 (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) re)
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/240 binary64) (*.f64 re re)) #s(literal 1/12 binary64)) (*.f64 re re) #s(literal 1/2 binary64)) re)
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/10080 binary64) (-.f64 (*.f64 #s(literal 1/240 binary64) (*.f64 re re)) #s(literal 1/12 binary64))) (*.f64 #s(literal 1/2 binary64) re))
re
(* re (+ 1 (* -1/6 (pow re 2))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re)
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 re re)) #s(literal 1/6 binary64)) re)
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/5040 binary64) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 re re)) #s(literal 1/6 binary64))) re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(*.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(* 1/2 (sin re))
(*.f64 (sin.f64 re) #s(literal 1/2 binary64))
(sin re)
(sin.f64 re)
(* -2 im)
(*.f64 #s(literal -2 binary64) im)
(* im (- (* -1/3 (pow im 2)) 2))
(*.f64 (fma.f64 (*.f64 im im) #s(literal -1/3 binary64) #s(literal -2 binary64)) im)
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(* -1 (* im (sin re)))
(*.f64 (neg.f64 (sin.f64 re)) im)
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(*.f64 (fma.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 (*.f64 im im) #s(literal -1/5040 binary64) #s(literal -1/120 binary64)) #s(literal -1/6 binary64))) (*.f64 im im) (neg.f64 (sin.f64 re))) im)
1
#s(literal 1 binary64)
(+ 1 im)
(+.f64 #s(literal 1 binary64) im)
(+ 1 (* im (+ 1 (* 1/2 im))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) im #s(literal 1 binary64)) im #s(literal 1 binary64))
(+ 1 (* im (+ 1 (* im (+ 1/2 (* 1/6 im))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) im #s(literal 1/2 binary64)) im #s(literal 1 binary64)) im #s(literal 1 binary64))
(+ 1 (* -1 im))
(-.f64 #s(literal 1 binary64) im)
(+ 1 (* im (- (* 1/2 im) 1)))
(fma.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) im) #s(literal 1 binary64)) im #s(literal 1 binary64))
(+ 1 (* im (- (* im (+ 1/2 (* -1/6 im))) 1)))
(fma.f64 (-.f64 (*.f64 (fma.f64 #s(literal -1/6 binary64) im #s(literal 1/2 binary64)) im) #s(literal 1 binary64)) im #s(literal 1 binary64))
(- (exp (neg im)) (exp im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(exp im)
(exp.f64 im)
(exp (neg im))
(exp.f64 (neg.f64 im))
(- (exp (* -1 im)) (exp im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(*.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(exp (* -1 im))
(exp.f64 (neg.f64 im))

rewrite172.0ms (1.7%)

Memory
5.7MiB live, 135.7MiB allocated; 18ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01028
01728
14328
227026
0355726
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
6 → 183
Calls
Call 1
Inputs
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
(sin.f64 re)
(exp.f64 im)
(exp.f64 (neg.f64 im))
Outputs
(*.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (+.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (pow.f64 (exp.f64 im) #s(literal -3 binary64)))) (+.f64 (expm1.f64 (*.f64 #s(literal 2 binary64) im)) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))
(*.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
(*.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (-.f64 (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 4 binary64)) (pow.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) #s(literal 2 binary64)))) (-.f64 (expm1.f64 (*.f64 #s(literal 2 binary64) (neg.f64 im))) (pow.f64 (exp.f64 im) #s(literal 2 binary64))))
(*.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (+.f64 (pow.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 6 binary64)))) (+.f64 (-.f64 (pow.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 4 binary64))))
(*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))
(*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(/.f64 (-.f64 (*.f64 (-.f64 (cosh.f64 im) (exp.f64 im)) (-.f64 (cosh.f64 im) (exp.f64 im))) (pow.f64 (sinh.f64 im) #s(literal 2 binary64))) (+.f64 (-.f64 (cosh.f64 im) (exp.f64 im)) (sinh.f64 im)))
(/.f64 (-.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im)))) (*.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))) (+.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im)))))
(/.f64 (-.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (/.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))) (*.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))) (+.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))
(/.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 2 binary64)) (*.f64 (+.f64 (sinh.f64 im) (exp.f64 im)) (+.f64 (sinh.f64 im) (exp.f64 im)))) (+.f64 (cosh.f64 im) (+.f64 (sinh.f64 im) (exp.f64 im))))
(/.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 2 binary64)) (*.f64 (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)))) (-.f64 (cosh.f64 im) (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im))))
(/.f64 (-.f64 (pow.f64 (-.f64 (cosh.f64 im) (exp.f64 im)) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (fma.f64 (-.f64 (cosh.f64 im) (exp.f64 im)) (-.f64 (cosh.f64 im) (exp.f64 im)) (fma.f64 (sinh.f64 im) (sinh.f64 im) (*.f64 (-.f64 (cosh.f64 im) (exp.f64 im)) (sinh.f64 im)))))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (fma.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (*.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im)))))))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) #s(literal 3 binary64))) (fma.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (/.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (fma.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (*.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))))
(/.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (+.f64 (sinh.f64 im) (exp.f64 im)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 im) (cosh.f64 im) (fma.f64 (+.f64 (sinh.f64 im) (exp.f64 im)) (+.f64 (sinh.f64 im) (exp.f64 im)) (*.f64 (cosh.f64 im) (+.f64 (sinh.f64 im) (exp.f64 im))))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 im) (cosh.f64 im) (-.f64 (*.f64 (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (cosh.f64 im) (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im))))))
(/.f64 (neg.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))))) (neg.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)))))
(/.f64 (neg.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))))) (neg.f64 (neg.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))
(/.f64 (-.f64 (*.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(/.f64 (-.f64 (*.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (pow.f64 (exp.f64 im) #s(literal 3 binary64)))) (*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(/.f64 (-.f64 (*.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (exp.f64 (neg.f64 im))) (*.f64 (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) #s(literal 1 binary64))) (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64))))
(/.f64 (-.f64 (*.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))) (*.f64 (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))))) (*.f64 (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (-.f64 (*.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))) (exp.f64 (neg.f64 im))) (*.f64 (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) #s(literal 1 binary64))) (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))))
(/.f64 (-.f64 (*.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))) (*.f64 (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))))) (*.f64 (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (exp.f64 (neg.f64 im))) (*.f64 (neg.f64 (exp.f64 im)) #s(literal 1 binary64))) #s(literal -1 binary64))
(/.f64 (-.f64 (*.f64 #s(literal -1 binary64) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))) (*.f64 (neg.f64 (exp.f64 im)) (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))))) (*.f64 (neg.f64 (exp.f64 im)) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (-.f64 (*.f64 #s(literal 1 binary64) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))) (*.f64 (exp.f64 im) (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))))) (*.f64 (exp.f64 im) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 4 binary64)) (pow.f64 (exp.f64 im) #s(literal 4 binary64))) (*.f64 (fma.f64 (exp.f64 im) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(/.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 9 binary64)) (pow.f64 (exp.f64 im) #s(literal 9 binary64))) (*.f64 (+.f64 (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 6 binary64)) (+.f64 (pow.f64 (exp.f64 im) #s(literal 6 binary64)) #s(literal 1 binary64))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(/.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 6 binary64)) (pow.f64 (exp.f64 im) #s(literal 6 binary64))) (*.f64 (+.f64 (+.f64 (pow.f64 (exp.f64 im) #s(literal 4 binary64)) #s(literal 1 binary64)) (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 4 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(/.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 6 binary64)) (pow.f64 (exp.f64 im) #s(literal 6 binary64))) (*.f64 (+.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (pow.f64 (exp.f64 im) #s(literal -3 binary64))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (neg.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(/.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im)))
(/.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))
(/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) #s(literal 1 binary64))
(neg.f64 (/.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(neg.f64 (/.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64)))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(neg.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (neg.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)))))
(neg.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (neg.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (+.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (pow.f64 (exp.f64 im) #s(literal -3 binary64)))) (+.f64 (expm1.f64 (*.f64 #s(literal 2 binary64) im)) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (/.f64 (neg.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (/.f64 (neg.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(fma.f64 (/.f64 #s(literal -1 binary64) (exp.f64 im)) (/.f64 (/.f64 #s(literal -1 binary64) (exp.f64 im)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (neg.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(fma.f64 (fabs.f64 (exp.f64 (neg.f64 im))) (/.f64 (fabs.f64 (exp.f64 (neg.f64 im))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (neg.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(fma.f64 (exp.f64 (neg.f64 im)) (/.f64 (exp.f64 (neg.f64 im)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (neg.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(-.f64 (-.f64 (exp.f64 (neg.f64 im)) (sinh.f64 im)) (cosh.f64 im))
(-.f64 (-.f64 (cosh.f64 im) (exp.f64 im)) (sinh.f64 im))
(-.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(-.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(-.f64 (cosh.f64 im) (+.f64 (sinh.f64 im) (exp.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)) (cosh.f64 im))
(+.f64 (/.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) (/.f64 (neg.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(+.f64 (cosh.f64 im) (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (sinh.f64 (neg.f64 im)) (-.f64 (cosh.f64 im) (exp.f64 im)))
(*.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (+.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (pow.f64 (exp.f64 im) #s(literal -3 binary64)))) (+.f64 (expm1.f64 (*.f64 #s(literal 2 binary64) im)) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))
(*.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
(*.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (-.f64 (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 4 binary64)) (pow.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) #s(literal 2 binary64)))) (-.f64 (expm1.f64 (*.f64 #s(literal 2 binary64) (neg.f64 im))) (pow.f64 (exp.f64 im) #s(literal 2 binary64))))
(*.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (+.f64 (pow.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 6 binary64)))) (+.f64 (-.f64 (pow.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))) (pow.f64 (exp.f64 (neg.f64 im)) #s(literal 4 binary64))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) (sin.f64 re))
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
(*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (/.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (/.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(*.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
(*.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))))
(*.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))
(/.f64 (*.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (neg.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(/.f64 (*.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64)))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (neg.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(/.f64 (*.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))))) (neg.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(/.f64 (*.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (neg.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))))) (neg.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(/.f64 (neg.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))) (neg.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im))))
(/.f64 (neg.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))))
(/.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (*.f64 #s(literal 2 binary64) (cosh.f64 im)))
(/.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) #s(literal -3 binary64)) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))
(fma.f64 (cosh.f64 im) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (*.f64 (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))))
(fma.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (cosh.f64 im) (*.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 (cosh.f64 im) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))) (*.f64 (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) #s(literal 1/2 binary64))))
(+.f64 (*.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (cosh.f64 im)) (*.f64 (*.f64 (sin.f64 re) #s(literal 1/2 binary64)) (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
(sin.f64 re)
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(*.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 im)))
(*.f64 #s(literal 1 binary64) (exp.f64 im))
(*.f64 (exp.f64 im) #s(literal 1 binary64))
(*.f64 (exp.f64 (neg.f64 im)) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))
(/.f64 (-.f64 (pow.f64 (sinh.f64 im) #s(literal 2 binary64)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) (-.f64 (sinh.f64 im) (cosh.f64 im)))
(/.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)))) (fma.f64 (cosh.f64 im) (cosh.f64 im) (*.f64 (sinh.f64 (neg.f64 im)) (exp.f64 (neg.f64 im)))))
(/.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 im) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) #s(literal 2 binary64))
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 im) (*.f64 #s(literal 2 binary64) (sinh.f64 im))) #s(literal 2 binary64))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (*.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 im)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 im)))) #s(literal 4 binary64))
(/.f64 (*.f64 (exp.f64 im) (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64)))) (*.f64 (exp.f64 im) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (-.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 2 binary64))
(/.f64 (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))) (fma.f64 (sinh.f64 im) (sinh.f64 im) (-.f64 (pow.f64 (cosh.f64 im) #s(literal 2 binary64)) (*.f64 (sinh.f64 im) (cosh.f64 im)))))
(/.f64 (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(/.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 im)))
(/.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 im)))
(/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (exp.f64 im))
(/.f64 (exp.f64 im) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (sinh.f64 im) (*.f64 #s(literal 1 binary64) (cosh.f64 im)))
(fma.f64 #s(literal 1 binary64) (cosh.f64 im) (*.f64 #s(literal 1 binary64) (sinh.f64 im)))
(fma.f64 (sinh.f64 im) #s(literal 1 binary64) (*.f64 (cosh.f64 im) #s(literal 1 binary64)))
(fma.f64 (cosh.f64 im) #s(literal 1 binary64) (*.f64 (sinh.f64 im) #s(literal 1 binary64)))
(-.f64 (/.f64 (pow.f64 (cosh.f64 im) #s(literal 2 binary64)) (exp.f64 (neg.f64 im))) (/.f64 (pow.f64 (sinh.f64 im) #s(literal 2 binary64)) (exp.f64 (neg.f64 im))))
(-.f64 (cosh.f64 im) (sinh.f64 (neg.f64 im)))
(exp.f64 (+.f64 (fma.f64 #s(literal -1 binary64) im im) im))
(exp.f64 (+.f64 #s(literal 0 binary64) im))
(exp.f64 im)
(+.f64 (*.f64 (sinh.f64 im) #s(literal 1 binary64)) (*.f64 (cosh.f64 im) #s(literal 1 binary64)))
(+.f64 (*.f64 (cosh.f64 im) #s(literal 1 binary64)) (*.f64 (sinh.f64 im) #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) (sinh.f64 im)) (*.f64 #s(literal 1 binary64) (cosh.f64 im)))
(+.f64 (*.f64 #s(literal 1 binary64) (cosh.f64 im)) (*.f64 #s(literal 1 binary64) (sinh.f64 im)))
(+.f64 (/.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(+.f64 (sinh.f64 im) (cosh.f64 im))
(+.f64 (cosh.f64 im) (sinh.f64 im))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (pow.f64 (cosh.f64 im) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 im) (-.f64 (sinh.f64 im) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(*.f64 (pow.f64 (exp.f64 im) #s(literal -1/2 binary64)) (pow.f64 (exp.f64 im) #s(literal -1/2 binary64)))
(*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 im)))
(*.f64 (pow.f64 (exp.f64 im) #s(literal -2 binary64)) (exp.f64 im))
(*.f64 (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64)))
(*.f64 (exp.f64 (neg.f64 im)) #s(literal 1 binary64))
(pow.f64 (exp.f64 im) #s(literal -1 binary64))
(/.f64 (*.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (exp.f64 im)) (*.f64 (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) (exp.f64 im)))
(/.f64 (*.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))) (exp.f64 im)) (*.f64 (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) (exp.f64 im)))
(/.f64 (*.f64 #s(literal -1 binary64) (exp.f64 im)) (neg.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64))))
(/.f64 (*.f64 (exp.f64 im) (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64)))) (*.f64 (exp.f64 im) (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (*.f64 (exp.f64 im) (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64)))) (*.f64 (exp.f64 im) (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (*.f64 (exp.f64 im) #s(literal -1 binary64)) (neg.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (sinh.f64 im) #s(literal 2 binary64)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)))
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 im) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 2 binary64))
(/.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)) (*.f64 #s(literal 2 binary64) (cosh.f64 im))) #s(literal 2 binary64))
(/.f64 (neg.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (neg.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(/.f64 (*.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) #s(literal 1 binary64)) (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(/.f64 (*.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))) #s(literal 1 binary64)) (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(/.f64 (*.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(/.f64 (*.f64 #s(literal 1 binary64) (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 im)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 im)))) #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (*.f64 #s(literal 2 binary64) (sinh.f64 im))) #s(literal 2 binary64))
(/.f64 (-.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(/.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))) (fma.f64 (sinh.f64 im) (sinh.f64 im) (-.f64 (pow.f64 (cosh.f64 im) #s(literal 2 binary64)) (*.f64 (cosh.f64 im) (sinh.f64 (neg.f64 im))))))
(/.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (pow.f64 (cosh.f64 im) #s(literal 3 binary64))) (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64))))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 im)))
(/.f64 #s(literal 1 binary64) (neg.f64 (neg.f64 (exp.f64 im))))
(/.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 im) #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (exp.f64 im))
(/.f64 (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))
(neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 im)))
(fma.f64 (*.f64 (cosh.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 (neg.f64 im)) (*.f64 (*.f64 (sinh.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 (neg.f64 im))))
(fma.f64 #s(literal 1 binary64) (cosh.f64 im) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 im))))
(fma.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 im)) (*.f64 #s(literal 1 binary64) (cosh.f64 im)))
(fma.f64 (cosh.f64 im) #s(literal 1 binary64) (*.f64 (sinh.f64 (neg.f64 im)) #s(literal 1 binary64)))
(fma.f64 (sinh.f64 (neg.f64 im)) #s(literal 1 binary64) (*.f64 (cosh.f64 im) #s(literal 1 binary64)))
(fma.f64 (exp.f64 (neg.f64 im)) (*.f64 (cosh.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (exp.f64 (neg.f64 im)) (*.f64 (sinh.f64 im) (exp.f64 (neg.f64 im)))))
(-.f64 (/.f64 (pow.f64 (cosh.f64 im) #s(literal 2 binary64)) (exp.f64 im)) (/.f64 (pow.f64 (sinh.f64 im) #s(literal 2 binary64)) (exp.f64 im)))
(-.f64 (/.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64)) (fma.f64 (sinh.f64 im) (exp.f64 im) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(-.f64 (cosh.f64 im) (sinh.f64 im))
(exp.f64 (-.f64 (fma.f64 #s(literal -1 binary64) im im) im))
(exp.f64 (fma.f64 #s(literal -1 binary64) im (fma.f64 #s(literal -1 binary64) im im)))
(exp.f64 (fma.f64 #s(literal -1 binary64) im #s(literal 0 binary64)))
(exp.f64 (+.f64 (fma.f64 #s(literal -1 binary64) im im) (neg.f64 im)))
(exp.f64 (+.f64 #s(literal 0 binary64) (neg.f64 im)))
(exp.f64 (*.f64 im #s(literal -1 binary64)))
(exp.f64 (neg.f64 im))
(+.f64 (*.f64 (sinh.f64 (neg.f64 im)) #s(literal 1 binary64)) (*.f64 (cosh.f64 im) #s(literal 1 binary64)))
(+.f64 (*.f64 (cosh.f64 im) #s(literal 1 binary64)) (*.f64 (sinh.f64 (neg.f64 im)) #s(literal 1 binary64)))
(+.f64 (*.f64 (*.f64 (cosh.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 (neg.f64 im))) (*.f64 (*.f64 (sinh.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 im))) (*.f64 #s(literal 1 binary64) (cosh.f64 im)))
(+.f64 (*.f64 #s(literal 1 binary64) (cosh.f64 im)) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 im))))
(+.f64 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 (cosh.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (exp.f64 (neg.f64 im)) (*.f64 (sinh.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (/.f64 (pow.f64 (cosh.f64 im) #s(literal 3 binary64)) (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))) (/.f64 (neg.f64 (pow.f64 (sinh.f64 im) #s(literal 3 binary64))) (fma.f64 (sinh.f64 (neg.f64 im)) (-.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im)) (pow.f64 (cosh.f64 im) #s(literal 2 binary64)))))
(+.f64 (/.f64 (*.f64 (cosh.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)) (/.f64 (*.f64 (sinh.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(+.f64 (cosh.f64 im) (sinh.f64 (neg.f64 im)))
(+.f64 (sinh.f64 (neg.f64 im)) (cosh.f64 im))

eval52.0ms (0.5%)

Memory
-14.0MiB live, 42.3MiB allocated; 14ms collecting garbage
Compiler

Compiled 5 466 to 889 computations (83.7% saved)

prune11.0ms (0.1%)

Memory
16.9MiB live, 16.9MiB allocated; 0ms collecting garbage
Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New20312215
Fresh000
Picked101
Done000
Total20412216
Accuracy
99.9%
Counts
216 → 12
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
40.3%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) #s(approx (exp im) #s(literal 1 binary64))))
36.6%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 #s(approx (exp (neg im)) (-.f64 #s(literal 1 binary64) im)) (exp.f64 im)))
48.7%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))
92.1%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
88.0%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
80.4%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/3 binary64) #s(literal -2 binary64)) im)))
51.2%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
49.8%
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
85.4%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
75.7%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
50.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
Compiler

Compiled 496 to 378 computations (23.8% saved)

simplify183.0ms (1.8%)

Memory
-17.9MiB live, 172.1MiB allocated; 25ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
cost-diff0
(sin.f64 re)
cost-diff0
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
cost-diff0
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
cost-diff0
(sin.f64 re)
cost-diff0
(*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
cost-diff0
(*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
cost-diff0
(sin.f64 re)
cost-diff0
(*.f64 (sin.f64 re) im)
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
cost-diff1
(*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
cost-diff0
(sin.f64 re)
cost-diff0
(neg.f64 (sin.f64 re))
cost-diff0
(*.f64 (neg.f64 (sin.f64 re)) im)
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
cost-diff0
(*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))
cost-diff0
(sin.f64 re)
cost-diff0
(*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
cost-diff4
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048359
078359
1168357
2512355
32019336
08228336
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
(*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
(sin.f64 re)
re
(*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))
#s(literal 2 binary64)
(sinh.f64 (neg.f64 im))
(neg.f64 im)
im
#s(literal 1/2 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (neg.f64 (sin.f64 re)) im)
(neg.f64 (sin.f64 re))
(sin.f64 re)
re
im
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
(*.f64 (sin.f64 re) im)
(sin.f64 re)
re
im
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))
(*.f64 #s(literal -1/6 binary64) im)
#s(literal -1/6 binary64)
#s(literal -1 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
(*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)
(*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
(sin.f64 re)
re
(fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))
(*.f64 im im)
im
(fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64))
#s(literal -1/120 binary64)
#s(literal -1/6 binary64)
#s(literal -1 binary64)
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(literal 1/2 binary64)
(sin.f64 re)
re
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64))
(-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64))
(*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im)
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im)
(-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
#s(literal -1/2520 binary64)
(*.f64 im im)
im
#s(literal 1/60 binary64)
#s(literal 1/3 binary64)
#s(literal -2 binary64)
Outputs
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
(*.f64 (/.f64 (sin.f64 re) #s(literal 1/2 binary64)) (sinh.f64 (neg.f64 im)))
(sin.f64 re)
re
(*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))
(*.f64 (sinh.f64 (neg.f64 im)) #s(literal 2 binary64))
#s(literal 2 binary64)
(sinh.f64 (neg.f64 im))
(neg.f64 im)
im
#s(literal 1/2 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (neg.f64 (sin.f64 re)) im)
(neg.f64 (sin.f64 re))
(sin.f64 re)
re
im
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal 1/6 binary64) im)) (sin.f64 re)))
(*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
(*.f64 (neg.f64 (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal 1/6 binary64) im)) (sin.f64 re))
(*.f64 (sin.f64 re) im)
(*.f64 im (sin.f64 re))
(sin.f64 re)
re
im
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))
(*.f64 #s(literal -1/6 binary64) im)
#s(literal -1/6 binary64)
#s(literal -1 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) (sin.f64 re)))
(*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
(*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) (sin.f64 re))
(sin.f64 re)
re
(fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))
(fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64))
(*.f64 im im)
im
(fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64))
#s(literal -1/120 binary64)
#s(literal -1/6 binary64)
#s(literal -1 binary64)
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(literal 1/2 binary64)
(sin.f64 re)
re
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64))
(-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64))
(*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im)
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im)
(-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
#s(literal -1/2520 binary64)
(*.f64 im im)
im
#s(literal 1/60 binary64)
#s(literal 1/3 binary64)
#s(literal -2 binary64)

localize290.0ms (2.9%)

Memory
28.3MiB live, 227.6MiB allocated; 26ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.13671875
(*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im)
accuracy0.15234375
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im)
accuracy0.16015625
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
accuracy4.965468092278943
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
accuracy0.0625
(fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64))
accuracy0.09765625
(*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)
accuracy2.601341690496053
(*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
accuracy9.710640285713621
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
accuracy0.140625
(*.f64 (sin.f64 re) im)
accuracy0.36328125
(*.f64 #s(literal -1/6 binary64) im)
accuracy0.7590035640294083
(*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
accuracy16.204876352250036
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
accuracy0.0
(sin.f64 re)
accuracy0.0
(neg.f64 (sin.f64 re))
accuracy0.140625
(*.f64 (neg.f64 (sin.f64 re)) im)
accuracy31.423455999241074
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
accuracy0.0
(neg.f64 im)
accuracy0.00390625
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
accuracy0.00390625
(sinh.f64 (neg.f64 im))
accuracy0.06640625
(*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
Samples
153.0ms85×1valid
59.0ms39×2valid
44.0ms132×0valid
Compiler

Compiled 295 to 46 computations (84.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 196.0ms
ival-sub: 76.0ms (38.8% of total)
ival-mult: 37.0ms (18.9% of total)
const: 30.0ms (15.3% of total)
ival-exp: 19.0ms (9.7% of total)
adjust: 17.0ms (8.7% of total)
ival-add: 6.0ms (3.1% of total)
ival-sin: 6.0ms (3.1% of total)
ival-neg: 2.0ms (1% of total)
exact: 1.0ms (0.5% of total)
ival-sinh: 1.0ms (0.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series38.0ms (0.4%)

Memory
-5.8MiB live, 39.7MiB allocated; 5ms collecting garbage
Counts
23 → 106
Calls
Call 1
Inputs
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
(*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
(sin.f64 re)
(*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (neg.f64 (sin.f64 re)) im)
(neg.f64 (sin.f64 re))
(*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 (sin.f64 re) im)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
(*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)
(*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(sinh.f64 (neg.f64 im))
(neg.f64 im)
(*.f64 #s(literal -1/6 binary64) im)
(fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im)
(*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im)
Outputs
(* 1/2 (* re (- (exp (neg im)) (/ 1 (exp (neg im))))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/240 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))))
(* re (- (exp (neg im)) (/ 1 (exp (neg im)))))
(* re (- (+ (exp (neg im)) (* -1/6 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))) (/ 1 (exp (neg im)))))
(* re (- (+ (exp (neg im)) (* (pow re 2) (+ (* -1/6 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/120 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))) (/ 1 (exp (neg im)))))
(* re (- (+ (exp (neg im)) (* (pow re 2) (+ (* -1/6 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/5040 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/120 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))) (/ 1 (exp (neg im)))))
re
(* re (+ 1 (* -1/6 (pow re 2))))
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(* -1 (* im re))
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(* -1 re)
(* re (- (* 1/6 (pow re 2)) 1))
(* re (- (* (pow re 2) (+ 1/6 (* -1/120 (pow re 2)))) 1))
(* re (- (* (pow re 2) (+ 1/6 (* (pow re 2) (- (* 1/5040 (pow re 2)) 1/120)))) 1))
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(* im re)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(* im (* re (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))) (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))
(* re (+ (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* 1/120 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))))))
(* re (+ (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))) (* 1/120 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))))))))
(* re (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(* re (- (+ (* -1/6 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6))) 1))
(* re (- (+ (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) (* (pow re 2) (+ (* -1/6 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* 1/120 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))))) 1))
(* re (- (+ (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) (* (pow re 2) (+ (* -1/6 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/5040 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* 1/120 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))))) 1))
(* 1/2 re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(* 1/2 (* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im))))))
(* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im)))))
(sin re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(* -1 (* im (sin re)))
(* -1 (sin re))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(* im (sin re))
(* im (* (sin re) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))
(* (sin re) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(* 1/2 (sin re))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(* -2 (* im (sin re)))
(* im (+ (* -2 (sin re)) (* -1/3 (* (pow im 2) (sin re)))))
(* im (+ (* -2 (sin re)) (* (pow im 2) (+ (* -1/3 (sin re)) (* -1/60 (* (pow im 2) (sin re)))))))
(* im (+ (* -2 (sin re)) (* (pow im 2) (+ (* -1/3 (sin re)) (* (pow im 2) (+ (* -1/60 (sin re)) (* -1/2520 (* (pow im 2) (sin re)))))))))
(* -2 im)
(* im (- (* -1/3 (pow im 2)) 2))
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re))))
(+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re))))))
(* -1 im)
(* im (- (* -1/6 (pow im 2)) 1))
(* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/5040 (pow im 2)) 1/120)) 1/6)) 1))
(* -1/6 im)
-1/6
(- (* -1/120 (pow im 2)) 1/6)
(* -1/2520 (pow im 2))
(* -1/60 im)
(* im (- (* -1/2520 (pow im 2)) 1/60))
(* -1/60 (pow im 2))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(- (exp (neg im)) (/ 1 (exp (neg im))))
(* -1/6 (* (pow im 3) (sin re)))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(* -1/120 (* (pow im 5) (sin re)))
(* (pow im 5) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re))))
(* (pow im 5) (+ (* -1 (/ (sin re) (pow im 4))) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re)))))
(* -1/120 (* (pow im 4) (sin re)))
(* (pow im 4) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re))))
(* (pow im 4) (+ (* -1 (/ (sin re) (pow im 4))) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re)))))
(- (exp (neg im)) (exp im))
(* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))
(* -1/120 (pow im 2))
(* -1 (* (pow im 2) (+ 1/120 (* 1/6 (/ 1 (pow im 2))))))
(* -1/2520 (pow im 3))
(* -1 (* (pow im 3) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(* -1/2520 (pow im 4))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im))))))
(* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
(- (exp (* -1 im)) (/ 1 (exp (* -1 im))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(* -1 (* (pow im 5) (+ (* 1/120 (sin re)) (* 1/6 (/ (sin re) (pow im 2))))))
(* -1 (* (pow im 5) (+ (* 1/120 (sin re)) (+ (* 1/6 (/ (sin re) (pow im 2))) (/ (sin re) (pow im 4))))))
(- (exp (* -1 im)) (exp im))
(* 1/2 (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
Calls

6 calls:

TimeVariablePointExpression
10.0ms
re
@inf
((* (* (sin re) (* 2 (sinh (neg im)))) 1/2) (* (sin re) (* 2 (sinh (neg im)))) (sin re) (* 2 (sinh (neg im))) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (sinh (neg im)) (neg im) (* -1/6 im) (+ (* -1/120 (* im im)) -1/6) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) im) (* (* (- (* -1/2520 (* im im)) 1/60) im) im))
6.0ms
im
@0
((* (* (sin re) (* 2 (sinh (neg im)))) 1/2) (* (sin re) (* 2 (sinh (neg im)))) (sin re) (* 2 (sinh (neg im))) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (sinh (neg im)) (neg im) (* -1/6 im) (+ (* -1/120 (* im im)) -1/6) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) im) (* (* (- (* -1/2520 (* im im)) 1/60) im) im))
6.0ms
im
@inf
((* (* (sin re) (* 2 (sinh (neg im)))) 1/2) (* (sin re) (* 2 (sinh (neg im)))) (sin re) (* 2 (sinh (neg im))) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (sinh (neg im)) (neg im) (* -1/6 im) (+ (* -1/120 (* im im)) -1/6) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) im) (* (* (- (* -1/2520 (* im im)) 1/60) im) im))
5.0ms
im
@-inf
((* (* (sin re) (* 2 (sinh (neg im)))) 1/2) (* (sin re) (* 2 (sinh (neg im)))) (sin re) (* 2 (sinh (neg im))) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (sinh (neg im)) (neg im) (* -1/6 im) (+ (* -1/120 (* im im)) -1/6) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) im) (* (* (- (* -1/2520 (* im im)) 1/60) im) im))
5.0ms
re
@0
((* (* (sin re) (* 2 (sinh (neg im)))) 1/2) (* (sin re) (* 2 (sinh (neg im)))) (sin re) (* 2 (sinh (neg im))) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (sinh (neg im)) (neg im) (* -1/6 im) (+ (* -1/120 (* im im)) -1/6) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) im) (* (* (- (* -1/2520 (* im im)) 1/60) im) im))

simplify206.0ms (2%)

Memory
19.7MiB live, 200.8MiB allocated; 37ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03831923
113661722
257041703
081331556
Stop Event
iter limit
node limit
Counts
106 → 105
Calls
Call 1
Inputs
(* 1/2 (* re (- (exp (neg im)) (/ 1 (exp (neg im))))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/240 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))))
(* re (- (exp (neg im)) (/ 1 (exp (neg im)))))
(* re (- (+ (exp (neg im)) (* -1/6 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))) (/ 1 (exp (neg im)))))
(* re (- (+ (exp (neg im)) (* (pow re 2) (+ (* -1/6 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/120 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))) (/ 1 (exp (neg im)))))
(* re (- (+ (exp (neg im)) (* (pow re 2) (+ (* -1/6 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/5040 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/120 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))) (/ 1 (exp (neg im)))))
re
(* re (+ 1 (* -1/6 (pow re 2))))
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(* -1 (* im re))
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(* -1 re)
(* re (- (* 1/6 (pow re 2)) 1))
(* re (- (* (pow re 2) (+ 1/6 (* -1/120 (pow re 2)))) 1))
(* re (- (* (pow re 2) (+ 1/6 (* (pow re 2) (- (* 1/5040 (pow re 2)) 1/120)))) 1))
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(* im re)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(* im (* re (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))) (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))
(* re (+ (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* 1/120 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))))))
(* re (+ (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))) (* 1/120 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))))))))
(* re (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(* re (- (+ (* -1/6 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6))) 1))
(* re (- (+ (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) (* (pow re 2) (+ (* -1/6 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* 1/120 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))))) 1))
(* re (- (+ (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) (* (pow re 2) (+ (* -1/6 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/5040 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* 1/120 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))))) 1))
(* 1/2 re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(* 1/2 (* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im))))))
(* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im)))))
(sin re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(* -1 (* im (sin re)))
(* -1 (sin re))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(* im (sin re))
(* im (* (sin re) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))
(* (sin re) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(* 1/2 (sin re))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(* -2 (* im (sin re)))
(* im (+ (* -2 (sin re)) (* -1/3 (* (pow im 2) (sin re)))))
(* im (+ (* -2 (sin re)) (* (pow im 2) (+ (* -1/3 (sin re)) (* -1/60 (* (pow im 2) (sin re)))))))
(* im (+ (* -2 (sin re)) (* (pow im 2) (+ (* -1/3 (sin re)) (* (pow im 2) (+ (* -1/60 (sin re)) (* -1/2520 (* (pow im 2) (sin re)))))))))
(* -2 im)
(* im (- (* -1/3 (pow im 2)) 2))
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re))))
(+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re))))))
(* -1 im)
(* im (- (* -1/6 (pow im 2)) 1))
(* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/5040 (pow im 2)) 1/120)) 1/6)) 1))
(* -1/6 im)
-1/6
(- (* -1/120 (pow im 2)) 1/6)
(* -1/2520 (pow im 2))
(* -1/60 im)
(* im (- (* -1/2520 (pow im 2)) 1/60))
(* -1/60 (pow im 2))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(- (exp (neg im)) (/ 1 (exp (neg im))))
(* -1/6 (* (pow im 3) (sin re)))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(* -1/120 (* (pow im 5) (sin re)))
(* (pow im 5) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re))))
(* (pow im 5) (+ (* -1 (/ (sin re) (pow im 4))) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re)))))
(* -1/120 (* (pow im 4) (sin re)))
(* (pow im 4) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re))))
(* (pow im 4) (+ (* -1 (/ (sin re) (pow im 4))) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re)))))
(- (exp (neg im)) (exp im))
(* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))
(* -1/120 (pow im 2))
(* -1 (* (pow im 2) (+ 1/120 (* 1/6 (/ 1 (pow im 2))))))
(* -1/2520 (pow im 3))
(* -1 (* (pow im 3) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(* -1/2520 (pow im 4))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im))))))
(* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
(- (exp (* -1 im)) (/ 1 (exp (* -1 im))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(* -1 (* (pow im 5) (+ (* 1/120 (sin re)) (* 1/6 (/ (sin re) (pow im 2))))))
(* -1 (* (pow im 5) (+ (* 1/120 (sin re)) (+ (* 1/6 (/ (sin re) (pow im 2))) (/ (sin re) (pow im 4))))))
(- (exp (* -1 im)) (exp im))
(* 1/2 (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
Outputs
(* 1/2 (* re (- (exp (neg im)) (/ 1 (exp (neg im))))))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64))) re)
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal 1/240 binary64) (*.f64 re re) #s(literal -1/12 binary64))) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/240 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))))
(*.f64 (fma.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) (*.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal -1/10080 binary64) (*.f64 re re) #s(literal 1/240 binary64))))) re)
(* re (- (exp (neg im)) (/ 1 (exp (neg im)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)
(* re (- (+ (exp (neg im)) (* -1/6 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))) (/ 1 (exp (neg im)))))
(*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 re re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) re)
(* re (- (+ (exp (neg im)) (* (pow re 2) (+ (* -1/6 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/120 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))) (/ 1 (exp (neg im)))))
(*.f64 (fma.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal 1/120 binary64) (*.f64 re re) #s(literal -1/6 binary64))) (*.f64 re re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) re)
(* re (- (+ (exp (neg im)) (* (pow re 2) (+ (* -1/6 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/5040 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/120 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))) (/ 1 (exp (neg im)))))
(*.f64 (fma.f64 (fma.f64 (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal -1/5040 binary64)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal 1/120 binary64) (*.f64 re re) #s(literal -1/6 binary64)))) (*.f64 re re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) re)
re
(* re (+ 1 (* -1/6 (pow re 2))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re)
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 #s(literal 1/120 binary64) (*.f64 re re) #s(literal -1/6 binary64)) re)
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 re re) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal -1/6 binary64)) re)
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64))) re)
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal 1/240 binary64) (*.f64 re re) #s(literal -1/12 binary64))) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(*.f64 (fma.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) (*.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal -1/10080 binary64) (*.f64 re re) #s(literal 1/240 binary64))))) re)
(* -1 (* im re))
(*.f64 (neg.f64 re) im)
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 #s(literal -1/120 binary64) (*.f64 (*.f64 im re) re) (*.f64 #s(literal 1/6 binary64) im)) (*.f64 (neg.f64 re) im))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 (fma.f64 #s(literal 1/5040 binary64) (*.f64 (*.f64 im re) re) (*.f64 #s(literal -1/120 binary64) im)) re) re (*.f64 #s(literal 1/6 binary64) im)) (*.f64 (neg.f64 re) im))
(* -1 re)
(neg.f64 re)
(* re (- (* 1/6 (pow re 2)) 1))
(*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)
(* re (- (* (pow re 2) (+ 1/6 (* -1/120 (pow re 2)))) 1))
(*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)
(* re (- (* (pow re 2) (+ 1/6 (* (pow re 2) (- (* 1/5040 (pow re 2)) 1/120)))) 1))
(*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(*.f64 (fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) re) re) im) #s(literal -1/6 binary64) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im)) re)
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) #s(literal -1/6 binary64) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) re) re) im) #s(literal 1/120 binary64))) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) #s(literal 1/120 binary64) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) re) re) im) #s(literal -1/5040 binary64))) re) re (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) #s(literal -1/6 binary64))) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re))
(* im re)
(*.f64 im re)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) im)) (*.f64 re re) im) re)
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/5040 binary64) (*.f64 #s(literal 1/120 binary64) im)) re) re (*.f64 #s(literal -1/6 binary64) im)) (*.f64 im re))
(* im (* re (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))
(*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))) (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))
(*.f64 (fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re) re) #s(literal -1/6 binary64)) im (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im)) re)
(* re (+ (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* 1/120 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) #s(literal -1/6 binary64) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re) re) im) #s(literal 1/120 binary64))) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re))
(* re (+ (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))) (* 1/120 (* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) #s(literal 1/120 binary64) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re) re) im) #s(literal -1/5040 binary64))) re) re (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) #s(literal -1/6 binary64))) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re))
(* re (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)
(* re (- (+ (* -1/6 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6))) 1))
(*.f64 (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 re re) #s(literal 1 binary64)) (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64))) re)
(* re (- (+ (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) (* (pow re 2) (+ (* -1/6 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* 1/120 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))))) 1))
(*.f64 (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) (fma.f64 #s(literal 1/120 binary64) (*.f64 re re) #s(literal -1/6 binary64))) (*.f64 re re) (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64))) re)
(* re (- (+ (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) (* (pow re 2) (+ (* -1/6 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)) (* (pow re 2) (+ (* -1/5040 (* (pow re 2) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))) (* 1/120 (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))))))) 1))
(*.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) (fma.f64 #s(literal -1/5040 binary64) (*.f64 re re) #s(literal 1/120 binary64))) (*.f64 re re) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) #s(literal -1/6 binary64))) (*.f64 re re) (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64))) re)
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(*.f64 (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) re)
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/240 binary64) (*.f64 re re)) #s(literal 1/12 binary64)) (*.f64 re re) #s(literal 1/2 binary64)) re)
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/10080 binary64) (*.f64 re re) #s(literal 1/240 binary64)) re) re) #s(literal 1/12 binary64)) (*.f64 #s(literal 1/2 binary64) re))
(* 1/2 (* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im))))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))
(* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re))
(sin re)
(sin.f64 re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))
(* -1 (* im (sin re)))
(*.f64 (neg.f64 (sin.f64 re)) im)
(* -1 (sin re))
(neg.f64 (sin.f64 re))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) (sin.f64 re)) im)
(* im (sin re))
(*.f64 (sin.f64 re) im)
(* im (* (sin re) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1)))
(*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)))
(* (sin re) (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) (sin.f64 re))
(* 1/2 (sin re))
(*.f64 (sin.f64 re) #s(literal 1/2 binary64))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) (sin.f64 re)) im)
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(*.f64 (fma.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64))) (*.f64 im im) (neg.f64 (sin.f64 re))) im)
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) (sin.f64 re) (*.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (sin.f64 re) (fma.f64 (*.f64 #s(literal -1/5040 binary64) im) im #s(literal -1/120 binary64))))) im)
(* -2 (* im (sin re)))
(*.f64 (*.f64 #s(literal -2 binary64) (sin.f64 re)) im)
(* im (+ (* -2 (sin re)) (* -1/3 (* (pow im 2) (sin re)))))
(*.f64 (*.f64 (sin.f64 re) (fma.f64 #s(literal -1/3 binary64) (*.f64 im im) #s(literal -2 binary64))) im)
(* im (+ (* -2 (sin re)) (* (pow im 2) (+ (* -1/3 (sin re)) (* -1/60 (* (pow im 2) (sin re)))))))
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (*.f64 (sin.f64 re) (fma.f64 (*.f64 #s(literal -1/60 binary64) im) im #s(literal -1/3 binary64))) (*.f64 (*.f64 #s(literal -2 binary64) (sin.f64 re)) im))
(* im (+ (* -2 (sin re)) (* (pow im 2) (+ (* -1/3 (sin re)) (* (pow im 2) (+ (* -1/60 (sin re)) (* -1/2520 (* (pow im 2) (sin re)))))))))
(*.f64 (fma.f64 (sin.f64 re) (fma.f64 #s(literal -1/3 binary64) (*.f64 im im) #s(literal -2 binary64)) (*.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (sin.f64 re) (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64))))) im)
(* -2 im)
(*.f64 #s(literal -2 binary64) im)
(* im (- (* -1/3 (pow im 2)) 2))
(*.f64 (fma.f64 #s(literal -1/3 binary64) (*.f64 im im) #s(literal -2 binary64)) im)
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re))))
(*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) (sin.f64 re))
(+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re))))))
(fma.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64))) (*.f64 im im) (neg.f64 (sin.f64 re)))
(* -1 im)
(neg.f64 im)
(* im (- (* -1/6 (pow im 2)) 1))
(*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im)
(* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im)
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/5040 (pow im 2)) 1/120)) 1/6)) 1))
(*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/5040 binary64)) #s(literal 1/120 binary64)) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im)
(* -1/6 im)
(*.f64 #s(literal -1/6 binary64) im)
-1/6
#s(literal -1/6 binary64)
(- (* -1/120 (pow im 2)) 1/6)
(fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64))
(* -1/2520 (pow im 2))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(* -1/60 im)
(*.f64 #s(literal -1/60 binary64) im)
(* im (- (* -1/2520 (pow im 2)) 1/60))
(*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im)
(* -1/60 (pow im 2))
(*.f64 #s(literal -1/60 binary64) (*.f64 im im))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im)
(- (exp (neg im)) (/ 1 (exp (neg im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(* -1/6 (* (pow im 3) (sin re)))
(*.f64 (*.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64)) (sin.f64 re))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(*.f64 (fma.f64 #s(literal -1/6 binary64) (sin.f64 re) (/.f64 (neg.f64 (sin.f64 re)) (*.f64 im im))) (pow.f64 im #s(literal 3 binary64)))
(* -1/120 (* (pow im 5) (sin re)))
(*.f64 (*.f64 (pow.f64 im #s(literal 5 binary64)) #s(literal -1/120 binary64)) (sin.f64 re))
(* (pow im 5) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/6 binary64) im) (/.f64 (sin.f64 re) im) (*.f64 #s(literal -1/120 binary64) (sin.f64 re))) (pow.f64 im #s(literal 5 binary64)))
(* (pow im 5) (+ (* -1 (/ (sin re) (pow im 4))) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re)))))
(*.f64 (neg.f64 (pow.f64 im #s(literal 5 binary64))) (fma.f64 #s(literal 1/120 binary64) (sin.f64 re) (fma.f64 (/.f64 #s(literal 1/6 binary64) im) (/.f64 (sin.f64 re) im) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 4 binary64))))))
(* -1/120 (* (pow im 4) (sin re)))
(*.f64 (*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/120 binary64)) (sin.f64 re))
(* (pow im 4) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re))))
(*.f64 (pow.f64 im #s(literal 4 binary64)) (fma.f64 (/.f64 #s(literal -1/6 binary64) im) (/.f64 (sin.f64 re) im) (*.f64 #s(literal -1/120 binary64) (sin.f64 re))))
(* (pow im 4) (+ (* -1 (/ (sin re) (pow im 4))) (+ (* -1/6 (/ (sin re) (pow im 2))) (* -1/120 (sin re)))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/6 binary64) im) (/.f64 (sin.f64 re) im) (fma.f64 #s(literal -1/120 binary64) (sin.f64 re) (/.f64 (neg.f64 (sin.f64 re)) (pow.f64 im #s(literal 4 binary64))))) (pow.f64 im #s(literal 4 binary64)))
(- (exp (neg im)) (exp im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) #s(literal 1/2 binary64))
(* -1/120 (pow im 2))
(*.f64 (*.f64 im im) #s(literal -1/120 binary64))
(* -1 (* (pow im 2) (+ 1/120 (* 1/6 (/ 1 (pow im 2))))))
(*.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/6 binary64) (*.f64 im im)) #s(literal 1/120 binary64)) im) (neg.f64 im))
(* -1/2520 (pow im 3))
(*.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/2520 binary64))
(* -1 (* (pow im 3) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(*.f64 (neg.f64 (+.f64 (/.f64 #s(literal 1/60 binary64) (*.f64 im im)) #s(literal 1/2520 binary64))) (pow.f64 im #s(literal 3 binary64)))
(* -1/2520 (pow im 4))
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/2520 binary64))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(*.f64 (neg.f64 (+.f64 (/.f64 #s(literal 1/60 binary64) (*.f64 im im)) #s(literal 1/2520 binary64))) (pow.f64 im #s(literal 4 binary64)))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im))))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))
(* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re))
(- (exp (* -1 im)) (/ 1 (exp (* -1 im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) #s(literal 1/2 binary64)))
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(*.f64 (fma.f64 #s(literal -1/6 binary64) (sin.f64 re) (/.f64 (neg.f64 (sin.f64 re)) (*.f64 im im))) (pow.f64 im #s(literal 3 binary64)))
(* -1 (* (pow im 5) (+ (* 1/120 (sin re)) (* 1/6 (/ (sin re) (pow im 2))))))
(*.f64 (fma.f64 (/.f64 #s(literal -1/6 binary64) im) (/.f64 (sin.f64 re) im) (*.f64 #s(literal -1/120 binary64) (sin.f64 re))) (pow.f64 im #s(literal 5 binary64)))
(* -1 (* (pow im 5) (+ (* 1/120 (sin re)) (+ (* 1/6 (/ (sin re) (pow im 2))) (/ (sin re) (pow im 4))))))
(*.f64 (neg.f64 (pow.f64 im #s(literal 5 binary64))) (fma.f64 #s(literal 1/120 binary64) (sin.f64 re) (fma.f64 (/.f64 #s(literal 1/6 binary64) im) (/.f64 (sin.f64 re) im) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 4 binary64))))))
(- (exp (* -1 im)) (exp im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(* 1/2 (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) #s(literal 1/2 binary64))

rewrite102.0ms (1%)

Memory
-16.1MiB live, 73.6MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048248
078248
1257227
01839227
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
23 → 221
Calls
Call 1
Inputs
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
(*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))))
(sin.f64 re)
(*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (neg.f64 (sin.f64 re)) im)
(neg.f64 (sin.f64 re))
(*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 (sin.f64 re) im)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
(*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)
(*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(sinh.f64 (neg.f64 im))
(neg.f64 im)
(*.f64 #s(literal -1/6 binary64) im)
(fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im)
(*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im)
Outputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 2 binary64) (sin.f64 re))) (sinh.f64 (neg.f64 im)))
(*.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (*.f64 (sinh.f64 (neg.f64 im)) #s(literal 1/2 binary64)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (sinh.f64 (neg.f64 im))))
(*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (sinh.f64 (neg.f64 im))) #s(literal 1/2 binary64))
(*.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(*.f64 (sin.f64 re) (sinh.f64 (neg.f64 im)))
(/.f64 (*.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re))) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 3 binary64))) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re))) (+.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 3 binary64))) (pow.f64 (exp.f64 im) #s(literal 3 binary64)))) (+.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64)))))
(*.f64 (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)) #s(literal 2 binary64))
(*.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (sinh.f64 (neg.f64 im)))
(*.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) (sin.f64 re))
(*.f64 (sinh.f64 (neg.f64 im)) (*.f64 #s(literal 2 binary64) (sin.f64 re)))
(*.f64 #s(literal 2 binary64) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))))
(/.f64 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 3 binary64))) (pow.f64 (exp.f64 im) #s(literal 3 binary64)))) (+.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im)))) #s(literal 2 binary64))
(neg.f64 (*.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (sinh.f64 im)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 2 binary64) (sin.f64 re))) (sinh.f64 (neg.f64 im)) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(fma.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (*.f64 (sinh.f64 (neg.f64 im)) #s(literal 1/2 binary64)) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(fma.f64 #s(literal 1/2 binary64) (*.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (sinh.f64 (neg.f64 im))) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(fma.f64 (*.f64 (*.f64 #s(literal 2 binary64) (sin.f64 re)) (sinh.f64 (neg.f64 im))) #s(literal 1/2 binary64) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(fma.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(fma.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(fma.f64 (sin.f64 re) (sinh.f64 (neg.f64 im)) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(+.f64 (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)) (*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re)))
(sin.f64 re)
(*.f64 (sinh.f64 (neg.f64 im)) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 (sinh.f64 (/.f64 (+.f64 (neg.f64 im) (neg.f64 im)) #s(literal 2 binary64))) (cosh.f64 (/.f64 (-.f64 (neg.f64 im) (neg.f64 im)) #s(literal 2 binary64)))))
(*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))
(/.f64 (-.f64 (*.f64 (sinh.f64 (neg.f64 im)) (sinh.f64 (neg.f64 im))) (*.f64 (sinh.f64 (neg.f64 im)) (sinh.f64 (neg.f64 im)))) (-.f64 (sinh.f64 (neg.f64 im)) (sinh.f64 (neg.f64 im))))
(/.f64 (+.f64 (pow.f64 (sinh.f64 (neg.f64 im)) #s(literal 3 binary64)) (pow.f64 (sinh.f64 (neg.f64 im)) #s(literal 3 binary64))) (fma.f64 (sinh.f64 (neg.f64 im)) (sinh.f64 (neg.f64 im)) (-.f64 (*.f64 (sinh.f64 (neg.f64 im)) (sinh.f64 (neg.f64 im))) (*.f64 (sinh.f64 (neg.f64 im)) (sinh.f64 (neg.f64 im))))))
(/.f64 (fma.f64 (sinh.f64 (neg.f64 im)) #s(literal 2 binary64) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im)))) #s(literal 2 binary64))
(/.f64 (neg.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))) (pow.f64 (exp.f64 im) #s(literal 2 binary64)))) (neg.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(/.f64 (neg.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 3 binary64))) (pow.f64 (exp.f64 im) #s(literal 3 binary64)))) (neg.f64 (+.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))))))
(/.f64 (fma.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))))) #s(literal 4 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im)))) #s(literal 2 binary64))
(/.f64 (*.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))) (pow.f64 (exp.f64 im) #s(literal 2 binary64))) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 3 binary64))) (pow.f64 (exp.f64 im) #s(literal 3 binary64))) (+.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64)))))
(neg.f64 (+.f64 (sinh.f64 im) (sinh.f64 im)))
(neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im)))
(neg.f64 (*.f64 (sinh.f64 im) #s(literal 2 binary64)))
(fma.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 im)) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 im))))
(fma.f64 #s(literal 1/2 binary64) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) (sinh.f64 (neg.f64 im)))
(fma.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) #s(literal 1/2 binary64) (sinh.f64 (neg.f64 im)))
(fma.f64 (sinh.f64 (neg.f64 im)) #s(literal 1 binary64) (sinh.f64 (neg.f64 im)))
(fma.f64 #s(literal 2 binary64) (*.f64 (sinh.f64 (neg.f64 im)) #s(literal 1/2 binary64)) (sinh.f64 (neg.f64 im)))
(fma.f64 #s(literal 2 binary64) (/.f64 (sinh.f64 (neg.f64 im)) #s(literal 2 binary64)) (sinh.f64 (neg.f64 im)))
(-.f64 (-.f64 (exp.f64 (neg.f64 im)) (cosh.f64 im)) (sinh.f64 im))
(-.f64 (/.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(-.f64 (/.f64 (exp.f64 (*.f64 (neg.f64 im) #s(literal 3 binary64))) (+.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))))) (/.f64 (pow.f64 (exp.f64 im) #s(literal 3 binary64)) (+.f64 (fma.f64 (exp.f64 im) (exp.f64 im) #s(literal 1 binary64)) (exp.f64 (*.f64 (neg.f64 im) #s(literal 2 binary64))))))
(-.f64 (cosh.f64 im) (+.f64 (sinh.f64 im) (exp.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 im))) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 im))))
(+.f64 (cosh.f64 im) (-.f64 (sinh.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (sinh.f64 (neg.f64 im)) (sinh.f64 (neg.f64 im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (*.f64 #s(literal -1 binary64) im) (sin.f64 re))
(*.f64 (neg.f64 (sin.f64 re)) im)
(*.f64 #s(literal -1 binary64) (*.f64 im (sin.f64 re)))
(*.f64 (*.f64 im (sin.f64 re)) #s(literal -1 binary64))
(*.f64 (neg.f64 im) (sin.f64 re))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (*.f64 im #s(literal -1 binary64)))
(*.f64 (sin.f64 re) (neg.f64 im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 #s(literal -1 binary64) (sin.f64 re))
(*.f64 (sin.f64 re) #s(literal -1 binary64))
(neg.f64 (sin.f64 re))
(fma.f64 (sin.f64 re) (cos.f64 (PI.f64)) (*.f64 (cos.f64 re) (sin.f64 (PI.f64))))
(sin.f64 (+.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) re) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (neg.f64 re))
(sin.f64 (+.f64 (PI.f64) re))
(-.f64 (*.f64 (cos.f64 re) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (sin.f64 re) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
(cos.f64 (neg.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) re)))
(cos.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) re))
(+.f64 (*.f64 (sin.f64 re) (cos.f64 (PI.f64))) (*.f64 (cos.f64 re) (sin.f64 (PI.f64))))
(*.f64 (*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) (sin.f64 re)) im)
(*.f64 (*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) im) (sin.f64 re))
(*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) (*.f64 im (sin.f64 re)))
(*.f64 (*.f64 im (sin.f64 re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
(*.f64 im (*.f64 (sin.f64 re) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) im))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 im (sin.f64 re))) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
(/.f64 (*.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 im im) #s(literal 3 binary64)) #s(literal -1 binary64)) (*.f64 im (sin.f64 re))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 im (sin.f64 re)) (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64))) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
(/.f64 (*.f64 (*.f64 im (sin.f64 re)) (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 im im) #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im))) (*.f64 (*.f64 (neg.f64 (sin.f64 re)) im) (*.f64 (neg.f64 (sin.f64 re)) im))) (-.f64 (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) (*.f64 (neg.f64 (sin.f64 re)) im)))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 (sin.f64 re)) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) (-.f64 (*.f64 (*.f64 (neg.f64 (sin.f64 re)) im) (*.f64 (neg.f64 (sin.f64 re)) im)) (*.f64 (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) (*.f64 (neg.f64 (sin.f64 re)) im)))))
(fma.f64 (*.f64 (*.f64 im (sin.f64 re)) (*.f64 #s(literal -1/6 binary64) im)) im (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 (*.f64 (*.f64 im (sin.f64 re)) im) (*.f64 #s(literal -1/6 binary64) im) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) (sin.f64 re)) im (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) im) (sin.f64 re) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 (*.f64 #s(literal -1 binary64) im) (sin.f64 re) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(fma.f64 (neg.f64 (sin.f64 re)) im (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(fma.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im (sin.f64 re)) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 #s(literal -1 binary64) (*.f64 im (sin.f64 re)) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) (*.f64 im (*.f64 im (sin.f64 re))) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 im im) (*.f64 im (sin.f64 re))) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 (*.f64 im (sin.f64 re)) (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 (*.f64 im (sin.f64 re)) #s(literal -1 binary64) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(fma.f64 (neg.f64 im) (sin.f64 re) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(fma.f64 im (*.f64 (*.f64 #s(literal -1/6 binary64) im) (*.f64 im (sin.f64 re))) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 im (*.f64 (sin.f64 re) (*.f64 (*.f64 im im) #s(literal -1/6 binary64))) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 im (neg.f64 (sin.f64 re)) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(fma.f64 (sin.f64 re) (*.f64 im (*.f64 (*.f64 im im) #s(literal -1/6 binary64))) (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 (sin.f64 re) (*.f64 im #s(literal -1 binary64)) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(fma.f64 (sin.f64 re) (neg.f64 im) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(-.f64 (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) (*.f64 #s(literal 1 binary64) (*.f64 im (sin.f64 re))))
(-.f64 (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) (*.f64 (*.f64 (neg.f64 (sin.f64 re)) im) #s(literal -1 binary64)))
(+.f64 (*.f64 (neg.f64 (sin.f64 re)) im) (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)))
(+.f64 (*.f64 (*.f64 (*.f64 im (sin.f64 re)) #s(literal -1/6 binary64)) (*.f64 im im)) (*.f64 (neg.f64 (sin.f64 re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) im) (sin.f64 re)))
(*.f64 im (sin.f64 re))
(*.f64 (sin.f64 re) im)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) (sin.f64 re)))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) (sin.f64 re))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) (sin.f64 re)) im)
(*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) (*.f64 im (sin.f64 re)))
(*.f64 (*.f64 im (sin.f64 re)) (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)))
(*.f64 im (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) (sin.f64 re)))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im))
(fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) im (*.f64 (neg.f64 (sin.f64 re)) im))
(fma.f64 im (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 (neg.f64 (sin.f64 re)) im))
(+.f64 (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) im) (*.f64 (neg.f64 (sin.f64 re)) im))
(+.f64 (*.f64 im (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) (sin.f64 re))
(*.f64 (sin.f64 re) (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) #s(literal 2 binary64)) #s(literal 1 binary64)) (sin.f64 re)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) #s(literal -1 binary64)))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) #s(literal 3 binary64)) #s(literal -1 binary64)) (sin.f64 re)) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) #s(literal 2 binary64))))
(/.f64 (*.f64 (sin.f64 re) (-.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) #s(literal 2 binary64)) #s(literal 1 binary64))) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) #s(literal -1 binary64)))
(/.f64 (*.f64 (sin.f64 re) (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im)) (pow.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re))) (*.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re)))) (-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (neg.f64 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) #s(literal 3 binary64)) (pow.f64 (neg.f64 (sin.f64 re)) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (-.f64 (*.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re))) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (neg.f64 (sin.f64 re))))))
(fma.f64 (*.f64 (sin.f64 re) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64))) (*.f64 im im) (neg.f64 (sin.f64 re)))
(fma.f64 (*.f64 (sin.f64 re) (*.f64 im im)) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (neg.f64 (sin.f64 re)))
(fma.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re) (neg.f64 (sin.f64 re)))
(fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (*.f64 (*.f64 im im) (sin.f64 re)) (neg.f64 (sin.f64 re)))
(fma.f64 (*.f64 im im) (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) (sin.f64 re)) (neg.f64 (sin.f64 re)))
(fma.f64 #s(literal -1 binary64) (sin.f64 re) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)))
(fma.f64 (*.f64 im (sin.f64 re)) (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) (neg.f64 (sin.f64 re)))
(fma.f64 im (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) (sin.f64 re)) (neg.f64 (sin.f64 re)))
(fma.f64 (sin.f64 re) (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (neg.f64 (sin.f64 re)))
(fma.f64 (sin.f64 re) #s(literal -1 binary64) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)))
(-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 #s(literal 1 binary64) (sin.f64 re)))
(-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 (neg.f64 (sin.f64 re)) #s(literal -1 binary64)))
(+.f64 (neg.f64 (sin.f64 re)) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)))
(+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (neg.f64 (sin.f64 re)))
(*.f64 (*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) #s(literal 1/2 binary64)) (sin.f64 re))
(*.f64 (*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) (sin.f64 re)) #s(literal 1/2 binary64))
(*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(literal 1/2 binary64) (*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) (sin.f64 re)))
(*.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
(*.f64 (sin.f64 re) #s(literal 1/2 binary64))
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(*.f64 #s(literal 1/2 binary64) (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))))
(*.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) #s(literal 1/2 binary64))
(*.f64 (sinh.f64 (neg.f64 im)) #s(literal 1 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 (sinh.f64 (neg.f64 im)) #s(literal 1/2 binary64)))
(*.f64 #s(literal 2 binary64) (/.f64 (sinh.f64 (neg.f64 im)) #s(literal 2 binary64)))
(/.f64 (neg.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im)))) #s(literal -2 binary64))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 im))) #s(literal 2 binary64))
(sinh.f64 (neg.f64 im))
(neg.f64 (sinh.f64 im))
(-.f64 (/.f64 (exp.f64 (neg.f64 im)) #s(literal 2 binary64)) (/.f64 (exp.f64 im) #s(literal 2 binary64)))
(+.f64 (/.f64 (sinh.f64 (neg.f64 im)) #s(literal 2 binary64)) (/.f64 (sinh.f64 (neg.f64 im)) #s(literal 2 binary64)))
(neg.f64 im)
(*.f64 #s(literal -1/6 binary64) im)
(*.f64 im #s(literal -1/6 binary64))
(/.f64 (-.f64 #s(literal 1/36 binary64) (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64))) (-.f64 #s(literal -1/6 binary64) (*.f64 #s(literal -1/120 binary64) (*.f64 im im))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/36 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal -1/6 binary64))))
(/.f64 (neg.f64 (+.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 3 binary64)))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/36 binary64)) (*.f64 (*.f64 im im) #s(literal 1/720 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/36 binary64)) (-.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal -1/6 binary64)))
(/.f64 (+.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 3 binary64))) (+.f64 #s(literal 1/36 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64)) (*.f64 (*.f64 im im) #s(literal 1/720 binary64)))))
(/.f64 (+.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 3 binary64))) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/36 binary64)) (*.f64 (*.f64 im im) #s(literal 1/720 binary64))))
(fma.f64 (*.f64 #s(literal -1/120 binary64) (fabs.f64 im)) (fabs.f64 im) #s(literal -1/6 binary64))
(fma.f64 (*.f64 #s(literal -1/120 binary64) (neg.f64 im)) (neg.f64 im) #s(literal -1/6 binary64))
(fma.f64 (*.f64 #s(literal -1/120 binary64) im) im #s(literal -1/6 binary64))
(fma.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) #s(literal -1/120 binary64)) #s(literal -1/6 binary64))
(fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64))
(fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64))
(fma.f64 (neg.f64 im) (*.f64 (neg.f64 im) #s(literal -1/120 binary64)) #s(literal -1/6 binary64))
(fma.f64 im (*.f64 #s(literal -1/120 binary64) im) #s(literal -1/6 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal -1/6 binary64))) (/.f64 #s(literal 1/36 binary64) (-.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal -1/6 binary64))))
(-.f64 #s(literal -1/6 binary64) (*.f64 (neg.f64 (*.f64 #s(literal -1/120 binary64) im)) im))
(-.f64 #s(literal -1/6 binary64) (*.f64 #s(literal 1/120 binary64) (*.f64 im im)))
(-.f64 #s(literal -1/6 binary64) (*.f64 (neg.f64 (*.f64 im im)) #s(literal -1/120 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/36 binary64)) (*.f64 (*.f64 im im) #s(literal 1/720 binary64)))) (/.f64 #s(literal -1/216 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/36 binary64)) (*.f64 (*.f64 im im) #s(literal 1/720 binary64)))))
(+.f64 (*.f64 #s(literal -1/120 binary64) (*.f64 im im)) #s(literal -1/6 binary64))
(+.f64 #s(literal -1/6 binary64) (*.f64 #s(literal -1/120 binary64) (*.f64 im im)))
(*.f64 (*.f64 #s(literal -1/2520 binary64) (fabs.f64 im)) (fabs.f64 im))
(*.f64 (*.f64 #s(literal -1/2520 binary64) (neg.f64 im)) (neg.f64 im))
(*.f64 (*.f64 #s(literal -1/2520 binary64) im) im)
(*.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) #s(literal -1/2520 binary64)))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (*.f64 im im) #s(literal -1/2520 binary64))
(*.f64 (neg.f64 im) (*.f64 (neg.f64 im) #s(literal -1/2520 binary64)))
(*.f64 im (*.f64 #s(literal -1/2520 binary64) im))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im)
(*.f64 im (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/3600 binary64)) im) (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal 1/60 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 3 binary64)) #s(literal 1/216000 binary64)) im) (+.f64 (fma.f64 (*.f64 im im) #s(literal -1/151200 binary64) #s(literal 1/3600 binary64)) (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 2 binary64))))
(/.f64 (*.f64 im (-.f64 (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/3600 binary64))) (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal 1/60 binary64)))
(/.f64 (*.f64 im (-.f64 (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 3 binary64)) #s(literal 1/216000 binary64))) (+.f64 (fma.f64 (*.f64 im im) #s(literal -1/151200 binary64) #s(literal 1/3600 binary64)) (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 2 binary64))))
(*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (fabs.f64 im)) (fabs.f64 im))
(*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (neg.f64 im)) (neg.f64 im))
(*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im)
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
(*.f64 (*.f64 im im) (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)))
(*.f64 im (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 2 binary64)) #s(literal 1/3600 binary64)) (*.f64 im im)) (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal 1/60 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 3 binary64)) #s(literal 1/216000 binary64)) (*.f64 im im)) (+.f64 (fma.f64 (*.f64 im im) #s(literal -1/151200 binary64) #s(literal 1/3600 binary64)) (pow.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 2 binary64))))

eval54.0ms (0.5%)

Memory
-29.4MiB live, 76.6MiB allocated; 15ms collecting garbage
Compiler

Compiled 9 953 to 1 459 computations (85.3% saved)

prune19.0ms (0.2%)

Memory
6.3MiB live, 53.0MiB allocated; 2ms collecting garbage
Pruning

18 alts after pruning (16 fresh and 2 done)

PrunedKeptTotal
New32215337
Fresh617
Picked325
Done000
Total33118349
Accuracy
99.9%
Counts
349 → 18
Alt Table
Click to see full alt table
StatusAccuracyProgram
48.7%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))
92.1%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
99.9%
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
58.7%
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
37.9%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) #s(literal 3 binary64)) (pow.f64 (neg.f64 (sin.f64 re)) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (-.f64 (*.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re))) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (neg.f64 (sin.f64 re)))))) im))
75.7%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
50.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
52.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
48.0%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) im)) (*.f64 re re) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
48.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
45.3%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
38.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
37.2%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
38.4%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
32.0%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
55.4%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
50.1%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
38.5%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
Compiler

Compiled 1 172 to 734 computations (37.4% saved)

simplify190.0ms (1.9%)

Memory
31.3MiB live, 216.7MiB allocated; 18ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
cost-diff0
(sin.f64 re)
cost-diff0
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
cost-diff0
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
cost-diff0
#s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re))
cost-diff0
(*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
cost-diff2
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)
cost-diff0
(fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im))
cost-diff0
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re))
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
cost-diff2
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)
cost-diff0
(neg.f64 re)
cost-diff0
#s(approx (neg (sin re)) (neg.f64 re))
cost-diff0
(*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im)
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
cost-diff0
(sin.f64 re)
cost-diff0
(neg.f64 im)
cost-diff0
(sinh.f64 (neg.f64 im))
cost-diff0
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051391
081391
1152391
2369391
31055391
43437366
08245362
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(sinh.f64 (neg.f64 im))
(neg.f64 im)
im
(sin.f64 re)
re
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im)
#s(approx (neg (sin re)) (neg.f64 re))
(neg.f64 re)
re
im
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re))
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)
(fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im))
(*.f64 (*.f64 im re) re)
(*.f64 im re)
im
re
#s(literal 1/6 binary64)
(neg.f64 im)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
#s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re))
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)
(fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im)
(*.f64 (*.f64 im re) re)
(*.f64 im re)
im
re
#s(literal -1/6 binary64)
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))
(*.f64 #s(literal -1/6 binary64) im)
#s(literal -1 binary64)
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(literal 1/2 binary64)
(sin.f64 re)
re
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64))
(-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
(-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
#s(literal -1/2520 binary64)
(*.f64 im im)
im
#s(literal 1/60 binary64)
#s(literal 1/3 binary64)
#s(literal -2 binary64)
Outputs
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(*.f64 (sin.f64 re) (sinh.f64 (neg.f64 im)))
(sinh.f64 (neg.f64 im))
(neg.f64 im)
im
(sin.f64 re)
re
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im)
#s(approx (neg (sin re)) (neg.f64 re))
(neg.f64 re)
re
im
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 im (fma.f64 #s(literal 1/6 binary64) (pow.f64 re #s(literal 3 binary64)) (neg.f64 re)))))
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re))
#s(approx (* (neg (sin re)) im) (*.f64 im (fma.f64 #s(literal 1/6 binary64) (pow.f64 re #s(literal 3 binary64)) (neg.f64 re))))
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)
(*.f64 im (fma.f64 #s(literal 1/6 binary64) (pow.f64 re #s(literal 3 binary64)) (neg.f64 re)))
(fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re) (neg.f64 im))
(*.f64 (*.f64 im re) re)
(*.f64 (*.f64 re im) re)
(*.f64 im re)
(*.f64 re im)
im
re
#s(literal 1/6 binary64)
(neg.f64 im)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 im (fma.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 3 binary64)) re)))))
(*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
(*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 im (fma.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 3 binary64)) re))))
#s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re))
#s(approx (* (sin re) im) (*.f64 im (fma.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 3 binary64)) re)))
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)
(*.f64 im (fma.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 3 binary64)) re))
(fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im)
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im)
(*.f64 (*.f64 im re) re)
(*.f64 (*.f64 re im) re)
(*.f64 im re)
(*.f64 re im)
im
re
#s(literal -1/6 binary64)
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))
(*.f64 #s(literal -1/6 binary64) im)
#s(literal -1 binary64)
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (- (exp (neg im)) (exp im)) (fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 #s(literal -2 binary64) im))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(literal 1/2 binary64)
(sin.f64 re)
re
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
#s(approx (- (exp (neg im)) (exp im)) (fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 #s(literal -2 binary64) im)))
(*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 #s(literal -2 binary64) im))
(fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64))
(fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64))
(-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64))
(-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
(*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im)
(-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64))
(-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (*.f64 im im) #s(literal -1/2520 binary64))
#s(literal -1/2520 binary64)
(*.f64 im im)
im
#s(literal 1/60 binary64)
#s(literal 1/3 binary64)
#s(literal -2 binary64)

localize300.0ms (3%)

Memory
-3.9MiB live, 240.3MiB allocated; 36ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.06640625
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
accuracy0.13671875
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
accuracy0.16015625
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
accuracy4.965468092278943
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
accuracy0.36328125
(*.f64 #s(literal -1/6 binary64) im)
accuracy0.7590035640294083
(*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
accuracy16.204876352250036
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
accuracy31.250857287671725
#s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re))
accuracy0.11328125
(fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im))
accuracy0.14453125
(*.f64 (*.f64 im re) re)
accuracy31.250857287671725
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re))
accuracy31.423455999241074
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
accuracy0.0
(neg.f64 re)
accuracy0.140625
(*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im)
accuracy31.423455999241074
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
accuracy31.52362003291412
#s(approx (neg (sin re)) (neg.f64 re))
accuracy0.0
(sin.f64 re)
accuracy0.0
(neg.f64 im)
accuracy0.00390625
(sinh.f64 (neg.f64 im))
accuracy0.06640625
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
Samples
121.0ms85×1valid
94.0ms39×2valid
53.0ms132×0valid
Compiler

Compiled 269 to 45 computations (83.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 239.0ms
ival-mult: 62.0ms (25.9% of total)
ival-add: 49.0ms (20.5% of total)
const: 47.0ms (19.6% of total)
ival-sub: 31.0ms (13% of total)
ival-exp: 19.0ms (7.9% of total)
adjust: 17.0ms (7.1% of total)
ival-sin: 9.0ms (3.8% of total)
ival-neg: 3.0ms (1.3% of total)
ival-sinh: 2.0ms (0.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series71.0ms (0.7%)

Memory
-19.1MiB live, 28.1MiB allocated; 10ms collecting garbage
Counts
23 → 82
Calls
Call 1
Inputs
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(sinh.f64 (neg.f64 im))
(neg.f64 im)
(sin.f64 re)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im)
#s(approx (neg (sin re)) (neg.f64 re))
(neg.f64 re)
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re))
(fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im))
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
#s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(*.f64 (*.f64 im re) re)
(*.f64 #s(literal -1/6 binary64) im)
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
Outputs
(* 1/2 (* re (- (exp (neg im)) (/ 1 (exp (neg im))))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/240 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))))
re
(* re (+ 1 (* -1/6 (pow re 2))))
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(* -1 (* im re))
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(* -1 re)
(* re (- (* 1/6 (pow re 2)) 1))
(* re (- (* (pow re 2) (+ 1/6 (* -1/120 (pow re 2)))) 1))
(* re (- (* (pow re 2) (+ 1/6 (* (pow re 2) (- (* 1/5040 (pow re 2)) 1/120)))) 1))
(* -1 im)
(- (* 1/6 (* im (pow re 2))) im)
(* im re)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(* 1/2 re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(* im (pow re 2))
(* 1/2 (* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im))))))
(sin re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(* -1 (* im (sin re)))
(* -1 (sin re))
(* 1/6 (* im (pow re 3)))
(* (pow re 3) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(* 1/6 (* im (pow re 2)))
(* (pow re 2) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(* -1/6 (* im (pow re 3)))
(* (pow re 3) (+ (* -1/6 im) (/ im (pow re 2))))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(* im (sin re))
(* 1/2 (sin re))
(* -1 (* (pow re 3) (+ (* -1/6 im) (/ im (pow re 2)))))
(* -1 (* (pow re 3) (+ (* -1 (/ im (pow re 2))) (* 1/6 im))))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(* im (- (* -1/6 (pow im 2)) 1))
(* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/5040 (pow im 2)) 1/120)) 1/6)) 1))
(* im (* re (- (* 1/6 (pow re 2)) 1)))
(* im (- (* 1/6 (pow re 2)) 1))
(* im (* re (+ 1 (* -1/6 (pow re 2)))))
(* -2 im)
(* im (- (* -1/3 (pow im 2)) 2))
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(* -1/6 im)
(* -1/2520 (pow im 2))
(* -1/60 (pow im 2))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))
(* -1/6 (* (pow im 3) (sin re)))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(- (exp (neg im)) (exp im))
(* -1/2520 (pow im 4))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im))))))
(* 1/2 (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(* -1 (* im (* re (+ 1 (* -1/6 (pow re 2))))))
(* -1 (* im (+ 1 (* -1/6 (pow re 2)))))
(* -1 (* im (* re (- (* 1/6 (pow re 2)) 1))))
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(- (exp (* -1 im)) (exp im))
Calls

6 calls:

TimeVariablePointExpression
52.0ms
im
@0
((* (sinh (neg im)) (sin re)) (sinh (neg im)) (neg im) (sin re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (neg re) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (+ (* (* (* im re) re) 1/6) (neg im)) (* (+ (* (* (* im re) re) -1/6) im) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (* (* im re) re) (* -1/6 im) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)))
4.0ms
im
@inf
((* (sinh (neg im)) (sin re)) (sinh (neg im)) (neg im) (sin re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (neg re) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (+ (* (* (* im re) re) 1/6) (neg im)) (* (+ (* (* (* im re) re) -1/6) im) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (* (* im re) re) (* -1/6 im) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)))
4.0ms
im
@-inf
((* (sinh (neg im)) (sin re)) (sinh (neg im)) (neg im) (sin re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (neg re) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (+ (* (* (* im re) re) 1/6) (neg im)) (* (+ (* (* (* im re) re) -1/6) im) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (* (* im re) re) (* -1/6 im) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)))
3.0ms
re
@-inf
((* (sinh (neg im)) (sin re)) (sinh (neg im)) (neg im) (sin re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (neg re) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (+ (* (* (* im re) re) 1/6) (neg im)) (* (+ (* (* (* im re) re) -1/6) im) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (* (* im re) re) (* -1/6 im) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)))
3.0ms
re
@inf
((* (sinh (neg im)) (sin re)) (sinh (neg im)) (neg im) (sin re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg (sin re)) (neg re) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (+ (* (* (* im re) re) 1/6) (neg im)) (* (+ (* (* (* im re) re) -1/6) im) re) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (- (exp (neg im)) (exp im)) (* (* im re) re) (* -1/6 im) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)))

simplify157.0ms (1.6%)

Memory
9.6MiB live, 101.0MiB allocated; 10ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02891205
19811079
238841027
08116954
Stop Event
iter limit
node limit
Counts
82 → 81
Calls
Call 1
Inputs
(* 1/2 (* re (- (exp (neg im)) (/ 1 (exp (neg im))))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/240 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))))
re
(* re (+ 1 (* -1/6 (pow re 2))))
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(* -1 (* im re))
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(* -1 re)
(* re (- (* 1/6 (pow re 2)) 1))
(* re (- (* (pow re 2) (+ 1/6 (* -1/120 (pow re 2)))) 1))
(* re (- (* (pow re 2) (+ 1/6 (* (pow re 2) (- (* 1/5040 (pow re 2)) 1/120)))) 1))
(* -1 im)
(- (* 1/6 (* im (pow re 2))) im)
(* im re)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(* 1/2 re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(* im (pow re 2))
(* 1/2 (* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im))))))
(sin re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(* -1 (* im (sin re)))
(* -1 (sin re))
(* 1/6 (* im (pow re 3)))
(* (pow re 3) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(* 1/6 (* im (pow re 2)))
(* (pow re 2) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(* -1/6 (* im (pow re 3)))
(* (pow re 3) (+ (* -1/6 im) (/ im (pow re 2))))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(* im (sin re))
(* 1/2 (sin re))
(* -1 (* (pow re 3) (+ (* -1/6 im) (/ im (pow re 2)))))
(* -1 (* (pow re 3) (+ (* -1 (/ im (pow re 2))) (* 1/6 im))))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(* im (- (* -1/6 (pow im 2)) 1))
(* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/5040 (pow im 2)) 1/120)) 1/6)) 1))
(* im (* re (- (* 1/6 (pow re 2)) 1)))
(* im (- (* 1/6 (pow re 2)) 1))
(* im (* re (+ 1 (* -1/6 (pow re 2)))))
(* -2 im)
(* im (- (* -1/3 (pow im 2)) 2))
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(* -1/6 im)
(* -1/2520 (pow im 2))
(* -1/60 (pow im 2))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))
(* -1/6 (* (pow im 3) (sin re)))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(- (exp (neg im)) (exp im))
(* -1/2520 (pow im 4))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im))))))
(* 1/2 (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(* -1 (* im (* re (+ 1 (* -1/6 (pow re 2))))))
(* -1 (* im (+ 1 (* -1/6 (pow re 2)))))
(* -1 (* im (* re (- (* 1/6 (pow re 2)) 1))))
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(- (exp (* -1 im)) (exp im))
Outputs
(* 1/2 (* re (- (exp (neg im)) (/ 1 (exp (neg im))))))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64))) re)
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im))))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal 1/240 binary64) (*.f64 re re) #s(literal -1/12 binary64))) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(* re (+ (* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (/ 1 (exp (neg im))))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (/ 1 (exp (neg im)))))) (* 1/240 (- (exp (neg im)) (/ 1 (exp (neg im)))))))))))
(*.f64 (fma.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) (*.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal -1/10080 binary64) (*.f64 re re) #s(literal 1/240 binary64))))) re)
re
(* re (+ 1 (* -1/6 (pow re 2))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re)
(* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 re re)) #s(literal 1/6 binary64)) re)
(* re (+ 1 (* (pow re 2) (- (* (pow re 2) (+ 1/120 (* -1/5040 (pow re 2)))) 1/6))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 re re) #s(literal 1/120 binary64)) re) re) #s(literal 1/6 binary64)) re)
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64))) re)
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal 1/240 binary64) (*.f64 re re) #s(literal -1/12 binary64))) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(*.f64 (fma.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) (*.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal -1/10080 binary64) (*.f64 re re) #s(literal 1/240 binary64))))) re)
(* -1 (* im re))
(*.f64 (neg.f64 re) im)
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(*.f64 (neg.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re)) im)
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im (*.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 im (fma.f64 (*.f64 #s(literal 1/5040 binary64) re) re #s(literal -1/120 binary64))))) re)
(* -1 re)
(neg.f64 re)
(* re (- (* 1/6 (pow re 2)) 1))
(neg.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re))
(* re (- (* (pow re 2) (+ 1/6 (* -1/120 (pow re 2)))) 1))
(*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)
(* re (- (* (pow re 2) (+ 1/6 (* (pow re 2) (- (* 1/5040 (pow re 2)) 1/120)))) 1))
(*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)
(* -1 im)
(neg.f64 im)
(- (* 1/6 (* im (pow re 2))) im)
(*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)
(* im re)
(*.f64 re im)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re) im)
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(*.f64 (*.f64 im (fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) re) re) #s(literal -1/6 binary64) (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)))) re)
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal -1/6 binary64) (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64))) im (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) re) re) im) (fma.f64 #s(literal -1/5040 binary64) (*.f64 re re) #s(literal 1/120 binary64)))) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(*.f64 (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im) re)
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 (*.f64 im (fma.f64 #s(literal -1/5040 binary64) (*.f64 re re) #s(literal 1/120 binary64))) re) re (*.f64 #s(literal -1/6 binary64) im)) (*.f64 re im))
(* 1/2 re)
(*.f64 #s(literal 1/2 binary64) re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(*.f64 (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) re)
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/240 binary64) (*.f64 re re)) #s(literal 1/12 binary64)) (*.f64 re re) #s(literal 1/2 binary64)) re)
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/10080 binary64) (*.f64 re re) #s(literal 1/240 binary64)) re) re) #s(literal 1/12 binary64)) (*.f64 #s(literal 1/2 binary64) re))
(* im (pow re 2))
(*.f64 (*.f64 re im) re)
(* 1/2 (* (sin re) (- (exp (neg im)) (/ 1 (exp (neg im))))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) #s(literal 1/2 binary64))
(sin re)
(sin.f64 re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) #s(literal 1/2 binary64))
(* -1 (* im (sin re)))
(*.f64 (neg.f64 (sin.f64 re)) im)
(* -1 (sin re))
(neg.f64 (sin.f64 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 (/ im (pow re 2))) (* 1/6 im)))
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))
(* 1/6 (* im (pow re 2)))
(*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))
(* (pow re 2) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1 binary64) (*.f64 re re)) #s(literal -1/6 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) (/ im (pow re 2))))
(*.f64 (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))) (pow.f64 re #s(literal 3 binary64)))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(*.f64 (sin.f64 re) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) (neg.f64 im)))
(* im (sin re))
(*.f64 (sin.f64 re) im)
(* 1/2 (sin re))
(*.f64 (sin.f64 re) #s(literal 1/2 binary64))
(* -1 (* (pow re 3) (+ (* -1/6 im) (/ im (pow re 2)))))
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))
(* -1 (* (pow re 3) (+ (* -1 (/ im (pow re 2))) (* 1/6 im))))
(*.f64 (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))) (pow.f64 re #s(literal 3 binary64)))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(*.f64 (sin.f64 re) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) (neg.f64 im)))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(*.f64 (fma.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64))) (*.f64 im im) (neg.f64 (sin.f64 re))) im)
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) (sin.f64 re) (*.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (sin.f64 re) (fma.f64 (*.f64 #s(literal -1/5040 binary64) im) im #s(literal -1/120 binary64))))) im)
(* im (- (* -1/6 (pow im 2)) 1))
(*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im)
(* im (- (* (pow im 2) (- (* -1/120 (pow im 2)) 1/6)) 1))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/120 binary64)) #s(literal 1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im)
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/5040 (pow im 2)) 1/120)) 1/6)) 1))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/5040 binary64)) #s(literal 1/120 binary64)) im) im) #s(literal 1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im)
(* im (* re (- (* 1/6 (pow re 2)) 1)))
(*.f64 (neg.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re)) im)
(* im (- (* 1/6 (pow re 2)) 1))
(*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)
(* im (* re (+ 1 (* -1/6 (pow re 2)))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re) im)
(* -2 im)
(*.f64 #s(literal -2 binary64) im)
(* im (- (* -1/3 (pow im 2)) 2))
(*.f64 (fma.f64 #s(literal -1/3 binary64) (*.f64 im im) #s(literal -2 binary64)) im)
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(* -1/6 im)
(*.f64 #s(literal -1/6 binary64) im)
(* -1/2520 (pow im 2))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(* -1/60 (pow im 2))
(*.f64 #s(literal -1/60 binary64) (*.f64 im im))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im)
(* 1/2 (- (exp (neg im)) (/ 1 (exp (neg im)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) #s(literal 1/2 binary64))
(* -1/6 (* (pow im 3) (sin re)))
(*.f64 (*.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64)) (sin.f64 re))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(*.f64 (*.f64 (sin.f64 re) (-.f64 (/.f64 (/.f64 #s(literal -1 binary64) im) im) #s(literal 1/6 binary64))) (pow.f64 im #s(literal 3 binary64)))
(- (exp (neg im)) (exp im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(* -1/2520 (pow im 4))
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/2520 binary64))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(*.f64 (+.f64 (/.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal -1/2520 binary64)) (pow.f64 im #s(literal 4 binary64)))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (/ 1 (exp (* -1 im))))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) #s(literal 1/2 binary64))
(* 1/2 (- (exp (* -1 im)) (/ 1 (exp (* -1 im)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) #s(literal 1/2 binary64))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) #s(literal 1/2 binary64))
(* -1 (* im (* re (+ 1 (* -1/6 (pow re 2))))))
(*.f64 (neg.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re)) im)
(* -1 (* im (+ 1 (* -1/6 (pow re 2)))))
(*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)
(* -1 (* im (* re (- (* 1/6 (pow re 2)) 1))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re) im)
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(*.f64 (*.f64 (sin.f64 re) (-.f64 (/.f64 (/.f64 #s(literal -1 binary64) im) im) #s(literal 1/6 binary64))) (pow.f64 im #s(literal 3 binary64)))
(- (exp (* -1 im)) (exp im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

rewrite106.0ms (1.1%)

Memory
15.3MiB live, 61.2MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
051283
081283
1240278
01617278
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
23 → 131
Calls
Call 1
Inputs
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(sinh.f64 (neg.f64 im))
(neg.f64 im)
(sin.f64 re)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im)
#s(approx (neg (sin re)) (neg.f64 re))
(neg.f64 re)
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re))
(fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im))
(*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
#s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(*.f64 (*.f64 im re) re)
(*.f64 #s(literal -1/6 binary64) im)
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
Outputs
(*.f64 (sin.f64 re) (sinh.f64 (neg.f64 im)))
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (sin.f64 re)) #s(literal 2 binary64))
(neg.f64 (*.f64 (sin.f64 re) (sinh.f64 im)))
(neg.f64 (*.f64 (sinh.f64 im) (sin.f64 re)))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal -2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) #s(literal 2 binary64))
(sinh.f64 (neg.f64 im))
(neg.f64 (sinh.f64 im))
(-.f64 (/.f64 (exp.f64 (neg.f64 im)) #s(literal 2 binary64)) (/.f64 (exp.f64 im) #s(literal 2 binary64)))
(neg.f64 im)
(sin.f64 re)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im)
(*.f64 im #s(approx (neg (sin re)) (neg.f64 re)))
#s(approx (neg (sin re)) (neg.f64 re))
(neg.f64 re)
(*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re) (neg.f64 im)) re)
(*.f64 re (fma.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re) (neg.f64 im)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)) (*.f64 im im)) re) (-.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (neg.f64 im)))
(/.f64 (*.f64 (+.f64 (pow.f64 (neg.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 3 binary64))) re) (fma.f64 (neg.f64 im) (-.f64 (neg.f64 im) (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64))))
(/.f64 (*.f64 re (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)) (*.f64 im im))) (-.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (neg.f64 im)))
(/.f64 (*.f64 re (+.f64 (pow.f64 (neg.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 3 binary64)))) (fma.f64 (neg.f64 im) (-.f64 (neg.f64 im) (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))
(fma.f64 re (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (*.f64 re (neg.f64 im)))
(fma.f64 re (neg.f64 im) (*.f64 re (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))))
(fma.f64 (neg.f64 im) re (*.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re))
(+.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re) (*.f64 (neg.f64 im) re))
(+.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re))
(+.f64 (*.f64 re (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))) (*.f64 re (neg.f64 im)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re) (neg.f64 im)) re)))
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re) (neg.f64 im)) re))
(/.f64 (-.f64 (*.f64 im im) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64))) (-.f64 (neg.f64 im) (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (neg.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (neg.f64 im) (-.f64 (neg.f64 im) (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)) (*.f64 im im))) (neg.f64 (-.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (neg.f64 im))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)) (*.f64 im im)) (-.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (neg.f64 im)))
(/.f64 (+.f64 (pow.f64 (neg.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 3 binary64))) (fma.f64 im im (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)) (*.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (neg.f64 im)))))
(/.f64 (+.f64 (pow.f64 (neg.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 3 binary64))) (fma.f64 (neg.f64 im) (-.f64 (neg.f64 im) (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 re im)) re (neg.f64 im))
(fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im))
(fma.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 re im) (neg.f64 im))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re) (neg.f64 im))
(fma.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64) (neg.f64 im))
(fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im))
(fma.f64 re (*.f64 (*.f64 re im) #s(literal 1/6 binary64)) (neg.f64 im))
(fma.f64 re (*.f64 im (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im))
(fma.f64 im (*.f64 (*.f64 re re) #s(literal 1/6 binary64)) (neg.f64 im))
(fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (neg.f64 im))) (/.f64 (*.f64 im im) (-.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (neg.f64 im))))
(-.f64 (neg.f64 im) (*.f64 (neg.f64 (*.f64 (*.f64 re im) re)) #s(literal 1/6 binary64)))
(-.f64 (neg.f64 im) (*.f64 (neg.f64 (*.f64 re im)) (*.f64 #s(literal 1/6 binary64) re)))
(-.f64 (neg.f64 im) (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 3 binary64)) (fma.f64 (neg.f64 im) (-.f64 (neg.f64 im) (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (neg.f64 im) #s(literal 3 binary64)) (fma.f64 (neg.f64 im) (-.f64 (neg.f64 im) (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)))))
(+.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) (neg.f64 im))
(+.f64 (neg.f64 im) (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)))
(*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)
(*.f64 re (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)) (*.f64 im im)) re) (-.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) im))
(/.f64 (*.f64 (+.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 3 binary64))) re) (fma.f64 im (-.f64 im (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re))) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64))))
(/.f64 (*.f64 re (-.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64)) (*.f64 im im))) (-.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) im))
(/.f64 (*.f64 re (+.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 3 binary64)))) (fma.f64 im (-.f64 im (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re))) (pow.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 re im))
(fma.f64 re (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) (*.f64 re im))
(fma.f64 re im (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) re))
(fma.f64 re im (*.f64 re (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re))))
(fma.f64 im re (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) re))
(fma.f64 im re (*.f64 re (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re))))
(+.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) re) (*.f64 re im))
(+.f64 (*.f64 re (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re))) (*.f64 re im))
(+.f64 (*.f64 re im) (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re)) re))
(+.f64 (*.f64 re im) (*.f64 re (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)))
(*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 3 binary64)) #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 2 binary64))))
(/.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64))) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64)))
(/.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) (+.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 im im) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)))) (*.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))) (-.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) #s(literal 3 binary64)) (pow.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (-.f64 (*.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)))) (*.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)))))))
(fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 #s(literal -1 binary64) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) (*.f64 im #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re)) #s(literal -1 binary64) (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 im im) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(fma.f64 im (*.f64 (*.f64 #s(literal -1/6 binary64) im) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(-.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (*.f64 #s(literal 1 binary64) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(-.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (*.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) #s(literal -1 binary64)))
(+.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
(+.f64 (*.f64 (*.f64 (*.f64 im im) #s(literal -1/6 binary64)) #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))))
#s(approx (* (sin re) im) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re im) re) im) re))
(*.f64 (*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) #s(literal 1/2 binary64)) (sin.f64 re))
(*.f64 (*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) (sin.f64 re)) #s(literal 1/2 binary64))
(*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(literal 1/2 binary64) (*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) (sin.f64 re)))
(*.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))))
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
(*.f64 (sin.f64 re) #s(literal 1/2 binary64))
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(*.f64 (*.f64 re re) im)
(*.f64 (*.f64 re im) re)
(*.f64 re (*.f64 re im))
(*.f64 im (*.f64 re re))
(*.f64 #s(literal -1/6 binary64) im)
(*.f64 im #s(literal -1/6 binary64))
(*.f64 (*.f64 #s(literal -1/2520 binary64) (fabs.f64 im)) (fabs.f64 im))
(*.f64 (*.f64 #s(literal -1/2520 binary64) (neg.f64 im)) (neg.f64 im))
(*.f64 (*.f64 #s(literal -1/2520 binary64) im) im)
(*.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) #s(literal -1/2520 binary64)))
(*.f64 (*.f64 im im) #s(literal -1/2520 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (neg.f64 im) (*.f64 (neg.f64 im) #s(literal -1/2520 binary64)))
(*.f64 im (*.f64 #s(literal -1/2520 binary64) im))
(*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) (fabs.f64 im)) (fabs.f64 im))
(*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) (neg.f64 im)) (neg.f64 im))
(*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im)
(*.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64))))
(*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) (*.f64 im im))
(*.f64 (*.f64 im im) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)))
(*.f64 (neg.f64 im) (*.f64 (neg.f64 im) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64))))
(*.f64 im (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64)) #s(literal 1/3600 binary64)) (*.f64 im im)) (fma.f64 (*.f64 im im) #s(literal -1/2520 binary64) #s(literal 1/60 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 3 binary64)) #s(literal 1/216000 binary64)) (*.f64 im im)) (+.f64 (fma.f64 (*.f64 im im) #s(literal -1/151200 binary64) #s(literal 1/3600 binary64)) (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 im im) (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64)) #s(literal 1/3600 binary64))) (fma.f64 (*.f64 im im) #s(literal -1/2520 binary64) #s(literal 1/60 binary64)))
(/.f64 (*.f64 (*.f64 im im) (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 3 binary64)) #s(literal 1/216000 binary64))) (+.f64 (fma.f64 (*.f64 im im) #s(literal -1/151200 binary64) #s(literal 1/3600 binary64)) (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64))))

eval76.0ms (0.8%)

Memory
4.5MiB live, 58.3MiB allocated; 6ms collecting garbage
Compiler

Compiled 7 442 to 968 computations (87% saved)

prune41.0ms (0.4%)

Memory
-2.5MiB live, 40.3MiB allocated; 7ms collecting garbage
Pruning

23 alts after pruning (18 fresh and 5 done)

PrunedKeptTotal
New2019210
Fresh2911
Picked235
Done022
Total20523228
Accuracy
99.9%
Counts
228 → 23
Alt Table
Click to see full alt table
StatusAccuracyProgram
48.7%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))
99.9%
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
58.7%
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
37.9%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) #s(literal 3 binary64)) (pow.f64 (neg.f64 (sin.f64 re)) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (-.f64 (*.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re))) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (neg.f64 (sin.f64 re)))))) im))
75.7%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
50.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
52.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
48.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
45.3%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
38.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
37.2%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
38.4%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
32.0%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
55.4%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
50.1%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
31.0%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
38.5%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im)) re)))
38.5%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)))
38.5%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im)) re)))
37.3%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
38.5%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)) re)))
23.6%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
33.2%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1 binary64) (*.f64 re re)) #s(literal -1/6 binary64))) (*.f64 re re))) re)))
Compiler

Compiled 1 454 to 921 computations (36.7% saved)

simplify203.0ms (2%)

Memory
-5.2MiB live, 178.9MiB allocated; 42ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(neg.f64 re)
cost-diff0
#s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im)))
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
cost-diff2
(*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))
cost-diff0
(*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))
cost-diff0
#s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re)))
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
cost-diff4
(fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))
cost-diff0
(*.f64 im re)
cost-diff0
#s(approx (* (sin re) im) (*.f64 im re))
cost-diff0
(*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
cost-diff0
#s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64)))
cost-diff0
(*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)
cost-diff0
#s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))
cost-diff0
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
cost-diff0
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
cost-diff0
(*.f64 #s(literal 1/2 binary64) re)
cost-diff0
#s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re))
cost-diff0
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064542
097539
1201536
2521533
31747527
45269527
08187520
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 #s(literal 1/2 binary64) re)
#s(literal 1/2 binary64)
re
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
(*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64))
(-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
(-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
#s(literal -1/2520 binary64)
(*.f64 im im)
im
#s(literal 1/60 binary64)
#s(literal 1/3 binary64)
#s(literal -2 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))
(*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)
#s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64)))
(*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))
(*.f64 (*.f64 re im) re)
(*.f64 re im)
re
im
#s(literal 1/6 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
#s(approx (* (sin re) im) (*.f64 im re))
(*.f64 im re)
im
re
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))
(*.f64 #s(literal -1/6 binary64) im)
#s(literal -1/6 binary64)
#s(literal -1 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re)))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))
(*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))
#s(literal 1/6 binary64)
(*.f64 (*.f64 re im) re)
(*.f64 re im)
re
im
(*.f64 (neg.f64 im) re)
(neg.f64 im)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im)))
(*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))
(neg.f64 re)
re
(fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im)
(*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))
im
(fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))
(*.f64 #s(literal 1/120 binary64) re)
#s(literal 1/120 binary64)
#s(literal -1/6 binary64)
(*.f64 re re)
Outputs
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (- (exp (neg im)) (exp im)) (fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 #s(literal -2 binary64) im))) #s(approx (* 1/2 (sin re)) (*.f64 re #s(literal 1/2 binary64))))
#s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re))
#s(approx (* 1/2 (sin re)) (*.f64 re #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) re)
(*.f64 re #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
re
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
#s(approx (- (exp (neg im)) (exp im)) (fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 #s(literal -2 binary64) im)))
(*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(fma.f64 (pow.f64 im #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 #s(literal -2 binary64) im))
(fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64))
(fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64))
(-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64))
(-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
(*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im)
(-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64))
(-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (*.f64 im im) #s(literal -1/2520 binary64))
#s(literal -1/2520 binary64)
(*.f64 im im)
im
#s(literal 1/60 binary64)
#s(literal 1/3 binary64)
#s(literal -2 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) im)) re)))
#s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))
#s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) im)) re))
(*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)
(*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) im)) re)
#s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64)))
#s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) im))
(*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))
(*.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) im)
(*.f64 (*.f64 re im) re)
(*.f64 (*.f64 re re) im)
(*.f64 re im)
(*.f64 im re)
re
im
#s(literal 1/6 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 im re))))
(*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
(*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 im re)))
#s(approx (* (sin re) im) (*.f64 im re))
(*.f64 im re)
im
re
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))
(*.f64 #s(literal -1/6 binary64) im)
#s(literal -1/6 binary64)
#s(literal -1 binary64)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 im (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64)) re))))
#s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re)))
#s(approx (* (neg (sin re)) im) (*.f64 im (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64)) re)))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))
(*.f64 im (-.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64)) re))
(*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))
(*.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) im)
#s(literal 1/6 binary64)
(*.f64 (*.f64 re im) re)
(*.f64 (*.f64 re re) im)
(*.f64 re im)
(*.f64 im re)
re
im
(*.f64 (neg.f64 im) re)
(neg.f64 im)
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) (pow.f64 re #s(literal 3 binary64)) re)) im)))
#s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im)))
#s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) (pow.f64 re #s(literal 3 binary64)) re)) im))
(*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))
(*.f64 (neg.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) (pow.f64 re #s(literal 3 binary64)) re)) im)
(neg.f64 re)
re
(fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im)
(fma.f64 (*.f64 re re) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) im)
(*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))
(*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im)
im
(fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))
(*.f64 #s(literal 1/120 binary64) re)
#s(literal 1/120 binary64)
#s(literal -1/6 binary64)
(*.f64 re re)

localize353.0ms (3.5%)

Memory
-22.8MiB live, 330.4MiB allocated; 111ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.08203125
(*.f64 #s(literal 1/120 binary64) re)
accuracy2.3311502704360296
(*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))
accuracy31.252261331160373
#s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im)))
accuracy31.423455999241074
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
accuracy0.19921875
(*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))
accuracy7.988233774094733
(fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))
accuracy31.250857287671725
#s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re)))
accuracy31.423455999241074
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
accuracy0.36328125
(*.f64 #s(literal -1/6 binary64) im)
accuracy0.7590035640294083
(*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
accuracy16.204876352250036
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
accuracy31.374622787004473
#s(approx (* (sin re) im) (*.f64 im re))
accuracy0.19921875
(*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))
accuracy31.250857287671725
#s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))
accuracy31.287204614808843
#s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64)))
accuracy31.423455999241074
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
accuracy0.13671875
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
accuracy0.16015625
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
accuracy4.965468092278943
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
accuracy31.523317904678823
#s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re))
Samples
118.0ms39×2valid
90.0ms85×1valid
60.0ms132×0valid
Compiler

Compiled 343 to 57 computations (83.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 203.0ms
ival-exp: 70.0ms (34.4% of total)
ival-mult: 51.0ms (25.1% of total)
const: 21.0ms (10.3% of total)
adjust: 20.0ms (9.8% of total)
ival-sin: 16.0ms (7.9% of total)
ival-neg: 10.0ms (4.9% of total)
ival-add: 9.0ms (4.4% of total)
ival-sub: 5.0ms (2.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series33.0ms (0.3%)

Memory
19.5MiB live, 63.7MiB allocated; 6ms collecting garbage
Counts
26 → 70
Calls
Call 1
Inputs
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 #s(literal 1/2 binary64) re)
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))
(*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)
#s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
#s(approx (* (sin re) im) (*.f64 im re))
(*.f64 im re)
(fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re)))
(*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))
(*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im)))
(neg.f64 re)
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
(*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))
(*.f64 #s(literal -1/6 binary64) im)
(*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))
(*.f64 #s(literal 1/120 binary64) re)
Outputs
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(* 1/2 re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(* -1 (* im re))
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(* -1 im)
(- (* 1/6 (* im (pow re 2))) im)
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(* im re)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(* 1/6 (* im (pow re 2)))
(* -1 re)
(* -1/6 im)
(+ (* -1/6 im) (* 1/120 (* im (pow re 2))))
(* 1/120 re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(* 1/2 (sin re))
(* -1 (* im (sin re)))
(* 1/6 (* im (pow re 3)))
(* (pow re 3) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(* (pow re 2) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(* im (sin re))
(* -1/120 (* im (pow re 5)))
(* (pow re 5) (+ (* -1/120 im) (* 1/6 (/ im (pow re 2)))))
(* (pow re 5) (+ (* -1 (/ im (pow re 4))) (+ (* -1/120 im) (* 1/6 (/ im (pow re 2))))))
(* 1/120 (* im (pow re 2)))
(* (pow re 2) (+ (* -1/6 (/ im (pow re 2))) (* 1/120 im)))
(* -1 (* (pow re 3) (+ (* -1/6 im) (/ im (pow re 2)))))
(* -1 (* (pow re 5) (+ (* -1/6 (/ im (pow re 2))) (* 1/120 im))))
(* -1 (* (pow re 5) (+ (* -1/6 (/ im (pow re 2))) (+ (* 1/120 im) (/ im (pow re 4))))))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(* -2 im)
(* im (- (* -1/3 (pow im 2)) 2))
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(* im (* re (- (* 1/6 (pow re 2)) 1)))
(* im (- (* 1/6 (pow re 2)) 1))
(* im (+ (* -1 re) (* 1/6 (pow re 3))))
(* -1 (* im (* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))))
(* -1/2520 (pow im 2))
(* -1/60 (pow im 2))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(* im (- (* 1/120 (pow re 2)) 1/6))
(- (exp (neg im)) (exp im))
(* -1/6 (* (pow im 3) (sin re)))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(* -1/2520 (pow im 4))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(- (exp (* -1 im)) (exp im))
(* -1 (* im (* re (+ 1 (* -1/6 (pow re 2))))))
(* -1 (* im (+ 1 (* -1/6 (pow re 2)))))
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(* -1 (* im (+ re (* -1/6 (pow re 3)))))
(* im (* re (- (* -1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))) 1)))
Calls

6 calls:

TimeVariablePointExpression
9.0ms
im
@0
((* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (* 1/2 re) (- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (+ (* (* (* im re) re) 1/6) (neg im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* im re) (+ (* (* 1/6 (* (* re im) re)) re) (* (neg im) re)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* 1/6 (* (* re im) re)) (* (neg re) (+ (* (* im (+ (* (* 1/120 re) re) -1/6)) (* re re)) im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg re) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)) (* (* (* re im) re) 1/6) (* -1/6 im) (* im (+ (* (* 1/120 re) re) -1/6)) (* 1/120 re))
6.0ms
im
@inf
((* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (* 1/2 re) (- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (+ (* (* (* im re) re) 1/6) (neg im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* im re) (+ (* (* 1/6 (* (* re im) re)) re) (* (neg im) re)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* 1/6 (* (* re im) re)) (* (neg re) (+ (* (* im (+ (* (* 1/120 re) re) -1/6)) (* re re)) im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg re) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)) (* (* (* re im) re) 1/6) (* -1/6 im) (* im (+ (* (* 1/120 re) re) -1/6)) (* 1/120 re))
6.0ms
im
@-inf
((* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (* 1/2 re) (- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (+ (* (* (* im re) re) 1/6) (neg im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* im re) (+ (* (* 1/6 (* (* re im) re)) re) (* (neg im) re)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* 1/6 (* (* re im) re)) (* (neg re) (+ (* (* im (+ (* (* 1/120 re) re) -1/6)) (* re re)) im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg re) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)) (* (* (* re im) re) 1/6) (* -1/6 im) (* im (+ (* (* 1/120 re) re) -1/6)) (* 1/120 re))
4.0ms
re
@inf
((* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (* 1/2 re) (- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (+ (* (* (* im re) re) 1/6) (neg im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* im re) (+ (* (* 1/6 (* (* re im) re)) re) (* (neg im) re)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* 1/6 (* (* re im) re)) (* (neg re) (+ (* (* im (+ (* (* 1/120 re) re) -1/6)) (* re re)) im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg re) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)) (* (* (* re im) re) 1/6) (* -1/6 im) (* im (+ (* (* 1/120 re) re) -1/6)) (* 1/120 re))
4.0ms
re
@-inf
((* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* 1/2 (sin re)) (* 1/2 re) (- (exp (neg im)) (exp im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* (+ (* (* (* im re) re) 1/6) (neg im)) re) (+ (* (* (* im re) re) 1/6) (neg im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (* (sin re) im) (* im re) (+ (* (* 1/6 (* (* re im) re)) re) (* (neg im) re)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (* 1/6 (* (* re im) re)) (* (neg re) (+ (* (* im (+ (* (* 1/120 re) re) -1/6)) (* re re)) im)) (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (* (neg (sin re)) im) (neg re) (* -1/2520 (* im im)) (* (- (* -1/2520 (* im im)) 1/60) (* im im)) (* (* (* re im) re) 1/6) (* -1/6 im) (* im (+ (* (* 1/120 re) re) -1/6)) (* 1/120 re))

simplify171.0ms (1.7%)

Memory
22.5MiB live, 209.0MiB allocated; 19ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0261984
1915931
23622854
08182804
Stop Event
iter limit
node limit
Counts
70 → 70
Calls
Call 1
Inputs
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(* 1/2 re)
(* re (+ 1/2 (* -1/12 (pow re 2))))
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(* -1 (* im re))
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(* -1 im)
(- (* 1/6 (* im (pow re 2))) im)
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(* im re)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(* 1/6 (* im (pow re 2)))
(* -1 re)
(* -1/6 im)
(+ (* -1/6 im) (* 1/120 (* im (pow re 2))))
(* 1/120 re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(* 1/2 (sin re))
(* -1 (* im (sin re)))
(* 1/6 (* im (pow re 3)))
(* (pow re 3) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(* (pow re 2) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(* im (sin re))
(* -1/120 (* im (pow re 5)))
(* (pow re 5) (+ (* -1/120 im) (* 1/6 (/ im (pow re 2)))))
(* (pow re 5) (+ (* -1 (/ im (pow re 4))) (+ (* -1/120 im) (* 1/6 (/ im (pow re 2))))))
(* 1/120 (* im (pow re 2)))
(* (pow re 2) (+ (* -1/6 (/ im (pow re 2))) (* 1/120 im)))
(* -1 (* (pow re 3) (+ (* -1/6 im) (/ im (pow re 2)))))
(* -1 (* (pow re 5) (+ (* -1/6 (/ im (pow re 2))) (* 1/120 im))))
(* -1 (* (pow re 5) (+ (* -1/6 (/ im (pow re 2))) (+ (* 1/120 im) (/ im (pow re 4))))))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(* -2 im)
(* im (- (* -1/3 (pow im 2)) 2))
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(* im (* re (- (* 1/6 (pow re 2)) 1)))
(* im (- (* 1/6 (pow re 2)) 1))
(* im (+ (* -1 re) (* 1/6 (pow re 3))))
(* -1 (* im (* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))))
(* -1/2520 (pow im 2))
(* -1/60 (pow im 2))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(* im (- (* 1/120 (pow re 2)) 1/6))
(- (exp (neg im)) (exp im))
(* -1/6 (* (pow im 3) (sin re)))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(* -1/2520 (pow im 4))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(- (exp (* -1 im)) (exp im))
(* -1 (* im (* re (+ 1 (* -1/6 (pow re 2))))))
(* -1 (* im (+ 1 (* -1/6 (pow re 2)))))
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(* -1 (* im (+ re (* -1/6 (pow re 3)))))
(* im (* re (- (* -1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))) 1)))
Outputs
(* 1/2 (* re (- (exp (neg im)) (exp im))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(* re (+ (* -1/12 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/2 (- (exp (neg im)) (exp im)))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64))) re)
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* 1/240 (* (pow re 2) (- (exp (neg im)) (exp im))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal 1/240 binary64) (*.f64 re re) #s(literal -1/12 binary64))) (*.f64 (*.f64 re #s(literal 1/2 binary64)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(* re (+ (* 1/2 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/12 (- (exp (neg im)) (exp im))) (* (pow re 2) (+ (* -1/10080 (* (pow re 2) (- (exp (neg im)) (exp im)))) (* 1/240 (- (exp (neg im)) (exp im)))))))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 #s(literal -1/10080 binary64) (*.f64 re re) #s(literal 1/240 binary64))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)))) re)
(* 1/2 re)
(*.f64 re #s(literal 1/2 binary64))
(* re (+ 1/2 (* -1/12 (pow re 2))))
(*.f64 (fma.f64 (*.f64 re re) #s(literal -1/12 binary64) #s(literal 1/2 binary64)) re)
(* re (+ 1/2 (* (pow re 2) (- (* 1/240 (pow re 2)) 1/12))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/240 binary64) (*.f64 re re)) #s(literal 1/12 binary64)) (*.f64 re re) #s(literal 1/2 binary64)) re)
(* re (+ 1/2 (* (pow re 2) (- (* (pow re 2) (+ 1/240 (* -1/10080 (pow re 2)))) 1/12))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/10080 binary64) (*.f64 re re) #s(literal 1/240 binary64)) re) re) #s(literal 1/12 binary64)) (*.f64 re #s(literal 1/2 binary64)))
(* -1 (* im re))
(*.f64 (neg.f64 re) im)
(* re (+ (* -1 im) (* 1/6 (* im (pow re 2)))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64) (neg.f64 re)) im)
(* re (+ (* -1 im) (* (pow re 2) (+ (* -1/120 (* im (pow re 2))) (* 1/6 im)))))
(*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))
(* re (+ (* -1 im) (* (pow re 2) (+ (* 1/6 im) (* (pow re 2) (+ (* -1/120 im) (* 1/5040 (* im (pow re 2)))))))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 im (fma.f64 #s(literal 1/5040 binary64) (*.f64 re re) #s(literal -1/120 binary64))) (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)) re)
(* -1 im)
(neg.f64 im)
(- (* 1/6 (* im (pow re 2))) im)
(*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)
(* im (* re (- (* -1/6 (pow im 2)) 1)))
(*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)
(* re (+ (* -1/6 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* im (- (* -1/6 (pow im 2)) 1))))
(*.f64 (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 re re) #s(literal 1 binary64)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im)) re)
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* 1/120 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1))))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re))
(* re (+ (* im (- (* -1/6 (pow im 2)) 1)) (* (pow re 2) (+ (* -1/6 (* im (- (* -1/6 (pow im 2)) 1))) (* (pow re 2) (+ (* -1/5040 (* im (* (pow re 2) (- (* -1/6 (pow im 2)) 1)))) (* 1/120 (* im (- (* -1/6 (pow im 2)) 1)))))))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 4 binary64)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) (*.f64 im (fma.f64 (*.f64 re re) #s(literal -1/5040 binary64) #s(literal 1/120 binary64)))) (*.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 re re) #s(literal 1 binary64)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im))) re)
(* im re)
(*.f64 im re)
(* re (+ im (* -1/6 (* im (pow re 2)))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal -1/6 binary64) re) im)
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* 1/120 (* im (pow re 2)))))))
(*.f64 (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im) re)
(* re (+ im (* (pow re 2) (+ (* -1/6 im) (* (pow re 2) (+ (* -1/5040 (* im (pow re 2))) (* 1/120 im)))))))
(fma.f64 (pow.f64 re #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal -1/5040 binary64) im) (pow.f64 re #s(literal 4 binary64)) (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))) (*.f64 im re))
(* 1/6 (* im (pow re 2)))
(*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))
(* -1 re)
(neg.f64 re)
(* -1/6 im)
(*.f64 #s(literal -1/6 binary64) im)
(+ (* -1/6 im) (* 1/120 (* im (pow re 2))))
(*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))
(* 1/120 re)
(*.f64 #s(literal 1/120 binary64) re)
(* 1/2 (* (sin re) (- (exp (neg im)) (exp im))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) #s(literal 1/2 binary64))
(* 1/2 (sin re))
(*.f64 (sin.f64 re) #s(literal 1/2 binary64))
(* -1 (* im (sin re)))
(*.f64 (neg.f64 (sin.f64 re)) im)
(* 1/6 (* im (pow re 3)))
(*.f64 (*.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64)) im)
(* (pow re 3) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))
(* (pow re 2) (+ (* -1 (/ im (pow re 2))) (* 1/6 im)))
(*.f64 (*.f64 (neg.f64 re) re) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))
(* im (* (sin re) (- (* -1/6 (pow im 2)) 1)))
(*.f64 (sin.f64 re) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) (neg.f64 im)))
(* im (sin re))
(*.f64 im (sin.f64 re))
(* -1/120 (* im (pow re 5)))
(*.f64 (*.f64 (pow.f64 re #s(literal 5 binary64)) im) #s(literal -1/120 binary64))
(* (pow re 5) (+ (* -1/120 im) (* 1/6 (/ im (pow re 2)))))
(*.f64 (*.f64 im (-.f64 (/.f64 #s(literal 1/6 binary64) (*.f64 re re)) #s(literal 1/120 binary64))) (pow.f64 re #s(literal 5 binary64)))
(* (pow re 5) (+ (* -1 (/ im (pow re 4))) (+ (* -1/120 im) (* 1/6 (/ im (pow re 2))))))
(*.f64 (fma.f64 im (-.f64 (/.f64 #s(literal 1/6 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (/.f64 (neg.f64 im) (pow.f64 re #s(literal 4 binary64)))) (pow.f64 re #s(literal 5 binary64)))
(* 1/120 (* im (pow re 2)))
(*.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 re re) im))
(* (pow re 2) (+ (* -1/6 (/ im (pow re 2))) (* 1/120 im)))
(*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1/6 binary64) (*.f64 re re)) #s(literal -1/120 binary64))) (*.f64 re re))
(* -1 (* (pow re 3) (+ (* -1/6 im) (/ im (pow re 2)))))
(*.f64 (pow.f64 (neg.f64 re) #s(literal 3 binary64)) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))
(* -1 (* (pow re 5) (+ (* -1/6 (/ im (pow re 2))) (* 1/120 im))))
(*.f64 (*.f64 im (-.f64 (/.f64 #s(literal 1/6 binary64) (*.f64 re re)) #s(literal 1/120 binary64))) (pow.f64 re #s(literal 5 binary64)))
(* -1 (* (pow re 5) (+ (* -1/6 (/ im (pow re 2))) (+ (* 1/120 im) (/ im (pow re 4))))))
(*.f64 (fma.f64 im (-.f64 (/.f64 #s(literal 1/6 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (/.f64 (neg.f64 im) (pow.f64 re #s(literal 4 binary64)))) (pow.f64 re #s(literal 5 binary64)))
(* im (+ (* -1 (sin re)) (* -1/6 (* (pow im 2) (sin re)))))
(*.f64 (sin.f64 re) (fma.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64) (neg.f64 im)))
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* -1/120 (* (pow im 2) (sin re)))))))
(*.f64 (fma.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64))) (*.f64 im im) (neg.f64 (sin.f64 re))) im)
(* im (+ (* -1 (sin re)) (* (pow im 2) (+ (* -1/6 (sin re)) (* (pow im 2) (+ (* -1/120 (sin re)) (* -1/5040 (* (pow im 2) (sin re)))))))))
(*.f64 (fma.f64 (pow.f64 im #s(literal 4 binary64)) (*.f64 (sin.f64 re) (fma.f64 (*.f64 #s(literal -1/5040 binary64) im) im #s(literal -1/120 binary64))) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) (sin.f64 re))) im)
(* -2 im)
(*.f64 #s(literal -2 binary64) im)
(* im (- (* -1/3 (pow im 2)) 2))
(*.f64 (fma.f64 #s(literal -1/3 binary64) (*.f64 im im) #s(literal -2 binary64)) im)
(* im (- (* (pow im 2) (- (* -1/60 (pow im 2)) 1/3)) 2))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(* im (- (* (pow im 2) (- (* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60)) 1/3)) 2))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)
(* im (* re (- (* 1/6 (pow re 2)) 1)))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64) (neg.f64 re)) im)
(* im (- (* 1/6 (pow re 2)) 1))
(*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)
(* im (+ (* -1 re) (* 1/6 (pow re 3))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64) (neg.f64 re)) im)
(* -1 (* im (* re (+ 1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))))))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 #s(literal 1/120 binary64) re) re) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 3 binary64)) re) (neg.f64 im))
(* -1/2520 (pow im 2))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(* -1/60 (pow im 2))
(*.f64 #s(literal -1/60 binary64) (*.f64 im im))
(* (pow im 2) (- (* -1/2520 (pow im 2)) 1/60))
(*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im)
(* im (- (* 1/120 (pow re 2)) 1/6))
(*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))
(- (exp (neg im)) (exp im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(* -1/6 (* (pow im 3) (sin re)))
(*.f64 (*.f64 (pow.f64 im #s(literal 3 binary64)) #s(literal -1/6 binary64)) (sin.f64 re))
(* (pow im 3) (+ (* -1 (/ (sin re) (pow im 2))) (* -1/6 (sin re))))
(*.f64 (*.f64 (sin.f64 re) (-.f64 (/.f64 (/.f64 #s(literal -1 binary64) im) im) #s(literal 1/6 binary64))) (pow.f64 im #s(literal 3 binary64)))
(* -1/2520 (pow im 4))
(*.f64 (pow.f64 im #s(literal 4 binary64)) #s(literal -1/2520 binary64))
(* -1 (* (pow im 4) (+ 1/2520 (* 1/60 (/ 1 (pow im 2))))))
(*.f64 (+.f64 (/.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal -1/2520 binary64)) (pow.f64 im #s(literal 4 binary64)))
(* 1/2 (* (sin re) (- (exp (* -1 im)) (exp im))))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) #s(literal 1/2 binary64))
(- (exp (* -1 im)) (exp im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(* -1 (* im (* re (+ 1 (* -1/6 (pow re 2))))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64) (neg.f64 re)) im)
(* -1 (* im (+ 1 (* -1/6 (pow re 2)))))
(*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)
(* -1 (* (pow im 3) (+ (* 1/6 (sin re)) (/ (sin re) (pow im 2)))))
(*.f64 (*.f64 (sin.f64 re) (-.f64 (/.f64 (/.f64 #s(literal -1 binary64) im) im) #s(literal 1/6 binary64))) (pow.f64 im #s(literal 3 binary64)))
(* -1 (* im (+ re (* -1/6 (pow re 3)))))
(*.f64 (fma.f64 (pow.f64 re #s(literal 3 binary64)) #s(literal 1/6 binary64) (neg.f64 re)) im)
(* im (* re (- (* -1 (* (pow re 2) (- (* 1/120 (pow re 2)) 1/6))) 1)))
(*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 #s(literal 1/120 binary64) re) re) #s(literal 1/6 binary64)) (pow.f64 re #s(literal 3 binary64)) re) (neg.f64 im))

rewrite99.0ms (1%)

Memory
-15.8MiB live, 132.7MiB allocated; 11ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064410
097407
1317404
02159400
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
26 → 171
Calls
Call 1
Inputs
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re))
(*.f64 #s(literal 1/2 binary64) re)
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))
(*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)
#s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
#s(approx (* (sin re) im) (*.f64 im re))
(*.f64 im re)
(fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re)))
(*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re))
(*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im)))
(neg.f64 re)
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im))
(*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))
(*.f64 #s(literal -1/6 binary64) im)
(*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))
(*.f64 #s(literal 1/120 binary64) re)
Outputs
(*.f64 #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)) #s(approx (* 1/2 (sin re)) (*.f64 re #s(literal 1/2 binary64))))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 re #s(literal 1/2 binary64))) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* 1/2 (sin re)) (*.f64 re #s(literal 1/2 binary64)))
(*.f64 re #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) re)
#s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)))
#s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re))
(*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)
(*.f64 re #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))))
#s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 im re))))
(*.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 im re)))
(*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(literal 2 binary64)) #s(literal 1 binary64)) #s(approx (* (sin re) im) (*.f64 im re))) (-.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(literal -1 binary64)))
(/.f64 (*.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 im im) #s(literal 3 binary64)) #s(literal -1 binary64)) #s(approx (* (sin re) im) (*.f64 im re))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 #s(literal -1/6 binary64) im) im)) (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(literal 2 binary64))))
(/.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(literal 2 binary64)) #s(literal 1 binary64))) (-.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(literal -1 binary64)))
(/.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 im im) #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 #s(literal -1/6 binary64) im) im)) (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re)))) (*.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))) (-.f64 (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) #s(literal 3 binary64)) (pow.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) (-.f64 (*.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))) (*.f64 (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))))
(fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re)) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 #s(literal -1 binary64) #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) im) (*.f64 im #s(approx (* (sin re) im) (*.f64 im re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 im im) #s(approx (* (sin re) im) (*.f64 im re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1 binary64) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))))
(fma.f64 im (*.f64 (*.f64 #s(literal -1/6 binary64) im) #s(approx (* (sin re) im) (*.f64 im re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
(-.f64 (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) (*.f64 #s(literal 1 binary64) #s(approx (* (sin re) im) (*.f64 im re))))
(-.f64 (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) (*.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))) #s(literal -1 binary64)))
(+.f64 (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))))
(+.f64 (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) im) #s(approx (* (sin re) im) (*.f64 im re))) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re))))
#s(approx (* (sin re) im) (*.f64 im re))
(*.f64 im re)
(*.f64 re im)
(neg.f64 (*.f64 (neg.f64 im) re))
(*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)
(*.f64 re (-.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re)) im))
(*.f64 re (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)))
(/.f64 (*.f64 re (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re)) #s(literal 2 binary64)) (*.f64 im im))) (-.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re)) (neg.f64 im)))
(/.f64 (*.f64 re (+.f64 (pow.f64 (neg.f64 im) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re)) #s(literal 3 binary64)))) (fma.f64 (neg.f64 im) (-.f64 (neg.f64 im) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re)) #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 2 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64))) (-.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 3 binary64)) (pow.f64 (*.f64 im re) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64)) (fma.f64 (*.f64 re re) (*.f64 im im) (*.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) (*.f64 im re)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64)) (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 2 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im) (*.f64 im re))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (neg.f64 im) re) (-.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im))) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64)) (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 2 binary64))) (fma.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im) (*.f64 im re)))
(/.f64 (+.f64 (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 3 binary64))) (fma.f64 (*.f64 re re) (*.f64 im im) (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) (*.f64 (neg.f64 im) re)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 3 binary64))) (fma.f64 (*.f64 (neg.f64 im) re) (-.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im))) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64))))
(fma.f64 (*.f64 (*.f64 im re) (*.f64 re re)) #s(literal 1/6 binary64) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) (*.f64 re re) (*.f64 (neg.f64 im) re))
(fma.f64 (neg.f64 re) im (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)))
(fma.f64 (*.f64 im re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 (*.f64 re re) im) (*.f64 #s(literal 1/6 binary64) re) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re)) re (*.f64 (neg.f64 im) re))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 im re) (*.f64 re re)) (*.f64 (neg.f64 im) re))
(fma.f64 (neg.f64 im) re (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)))
(fma.f64 im (neg.f64 re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)))
(fma.f64 re (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re)) (*.f64 (neg.f64 im) re))
(fma.f64 re (neg.f64 im) (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)))
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64)) (fma.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im) (*.f64 im re))) (/.f64 (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 2 binary64)) (fma.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im) (*.f64 im re))))
(-.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) (*.f64 (neg.f64 re) (neg.f64 im)))
(-.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) (*.f64 im re))
(-.f64 (*.f64 (neg.f64 im) re) (*.f64 (neg.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re))
(-.f64 (*.f64 (neg.f64 im) re) (*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 im re) (*.f64 re re))))
(-.f64 (*.f64 (neg.f64 im) re) (*.f64 (neg.f64 re) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 3 binary64)) (fma.f64 (*.f64 (neg.f64 im) re) (-.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im))) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 3 binary64)) (fma.f64 (*.f64 (neg.f64 im) re) (-.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im))) (pow.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)) (*.f64 (neg.f64 im) re))
(+.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 (*.f64 re re) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)))
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re))
(*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))
(*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 im re))
(*.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) re)
(*.f64 (*.f64 im re) (*.f64 #s(literal 1/6 binary64) re))
(*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))
(*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re re) im))
(*.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)))
(*.f64 im (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
(*.f64 re (*.f64 im (*.f64 #s(literal 1/6 binary64) re)))
(*.f64 re (*.f64 (*.f64 im re) #s(literal 1/6 binary64)))
(*.f64 (fma.f64 (*.f64 re re) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) im) (neg.f64 re))
(*.f64 (neg.f64 re) (fma.f64 (*.f64 re re) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) im))
(*.f64 re (neg.f64 (fma.f64 (*.f64 re re) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) im)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) #s(literal 2 binary64)) (*.f64 im im)) (neg.f64 re)) (-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) im))
(/.f64 (*.f64 (+.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) #s(literal 3 binary64))) (neg.f64 re)) (fma.f64 im (-.f64 im (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re)) (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) #s(literal 2 binary64))))
(/.f64 (*.f64 (neg.f64 re) (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) #s(literal 2 binary64)) (*.f64 im im))) (-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) im))
(/.f64 (*.f64 (neg.f64 re) (+.f64 (pow.f64 im #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) #s(literal 3 binary64)))) (fma.f64 im (-.f64 im (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re)) (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re)))) (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 2 binary64))) (-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (*.f64 (neg.f64 im) re)))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (-.f64 (pow.f64 (*.f64 (neg.f64 im) re) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (*.f64 (neg.f64 im) re)))))
(neg.f64 (*.f64 (fma.f64 (*.f64 re re) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) im) re))
(fma.f64 (*.f64 (neg.f64 re) (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re)) re (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 (neg.f64 re) (*.f64 re re)) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 (neg.f64 re) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im)) (*.f64 re re) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re)) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) (neg.f64 re) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 re re) (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) (neg.f64 re)) (*.f64 (neg.f64 im) re))
(fma.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) (*.f64 (*.f64 re re) (neg.f64 re)) (*.f64 (neg.f64 im) re))
(fma.f64 (neg.f64 re) (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) re) (*.f64 (neg.f64 im) re))
(fma.f64 (neg.f64 re) im (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))))
(fma.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) re) re) (*.f64 (neg.f64 im) re))
(fma.f64 (neg.f64 im) re (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))))
(fma.f64 im (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) re) re) (neg.f64 re)) (*.f64 (neg.f64 im) re))
(fma.f64 im (neg.f64 re) (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))))
(fma.f64 re (neg.f64 im) (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))))
(-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (*.f64 (neg.f64 im) (neg.f64 re)))
(-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (*.f64 (neg.f64 (neg.f64 re)) im))
(-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (*.f64 im re))
(+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))) (*.f64 (neg.f64 im) re))
(+.f64 (*.f64 (neg.f64 im) re) (*.f64 (*.f64 (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) re) (*.f64 re (neg.f64 re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re re) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) im) (neg.f64 re))))
#s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re re) (*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im) im) (neg.f64 re)))
(neg.f64 re)
(*.f64 (*.f64 #s(literal -1/2520 binary64) (fabs.f64 im)) (fabs.f64 im))
(*.f64 (*.f64 #s(literal -1/2520 binary64) (neg.f64 im)) (neg.f64 im))
(*.f64 (*.f64 #s(literal -1/2520 binary64) im) im)
(*.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) #s(literal -1/2520 binary64)))
(*.f64 (*.f64 im im) #s(literal -1/2520 binary64))
(*.f64 #s(literal -1/2520 binary64) (*.f64 im im))
(*.f64 (neg.f64 im) (*.f64 (neg.f64 im) #s(literal -1/2520 binary64)))
(*.f64 im (*.f64 #s(literal -1/2520 binary64) im))
(*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) (fabs.f64 im)) (fabs.f64 im))
(*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) (neg.f64 im)) (neg.f64 im))
(*.f64 (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im) im)
(*.f64 (fabs.f64 im) (*.f64 (fabs.f64 im) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64))))
(*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) (*.f64 im im))
(*.f64 (*.f64 im im) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)))
(*.f64 (neg.f64 im) (*.f64 (neg.f64 im) (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64))))
(*.f64 im (*.f64 (-.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 1/60 binary64)) im))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64)) #s(literal 1/3600 binary64)) (*.f64 im im)) (fma.f64 (*.f64 im im) #s(literal -1/2520 binary64) #s(literal 1/60 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 3 binary64)) #s(literal 1/216000 binary64)) (*.f64 im im)) (+.f64 (fma.f64 (*.f64 im im) #s(literal -1/151200 binary64) #s(literal 1/3600 binary64)) (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64))))
(/.f64 (*.f64 (*.f64 im im) (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64)) #s(literal 1/3600 binary64))) (fma.f64 (*.f64 im im) #s(literal -1/2520 binary64) #s(literal 1/60 binary64)))
(/.f64 (*.f64 (*.f64 im im) (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 3 binary64)) #s(literal 1/216000 binary64))) (+.f64 (fma.f64 (*.f64 im im) #s(literal -1/151200 binary64) #s(literal 1/3600 binary64)) (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64))))
(*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))
(*.f64 (*.f64 #s(literal 1/6 binary64) re) (*.f64 im re))
(*.f64 (*.f64 (*.f64 im re) #s(literal 1/6 binary64)) re)
(*.f64 (*.f64 im re) (*.f64 #s(literal 1/6 binary64) re))
(*.f64 (*.f64 (*.f64 re re) im) #s(literal 1/6 binary64))
(*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re re) im))
(*.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)))
(*.f64 im (*.f64 (*.f64 re re) #s(literal 1/6 binary64)))
(*.f64 re (*.f64 im (*.f64 #s(literal 1/6 binary64) re)))
(*.f64 re (*.f64 (*.f64 im re) #s(literal 1/6 binary64)))
(*.f64 #s(literal -1/6 binary64) im)
(*.f64 im #s(literal -1/6 binary64))
(*.f64 (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)) im)
(*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) #s(literal 2 binary64)) #s(literal 1/36 binary64)) im) (-.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) #s(literal -1/6 binary64)))
(/.f64 (*.f64 (+.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) #s(literal 3 binary64))) im) (fma.f64 #s(literal -1/6 binary64) (-.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re re) #s(literal 1/120 binary64))) (pow.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) #s(literal 2 binary64))))
(/.f64 (*.f64 im (-.f64 (pow.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) #s(literal 2 binary64)) #s(literal 1/36 binary64))) (-.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) #s(literal -1/6 binary64)))
(/.f64 (*.f64 im (+.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) #s(literal 3 binary64)))) (fma.f64 #s(literal -1/6 binary64) (-.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 re re) #s(literal 1/120 binary64))) (pow.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im)) (*.f64 (*.f64 #s(literal -1/6 binary64) im) (*.f64 #s(literal -1/6 binary64) im))) (-.f64 (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) (*.f64 #s(literal -1/6 binary64) im)))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal -1/6 binary64) im) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) (-.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) im) (*.f64 #s(literal -1/6 binary64) im)) (*.f64 (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) (*.f64 #s(literal -1/6 binary64) im)))))
(fma.f64 (*.f64 im (*.f64 #s(literal 1/120 binary64) re)) re (*.f64 #s(literal -1/6 binary64) im))
(fma.f64 (*.f64 im #s(literal 1/120 binary64)) (*.f64 re re) (*.f64 #s(literal -1/6 binary64) im))
(fma.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im (*.f64 #s(literal -1/6 binary64) im))
(fma.f64 (*.f64 #s(literal 1/120 binary64) re) (*.f64 im re) (*.f64 #s(literal -1/6 binary64) im))
(fma.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 re re) im) (*.f64 #s(literal -1/6 binary64) im))
(fma.f64 #s(literal -1/6 binary64) im (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im))
(fma.f64 (*.f64 im re) (*.f64 #s(literal 1/120 binary64) re) (*.f64 #s(literal -1/6 binary64) im))
(fma.f64 im (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) (*.f64 #s(literal -1/6 binary64) im))
(fma.f64 im #s(literal -1/6 binary64) (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im))
(fma.f64 re (*.f64 (*.f64 #s(literal 1/120 binary64) re) im) (*.f64 #s(literal -1/6 binary64) im))
(-.f64 (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) (*.f64 #s(literal 1/6 binary64) im))
(-.f64 (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) (*.f64 (neg.f64 im) #s(literal -1/6 binary64)))
(+.f64 (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im) (*.f64 #s(literal -1/6 binary64) im))
(+.f64 (*.f64 #s(literal -1/6 binary64) im) (*.f64 (*.f64 (*.f64 re re) #s(literal 1/120 binary64)) im))
(*.f64 #s(literal 1/120 binary64) re)
(*.f64 re #s(literal 1/120 binary64))

eval48.0ms (0.5%)

Memory
1.3MiB live, 47.4MiB allocated; 4ms collecting garbage
Compiler

Compiled 8 530 to 1 084 computations (87.3% saved)

prune79.0ms (0.8%)

Memory
-13.5MiB live, 77.2MiB allocated; 8ms collecting garbage
Pruning

30 alts after pruning (21 fresh and 9 done)

PrunedKeptTotal
New20611217
Fresh31013
Picked145
Done055
Total21030240
Accuracy
99.9%
Counts
240 → 30
Alt Table
Click to see full alt table
StatusAccuracyProgram
48.7%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))
99.9%
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
44.7%
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64)) #s(literal 1/3600 binary64)) (*.f64 im im)) (fma.f64 (*.f64 im im) #s(literal -1/2520 binary64) #s(literal 1/60 binary64))) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
58.7%
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
58.7%
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
55.4%
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
32.4%
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
44.2%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
44.2%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
45.3%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
37.9%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) #s(literal 3 binary64)) (pow.f64 (neg.f64 (sin.f64 re)) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (-.f64 (*.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re))) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (neg.f64 (sin.f64 re)))))) im))
75.7%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
50.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
52.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
48.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
45.3%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
38.8%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
37.2%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
38.4%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
32.0%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
55.4%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
50.1%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
31.0%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 im re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) (*.f64 (neg.f64 im) re))))
38.5%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im)) re)))
38.5%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im)) re)))
37.3%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
38.5%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)) re)))
23.6%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
33.2%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (neg.f64 re) re) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))) re)))
23.6%
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)))
Compiler

Compiled 2 506 to 948 computations (62.2% saved)

regimes114.0ms (1.1%)

Memory
32.8MiB live, 175.2MiB allocated; 42ms collecting garbage
Counts
48 → 1
Calls
Call 1
Inputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 im re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1 binary64) (*.f64 re re)) #s(literal -1/6 binary64))) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (neg.f64 re) re) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))) re)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) im)) (*.f64 re re) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/3 binary64) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64)) #s(literal 1/3600 binary64)) (*.f64 im im)) (fma.f64 (*.f64 im im) #s(literal -1/2520 binary64) #s(literal 1/60 binary64))) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) #s(approx (exp im) #s(literal 1 binary64))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 #s(approx (exp (neg im)) (-.f64 #s(literal 1 binary64) im)) (exp.f64 im)))
(*.f64 (*.f64 (sin.f64 re) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im)))) #s(literal 1/2 binary64))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))) (/.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 im))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 im)) (exp.f64 im) (pow.f64 (exp.f64 im) #s(literal -2 binary64))))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) #s(literal 3 binary64)) (pow.f64 (neg.f64 (sin.f64 re)) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (-.f64 (*.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re))) (*.f64 (*.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) im) im) (sin.f64 re)) (neg.f64 (sin.f64 re)))))) im))
Outputs
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
Calls

6 calls:

55.0ms
re
14.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
12.0ms
im
12.0ms
(sin.f64 re)
9.0ms
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Results
AccuracySegmentsBranch
99.9%1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
99.9%1(sin.f64 re)
99.9%1(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
99.9%1(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
99.9%1re
99.9%1im
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes119.0ms (1.2%)

Memory
-41.0MiB live, 105.1MiB allocated; 11ms collecting garbage
Counts
40 → 1
Calls
Call 1
Inputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 im re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1 binary64) (*.f64 re re)) #s(literal -1/6 binary64))) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (neg.f64 re) re) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))) re)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) im)) (*.f64 re re) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/3 binary64) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 im im) #s(literal -1/2520 binary64)) #s(literal 2 binary64)) #s(literal 1/3600 binary64)) (*.f64 im im)) (fma.f64 (*.f64 im im) #s(literal -1/2520 binary64) #s(literal 1/60 binary64))) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
Outputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
Calls

6 calls:

50.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
24.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
15.0ms
im
10.0ms
re
10.0ms
(sin.f64 re)
Results
AccuracySegmentsBranch
92.1%1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
92.1%1(sin.f64 re)
92.1%1(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
92.1%1(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
92.1%1re
92.1%1im
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes73.0ms (0.7%)

Memory
31.9MiB live, 121.3MiB allocated; 8ms collecting garbage
Counts
37 → 2
Calls
Call 1
Inputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 im re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1 binary64) (*.f64 re re)) #s(literal -1/6 binary64))) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (neg.f64 re) re) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))) re)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) im)) (*.f64 re re) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/3 binary64) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
Outputs
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
Calls

6 calls:

24.0ms
re
13.0ms
(sin.f64 re)
10.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
10.0ms
im
7.0ms
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Results
AccuracySegmentsBranch
88.0%1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
88.0%1(sin.f64 re)
88.0%1(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
90.6%2re
88.0%1im
88.0%1(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes15.0ms (0.1%)

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

1 calls:

13.0ms
re
Results
AccuracySegmentsBranch
90.3%2re
Compiler

Compiled 1 to 2 computations (-100% saved)

regimes79.0ms (0.8%)

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

6 calls:

31.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
9.0ms
re
9.0ms
im
9.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
9.0ms
(sin.f64 re)
Results
AccuracySegmentsBranch
80.4%1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
87.3%3(sin.f64 re)
87.3%3(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
83.6%2(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
91.1%5im
86.5%2re
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes66.0ms (0.6%)

Memory
45.1MiB live, 89.4MiB allocated; 3ms collecting garbage
Counts
33 → 4
Calls
Call 1
Inputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 im re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1 binary64) (*.f64 re re)) #s(literal -1/6 binary64))) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (neg.f64 re) re) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))) re)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) im)) (*.f64 re re) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
Outputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
Calls

6 calls:

24.0ms
(sin.f64 re)
9.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
9.0ms
re
9.0ms
im
7.0ms
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Results
AccuracySegmentsBranch
82.4%3(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
82.4%3(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
78.7%5(sin.f64 re)
78.7%5(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
84.4%4im
71.3%2re
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes172.0ms (1.7%)

Memory
-13.0MiB live, 104.4MiB allocated; 54ms collecting garbage
Counts
31 → 2
Calls
Call 1
Inputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 im re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1 binary64) (*.f64 re re)) #s(literal -1/6 binary64))) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (neg.f64 re) re) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))) re)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/120 binary64) (*.f64 #s(literal -1/6 binary64) im)) (*.f64 re re) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
Outputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
Calls

5 calls:

69.0ms
(sin.f64 re)
45.0ms
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
8.0ms
im
8.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
6.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Results
AccuracySegmentsBranch
72.2%2(sin.f64 re)
72.2%2(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
58.7%1(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
58.7%1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
60.7%2im
Compiler

Compiled 24 to 26 computations (-8.3% saved)

regimes570.0ms (5.6%)

Memory
-41.0MiB live, 75.7MiB allocated; 1.1s collecting garbage
Counts
27 → 2
Calls
Call 1
Inputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (fma.f64 (*.f64 re re) #s(literal 1/6 binary64) #s(literal -1 binary64)) im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 #s(literal 1/6 binary64) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 im (*.f64 re (*.f64 #s(literal 1/6 binary64) re)) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 re im) (*.f64 #s(literal 1/6 binary64) re) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal 1/6 binary64) (neg.f64 im)) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 re im) re)) re (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (fma.f64 (*.f64 im re) (*.f64 (*.f64 #s(literal 1/6 binary64) re) re) (*.f64 (neg.f64 im) re))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) #s(literal -1/6 binary64)) (*.f64 im im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) im) (*.f64 #s(literal -1/6 binary64) im) (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (fma.f64 (*.f64 #s(approx (* (sin re) im) (*.f64 im re)) (*.f64 #s(literal -1/6 binary64) im)) im (neg.f64 #s(approx (* (sin re) im) (*.f64 im re)))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) re)) im))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 (neg.f64 re) (fma.f64 (*.f64 im (fma.f64 (*.f64 #s(literal 1/120 binary64) re) re #s(literal -1/6 binary64))) (*.f64 re re) im))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 im (-.f64 (/.f64 #s(literal -1 binary64) (*.f64 re re)) #s(literal -1/6 binary64))) (*.f64 re re))) re)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (neg.f64 re) re) (fma.f64 #s(literal -1/6 binary64) im (/.f64 im (*.f64 re re))))) re)))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (*.f64 (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/5040 binary64) (*.f64 re re)) #s(literal 1/120 binary64)) (*.f64 re re) #s(literal 1/6 binary64)) (*.f64 re re) #s(literal -1 binary64)) re)) im))
Outputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64))))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re)))
Calls

3 calls:

554.0ms
(sin.f64 re)
7.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
7.0ms
re
Results
AccuracySegmentsBranch
59.3%2re
68.9%2(sin.f64 re)
68.9%2(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
Compiler

Compiled 7 to 10 computations (-42.9% saved)

regimes59.0ms (0.6%)

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

2 calls:

51.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
6.0ms
(sin.f64 re)
Results
AccuracySegmentsBranch
68.2%2(sin.f64 re)
68.2%2(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
Compiler

Compiled 6 to 8 computations (-33.3% saved)

regimes293.0ms (2.9%)

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

2 calls:

286.0ms
(sin.f64 re)
5.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
Results
AccuracySegmentsBranch
62.9%2(sin.f64 re)
62.9%2(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
Compiler

Compiled 6 to 8 computations (-33.3% saved)

regimes15.0ms (0.1%)

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

6 calls:

3.0ms
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
2.0ms
(sin.f64 re)
2.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
2.0ms
im
2.0ms
re
Results
AccuracySegmentsBranch
38.5%1re
38.5%1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
38.5%1(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
40.3%2im
45.1%2(sin.f64 re)
45.1%2(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes4.0ms (0%)

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

2 calls:

2.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
2.0ms
(sin.f64 re)
Results
AccuracySegmentsBranch
45.1%2(sin.f64 re)
45.1%2(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
Compiler

Compiled 6 to 8 computations (-33.3% saved)

regimes10.0ms (0.1%)

Memory
-17.7MiB live, 28.5MiB allocated; 2ms collecting garbage
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
Outputs
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
Calls

6 calls:

3.0ms
im
1.0ms
(sin.f64 re)
1.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
1.0ms
re
1.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Results
AccuracySegmentsBranch
32.4%1re
32.4%1(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
32.4%1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
32.4%1im
32.4%1(sin.f64 re)
32.4%1(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes6.0ms (0.1%)

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

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
Outputs
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
Calls

6 calls:

1.0ms
re
1.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
1.0ms
(sin.f64 re)
1.0ms
im
1.0ms
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Results
AccuracySegmentsBranch
32.0%1re
32.0%1im
32.0%1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
32.0%1(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
32.0%1(sin.f64 re)
32.0%1(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
Compiler

Compiled 25 to 28 computations (-12% saved)

bsearch10.0ms (0.1%)

Memory
-28.2MiB live, 20.1MiB allocated; 6ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
9.0ms
9.624234254335356e-10
4.2173099986702434e-5
Samples
2.0ms1valid
1.0ms20×0valid
1.0ms2valid
Compiler

Compiled 136 to 107 computations (21.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-exp: 2.0ms (55.2% of total)
adjust: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
ival-sin: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-neg: 0.0ms (0% of total)

bsearch1.0ms (0%)

Memory
2.6MiB live, 2.6MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
0.0ms
9.624234254335356e-10
4.2173099986702434e-5
Compiler

Compiled 140 to 109 computations (22.1% saved)

bsearch24.0ms (0.2%)

Memory
22.7MiB live, 68.6MiB allocated; 4ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
22.0ms
0.006279863464962467
0.028879248092246505
Samples
9.0ms35×1valid
5.0ms14×2valid
3.0ms47×0valid
Compiler

Compiled 362 to 285 computations (21.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-exp: 10.0ms (66.7% of total)
adjust: 2.0ms (13.3% of total)
ival-mult: 1.0ms (6.7% of total)
ival-sin: 1.0ms (6.7% of total)
ival-sub: 1.0ms (6.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-neg: 0.0ms (0% of total)

bsearch49.0ms (0.5%)

Memory
-18.2MiB live, 124.5MiB allocated; 15ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
predicate-same
Steps
TimeLeftRight
26.0ms
3.200762178118243e-5
2249958170182.6157
12.0ms
-5.042951545404649e+22
-3.649600307541494e+21
6.0ms
-1.2866228286458894e+238
-5.684580732004438e+229
Samples
26.0ms288×0valid
Compiler

Compiled 984 to 769 computations (21.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-sin: 7.0ms (37.9% of total)
ival-exp: 5.0ms (27% of total)
ival-mult: 4.0ms (21.6% of total)
ival-sub: 1.0ms (5.4% of total)
ival-neg: 1.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)

bsearch1.0ms (0%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.014207092280228824
1.9620093454229096e-305
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch0.0ms (0%)

Memory
1.5MiB live, 1.6MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.014207092280228824
1.9620093454229096e-305
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch1.0ms (0%)

Memory
2.3MiB live, 2.3MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.014207092280228824
1.9620093454229096e-305
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch0.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.014207092280228824
1.9620093454229096e-305
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch0.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.014207092280228824
1.9620093454229096e-305
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch0.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.014207092280228824
1.9620093454229096e-305
Compiler

Compiled 14 to 15 computations (-7.1% saved)

simplify110.0ms (1.1%)

Memory
18.5MiB live, 106.7MiB allocated; 19ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0144832
1236832
2515831
31733826
44648826
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))))
(if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)))
(if (<=.f64 re #s(literal 7378697629483821/1152921504606846976 binary64)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))))
(if (<=.f64 im #s(literal -500000000000000008932922589403465161869764464983330902721886700279835046843346211837913774809974621039574077870438123630035862892627704080387855403711076771169001716823298010480011962421165907982822736097060355087078349785802142121984 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))) (if (<=.f64 im #s(literal -5000000000000000000000 binary64)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) (if (<=.f64 im #s(literal 430 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re))) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im))))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))
Outputs
(*.f64 (sinh.f64 (neg.f64 im)) (sin.f64 re))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -1/2520 binary64) (*.f64 im im)) #s(literal 1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im)))
(if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal -1/60 binary64) (*.f64 im im)) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))))
(if (<=.f64 re #s(literal 4835703278458517/4835703278458516698824704 binary64)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) (fma.f64 (*.f64 im im) (fma.f64 #s(literal -1/120 binary64) (*.f64 im im) #s(literal -1/6 binary64)) #s(literal -1 binary64))) im)))
(if (<=.f64 re #s(literal 7378697629483821/1152921504606846976 binary64)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (*.f64 (sin.f64 re) im) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))))
(if (<=.f64 im #s(literal -500000000000000008932922589403465161869764464983330902721886700279835046843346211837913774809974621039574077870438123630035862892627704080387855403711076771169001716823298010480011962421165907982822736097060355087078349785802142121984 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))) (if (<=.f64 im #s(literal -5000000000000000000000 binary64)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) (if (<=.f64 im #s(literal 430 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im)) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))))))
(if (<=.f64 im #s(literal -500000000000000008932922589403465161869764464983330902721886700279835046843346211837913774809974621039574077870438123630035862892627704080387855403711076771169001716823298010480011962421165907982822736097060355087078349785802142121984 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))) (if (or (<=.f64 im #s(literal -5000000000000000000000 binary64)) (not (<=.f64 im #s(literal 430 binary64)))) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 (neg.f64 (sin.f64 re)) im))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/2520 binary64) (*.f64 im im) #s(literal -1/60 binary64)) im) im) #s(literal 1/3 binary64)) (*.f64 im im) #s(literal -2 binary64)) im))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (* (sin re) im) (*.f64 (fma.f64 (*.f64 (*.f64 im re) re) #s(literal -1/6 binary64) im) re)) (fma.f64 (*.f64 #s(literal -1/6 binary64) im) im #s(literal -1 binary64)))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) (+ (* (* im im) (+ (* -1/120 (* im im)) -1/6)) -1)) im) (*.f64 (*.f64 (fma.f64 (fma.f64 (*.f64 im im) #s(literal -1/120 binary64) #s(literal -1/6 binary64)) (*.f64 im im) #s(literal -1 binary64)) im) re))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (* (sin re) im) (+ (* (* -1/6 im) im) -1)) (*.f64 (*.f64 (fma.f64 (*.f64 im im) #s(literal -1/6 binary64) #s(literal -1 binary64)) im) re))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 (*.f64 re im) re) #s(literal 1/6 binary64))) re))) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im))))
(if (<=.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) #s(literal -5764607523034235/576460752303423488 binary64)) #s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) #s(approx (* (neg (sin re)) im) (*.f64 #s(approx (+ (* (* (* im re) re) 1/6) (neg im)) (*.f64 (*.f64 #s(literal 1/6 binary64) im) (*.f64 re re))) re))) (*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im))))
(*.f64 #s(approx (* 1/2 (sin re)) (*.f64 #s(literal 1/2 binary64) re)) #s(approx (- (exp (neg im)) (exp im)) (*.f64 #s(literal -2 binary64) im)))
#s(approx (* (* 1/2 (sin re)) (- (exp (neg im)) (exp im))) (*.f64 #s(approx (neg (sin re)) (neg.f64 re)) im))

derivations1.3s (12.4%)

Memory
14.9MiB live, 992.9MiB allocated; 172ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03831923
113661722
257041703
081331556
064410
097407
1317404
02159400
0146434
1474401
21628388
35196378
08646348
0261984
1915931
23622854
08182804
02891205
19811079
238841027
08116954
048248
078248
1257227
01839227
01028
01728
14328
227026
0355726
Stop Event
fuel
iter limit
iter limit
node limit
iter limit
iter limit
iter limit
node limit
iter limit
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 832 to 150 computations (82% saved)

preprocess187.0ms (1.8%)

Memory
8.3MiB live, 172.3MiB allocated; 90ms collecting garbage
Remove

(negabs re)

Compiler

Compiled 1 780 to 388 computations (78.2% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...