expfmod (used to be hard to sample)

Time bar (total: 16.8s)

start0.0ms (0%)

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

analyze327.0ms (1.9%)

Memory
8.4MiB live, 246.5MiB allocated; 52ms 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)

sample15.2s (90.5%)

Memory
56.8MiB live, 12 907.7MiB allocated; 4.9s collecting garbage
Samples
10.2s7 411×5exit
1.6s2 189×2valid
1.0s5 004×0invalid
769.0ms2 941×1valid
453.0ms3 126×0valid
Precisions
Click to see histograms. Total time spent on operations: 13.2s
ival-cos: 4.7s (35.5% of total)
ival-exp: 4.2s (31.5% of total)
ival-fmod: 1.9s (14.7% of total)
adjust: 999.0ms (7.6% of total)
ival-sqrt: 922.0ms (7% of total)
ival-mult!: 371.0ms (2.8% of total)
ival-neg: 109.0ms (0.8% of total)
Bogosity

preprocess17.0ms (0.1%)

Memory
6.6MiB live, 6.6MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01531
15730
219330
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
Compiler

Compiled 20 to 16 computations (20% saved)

series79.0ms (0.5%)

Memory
11.1MiB live, 11.1MiB allocated; 0ms collecting garbage
Counts
8 → 26
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
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 #s(literal -1 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 x (fma.f64 #s(literal -1/6 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp x) #s(literal 1 binary64))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) x))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) x)))))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) x)))))))
#s(approx x x)
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -19/5760 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/96 binary64))) #s(literal 1/4 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/24 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/24 binary64) (*.f64 #s(literal -1/720 binary64) (pow.f64 x #s(literal 2 binary64))))) #s(literal 1/2 binary64)))))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))))
#s(approx (neg x) (*.f64 #s(literal -1 binary64) x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp x) (exp.f64 x))
#s(approx (sqrt (cos x)) (sqrt.f64 (cos.f64 x)))
#s(approx (cos x) (cos.f64 x))
#s(approx (exp (neg x)) (exp.f64 (neg.f64 x)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (exp.f64 (*.f64 #s(literal -1 binary64) x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp (neg x)) (exp.f64 (*.f64 #s(literal -1 binary64) x)))
Calls

3 calls:

TimeVariablePoint
1.0ms
x
-inf
1.0ms
x
inf
1.0ms
x
0

rewrite117.0ms (0.7%)

Memory
14.9MiB live, 14.9MiB allocated; 0ms collecting garbage
Counts
8 → 20
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 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))
(fabs.f64 (exp.f64 x))
(+.f64 (cosh.f64 x) (sinh.f64 x))
(exp.f64 x)
x
(fabs.f64 (sqrt.f64 (cos.f64 x)))
(pow.f64 (cos.f64 x) #s(literal 1/2 binary64))
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(cos.f64 (fabs.f64 x))
(cos.f64 (neg.f64 x))
(sin.f64 (+.f64 x (/.f64 (PI.f64) #s(literal 2 binary64))))
(fabs.f64 (exp.f64 (neg.f64 x)))
(+.f64 (cosh.f64 (neg.f64 x)) (sinh.f64 (neg.f64 x)))
(-.f64 (cosh.f64 x) (sinh.f64 x))
(/.f64 #s(literal 1 binary64) (exp.f64 x))
(exp.f64 (neg.f64 x))
(neg.f64 x)

eval4.0ms (0%)

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

Compiled 684 to 198 computations (71.1% saved)

prune14.0ms (0.1%)

Memory
-46.8MiB live, 3.4MiB allocated; 11ms collecting garbage
Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New30838
Fresh000
Picked011
Done000
Total30939
Accuracy
39.4%
Counts
39 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (cosh.f64 x) (sinh.f64 x)))
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
6.9%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
6.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (exp.f64 (neg.f64 x)))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
35.2%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
5.7%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
Compiler

Compiled 258 to 204 computations (20.9% saved)

series97.0ms (0.6%)

Memory
17.7MiB live, 17.7MiB allocated; 0ms collecting garbage
Counts
32 → 49
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)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/2 binary64)
(pow.f64 x #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))
(*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))
(-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (cosh.f64 x) (sinh.f64 x)))
(-.f64 (cosh.f64 x) (sinh.f64 x))
(cosh.f64 x)
(sinh.f64 x)
Outputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 #s(literal -1 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 x (fma.f64 #s(literal -1/6 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp x) #s(literal 1 binary64))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) x))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) x)))))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) x)))))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -19/5760 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/96 binary64))) #s(literal 1/4 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/24 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/24 binary64) (*.f64 #s(literal -1/720 binary64) (pow.f64 x #s(literal 2 binary64))))) #s(literal 1/2 binary64)))))
#s(approx x x)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))))
#s(approx (neg x) (*.f64 #s(literal -1 binary64) x))
#s(approx (* -1/2 (pow x 2)) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (pow x 2) (pow.f64 x #s(literal 2 binary64)))
#s(approx (* x (- (* 1/2 x) 1)) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))
#s(approx (- (* 1/2 x) 1) #s(literal -1 binary64))
#s(approx (- (* 1/2 x) 1) (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))
#s(approx (* 1/2 x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (cosh x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (cosh x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/24 binary64) (pow.f64 x #s(literal 2 binary64)))))))
#s(approx (cosh x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/24 binary64) (*.f64 #s(literal 1/720 binary64) (pow.f64 x #s(literal 2 binary64)))))))))
#s(approx (sinh x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (sinh x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/6 binary64) (*.f64 #s(literal 1/120 binary64) (pow.f64 x #s(literal 2 binary64))))))))
#s(approx (sinh x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/6 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/120 binary64) (*.f64 #s(literal 1/5040 binary64) (pow.f64 x #s(literal 2 binary64))))))))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp x) (exp.f64 x))
#s(approx (sqrt (cos x)) (sqrt.f64 (cos.f64 x)))
#s(approx (cos x) (cos.f64 x))
#s(approx (exp (neg x)) (exp.f64 (neg.f64 x)))
#s(approx (+ 1 (* -1/2 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64))))
#s(approx (+ 1 (* x (- (* 1/2 x) 1))) (*.f64 #s(literal 1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (+ 1 (* x (- (* 1/2 x) 1))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x))))
#s(approx (+ 1 (* x (- (* 1/2 x) 1))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64)))) (/.f64 #s(literal 1 binary64) x))))
#s(approx (- (* 1/2 x) 1) (*.f64 x (-.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (- (cosh x) (sinh x))) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 x) (/.f64 #s(literal 1 binary64) (exp.f64 x)))) (*.f64 #s(literal 1/2 binary64) (-.f64 (exp.f64 x) (/.f64 #s(literal 1 binary64) (exp.f64 x))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (- (cosh x) (sinh x)) (-.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 x) (/.f64 #s(literal 1 binary64) (exp.f64 x)))) (*.f64 #s(literal 1/2 binary64) (-.f64 (exp.f64 x) (/.f64 #s(literal 1 binary64) (exp.f64 x))))))
#s(approx (cosh x) (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 x) (/.f64 #s(literal 1 binary64) (exp.f64 x)))))
#s(approx (sinh x) (*.f64 #s(literal 1/2 binary64) (-.f64 (exp.f64 x) (/.f64 #s(literal 1 binary64) (exp.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (exp.f64 (*.f64 #s(literal -1 binary64) x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp (neg x)) (exp.f64 (*.f64 #s(literal -1 binary64) x)))
#s(approx (+ 1 (* x (- (* 1/2 x) 1))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)) x)))))
#s(approx (- (* 1/2 x) 1) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1/2 binary64)))))
Calls

3 calls:

TimeVariablePoint
5.0ms
x
inf
4.0ms
x
0
3.0ms
x
-inf

rewrite148.0ms (0.9%)

Memory
17.4MiB live, 17.4MiB allocated; 0ms collecting garbage
Counts
32 → 77
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)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/2 binary64)
(pow.f64 x #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))
(*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))
(-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (cosh.f64 x) (sinh.f64 x)))
(-.f64 (cosh.f64 x) (sinh.f64 x))
(cosh.f64 x)
(sinh.f64 x)
Outputs
(*.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)
(cosh.f64 #s(literal 0 binary64))
(exp.f64 #s(literal 0 binary64))
(fabs.f64 (sqrt.f64 (cos.f64 x)))
(pow.f64 (cos.f64 x) #s(literal 1/2 binary64))
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
(cos.f64 (fabs.f64 x))
(cos.f64 (neg.f64 x))
(sin.f64 (+.f64 x (/.f64 (PI.f64) #s(literal 2 binary64))))
x
(fabs.f64 (exp.f64 (neg.f64 x)))
(+.f64 (cosh.f64 x) (sinh.f64 (neg.f64 x)))
(+.f64 (cosh.f64 x) (neg.f64 (sinh.f64 x)))
(-.f64 (cosh.f64 x) (sinh.f64 x))
(/.f64 #s(literal 1 binary64) (exp.f64 x))
(exp.f64 (neg.f64 x))
(neg.f64 (-.f64 (sinh.f64 x) (cosh.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)))
(fabs.f64 (exp.f64 x))
(+.f64 (cosh.f64 x) (sinh.f64 x))
(exp.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))))
(sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))
#s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (*.f64 x x)))
(-.f64 #s(literal 1 binary64) (neg.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x))))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64))
(*.f64 #s(literal -1/2 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal -1/2 binary64))
#s(literal -1/2 binary64)
(*.f64 x x)
(pow.f64 x #s(literal 2 binary64))
#s(literal 2 binary64)
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) x #s(literal 1 binary64))))
#s(approx (exp (neg x)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) x #s(literal 1 binary64)))
(+.f64 #s(literal 1 binary64) (*.f64 x (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64))))
(+.f64 (*.f64 x (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64))) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x) (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64))))
(-.f64 #s(literal 1 binary64) (neg.f64 (*.f64 x (fma.f64 #s(literal 1/2 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 x (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) #s(literal 1 binary64))
(*.f64 x (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64)) x)
(+.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64))
(-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal -1 binary64))
(fma.f64 x #s(literal 1/2 binary64) #s(literal -1 binary64))
(neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(neg.f64 #s(literal -1/2 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))))
(fabs.f64 (exp.f64 (neg.f64 x)))
(+.f64 (cosh.f64 x) (sinh.f64 (neg.f64 x)))
(+.f64 (cosh.f64 x) (neg.f64 (sinh.f64 x)))
(-.f64 (cosh.f64 x) (sinh.f64 x))
(/.f64 #s(literal 1 binary64) (exp.f64 x))
(exp.f64 (neg.f64 x))
(neg.f64 (-.f64 (sinh.f64 x) (cosh.f64 x)))
(/.f64 (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #s(literal 2 binary64))
(cosh.f64 x)
(cosh.f64 (neg.f64 x))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) #s(literal 2 binary64))
(sinh.f64 x)

eval15.0ms (0.1%)

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

Compiled 3 508 to 588 computations (83.2% saved)

prune14.0ms (0.1%)

Memory
-40.6MiB live, 6.8MiB allocated; 3ms collecting garbage
Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New1529161
Fresh123
Picked415
Done011
Total15713170
Accuracy
39.6%
Counts
170 → 13
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (cosh.f64 x) (sinh.f64 x)))
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
7.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))))
6.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
5.5%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) #s(approx (+ 1 (* -1/2 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64))))))) (exp.f64 (neg.f64 x)))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
6.9%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
4.7%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
35.2%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
5.7%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))))
Compiler

Compiled 506 to 387 computations (23.5% saved)

series89.0ms (0.5%)

Memory
15.1MiB live, 15.1MiB allocated; 0ms collecting garbage
Counts
30 → 37
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (exp x) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/4 binary64)
(pow.f64 x #s(literal 2 binary64))
x
#s(literal 2 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)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64))))))
(exp.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/2 binary64)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))
(*.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
(/.f64 #s(literal 1 binary64) (exp.f64 x))
Outputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 #s(literal -1 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 x (fma.f64 #s(literal -1/6 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp x) #s(literal 1 binary64))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) x))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) x)))))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) x)))))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -19/5760 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/96 binary64))) #s(literal 1/4 binary64)))))
#s(approx (* -1/4 (pow x 2)) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (pow x 2) (pow.f64 x #s(literal 2 binary64)))
#s(approx x x)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))))
#s(approx (neg x) (*.f64 #s(literal -1 binary64) x))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/24 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/24 binary64) (*.f64 #s(literal -1/720 binary64) (pow.f64 x #s(literal 2 binary64))))) #s(literal 1/2 binary64)))))
#s(approx (* -1/2 (pow x 2)) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (/ 1 (exp x))) (fma.f64 x (-.f64 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (/ 1 (exp x))) (fma.f64 x (-.f64 (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) (fma.f64 #s(literal -1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/6 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))))) (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp x) (exp.f64 x))
#s(approx (sqrt (cos x)) (sqrt.f64 (cos.f64 x)))
#s(approx (+ 1 (* -1/4 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64))))
#s(approx (exp (neg x)) (exp.f64 (neg.f64 x)))
#s(approx (cos x) (cos.f64 x))
#s(approx (+ 1 (* -1/2 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64))))
#s(approx (+ 1 (* -1 x)) (*.f64 x (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (/ 1 (exp x))) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))
#s(approx (/ 1 (exp x)) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (exp.f64 (*.f64 #s(literal -1 binary64) x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp (neg x)) (exp.f64 (*.f64 #s(literal -1 binary64) x)))
#s(approx (+ 1 (* -1 x)) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)))))
Calls

3 calls:

TimeVariablePoint
2.0ms
x
inf
2.0ms
x
-inf
1.0ms
x
0

rewrite135.0ms (0.8%)

Memory
17.5MiB live, 17.5MiB allocated; 0ms collecting garbage
Counts
30 → 73
Calls
Call 1
Inputs
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (exp x) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/4 binary64)
(pow.f64 x #s(literal 2 binary64))
x
#s(literal 2 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)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64))))))
(exp.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/2 binary64)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))
(*.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
(/.f64 #s(literal 1 binary64) (exp.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)))
(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)
(cosh.f64 #s(literal 0 binary64))
(exp.f64 #s(literal 0 binary64))
(neg.f64 #s(literal -1 binary64))
#s(approx (sqrt (cos x)) (fma.f64 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (*.f64 x x)))
(+.f64 (*.f64 #s(literal -1/4 binary64) (*.f64 x x)) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/4 binary64) (*.f64 x x)))
(-.f64 #s(literal 1 binary64) (neg.f64 (*.f64 #s(literal -1/4 binary64) (*.f64 x x))))
(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 #s(literal -1/4 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal -1/4 binary64))
#s(literal -1/4 binary64)
(*.f64 x x)
(pow.f64 x #s(literal 2 binary64))
x
#s(literal 2 binary64)
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 x)))
(fabs.f64 (exp.f64 (neg.f64 x)))
(+.f64 (cosh.f64 (neg.f64 x)) (sinh.f64 (neg.f64 x)))
(-.f64 (cosh.f64 x) (sinh.f64 x))
(/.f64 #s(literal 1 binary64) (exp.f64 x))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 x)))
(exp.f64 (neg.f64 x))
(pow.f64 (exp.f64 x) #s(literal -1 binary64))
(*.f64 #s(literal -1 binary64) x)
(*.f64 x #s(literal -1 binary64))
(neg.f64 x)
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp 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))))
(fabs.f64 (exp.f64 x))
(+.f64 (cosh.f64 x) (sinh.f64 x))
(exp.f64 x)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (neg.f64 x))))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))))
(sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))
#s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (*.f64 x x)))
(-.f64 #s(literal 1 binary64) (neg.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x))))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64))
(*.f64 #s(literal -1/2 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal -1/2 binary64))
#s(literal -1/2 binary64)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (neg.f64 x)))
(+.f64 #s(literal 1 binary64) (neg.f64 x))
(+.f64 (neg.f64 x) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1 binary64) x))
(-.f64 #s(literal 1 binary64) (neg.f64 (neg.f64 x)))
(fma.f64 #s(literal -1 binary64) x #s(literal 1 binary64))
(fma.f64 x #s(literal -1 binary64) #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) x)
(*.f64 x #s(literal -1 binary64))
(neg.f64 x)
#s(literal -1 binary64)
(neg.f64 #s(literal 1 binary64))
(*.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) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
(*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 x)))
(fabs.f64 (exp.f64 (neg.f64 x)))
(+.f64 (cosh.f64 (neg.f64 x)) (sinh.f64 (neg.f64 x)))
(-.f64 (cosh.f64 x) (sinh.f64 x))
(/.f64 #s(literal 1 binary64) (exp.f64 x))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 x)))
(exp.f64 (neg.f64 x))
(pow.f64 (exp.f64 x) #s(literal -1 binary64))

eval20.0ms (0.1%)

Memory
-35.0MiB live, 11.5MiB allocated; 4ms collecting garbage
Compiler

Compiled 4 231 to 531 computations (87.4% saved)

prune11.0ms (0.1%)

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

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New1689177
Fresh246
Picked505
Done112
Total17614190
Accuracy
39.6%
Counts
190 → 14
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (cosh.f64 x) (sinh.f64 x)))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
6.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (neg.f64 x))))
7.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))))
7.4%
(*.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)))
6.9%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
5.6%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ 1 (* -1/4 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))) (exp.f64 (neg.f64 x)))
4.7%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
35.2%
(*.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)))
4.7%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
5.7%
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp 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)))))
8.1%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (/ 1 (exp x))) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))
3.9%
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ 1 (* -1/4 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))))
Compiler

Compiled 628 to 457 computations (27.2% saved)

series98.0ms (0.6%)

Memory
18.7MiB live, 18.7MiB allocated; 0ms collecting garbage
Counts
41 → 59
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 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 (*.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)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))
(*.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/2 binary64)
(pow.f64 x #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))
(*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))
(-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x)))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))
#s(literal 1/2 binary64)
(*.f64 #s(literal -1/6 binary64) x)
#s(literal -1/6 binary64)
Outputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 #s(literal -1 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fma.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 x (fma.f64 #s(literal -1/6 binary64) (*.f64 x (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp x) #s(literal 1 binary64))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) x))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) x)))))
#s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) x)))))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/96 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))
#s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -19/5760 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/96 binary64))) #s(literal 1/4 binary64)))))
#s(approx (* x x) (pow.f64 x #s(literal 2 binary64)))
#s(approx x x)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))))
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))))
#s(approx (neg x) (*.f64 #s(literal -1 binary64) x))
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (fma.f64 x (-.f64 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (fma.f64 x (-.f64 (*.f64 x (-.f64 (*.f64 #s(literal -1 binary64) (*.f64 x (fma.f64 #s(literal -1 binary64) (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))) (fma.f64 #s(literal -1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/6 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))))) (fma.f64 #s(literal -1 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (*.f64 #s(literal 1/2 binary64) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))))))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/24 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/24 binary64) (*.f64 #s(literal -1/720 binary64) (pow.f64 x #s(literal 2 binary64))))) #s(literal 1/2 binary64)))))
#s(approx (* -1/2 (pow x 2)) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (* x (- (* x (+ 1/2 (* -1/6 x))) 1)) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))
#s(approx (* x (- (* x (+ 1/2 (* -1/6 x))) 1)) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))
#s(approx (- (* x (+ 1/2 (* -1/6 x))) 1) #s(literal -1 binary64))
#s(approx (- (* x (+ 1/2 (* -1/6 x))) 1) (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)))
#s(approx (- (* x (+ 1/2 (* -1/6 x))) 1) (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))
#s(approx (* x (+ 1/2 (* -1/6 x))) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* x (+ 1/2 (* -1/6 x))) (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))))
#s(approx (+ 1/2 (* -1/6 x)) #s(literal 1/2 binary64))
#s(approx (+ 1/2 (* -1/6 x)) (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x)))
#s(approx (* -1/6 x) (*.f64 #s(literal -1/6 binary64) x))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (exp.f64 (neg.f64 x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp x) (exp.f64 x))
#s(approx (sqrt (cos x)) (sqrt.f64 (cos.f64 x)))
#s(approx (+ (* (* x x) -1/4) 1) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (+ (* (* x x) -1/4) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64))))
#s(approx (exp (neg x)) (exp.f64 (neg.f64 x)))
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))
#s(approx (cos x) (cos.f64 x))
#s(approx (+ 1 (* -1 x)) (*.f64 x (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
#s(approx (+ 1 (* -1/2 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64))))
#s(approx (+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1))) (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))
#s(approx (+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1))) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x)) #s(literal 1/6 binary64))))
#s(approx (+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1))) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x)) (+.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64)))))))
#s(approx (+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1))) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 3 binary64)))) (+.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64)))))))
#s(approx (- (* x (+ 1/2 (* -1/6 x))) 1) (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (- (* x (+ 1/2 (* -1/6 x))) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x)) #s(literal 1/6 binary64))))
#s(approx (- (* x (+ 1/2 (* -1/6 x))) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x)) (+.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64)))))))
#s(approx (+ 1/2 (* -1/6 x)) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x)) #s(literal 1/6 binary64))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (*.f64 (exp.f64 (*.f64 #s(literal -1 binary64) x)) (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x)))))
#s(approx (exp (neg x)) (exp.f64 (*.f64 #s(literal -1 binary64) x)))
#s(approx (+ 1 (* -1 x)) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)))))
#s(approx (+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1))) (*.f64 #s(literal -1 binary64) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x))))))
#s(approx (+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1))) (*.f64 #s(literal -1 binary64) (*.f64 (pow.f64 x #s(literal 3 binary64)) (+.f64 #s(literal 1/6 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x)) x))))))
#s(approx (+ 1 (* x (- (* x (+ 1/2 (* -1/6 x))) 1))) (*.f64 #s(literal -1 binary64) (*.f64 (pow.f64 x #s(literal 3 binary64)) (+.f64 #s(literal 1/6 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)) x))) x))))))
#s(approx (- (* x (+ 1/2 (* -1/6 x))) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1/2 binary64)) x)) #s(literal 1/6 binary64))))
#s(approx (+ 1/2 (* -1/6 x)) (*.f64 #s(literal -1 binary64) (*.f64 x (-.f64 #s(literal 1/6 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) x))))))
Calls

3 calls:

TimeVariablePoint
3.0ms
x
inf
2.0ms
x
-inf
2.0ms
x
0

rewrite126.0ms (0.7%)

Memory
16.8MiB live, 16.8MiB allocated; 0ms collecting garbage
Counts
41 → 42
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 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 (*.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)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))
(*.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/2 binary64)
(pow.f64 x #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))
(*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))
(-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x)))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))
#s(literal 1/2 binary64)
(*.f64 #s(literal -1/6 binary64) x)
#s(literal -1/6 binary64)
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)))
(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)))
(+.f64 (*.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 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 (*.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)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x)))
(sqrt.f64 (cos.f64 x))
(cos.f64 x)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))
(*.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))))
(fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))
#s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal -1/2 binary64)
(pow.f64 x #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))))
(+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))
(*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64)))
(-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x)))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))
#s(literal 1/2 binary64)
(*.f64 #s(literal -1/6 binary64) x)
#s(literal -1/6 binary64)

eval57.0ms (0.3%)

Memory
-58.5MiB live, 6.4MiB allocated; 63ms collecting garbage
Compiler

Compiled 2 659 to 459 computations (82.7% saved)

prune9.0ms (0.1%)

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

19 alts after pruning (13 fresh and 6 done)

PrunedKeptTotal
New75984
Fresh448
Picked055
Done011
Total791998
Accuracy
40.3%
Counts
98 → 19
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (cosh.f64 x) (sinh.f64 x)))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
7.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (exp.f64 (neg.f64 x)))
6.4%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (neg.f64 x))))
7.1%
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))))
7.4%
(*.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)))
6.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)))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
5.6%
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ (* (* x x) -1/4) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))) (exp.f64 (neg.f64 x)))
6.9%
(*.f64 (fmod.f64 #s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) x))))) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
37.1%
(*.f64 (fmod.f64 #s(approx (exp x) (+.f64 #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)))
4.7%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
4.7%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) #s(approx (+ 1 (* -1 x)) (*.f64 x (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))))
35.2%
(*.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)))
4.6%
(*.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)))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
4.7%
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
5.7%
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp 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)))))
3.9%
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ (* (* x x) -1/4) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))))
2.9%
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ (* (* x x) -1/4) 1) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))))
8.1%
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))
Compiler

Compiled 448 to 318 computations (29% saved)

regimes45.0ms (0.3%)

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

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
3 → 2
27 → 1
36 → 2
Calls
Call 1
Inputs
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp 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 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)))))
Call 2
Inputs
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp 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) #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 (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
Outputs
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp 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)))
Call 3
Inputs
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp 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) #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 (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 #s(approx (exp x) (+.f64 #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 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (neg.f64 x))))
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ (* (* x x) -1/4) 1) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(*.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 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 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)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) 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))) #s(approx (exp (neg x)) #s(approx (+ 1 (* -1 x)) (*.f64 x (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ 1 (* -1/4 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))))
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ (* (* x x) -1/4) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 #s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) x))))) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
Outputs
(*.f64 (fmod.f64 #s(approx (exp x) (+.f64 #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)))
Call 4
Inputs
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp 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) #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 (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 #s(approx (exp x) (+.f64 #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 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (neg.f64 x))))
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ (* (* x x) -1/4) 1) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))))
(*.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 (*.f64 x x) #s(literal -1/4 binary64) #s(literal 1 binary64)))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 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)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (fma.f64 (*.f64 x x) #s(literal -1/2 binary64) #s(literal 1 binary64))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) 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))) #s(approx (exp (neg x)) #s(approx (+ 1 (* -1 x)) (*.f64 x (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 2 binary64)))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 #s(approx (exp x) #s(literal 1 binary64)) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (exp (neg x))) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ 1 (* -1/4 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))))
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ (* (* x x) -1/4) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (pow.f64 x #s(literal 2 binary64))))))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) x))) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 #s(approx (exp x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) x))))) (sqrt.f64 (cos.f64 x))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) x))))
#s(approx (* (fmod (exp x) (sqrt (cos x))) (/ 1 (exp x))) (/.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 x)))
#s(approx (/ (fmod (exp x) (sqrt (cos x))) (exp x)) (/.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))) #s(approx (exp (neg x)) (+.f64 #s(literal 1 binary64) (*.f64 x (-.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64))))))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (/.f64 #s(literal 1 binary64) (exp.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ 1 (* -1/4 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) #s(approx (sqrt (cos x)) #s(approx (+ (* (* x x) -1/4) 1) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/4 binary64)))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 #s(approx (cos x) #s(approx (+ 1 (* -1/2 (pow x 2))) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64))))))) (exp.f64 (neg.f64 x)))
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (-.f64 (cosh.f64 x) (sinh.f64 x)))
Outputs
#s(approx (* (fmod (exp x) (sqrt (cos x))) (/ 1 (exp 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

8 calls:

9.0ms
x
8.0ms
x
7.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
6.0ms
(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
2.0ms
x
Results
AccuracySegmentsBranch
5.7%1(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
5.7%1x
37.0%2x
37.0%2(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
37.1%1x
37.1%1(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
39.4%2(*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))
39.3%2x
Compiler

Compiled 848 to 187 computations (77.9% saved)

bsearch0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0
NaN
Compiler

Compiled 13 to 12 computations (7.7% saved)

bsearch142.0ms (0.8%)

Memory
-33.5MiB live, 16.5MiB allocated; 5ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-failed
Steps
TimeLeftRight
139.0ms
0.5828890549661431
173479778915.0584
Samples
131.0ms101×5exit
2.0ms16×0valid
Compiler

Compiled 55 to 42 computations (23.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 127.0ms
ival-cos: 54.0ms (42.5% of total)
ival-exp: 47.0ms (37% of total)
adjust: 9.0ms (7.1% of total)
ival-sqrt: 7.0ms (5.5% of total)
ival-fmod: 7.0ms (5.5% of total)
ival-mult!: 2.0ms (1.6% of total)
ival-neg: 0.0ms (0% of total)

derivations1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated; 0ms collecting garbage
Stop Event
fuel
Compiler

Compiled 143 to 37 computations (74.1% saved)

preprocess28.0ms (0.2%)

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

Compiled 153 to 45 computations (70.6% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...