expfmod (used to be hard to sample)

Time bar (total: 11.6s)

start0.0ms (0%)

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

analyze248.0ms (2.1%)

Memory
3.9MiB live, 141.4MiB allocated; 50ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
50%50%50%0%0%0%0%4
50%50%50%0%0%0%0%5
50%50%50%0%0%0%0%6
50%50%50%0%0%0%0%7
50%50%50%0%0%0%0%8
50%50%50%0%0%0%0%9
50%50%50%0%0%0%0%10
50%50%50%0%0%0%0%11
50%50%50%0%0%0%0%12
Compiler

Compiled 12 to 10 computations (16.7% saved)

sample6.1s (52.8%)

Memory
43.0MiB live, 6 471.1MiB allocated; 1.9s collecting garbage
Samples
2.2s1 615×5exit
1.5s2 767×2valid
989.0ms3 483×1valid
422.0ms3 265×0invalid
300.0ms2 006×0valid
Precisions
Click to see histograms. Total time spent on operations: 4.8s
ival-cos: 1.9s (40.2% of total)
ival-fmod: 1.1s (22.6% of total)
ival-exp: 763.0ms (15.8% of total)
adjust: 414.0ms (8.6% of total)
ival-sqrt: 343.0ms (7.1% of total)
ival-mult: 173.0ms (3.6% of total)
ival-neg: 85.0ms (1.8% of total)
ival-true: 10.0ms (0.2% of total)
ival-assert: 5.0ms (0.1% of total)
Bogosity

explain685.0ms (5.9%)

Memory
-1.4MiB live, 946.6MiB allocated; 75ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
2010-201(-6.812622606160521e-196)(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
00-0-(sqrt.f64 (cos.f64 x))
00-0-(cos.f64 x)
00-0-(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
00-0-(exp.f64 x)
00-0-(exp.f64 (neg.f64 x))
00-0-(neg.f64 x)
00-0-x
Confusion
Predicted +Predicted -
+0247
-09
Precision
0/0
Recall
0.0
Confusion?
Predicted +Predicted MaybePredicted -
+00247
-009
Precision?
0/0
Recall?
0.0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+001
-000
Precision?
0/0
Recall?
0.0
Samples
479.0ms92×5exit
70.0ms160×2valid
60.0ms238×1valid
3.0ms22×0valid
Compiler

Compiled 72 to 28 computations (61.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 578.0ms
ival-cos: 431.0ms (74.6% of total)
ival-exp: 49.0ms (8.5% of total)
ival-fmod: 46.0ms (8% of total)
adjust: 20.0ms (3.5% of total)
ival-sqrt: 19.0ms (3.3% of total)
ival-mult: 8.0ms (1.4% of total)
ival-neg: 4.0ms (0.7% of total)
ival-true: 1.0ms (0.2% of total)
ival-assert: 0.0ms (0% of total)

preprocess141.0ms (1.2%)

Memory
40.6MiB live, 83.8MiB allocated; 16ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01021
13921
28621
330321
4185021
0810
01510
13110
2609
31679
47699
084589
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
Compiler

Compiled 10 to 8 computations (20% saved)

eval0.0ms (0%)

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

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.3%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 10 to 8 computations (20% saved)

simplify131.0ms (1.1%)

Memory
-23.8MiB live, 66.6MiB allocated; 11ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (cos.f64 x))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
cost-diff1
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0829
01529
13129
26028
316728
476928
0845828
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
x
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(exp.f64 (neg.f64 x))
(neg.f64 x)
Outputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
x
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(exp.f64 (neg.f64 x))
(neg.f64 x)

localize384.0ms (3.3%)

Memory
19.9MiB live, 383.3MiB allocated; 54ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(cos.f64 x)
accuracy0.00390625
(sqrt.f64 (cos.f64 x))
accuracy0.01953125
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
accuracy47.18576017150156
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
Samples
267.0ms46×5exit
47.0ms119×1valid
34.0ms80×2valid
1.0ms11×0valid
Compiler

Compiled 31 to 10 computations (67.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 314.0ms
ival-cos: 248.0ms (78.9% of total)
ival-exp: 22.0ms (7% of total)
ival-fmod: 19.0ms (6% of total)
adjust: 10.0ms (3.2% of total)
ival-sqrt: 8.0ms (2.5% of total)
ival-mult: 6.0ms (1.9% of total)
ival-neg: 2.0ms (0.6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series2.0ms (0%)

Memory
2.5MiB live, 2.5MiB allocated; 0ms collecting garbage
Counts
5 → 19
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
Outputs
(fmod (exp x) (sqrt (cos x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(+ 1 (* -1/4 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(exp x)
(sqrt (cos x))
(cos x)
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (cos x))
1.0ms
x
@inf
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (cos x))
1.0ms
x
@-inf
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (cos x))

simplify154.0ms (1.3%)

Memory
-13.3MiB live, 90.9MiB allocated; 63ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076218
1225197
2690191
32473181
46178181
08118161
Stop Event
iter limit
node limit
Counts
19 → 19
Calls
Call 1
Inputs
(fmod (exp x) (sqrt (cos x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(+ 1 (* -1/4 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(exp x)
(sqrt (cos x))
(cos x)
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
Outputs
(fmod (exp x) (sqrt (cos x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) x #s(literal 1 binary64)))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x)))
1
#s(literal 1 binary64)
(+ 1 x)
(+.f64 #s(literal 1 binary64) x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* -1/4 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) x) x #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(exp x)
(exp.f64 x)
(sqrt (cos x))
(sqrt.f64 (cos.f64 x))
(cos x)
(cos.f64 x)
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))

rewrite59.0ms (0.5%)

Memory
0.3MiB live, 45.9MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0823
01523
13323
214022
0106422
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 75
Calls
Call 1
Inputs
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
Outputs
(*.f64 (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) (exp.f64 (neg.f64 x)))
(*.f64 (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (pow.f64 (cosh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))
(*.f64 #s(literal 1 binary64) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (-.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fma.f64 (sinh.f64 x) (exp.f64 x) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))
(/.f64 (*.f64 (+.f64 (neg.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (pow.f64 (cosh.f64 x) #s(literal 3 binary64))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fma.f64 (sinh.f64 (neg.f64 x)) (-.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))
(/.f64 (*.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (neg.f64 (exp.f64 x)))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 x) (exp.f64 x) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (+.f64 (neg.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (pow.f64 (cosh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 (neg.f64 x)) (-.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(literal -1 binary64)) (neg.f64 (exp.f64 x)))
(/.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (neg.f64 (exp.f64 x)))
(/.f64 (-.f64 (*.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) (*.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) (-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))
(/.f64 (+.f64 (pow.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64))) (fma.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (-.f64 (*.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) (*.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(fma.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x)) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (neg.f64 (sinh.f64 (neg.f64 x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(+.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(*.f64 (/.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 x) (exp.f64 x) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 (neg.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (pow.f64 (cosh.f64 x) #s(literal 3 binary64)))) (fma.f64 (sinh.f64 (neg.f64 x)) (-.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))
(*.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 x)))
(*.f64 #s(literal 1 binary64) (exp.f64 x))
(/.f64 (-.f64 (pow.f64 (sinh.f64 x) #s(literal 2 binary64)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))) (-.f64 (sinh.f64 x) (cosh.f64 x)))
(/.f64 (-.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (neg.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)))) (fma.f64 (cosh.f64 x) (cosh.f64 x) (fma.f64 (sinh.f64 x) (sinh.f64 x) (*.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)))))
(/.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 x) (*.f64 #s(literal 2 binary64) (cosh.f64 x))) #s(literal 2 binary64))
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 x) (*.f64 #s(literal 2 binary64) (sinh.f64 x))) #s(literal 2 binary64))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (pow.f64 (cosh.f64 x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 x))))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 x)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 x)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 x)))) #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) (*.f64 #s(literal 2 binary64) (sinh.f64 (neg.f64 x)))) #s(literal 2 binary64))
(/.f64 (+.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (pow.f64 (cosh.f64 x) #s(literal 3 binary64))) (fma.f64 (sinh.f64 x) (sinh.f64 x) (-.f64 (pow.f64 (cosh.f64 x) #s(literal 2 binary64)) (*.f64 (sinh.f64 x) (cosh.f64 x)))))
(/.f64 (+.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (pow.f64 (cosh.f64 x) #s(literal 3 binary64))) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 (neg.f64 x))))
(/.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 x)))
(-.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 2 binary64)) (exp.f64 (neg.f64 x))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 2 binary64)) (exp.f64 (neg.f64 x))))
(-.f64 (cosh.f64 x) (sinh.f64 (neg.f64 x)))
(exp.f64 x)
(+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))))
(+.f64 (sinh.f64 x) (cosh.f64 x))
(+.f64 (cosh.f64 x) (sinh.f64 x))
(*.f64 (neg.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))) (neg.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))))
(*.f64 (fabs.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))) (fabs.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64))))
(*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))
(pow.f64 (exp.f64 (log.f64 (cos.f64 x))) #s(literal 1/2 binary64))
(pow.f64 (*.f64 (cos.f64 x) (cos.f64 x)) #s(literal 1/4 binary64))
(pow.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (cos.f64 x) #s(literal 1/2 binary64))
(sqrt.f64 (cos.f64 x))
(exp.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64))) (sinh.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 (sin.f64 x) #s(literal 0 binary64))) (*.f64 (*.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 #s(literal 1 binary64) (cos.f64 x)))) (-.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 x))))
(/.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1 binary64) (cos.f64 x)) #s(literal 3 binary64))) (fma.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 (sin.f64 x) #s(literal 0 binary64)) (-.f64 (*.f64 (*.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 #s(literal 1 binary64) (cos.f64 x))) (*.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 x))))))
(fma.f64 (sin.f64 (neg.f64 x)) #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) (cos.f64 x)))
(fma.f64 (sin.f64 x) #s(literal 0 binary64) (*.f64 #s(literal 1 binary64) (cos.f64 x)))
(fma.f64 #s(literal 0 binary64) (sin.f64 x) (*.f64 #s(literal 1 binary64) (cos.f64 x)))
(fma.f64 #s(literal 1 binary64) (cos.f64 x) (*.f64 (sin.f64 x) #s(literal 0 binary64)))
(fma.f64 (cos.f64 x) #s(literal 1 binary64) (*.f64 (sin.f64 x) #s(literal 0 binary64)))
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) (neg.f64 x)))
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) x))
(-.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 (neg.f64 (cos.f64 x)) #s(literal 1 binary64)))
(cos.f64 (neg.f64 x))
(cos.f64 x)
(+.f64 (*.f64 (sin.f64 (neg.f64 x)) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 x)))
(+.f64 (*.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 (sin.f64 x) #s(literal 0 binary64)))
(+.f64 (*.f64 (sin.f64 x) #s(literal 0 binary64)) (*.f64 #s(literal 1 binary64) (cos.f64 x)))

eval11.0ms (0.1%)

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

Compiled 1 886 to 387 computations (79.5% saved)

prune11.0ms (0.1%)

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

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New811293
Fresh000
Picked011
Done000
Total811394
Accuracy
26.7%
Counts
94 → 13
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.3%
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
8.3%
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
8.2%
(*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
8.3%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
7.9%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
14.8%
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
22.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
6.0%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
7.1%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x))))
6.8%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
Compiler

Compiled 524 to 346 computations (34% saved)

simplify131.0ms (1.1%)

Memory
3.3MiB live, 96.2MiB allocated; 14ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
cost-diff1
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
cost-diff0
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
cost-diff1
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
cost-diff0
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
cost-diff1
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
cost-diff0
(sqrt.f64 (cos.f64 x))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
cost-diff0
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
cost-diff0
(sqrt.f64 (cos.f64 x))
cost-diff0
#s(approx (exp x) #s(literal 1 binary64))
cost-diff0
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
cost-diff1
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
039312
068312
1112312
2308307
31068307
44292307
09233307
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
#s(approx (exp x) #s(literal 1 binary64))
#s(literal 1 binary64)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
x
(exp.f64 (neg.f64 x))
(neg.f64 x)
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
x
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
#s(literal -1/96 binary64)
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(exp.f64 x)
x
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64))
#s(literal 1/24 binary64)
(*.f64 x x)
#s(literal -1/2 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
#s(approx (exp x) #s(literal 1 binary64))
#s(literal 1 binary64)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
x
(exp.f64 (neg.f64 x))
(neg.f64 x)
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
x
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
#s(literal -1/96 binary64)
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(exp.f64 x)
x
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64))
#s(literal 1/24 binary64)
(*.f64 x x)
#s(literal -1/2 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)

localize428.0ms (3.7%)

Memory
-27.9MiB live, 347.0MiB allocated; 39ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))
accuracy0.01953125
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
accuracy0.8582283389064518
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
accuracy47.18576017150156
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
accuracy0.0078125
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
accuracy0.01953125
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
accuracy0.9594758528937365
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
accuracy47.18576017150156
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
accuracy0.0
(exp.f64 x)
accuracy0.01953125
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
accuracy1.0801568606517764
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
accuracy47.18576017150156
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
accuracy0.0
(cos.f64 x)
accuracy0.00390625
(sqrt.f64 (cos.f64 x))
accuracy2.0617222293455124
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
accuracy47.18576017150156
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
accuracy0.00390625
(sqrt.f64 (cos.f64 x))
accuracy0.01953125
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
accuracy2.0497261461743768
#s(approx (exp x) #s(literal 1 binary64))
accuracy47.18576017150156
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
Samples
278.0ms46×5exit
60.0ms80×2valid
54.0ms119×1valid
3.0ms11×0valid
Compiler

Compiled 203 to 26 computations (87.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 348.0ms
ival-cos: 203.0ms (58.3% of total)
adjust: 36.0ms (10.3% of total)
const: 26.0ms (7.5% of total)
ival-exp: 22.0ms (6.3% of total)
ival-mult: 19.0ms (5.5% of total)
ival-fmod: 19.0ms (5.5% of total)
ival-add: 13.0ms (3.7% of total)
ival-sqrt: 8.0ms (2.3% of total)
ival-neg: 2.0ms (0.6% of total)
exact: 1.0ms (0.3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series3.0ms (0%)

Memory
4.9MiB live, 4.9MiB allocated; 0ms collecting garbage
Counts
19 → 23
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
#s(approx (exp x) #s(literal 1 binary64))
(sqrt.f64 (cos.f64 x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(cos.f64 x)
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
Outputs
(fmod (exp x) (sqrt (cos x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(+ 1 (* -1/4 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
-1/4
(- (* -1/96 (pow x 2)) 1/4)
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(exp x)
(sqrt (cos x))
(cos x)
(* -1/96 (pow x 2))
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2))))))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (cos x) (+ (* -1/96 (* x x)) -1/4) (cos x))
1.0ms
x
@-inf
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (cos x) (+ (* -1/96 (* x x)) -1/4) (cos x))
1.0ms
x
@0
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (cos x) (+ (* -1/96 (* x x)) -1/4) (cos x))

simplify141.0ms (1.2%)

Memory
12.0MiB live, 101.6MiB allocated; 9ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
081238
1248217
2815211
33125201
08746181
Stop Event
iter limit
node limit
Counts
23 → 23
Calls
Call 1
Inputs
(fmod (exp x) (sqrt (cos x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(+ 1 (* -1/4 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
-1/4
(- (* -1/96 (pow x 2)) 1/4)
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(exp x)
(sqrt (cos x))
(cos x)
(* -1/96 (pow x 2))
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2))))))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
Outputs
(fmod (exp x) (sqrt (cos x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) x #s(literal 1 binary64)))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x)))
1
#s(literal 1 binary64)
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* -1/4 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(fma.f64 (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 x x)) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/720 binary64) (-.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 x x)) #s(literal 1/2 binary64))) (*.f64 x x) #s(literal 1 binary64))
-1/4
#s(literal -1/4 binary64)
(- (* -1/96 (pow x 2)) 1/4)
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(exp x)
(exp.f64 x)
(sqrt (cos x))
(sqrt.f64 (cos.f64 x))
(cos x)
(cos.f64 x)
(* -1/96 (pow x 2))
(*.f64 #s(literal -1/96 binary64) (*.f64 x x))
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2))))))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))

rewrite77.0ms (0.7%)

Memory
-0.5MiB live, 45.2MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039224
068224
1178224
01139224
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
19 → 83
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
#s(approx (exp x) #s(literal 1 binary64))
(sqrt.f64 (cos.f64 x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(cos.f64 x)
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
Outputs
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))))
(fma.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))))
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x))))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
#s(approx (exp x) #s(literal 1 binary64))
(*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))
(pow.f64 (cos.f64 x) #s(literal 1/2 binary64))
(sqrt.f64 (cos.f64 x))
(exp.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(/.f64 (-.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (*.f64 (sinh.f64 x) (sinh.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (+.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (fma.f64 (cosh.f64 x) (cosh.f64 x) (-.f64 (*.f64 (sinh.f64 x) (sinh.f64 x)) (*.f64 (cosh.f64 x) (sinh.f64 x)))))
(exp.f64 x)
(+.f64 (sinh.f64 x) (cosh.f64 x))
(+.f64 (cosh.f64 x) (sinh.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))))
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))))
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (sinh.f64 (neg.f64 x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(*.f64 (pow.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #s(literal 1/4 binary64)) (pow.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #s(literal 1/4 binary64)))
(pow.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))) #s(literal 1/2 binary64))
(sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 (*.f64 (log.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1/2 binary64)))
(fma.f64 (sin.f64 x) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64))) (*.f64 (cos.f64 x) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
(sin.f64 (+.f64 (neg.f64 x) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) x))
(cos.f64 (neg.f64 (neg.f64 x)))
(cos.f64 (neg.f64 x))
(cos.f64 x)
(+.f64 (*.f64 (sin.f64 x) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (cos.f64 x) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
(/.f64 (-.f64 #s(literal 1/16 binary64) (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64))) (-.f64 #s(literal -1/4 binary64) (*.f64 #s(literal -1/96 binary64) (*.f64 x x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64)))
(/.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64)) (+.f64 #s(literal 1/16 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))))
(/.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64))))
(fma.f64 (*.f64 #s(literal -1/96 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal -1/4 binary64))
(fma.f64 (*.f64 #s(literal -1/96 binary64) (neg.f64 x)) (neg.f64 x) #s(literal -1/4 binary64))
(fma.f64 (*.f64 #s(literal -1/96 binary64) x) x #s(literal -1/4 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal -1/96 binary64)) #s(literal -1/4 binary64))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
(fma.f64 (*.f64 x x) #s(literal -1/96 binary64) #s(literal -1/4 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal -1/96 binary64)) #s(literal -1/4 binary64))
(fma.f64 x (*.f64 #s(literal -1/96 binary64) x) #s(literal -1/4 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))) (/.f64 #s(literal 1/16 binary64) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))))
(-.f64 #s(literal -1/4 binary64) (*.f64 (neg.f64 (*.f64 #s(literal -1/96 binary64) x)) x))
(-.f64 #s(literal -1/4 binary64) (*.f64 #s(literal 1/96 binary64) (*.f64 x x)))
(-.f64 #s(literal -1/4 binary64) (*.f64 (neg.f64 (*.f64 x x)) #s(literal -1/96 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))) (/.f64 #s(literal -1/64 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))))
(+.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))
(+.f64 #s(literal -1/4 binary64) (*.f64 #s(literal -1/96 binary64) (*.f64 x x)))
#s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))

eval16.0ms (0.1%)

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

Compiled 3 382 to 469 computations (86.1% saved)

prune92.0ms (0.8%)

Memory
-40.6MiB live, 20.4MiB allocated; 42ms collecting garbage
Pruning

14 alts after pruning (9 fresh and 5 done)

PrunedKeptTotal
New1314135
Fresh257
Picked145
Done011
Total13414148
Accuracy
26.7%
Counts
148 → 14
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.0%
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
7.9%
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
8.3%
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
8.2%
(*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
8.3%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
7.9%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
14.8%
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
22.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
22.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
6.0%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
6.8%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
Compiler

Compiled 509 to 325 computations (36.1% saved)

simplify125.0ms (1.1%)

Memory
7.1MiB live, 97.4MiB allocated; 9ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
cost-diff0
(cosh.f64 x)
cost-diff0
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
cost-diff10
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
cost-diff0
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
cost-diff2
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
cost-diff0
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
cost-diff2
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
cost-diff0
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
cost-diff0
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
cost-diff0
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
cost-diff0
#s(approx (exp x) #s(literal 1 binary64))
cost-diff0
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
cost-diff1
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
041353
072336
1125336
2306333
31088333
46550333
08432333
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(*.f64 x x)
x
#s(literal -1/4 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))
#s(literal -1/4 binary64)
(*.f64 x x)
#s(literal 1 binary64)
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
#s(literal -1/96 binary64)
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(cosh.f64 x)
x
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(sinh.f64 x)
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (exp x) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
x
#s(literal -1/4 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))
#s(literal -1/4 binary64)
(*.f64 x x)
#s(literal 1 binary64)
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
#s(literal -1/96 binary64)
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x))
(cosh.f64 x)
x
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(sinh.f64 x)

localize262.0ms (2.3%)

Memory
18.0MiB live, 161.8MiB allocated; 13ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.015625
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
accuracy0.03125
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
accuracy0.050086611177641314
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
accuracy46.943569399876885
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
accuracy0.0078125
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
accuracy0.01171875
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
accuracy0.7132753849182006
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
accuracy46.943569399876885
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
accuracy0.0
(exp.f64 x)
accuracy0.01171875
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
accuracy0.8340087680694789
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
accuracy46.943569399876885
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
accuracy0.0
(exp.f64 x)
accuracy0.8340087680694789
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
accuracy1.8195407568646746
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
accuracy46.943569399876885
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
accuracy0.01953125
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
accuracy0.8340087680694789
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
accuracy1.8075386461743768
#s(approx (exp x) #s(literal 1 binary64))
accuracy46.943569399876885
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
Samples
193.0ms199×1valid
17.0ms5exit
12.0ms45×0exit
3.0ms10×0valid
Compiler

Compiled 230 to 29 computations (87.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 194.0ms
ival-fmod: 66.0ms (34% of total)
ival-exp: 32.0ms (16.5% of total)
ival-cos: 24.0ms (12.4% of total)
adjust: 17.0ms (8.8% of total)
ival-mult: 16.0ms (8.2% of total)
ival-cosh: 11.0ms (5.7% of total)
ival-add: 7.0ms (3.6% of total)
ival-sinh: 6.0ms (3.1% of total)
ival-sqrt: 4.0ms (2.1% of total)
const: 4.0ms (2.1% of total)
ival-div: 3.0ms (1.5% of total)
ival-sub: 2.0ms (1% of total)
ival-neg: 1.0ms (0.5% of total)
exact: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series11.0ms (0.1%)

Memory
14.0MiB live, 14.0MiB allocated; 0ms collecting garbage
Counts
21 → 38
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) #s(literal 1 binary64))
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(exp.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(cosh.f64 x)
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
Outputs
(fmod (exp x) (sqrt (cos x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(+ 1 (* -1/4 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(+ (* x (- (* -1 (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (- (* x (- (* -1 (* x (+ (* -1 (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (+ (* -1/2 (fmod (exp x) (sqrt (cos x)))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))))) (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (- (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (- (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* 1/2 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* (pow x 2) (+ (* 1/24 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))
(+ (* (pow x 2) (+ (* 1/2 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/720 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/24 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
(+ 1 (* 1/2 (pow x 2)))
(+ 1 (* (pow x 2) (+ 1/2 (* 1/24 (pow x 2)))))
(+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/720 (pow x 2)))))))
-1/4
(- (* -1/96 (pow x 2)) 1/4)
(* x (fmod (exp x) (sqrt (cos x))))
(* x (+ (* 1/6 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))))
(* x (+ (* (pow x 2) (+ (* 1/120 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x)))))
(* x (+ (* (pow x 2) (+ (* 1/6 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/5040 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/120 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(exp x)
(sqrt (cos x))
(/ (fmod (exp x) (sqrt (cos x))) (exp x))
(- (* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))))
(* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))
(* 1/2 (+ (exp x) (/ 1 (exp x))))
(* -1/96 (pow x 2))
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2))))))
(* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
Calls

3 calls:

TimeVariablePointExpression
4.0ms
x
@inf
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (- (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (cosh x) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (sqrt (cos x)) (+ (* -1/96 (* x x)) -1/4) (* (sinh x) (fmod (exp x) (sqrt (cos x)))))
3.0ms
x
@-inf
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (- (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (cosh x) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (sqrt (cos x)) (+ (* -1/96 (* x x)) -1/4) (* (sinh x) (fmod (exp x) (sqrt (cos x)))))
3.0ms
x
@0
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) 1) (/ (* (fmod (exp x) (sqrt (cos x))) 1) (exp x)) (fmod (exp x) (sqrt (cos x))) (- (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (* (sinh x) (fmod (exp x) (sqrt (cos x))))) (* (cosh x) (fmod (exp x) (sqrt (cos x)))) (cosh x) (fmod (exp x) (sqrt (cos x))) (sqrt (cos x)) (sqrt (cos x)) (+ (* -1/96 (* x x)) -1/4) (* (sinh x) (fmod (exp x) (sqrt (cos x)))))

simplify195.0ms (1.7%)

Memory
-16.6MiB live, 125.4MiB allocated; 14ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0147649
1503549
21943520
36439520
08136481
Stop Event
iter limit
node limit
Counts
38 → 38
Calls
Call 1
Inputs
(fmod (exp x) (sqrt (cos x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(+ 1 (* -1/4 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(+ (* x (- (* -1 (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (- (* x (- (* -1 (* x (+ (* -1 (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (+ (* -1/2 (fmod (exp x) (sqrt (cos x)))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))))) (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (- (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (- (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* 1/2 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* (pow x 2) (+ (* 1/24 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))
(+ (* (pow x 2) (+ (* 1/2 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/720 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/24 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
(+ 1 (* 1/2 (pow x 2)))
(+ 1 (* (pow x 2) (+ 1/2 (* 1/24 (pow x 2)))))
(+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/720 (pow x 2)))))))
-1/4
(- (* -1/96 (pow x 2)) 1/4)
(* x (fmod (exp x) (sqrt (cos x))))
(* x (+ (* 1/6 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))))
(* x (+ (* (pow x 2) (+ (* 1/120 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x)))))
(* x (+ (* (pow x 2) (+ (* 1/6 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/5040 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/120 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(exp x)
(sqrt (cos x))
(/ (fmod (exp x) (sqrt (cos x))) (exp x))
(- (* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))))
(* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))
(* 1/2 (+ (exp x) (/ 1 (exp x))))
(* -1/96 (pow x 2))
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2))))))
(* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
Outputs
(fmod (exp x) (sqrt (cos x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 #s(literal -1 binary64) x (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
(fma.f64 (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (*.f64 x x) (*.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))
1
#s(literal 1 binary64)
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* -1/4 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ (* x (- (* -1 (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 #s(literal -1 binary64) x (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64))))
(+ (* x (- (* x (- (* -1 (* x (+ (* -1 (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (+ (* -1/2 (fmod (exp x) (sqrt (cos x)))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))))) (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(fma.f64 (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (*.f64 x x) (*.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))
(+ (* x (- (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 #s(literal -1 binary64) x (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64))))
(+ (* x (- (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(fma.f64 (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (*.f64 x x) (*.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))
(+ (* 1/2 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(+ (* (pow x 2) (+ (* 1/24 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(+ (* (pow x 2) (+ (* 1/2 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/720 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/24 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(+ 1 (* 1/2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (+ 1/2 (* 1/24 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (+ 1/2 (* (pow x 2) (+ 1/24 (* 1/720 (pow x 2)))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
-1/4
#s(literal -1/4 binary64)
(- (* -1/96 (pow x 2)) 1/4)
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
(* x (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) x)
(* x (+ (* 1/6 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x)))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/6 binary64)) x x))
(* x (+ (* (pow x 2) (+ (* 1/120 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/6 (fmod (exp x) (sqrt (cos x)))))) (fmod (exp x) (sqrt (cos x)))))
(*.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 x x)) (*.f64 x x) (fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal 1 binary64)))) x)
(* x (+ (* (pow x 2) (+ (* 1/6 (fmod (exp x) (sqrt (cos x)))) (* (pow x 2) (+ (* 1/5040 (* (pow x 2) (fmod (exp x) (sqrt (cos x))))) (* 1/120 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x)))))
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (fma.f64 #s(literal 1/5040 binary64) (*.f64 x x) #s(literal 1/120 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/6 binary64) #s(literal 1 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) x)
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(exp x)
(exp.f64 x)
(sqrt (cos x))
(sqrt.f64 (cos.f64 x))
(/ (fmod (exp x) (sqrt (cos x))) (exp x))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(- (* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))) (* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x))))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))))
(* 1/2 (* (+ (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))
(*.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) #s(literal 1/2 binary64)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(* 1/2 (+ (exp x) (/ 1 (exp x))))
(*.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) #s(literal 1/2 binary64))
(* -1/96 (pow x 2))
(*.f64 #s(literal -1/96 binary64) (*.f64 x x))
(* -1 (* (pow x 2) (+ 1/96 (* 1/4 (/ 1 (pow x 2))))))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
(* 1/2 (* (- (exp x) (/ 1 (exp x))) (fmod (exp x) (sqrt (cos x)))))
(*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))

rewrite85.0ms (0.7%)

Memory
-3.6MiB live, 42.7MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041270
072253
1196253
01067253
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
21 → 119
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) #s(literal 1 binary64))
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(exp.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(cosh.f64 x)
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
Outputs
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(fma.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (exp x) #s(literal 1 binary64))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(/.f64 (-.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (*.f64 (sinh.f64 x) (sinh.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (+.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (fma.f64 (cosh.f64 x) (cosh.f64 x) (-.f64 (*.f64 (sinh.f64 x) (sinh.f64 x)) (*.f64 (cosh.f64 x) (sinh.f64 x)))))
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 x) (*.f64 #s(literal 2 binary64) (sinh.f64 x))) #s(literal 2 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 x)))) #s(literal 4 binary64))
(exp.f64 x)
(+.f64 (sinh.f64 x) (cosh.f64 x))
(+.f64 (cosh.f64 x) (sinh.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(*.f64 #s(literal 1 binary64) (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)))
(/.f64 (neg.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))) (neg.f64 (neg.f64 (exp.f64 x))))
(/.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (neg.f64 (exp.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(neg.f64 (/.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)))
(neg.f64 (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (neg.f64 (exp.f64 x))))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(*.f64 #s(literal 1 binary64) (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)))
(/.f64 (neg.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))) (neg.f64 (neg.f64 (exp.f64 x))))
(/.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (neg.f64 (exp.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(neg.f64 (/.f64 (neg.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x)))
(neg.f64 (/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (neg.f64 (exp.f64 x))))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))))
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) (exp.f64 x))
(/.f64 (+.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 2 binary64)) (*.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))))
(/.f64 (neg.f64 (*.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))))) (neg.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)))))
(/.f64 (*.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))
(/.f64 (-.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64))) (fma.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64))))
(fma.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)))
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)))
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (sinh.f64 x)))
(fma.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (sinh.f64 x)))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(-.f64 (/.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))) (/.f64 (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 2 binary64)) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))))
(-.f64 (/.f64 (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 3 binary64)) (fma.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 3 binary64)) (fma.f64 (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (pow.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) #s(literal 2 binary64)))))
(-.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (neg.f64 (sinh.f64 (neg.f64 x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(-.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(+.f64 (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (neg.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (sinh.f64 x)))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (cosh.f64 x))
(*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 2 binary64))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 2 binary64) (cosh.f64 x))) #s(literal 2 binary64))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x))) #s(literal -2 binary64))
(/.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 x)) #s(literal 2 binary64))
(cosh.f64 (neg.f64 (neg.f64 x)))
(cosh.f64 (neg.f64 x))
(cosh.f64 x)
(+.f64 (/.f64 (exp.f64 x) #s(literal 2 binary64)) (/.f64 (exp.f64 (neg.f64 x)) #s(literal 2 binary64)))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1/16 binary64) (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64))) (-.f64 #s(literal -1/4 binary64) (*.f64 #s(literal -1/96 binary64) (*.f64 x x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64)))
(/.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64)) (+.f64 #s(literal 1/16 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))))
(/.f64 (fma.f64 #s(literal -1/884736 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1/64 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64))))
(fma.f64 (*.f64 #s(literal -1/96 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal -1/4 binary64))
(fma.f64 (*.f64 #s(literal -1/96 binary64) (neg.f64 x)) (neg.f64 x) #s(literal -1/4 binary64))
(fma.f64 (*.f64 #s(literal -1/96 binary64) x) x #s(literal -1/4 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal -1/96 binary64)) #s(literal -1/4 binary64))
(fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal -1/96 binary64)) #s(literal -1/4 binary64))
(fma.f64 (*.f64 x x) #s(literal -1/96 binary64) #s(literal -1/4 binary64))
(fma.f64 x (*.f64 #s(literal -1/96 binary64) x) #s(literal -1/4 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))) (/.f64 #s(literal 1/16 binary64) (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))))
(-.f64 #s(literal -1/4 binary64) (*.f64 (neg.f64 (*.f64 #s(literal -1/96 binary64) x)) x))
(-.f64 #s(literal -1/4 binary64) (*.f64 #s(literal 1/96 binary64) (*.f64 x x)))
(-.f64 #s(literal -1/4 binary64) (*.f64 (neg.f64 (*.f64 x x)) #s(literal -1/96 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))) (/.f64 #s(literal -1/64 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1/16 binary64)) (*.f64 (*.f64 x x) #s(literal 1/384 binary64)))))
(+.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal -1/4 binary64))
(+.f64 #s(literal -1/4 binary64) (*.f64 #s(literal -1/96 binary64) (*.f64 x x)))
(*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (sinh.f64 x))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) #s(literal 2 binary64))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 2 binary64) (sinh.f64 x))) #s(literal 2 binary64))

eval24.0ms (0.2%)

Memory
-10.1MiB live, 33.7MiB allocated; 5ms collecting garbage
Compiler

Compiled 5 376 to 624 computations (88.4% saved)

prune13.0ms (0.1%)

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

17 alts after pruning (9 fresh and 8 done)

PrunedKeptTotal
New1865191
Fresh044
Picked235
Done055
Total18817205
Accuracy
26.7%
Counts
205 → 17
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.0%
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
7.9%
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
8.3%
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
8.2%
(*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
8.3%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
7.9%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
12.1%
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
14.8%
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
14.8%
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
25.0%
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
22.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
22.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
6.0%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
6.8%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
Compiler

Compiled 587 to 385 computations (34.4% saved)

simplify142.0ms (1.2%)

Memory
7.7MiB live, 103.6MiB allocated; 11ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
cost-diff0
(exp.f64 x)
cost-diff0
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
cost-diff1
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
cost-diff0
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
cost-diff0
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))
cost-diff1
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
cost-diff0
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
cost-diff0
(-.f64 #s(literal 1 binary64) x)
cost-diff0
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
cost-diff0
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
cost-diff0
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
cost-diff0
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
cost-diff1
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
cost-diff0
(-.f64 x #s(literal -1 binary64))
cost-diff0
#s(approx (exp x) (-.f64 x #s(literal -1 binary64)))
cost-diff0
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
cost-diff1
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
044414
077414
1121414
2299409
3924409
44155409
08517409
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) (-.f64 x #s(literal -1 binary64)))
(-.f64 x #s(literal -1 binary64))
x
#s(literal -1 binary64)
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
#s(literal 1/2 binary64)
x
#s(literal 1 binary64)
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(*.f64 x x)
#s(literal -1/4 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(-.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
#s(literal 1/2 binary64)
x
#s(literal 1 binary64)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(exp.f64 (neg.f64 x))
(neg.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64))
(-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64))
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x))
#s(literal -19/5760 binary64)
(*.f64 x x)
#s(literal 1/96 binary64)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (exp x) (-.f64 x #s(literal -1 binary64)))
(-.f64 x #s(literal -1 binary64))
x
#s(literal -1 binary64)
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
#s(literal 1/2 binary64)
x
#s(literal 1 binary64)
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
#s(literal -1/4 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) x)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) x))
(-.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(exp.f64 x)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
#s(literal 1/2 binary64)
x
#s(literal 1 binary64)
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(exp.f64 (neg.f64 x))
(neg.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
x
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64))
(-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64))
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x))
#s(literal -19/5760 binary64)
(*.f64 x x)
#s(literal 1/96 binary64)
#s(literal -1/4 binary64)
#s(literal 1 binary64)
(exp.f64 (neg.f64 x))
(neg.f64 x)

localize559.0ms (4.8%)

Memory
7.2MiB live, 376.6MiB allocated; 60ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.01953125
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
accuracy0.125
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x))
accuracy0.8754386097907378
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
accuracy47.18576017150156
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
accuracy0.00390625
(sqrt.f64 (cos.f64 x))
accuracy0.01953125
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
accuracy1.1105458097972223
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
accuracy47.18576017150156
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))
accuracy0.00390625
(sqrt.f64 (cos.f64 x))
accuracy0.015625
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
accuracy1.3186920326728127
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
accuracy47.18576017150156
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
accuracy0.01953125
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
accuracy1.0801568606517764
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
accuracy1.1105458097972223
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
accuracy47.18576017150156
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
accuracy0.01953125
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
accuracy1.0801568606517764
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
accuracy1.3151880329468697
#s(approx (exp x) (-.f64 x #s(literal -1 binary64)))
accuracy47.18576017150156
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
Samples
279.0ms46×5exit
159.0ms80×2valid
67.0ms119×1valid
3.0ms11×0valid
Compiler

Compiled 260 to 32 computations (87.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 454.0ms
ival-cos: 203.0ms (44.8% of total)
ival-sqrt: 77.0ms (17% of total)
adjust: 63.0ms (13.9% of total)
ival-mult: 26.0ms (5.7% of total)
ival-exp: 22.0ms (4.9% of total)
const: 19.0ms (4.2% of total)
ival-fmod: 19.0ms (4.2% of total)
ival-add: 14.0ms (3.1% of total)
ival-sub: 7.0ms (1.5% of total)
ival-neg: 2.0ms (0.4% of total)
exact: 1.0ms (0.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series5.0ms (0%)

Memory
7.9MiB live, 7.9MiB allocated; 0ms collecting garbage
Counts
21 → 28
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) (-.f64 x #s(literal -1 binary64)))
(-.f64 x #s(literal -1 binary64))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(-.f64 #s(literal 1 binary64) x)
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(sqrt.f64 (cos.f64 x))
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x))
Outputs
(fmod (exp x) (sqrt (cos x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(+ 1 (* -1 x))
(+ 1 (* -1/4 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(* -19/5760 (pow x 2))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(exp x)
x
(* x (+ 1 (/ 1 x)))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (+ (/ 1 x) (/ 1 (pow x 2)))))
(* -1 (* x (fmod (exp x) (sqrt (cos x)))))
(* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (/ (fmod (exp x) (sqrt (cos x))) x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(sqrt (cos x))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
(* -1 (* x (+ (* -1 (/ (fmod (exp x) (sqrt (cos x))) x)) (fmod (exp x) (sqrt (cos x))))))
(* -1 (* x (- 1 (/ 1 x))))
Calls

3 calls:

TimeVariablePointExpression
2.0ms
x
@inf
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (- x -1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (+ (* (+ (* 1/2 x) 1) x) 1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (* (- 1 x) (fmod (exp x) (sqrt (cos x)))) (- 1 x) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (sqrt (cos x)) (sqrt (cos x)) (* -19/5760 (* x x)))
1.0ms
x
@-inf
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (- x -1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (+ (* (+ (* 1/2 x) 1) x) 1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (* (- 1 x) (fmod (exp x) (sqrt (cos x)))) (- 1 x) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (sqrt (cos x)) (sqrt (cos x)) (* -19/5760 (* x x)))
1.0ms
x
@0
((* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (- x -1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (+ (* (+ (* 1/2 x) 1) x) 1) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (* (- 1 x) (fmod (exp x) (sqrt (cos x)))) (- 1 x) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod (exp x) (sqrt (cos x))) (exp x) (sqrt (cos x)) (sqrt (cos x)) (sqrt (cos x)) (* -19/5760 (* x x)))

simplify210.0ms (1.8%)

Memory
8.1MiB live, 193.6MiB allocated; 75ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
084264
1259224
2809217
33707215
08595202
Stop Event
iter limit
node limit
Counts
28 → 27
Calls
Call 1
Inputs
(fmod (exp x) (sqrt (cos x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
1
(+ 1 x)
(+ 1 (* x (+ 1 (* 1/2 x))))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(+ 1 (* -1 x))
(+ 1 (* -1/4 (pow x 2)))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(* -19/5760 (pow x 2))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(exp x)
x
(* x (+ 1 (/ 1 x)))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (+ (/ 1 x) (/ 1 (pow x 2)))))
(* -1 (* x (fmod (exp x) (sqrt (cos x)))))
(* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (/ (fmod (exp x) (sqrt (cos x))) x)))
(* -1 x)
(* x (- (/ 1 x) 1))
(sqrt (cos x))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
(* -1 (* x (+ (* -1 (/ (fmod (exp x) (sqrt (cos x))) x)) (fmod (exp x) (sqrt (cos x))))))
(* -1 (* x (- 1 (/ 1 x))))
Outputs
(fmod (exp x) (sqrt (cos x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(+ (* -1 (* x (fmod (exp x) (sqrt (cos x))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* 1/2 (* x (fmod (exp x) (sqrt (cos x))))))) (fmod (exp x) (sqrt (cos x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 (*.f64 #s(literal -1/2 binary64) x) x)))
(+ (* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (* x (+ (* -1/6 (* x (fmod (exp x) (sqrt (cos x))))) (* 1/2 (fmod (exp x) (sqrt (cos x)))))))) (fmod (exp x) (sqrt (cos x))))
(fma.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (*.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) x) #s(literal 1 binary64))) x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
1
#s(literal 1 binary64)
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* x (+ 1 (* x (+ 1/2 (* 1/6 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(+ 1 (* -1/4 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* -1/96 (pow x 2)) 1/4)))
(fma.f64 (-.f64 (*.f64 #s(literal -1/96 binary64) (*.f64 x x)) #s(literal 1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (- (* -19/5760 (pow x 2)) 1/96)) 1/4)))
(fma.f64 (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) x) x) #s(literal 1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))
(* -19/5760 (pow x 2))
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x))
(* (exp (neg x)) (fmod (exp x) (sqrt (cos x))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(exp x)
(exp.f64 x)
x
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)
(* (pow x 2) (+ 1/2 (+ (/ 1 x) (/ 1 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(* -1 (* x (fmod (exp x) (sqrt (cos x)))))
(*.f64 (neg.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(* x (+ (* -1 (fmod (exp x) (sqrt (cos x)))) (/ (fmod (exp x) (sqrt (cos x))) x)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(* -1 x)
(neg.f64 x)
(* x (- (/ 1 x) 1))
(-.f64 #s(literal 1 binary64) x)
(sqrt (cos x))
(sqrt.f64 (cos.f64 x))
(* (exp (* -1 x)) (fmod (exp x) (sqrt (cos x))))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(* -1 (* x (+ (* -1 (/ (fmod (exp x) (sqrt (cos x))) x)) (fmod (exp x) (sqrt (cos x))))))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(* -1 (* x (- 1 (/ 1 x))))
(-.f64 #s(literal 1 binary64) x)

rewrite89.0ms (0.8%)

Memory
2.8MiB live, 48.5MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044275
077275
1214275
01473275
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
21 → 98
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) (-.f64 x #s(literal -1 binary64)))
(-.f64 x #s(literal -1 binary64))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(-.f64 #s(literal 1 binary64) x)
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(exp.f64 x)
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(sqrt.f64 (cos.f64 x))
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x))
Outputs
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(fma.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (exp x) (-.f64 x #s(literal -1 binary64)))
(/.f64 (neg.f64 (fma.f64 x x #s(literal -1 binary64))) (neg.f64 (+.f64 #s(literal -1 binary64) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (fma.f64 x x (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)))))
(/.f64 (fma.f64 x x #s(literal -1 binary64)) (+.f64 #s(literal -1 binary64) x))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 x x (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64))))
(-.f64 (/.f64 (*.f64 x x) (+.f64 #s(literal -1 binary64) x)) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) x)))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)))) (/.f64 #s(literal -1 binary64) (fma.f64 x x (fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64)))))
(-.f64 x #s(literal -1 binary64))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(fma.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))))
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64))))
#s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 3 binary64)) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 3 binary64)) #s(literal -1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)))
(fma.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal -1 binary64)) #s(literal -1 binary64) #s(literal 1 binary64))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 1 binary64))
(fma.f64 x (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal -1 binary64))))
(-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))) x))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))))
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) x))
(*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (+.f64 #s(literal 1 binary64) x))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64)))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (+.f64 #s(literal 1 binary64) x))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64)))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x))) (neg.f64 (+.f64 #s(literal 1 binary64) x)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (+.f64 (fma.f64 x x x) #s(literal 1 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)) (+.f64 #s(literal 1 binary64) x))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) x)) (/.f64 (*.f64 x x) (+.f64 #s(literal 1 binary64) x)))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (fma.f64 x x x) #s(literal 1 binary64))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (+.f64 (fma.f64 x x x) #s(literal 1 binary64))))
(-.f64 #s(literal 1 binary64) x)
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))))
(fma.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (cosh.f64 x) (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))))
(+.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (cosh.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (sinh.f64 (neg.f64 x))))
(fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))))
(/.f64 (*.f64 #s(literal 1 binary64) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 x))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(fma.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))))
(fma.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(+.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (*.f64 (sinh.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))))
(+.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (cosh.f64 x)) (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (sinh.f64 (neg.f64 x))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64))))
(/.f64 (-.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (*.f64 (sinh.f64 x) (sinh.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (+.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (pow.f64 (sinh.f64 x) #s(literal 3 binary64))) (fma.f64 (cosh.f64 x) (cosh.f64 x) (-.f64 (*.f64 (sinh.f64 x) (sinh.f64 x)) (*.f64 (cosh.f64 x) (sinh.f64 x)))))
(exp.f64 x)
(+.f64 (sinh.f64 x) (cosh.f64 x))
(+.f64 (cosh.f64 x) (sinh.f64 x))
#s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))
#s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))
(*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))
(pow.f64 (cos.f64 x) #s(literal 1/2 binary64))
(sqrt.f64 (cos.f64 x))
(exp.f64 (*.f64 (log.f64 (cos.f64 x)) #s(literal 1/2 binary64)))
(*.f64 (*.f64 #s(literal -19/5760 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 #s(literal -19/5760 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal -19/5760 binary64) x) x)
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal -19/5760 binary64)))
(*.f64 #s(literal -19/5760 binary64) (*.f64 x x))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal -19/5760 binary64)))
(*.f64 (*.f64 x x) #s(literal -19/5760 binary64))
(*.f64 x (*.f64 #s(literal -19/5760 binary64) x))

eval24.0ms (0.2%)

Memory
-12.4MiB live, 32.5MiB allocated; 7ms collecting garbage
Compiler

Compiled 4 461 to 535 computations (88% saved)

prune23.0ms (0.2%)

Memory
-12.4MiB live, 33.6MiB allocated; 5ms collecting garbage
Pruning

24 alts after pruning (12 fresh and 12 done)

PrunedKeptTotal
New1438151
Fresh044
Picked145
Done088
Total14424168
Accuracy
61.2%
Counts
168 → 24
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.0%
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
7.9%
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
14.8%
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
25.0%
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
8.3%
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
8.2%
(*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
8.3%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
8.0%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
7.9%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
12.1%
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
14.9%
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))) (exp.f64 (neg.f64 x)))
14.8%
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
25.0%
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
46.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
46.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
12.4%
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
12.4%
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
22.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
22.0%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
6.0%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
6.8%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (+.f64 #s(literal 1 binary64) x)))
6.8%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
Compiler

Compiled 1 248 to 526 computations (57.9% saved)

regimes16.0ms (0.1%)

Memory
24.5MiB live, 24.5MiB allocated; 0ms collecting garbage
Counts
30 → 3
Calls
Call 1
Inputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (+.f64 #s(literal 1 binary64) x)))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (*.f64 (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)) (pow.f64 (cos.f64 x) #s(literal 1/4 binary64)))) (exp.f64 (neg.f64 x)))
(-.f64 (*.f64 (cosh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 (sinh.f64 x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (fmod.f64 (+.f64 (/.f64 (pow.f64 (cosh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (sinh.f64 x) #s(literal 3 binary64)) (fma.f64 (sinh.f64 x) (-.f64 (sinh.f64 x) (cosh.f64 x)) (pow.f64 (cosh.f64 x) #s(literal 2 binary64))))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Calls

2 calls:

8.0ms
x
6.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Results
AccuracySegmentsBranch
60.5%3(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
60.3%3x
Compiler

Compiled 11 to 9 computations (18.2% saved)

regimes7.0ms (0.1%)

Memory
11.1MiB live, 11.1MiB allocated; 0ms collecting garbage
Counts
26 → 2
Calls
Call 1
Inputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (fma.f64 (fma.f64 #s(literal -1/6 binary64) x #s(literal 1/2 binary64)) (*.f64 x x) (-.f64 #s(literal 1 binary64) x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (/.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 #s(literal 1 binary64) (*.f64 x x))) (+.f64 #s(literal 1 binary64) x)))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 #s(literal -1/96 binary64) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (fma.f64 (-.f64 (*.f64 #s(literal -19/5760 binary64) (*.f64 x x)) #s(literal 1/96 binary64)) (*.f64 x x) #s(literal -1/4 binary64)) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
Calls

1 calls:

5.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Results
AccuracySegmentsBranch
59.0%2(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 10 to 8 computations (20% saved)

regimes12.0ms (0.1%)

Memory
-45.1MiB live, 10.1MiB allocated; 8ms collecting garbage
Counts
16 → 2
Calls
Call 1
Inputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (-.f64 #s(literal 1 binary64) x) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x))
Calls

1 calls:

11.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Results
AccuracySegmentsBranch
58.9%2(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 10 to 8 computations (20% saved)

regimes2.0ms (0%)

Memory
4.2MiB live, 4.2MiB allocated; 0ms collecting garbage
Counts
6 → 2
Calls
Call 1
Inputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x #s(literal 1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Calls

1 calls:

2.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Results
AccuracySegmentsBranch
58.9%2(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 10 to 8 computations (20% saved)

regimes4.0ms (0%)

Memory
7.4MiB live, 7.4MiB allocated; 0ms collecting garbage
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Calls

2 calls:

2.0ms
x
1.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Results
AccuracySegmentsBranch
25.0%1x
25.0%1(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 11 to 9 computations (18.2% saved)

regimes3.0ms (0%)

Memory
5.5MiB live, 5.5MiB allocated; 0ms collecting garbage
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Outputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
Calls

2 calls:

1.0ms
x
1.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Results
AccuracySegmentsBranch
24.4%2x
24.4%2(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 11 to 9 computations (18.2% saved)

regimes2.0ms (0%)

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

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
Outputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
Calls

2 calls:

1.0ms
x
1.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Results
AccuracySegmentsBranch
6.0%1(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
6.0%1x
Compiler

Compiled 11 to 9 computations (18.2% saved)

bsearch1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0
NaN
0.0ms
8.406608742391013e-12
2.6561724780237843e-8
Compiler

Compiled 13 to 12 computations (7.7% saved)

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.012725050899029759
0.9999999999999999
Compiler

Compiled 13 to 12 computations (7.7% saved)

bsearch0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.012725050899029759
0.9999999999999999
Compiler

Compiled 13 to 12 computations (7.7% saved)

bsearch0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.012725050899029759
0.9999999999999999
Compiler

Compiled 13 to 12 computations (7.7% saved)

bsearch21.0ms (0.2%)

Memory
-23.7MiB live, 21.6MiB allocated; 6ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-failed
Steps
TimeLeftRight
20.0ms
0.012765964256984683
7.596881839669079
Samples
10.0ms101×0invalid
2.0ms16×0valid
Compiler

Compiled 56 to 44 computations (21.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-cos: 3.0ms (32.8% of total)
ival-exp: 2.0ms (21.9% of total)
ival-fmod: 2.0ms (21.9% of total)
ival-mult: 1.0ms (10.9% of total)
ival-sqrt: 1.0ms (10.9% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-neg: 0.0ms (0% of total)

simplify47.0ms (0.4%)

Memory
6.5MiB live, 51.8MiB allocated; 7ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
062375
189375
2143373
3370373
41842373
Stop Event
node limit
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 6189700196426901/618970019642690137449562112 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 2 binary64)) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))))
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)))
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)))
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(if (<=.f64 x #s(literal 1/2 binary64)) #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))
Outputs
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 6189700196426901/618970019642690137449562112 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 2 binary64)) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))))
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)))
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) (/.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)))
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (/.f64 (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) #s(literal 1 binary64)) (exp.f64 x)))
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (/.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 #s(literal -1/4 binary64) (*.f64 x x) #s(literal 1 binary64)))) (exp.f64 x)))
(if (<=.f64 (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) #s(literal 5764607523034235/288230376151711744 binary64)) (*.f64 (fmod.f64 #s(approx (exp x) #s(approx (+ (* (+ (* 1/2 x) 1) x) 1) (*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))) (*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))))
(*.f64 (fmod.f64 #s(approx (exp x) (-.f64 x #s(literal -1 binary64))) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x)))
(if (<=.f64 x #s(literal 1/2 binary64)) #s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64))))) (*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) (exp.f64 (neg.f64 x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))))

derivations796.0ms (6.9%)

Memory
8.9MiB live, 439.5MiB allocated; 65ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
084264
1259224
2809217
33707215
08595202
0147649
1503549
21943520
36439520
08136481
044275
077275
1214275
01473275
081238
1248217
2815211
33125201
08746181
076218
1225197
2690191
32473181
46178181
08118161
0823
01523
13323
214022
0106422
Stop Event
fuel
iter limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
Compiler

Compiled 375 to 63 computations (83.2% saved)

preprocess96.0ms (0.8%)

Memory
19.5MiB live, 69.6MiB allocated; 10ms collecting garbage
Compiler

Compiled 770 to 142 computations (81.6% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...