Falkner and Boettcher, Appendix B, 2

Time bar (total: 1.3s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze4.0ms (0.3%)

Memory
5.1MiB live, 5.1MiB allocated
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
0%0%50%0%0%50%0%3
50%25%25%0%0%50%0%4
75%37.5%12.5%0%0%50%0%5
87.5%43.7%6.2%0%0%50%0%6
93.8%46.9%3.1%0%0%50%0%7
96.9%48.4%1.6%0%0%50%0%8
98.4%49.2%0.8%0%0%50%0%9
99.2%49.6%0.4%0%0%50%0%10
99.6%49.8%0.2%0%0%50%0%11
99.8%49.9%0.1%0%0%50%0%12
Compiler

Compiled 21 to 16 computations (23.8% saved)

sample967.0ms (75.8%)

Memory
29.1MiB live, 1 767.0MiB allocated
Samples
662.0ms8 256×0valid
1.0ms10×0invalid
Precisions
Click to see histograms. Total time spent on operations: 490.0ms
ival-mult: 200.0ms (40.8% of total)
ival-sqrt: 128.0ms (26.1% of total)
ival-sub: 82.0ms (16.7% of total)
ival-div: 58.0ms (11.8% of total)
exact: 13.0ms (2.7% of total)
ival-true: 6.0ms (1.2% of total)
ival-assert: 3.0ms (0.6% of total)
Bogosity

explain146.0ms (11.5%)

Memory
-7.5MiB live, 271.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
00-0-(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
00-0-(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
00-0-(*.f64 v v)
00-0-#s(literal 1 binary64)
00-0-#s(literal 3 binary64)
00-0-(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
00-0-(sqrt.f64 #s(literal 2 binary64))
00-0-(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))
00-0-#s(literal 4 binary64)
00-0-(*.f64 #s(literal 3 binary64) (*.f64 v v))
00-0-v
00-0-#s(literal 2 binary64)
00-0-(-.f64 #s(literal 1 binary64) (*.f64 v v))
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
45.0ms512×0valid
Compiler

Compiled 236 to 60 computations (74.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 29.0ms
ival-mult: 11.0ms (37.8% of total)
ival-sqrt: 8.0ms (27.5% of total)
ival-sub: 5.0ms (17.2% of total)
ival-div: 3.0ms (10.3% of total)
exact: 1.0ms (3.4% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess2.0ms (0.2%)

Memory
4.5MiB live, 4.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
Compiler

Compiled 19 to 14 computations (26.3% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
Compiler

Compiled 19 to 14 computations (26.3% saved)

simplify1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
cost-diff0
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
cost-diff0
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
Calls
Call 1
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 4 binary64)
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))
#s(literal 1 binary64)
(*.f64 #s(literal 3 binary64) (*.f64 v v))
#s(literal 3 binary64)
(*.f64 v v)
v
(-.f64 #s(literal 1 binary64) (*.f64 v v))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 4 binary64)
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))
#s(literal 1 binary64)
(*.f64 #s(literal 3 binary64) (*.f64 v v))
#s(literal 3 binary64)
(*.f64 v v)
v
(-.f64 #s(literal 1 binary64) (*.f64 v v))

localize33.0ms (2.6%)

Memory
16.8MiB live, 55.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.015625
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
accuracy0.015625
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
accuracy0.02734375
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
accuracy0.13671875
(*.f64 #s(literal 3 binary64) (*.f64 v v))
Samples
22.0ms256×0valid
Compiler

Compiled 144 to 30 computations (79.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
ival-mult: 5.0ms (36.2% of total)
ival-sqrt: 4.0ms (29% of total)
ival-div: 2.0ms (14.5% of total)
ival-sub: 2.0ms (14.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series8.0ms (0.7%)

Memory
-29.2MiB live, 9.7MiB allocated
Counts
6 → 36
Calls
Call 1
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
(*.f64 #s(literal 3 binary64) (*.f64 v v))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
Outputs
(* 1/4 (sqrt 2))
(+ (* 1/4 (sqrt 2)) (* 1/4 (* (pow v 2) (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2))))) (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -27/16 (sqrt 2)) (* 9/8 (sqrt 2))))) (* 1/4 (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2)))))))))
(+ (* -3/8 (* (pow v 2) (sqrt 2))) (* 1/4 (sqrt 2)))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* -9/32 (* (pow v 2) (sqrt 2))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* (pow v 2) (+ (* -27/64 (* (pow v 2) (sqrt 2))) (* -9/32 (sqrt 2)))))))
(* 3 (pow v 2))
1
(+ 1 (* -3/2 (pow v 2)))
(+ 1 (* (pow v 2) (- (* -9/8 (pow v 2)) 3/2)))
(+ 1 (* (pow v 2) (- (* (pow v 2) (- (* -27/16 (pow v 2)) 9/8)) 3/2)))
(* -1/4 (* (pow v 3) (* (sqrt -3) (sqrt 2))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2)))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4))))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (+ (* 1/4 (/ (+ (* -1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* -1/16 (/ (sqrt 2) (pow (sqrt -3) 5)))) (pow v 6))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4)))))))
(* 1/4 (* v (* (sqrt -3) (sqrt 2))))
(* v (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))
(* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))
(* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/64 (/ (sqrt 2) (* (pow v 6) (pow (sqrt -3) 5)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))))
(* v (sqrt -3))
(* v (+ (sqrt -3) (* 1/2 (/ 1 (* (pow v 2) (sqrt -3))))))
(* v (- (+ (sqrt -3) (/ 1/2 (* (pow v 2) (sqrt -3)))) (/ 1/8 (* (pow v 4) (pow (sqrt -3) 3)))))
(* v (- (+ (sqrt -3) (+ (/ 1/2 (* (pow v 2) (sqrt -3))) (* 1/16 (/ 1 (* (pow v 6) (pow (sqrt -3) 5)))))) (* 1/8 (/ 1 (* (pow v 4) (pow (sqrt -3) 3))))))
(* 1/4 (* (pow v 3) (* (sqrt -3) (sqrt 2))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4)))))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (+ (* 1/4 (/ (+ (* -1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* -1/16 (/ (sqrt 2) (pow (sqrt -3) 5)))) (pow v 6))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4))))))))
(* -1/4 (* v (* (sqrt -3) (sqrt 2))))
(* -1 (* v (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))
(* -1 (* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))))
(* -1 (* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/64 (/ (sqrt 2) (* (pow v 6) (pow (sqrt -3) 5)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))))
(* -1 (* v (sqrt -3)))
(* -1 (* v (+ (sqrt -3) (* 1/2 (/ 1 (* (pow v 2) (sqrt -3)))))))
(* -1 (* v (- (+ (sqrt -3) (/ 1/2 (* (pow v 2) (sqrt -3)))) (/ 1/8 (* (pow v 4) (pow (sqrt -3) 3))))))
(* -1 (* v (- (+ (sqrt -3) (+ (/ 1/2 (* (pow v 2) (sqrt -3))) (* 1/16 (/ 1 (* (pow v 6) (pow (sqrt -3) 5)))))) (* 1/8 (/ 1 (* (pow v 4) (pow (sqrt -3) 3)))))))
Calls

3 calls:

TimeVariablePointExpression
3.0ms
v
@inf
((* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (/ (sqrt 2) 4) (sqrt 2) (* 3 (* v v)) (sqrt (- 1 (* 3 (* v v)))))
3.0ms
v
@-inf
((* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (/ (sqrt 2) 4) (sqrt 2) (* 3 (* v v)) (sqrt (- 1 (* 3 (* v v)))))
2.0ms
v
@0
((* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (/ (sqrt 2) 4) (sqrt 2) (* 3 (* v v)) (sqrt (- 1 (* 3 (* v v)))))

simplify1.0ms (0.1%)

Memory
1.6MiB live, 1.6MiB allocated
Algorithm
egg-herbie
Counts
36 → 6
Calls
Call 1
Inputs
(* 1/4 (sqrt 2))
(+ (* 1/4 (sqrt 2)) (* 1/4 (* (pow v 2) (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2))))) (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -27/16 (sqrt 2)) (* 9/8 (sqrt 2))))) (* 1/4 (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2)))))))))
(+ (* -3/8 (* (pow v 2) (sqrt 2))) (* 1/4 (sqrt 2)))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* -9/32 (* (pow v 2) (sqrt 2))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* (pow v 2) (+ (* -27/64 (* (pow v 2) (sqrt 2))) (* -9/32 (sqrt 2)))))))
(* 3 (pow v 2))
1
(+ 1 (* -3/2 (pow v 2)))
(+ 1 (* (pow v 2) (- (* -9/8 (pow v 2)) 3/2)))
(+ 1 (* (pow v 2) (- (* (pow v 2) (- (* -27/16 (pow v 2)) 9/8)) 3/2)))
(* -1/4 (* (pow v 3) (* (sqrt -3) (sqrt 2))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2)))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4))))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (+ (* 1/4 (/ (+ (* -1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* -1/16 (/ (sqrt 2) (pow (sqrt -3) 5)))) (pow v 6))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4)))))))
(* 1/4 (* v (* (sqrt -3) (sqrt 2))))
(* v (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))
(* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))
(* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/64 (/ (sqrt 2) (* (pow v 6) (pow (sqrt -3) 5)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))))
(* v (sqrt -3))
(* v (+ (sqrt -3) (* 1/2 (/ 1 (* (pow v 2) (sqrt -3))))))
(* v (- (+ (sqrt -3) (/ 1/2 (* (pow v 2) (sqrt -3)))) (/ 1/8 (* (pow v 4) (pow (sqrt -3) 3)))))
(* v (- (+ (sqrt -3) (+ (/ 1/2 (* (pow v 2) (sqrt -3))) (* 1/16 (/ 1 (* (pow v 6) (pow (sqrt -3) 5)))))) (* 1/8 (/ 1 (* (pow v 4) (pow (sqrt -3) 3))))))
(* 1/4 (* (pow v 3) (* (sqrt -3) (sqrt 2))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4)))))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (+ (* 1/4 (/ (+ (* -1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* -1/16 (/ (sqrt 2) (pow (sqrt -3) 5)))) (pow v 6))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4))))))))
(* -1/4 (* v (* (sqrt -3) (sqrt 2))))
(* -1 (* v (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))
(* -1 (* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))))
(* -1 (* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/64 (/ (sqrt 2) (* (pow v 6) (pow (sqrt -3) 5)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))))
(* -1 (* v (sqrt -3)))
(* -1 (* v (+ (sqrt -3) (* 1/2 (/ 1 (* (pow v 2) (sqrt -3)))))))
(* -1 (* v (- (+ (sqrt -3) (/ 1/2 (* (pow v 2) (sqrt -3)))) (/ 1/8 (* (pow v 4) (pow (sqrt -3) 3))))))
(* -1 (* v (- (+ (sqrt -3) (+ (/ 1/2 (* (pow v 2) (sqrt -3))) (* 1/16 (/ 1 (* (pow v 6) (pow (sqrt -3) 5)))))) (* 1/8 (/ 1 (* (pow v 4) (pow (sqrt -3) 3)))))))
Outputs
(* 1/4 (sqrt 2))
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
(+ (* 1/4 (sqrt 2)) (* 1/4 (* (pow v 2) (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2))))))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2))))) (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -27/16 (sqrt 2)) (* 9/8 (sqrt 2))))) (* 1/4 (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2)))))))))
(sqrt.f64 #s(literal 2 binary64))
(+ (* -3/8 (* (pow v 2) (sqrt 2))) (* 1/4 (sqrt 2)))
(*.f64 #s(literal 3 binary64) (*.f64 v v))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* -9/32 (* (pow v 2) (sqrt 2))))))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))

rewrite0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Counts
6 → 6
Calls
Call 1
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
(*.f64 #s(literal 3 binary64) (*.f64 v v))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
(*.f64 #s(literal 3 binary64) (*.f64 v v))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))

eval1.0ms (0.1%)

Memory
2.6MiB live, 2.6MiB allocated
Compiler

Compiled 285 to 35 computations (87.7% saved)

prune2.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New9312
Fresh000
Picked011
Done000
Total9413
Accuracy
100.0%
Counts
13 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
98.7%
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
98.8%
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
17.2%
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
Compiler

Compiled 98 to 76 computations (22.4% saved)

simplify1.0ms (0.1%)

Memory
1.3MiB live, 1.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
cost-diff0
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
cost-diff0
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
cost-diff0
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
Calls
Call 1
Inputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 4 binary64)
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))
#s(literal 1 binary64)
(*.f64 #s(literal 3 binary64) (*.f64 v v))
#s(literal 3 binary64)
(*.f64 v v)
v
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 4 binary64)
Outputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 4 binary64)
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))
#s(literal 1 binary64)
(*.f64 #s(literal 3 binary64) (*.f64 v v))
#s(literal 3 binary64)
(*.f64 v v)
v
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 4 binary64)

localize37.0ms (2.9%)

Memory
14.0MiB live, 50.9MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
accuracy0.0
(sqrt.f64 #s(literal 2 binary64))
accuracy0.8210903058222019
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
accuracy0.015625
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
accuracy0.02734375
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
accuracy0.13671875
(*.f64 #s(literal 3 binary64) (*.f64 v v))
accuracy0.7615908029959119
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
accuracy0.0
(sqrt.f64 #s(literal 2 binary64))
accuracy53.00006881652146
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
Samples
26.0ms256×0valid
Compiler

Compiled 254 to 44 computations (82.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 8.0ms (47.9% of total)
ival-sqrt: 4.0ms (23.9% of total)
ival-div: 2.0ms (12% of total)
ival-sub: 2.0ms (12% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.2%)

Memory
4.8MiB live, 4.8MiB allocated
Counts
8 → 36
Calls
Call 1
Inputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
(sqrt.f64 #s(literal 2 binary64))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
(*.f64 #s(literal 3 binary64) (*.f64 v v))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
Outputs
(* 1/4 (sqrt 2))
(+ (* 1/4 (sqrt 2)) (* 1/4 (* (pow v 2) (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2))))) (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -27/16 (sqrt 2)) (* 9/8 (sqrt 2))))) (* 1/4 (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2)))))))))
(+ (* -3/8 (* (pow v 2) (sqrt 2))) (* 1/4 (sqrt 2)))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* -9/32 (* (pow v 2) (sqrt 2))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* (pow v 2) (+ (* -27/64 (* (pow v 2) (sqrt 2))) (* -9/32 (sqrt 2)))))))
(* 3 (pow v 2))
1
(+ 1 (* -3/2 (pow v 2)))
(+ 1 (* (pow v 2) (- (* -9/8 (pow v 2)) 3/2)))
(+ 1 (* (pow v 2) (- (* (pow v 2) (- (* -27/16 (pow v 2)) 9/8)) 3/2)))
(* -1/4 (* (pow v 3) (* (sqrt -3) (sqrt 2))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2)))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4))))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (+ (* 1/4 (/ (+ (* -1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* -1/16 (/ (sqrt 2) (pow (sqrt -3) 5)))) (pow v 6))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4)))))))
(* 1/4 (* v (* (sqrt -3) (sqrt 2))))
(* v (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))
(* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))
(* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/64 (/ (sqrt 2) (* (pow v 6) (pow (sqrt -3) 5)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))))
(* v (sqrt -3))
(* v (+ (sqrt -3) (* 1/2 (/ 1 (* (pow v 2) (sqrt -3))))))
(* v (- (+ (sqrt -3) (/ 1/2 (* (pow v 2) (sqrt -3)))) (/ 1/8 (* (pow v 4) (pow (sqrt -3) 3)))))
(* v (- (+ (sqrt -3) (+ (/ 1/2 (* (pow v 2) (sqrt -3))) (* 1/16 (/ 1 (* (pow v 6) (pow (sqrt -3) 5)))))) (* 1/8 (/ 1 (* (pow v 4) (pow (sqrt -3) 3))))))
(* 1/4 (* (pow v 3) (* (sqrt -3) (sqrt 2))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4)))))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (+ (* 1/4 (/ (+ (* -1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* -1/16 (/ (sqrt 2) (pow (sqrt -3) 5)))) (pow v 6))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4))))))))
(* -1/4 (* v (* (sqrt -3) (sqrt 2))))
(* -1 (* v (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))
(* -1 (* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))))
(* -1 (* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/64 (/ (sqrt 2) (* (pow v 6) (pow (sqrt -3) 5)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))))
(* -1 (* v (sqrt -3)))
(* -1 (* v (+ (sqrt -3) (* 1/2 (/ 1 (* (pow v 2) (sqrt -3)))))))
(* -1 (* v (- (+ (sqrt -3) (/ 1/2 (* (pow v 2) (sqrt -3)))) (/ 1/8 (* (pow v 4) (pow (sqrt -3) 3))))))
(* -1 (* v (- (+ (sqrt -3) (+ (/ 1/2 (* (pow v 2) (sqrt -3))) (* 1/16 (/ 1 (* (pow v 6) (pow (sqrt -3) 5)))))) (* 1/8 (/ 1 (* (pow v 4) (pow (sqrt -3) 3)))))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
v
@inf
((* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt 2) (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (/ (sqrt 2) 4) (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* 3 (* v v)) (sqrt (- 1 (* 3 (* v v)))))
1.0ms
v
@-inf
((* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt 2) (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (/ (sqrt 2) 4) (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* 3 (* v v)) (sqrt (- 1 (* 3 (* v v)))))
1.0ms
v
@0
((* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt 2) (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (/ (sqrt 2) 4) (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (* 3 (* v v)) (sqrt (- 1 (* 3 (* v v)))))

simplify1.0ms (0.1%)

Memory
1.5MiB live, 1.5MiB allocated
Algorithm
egg-herbie
Counts
36 → 8
Calls
Call 1
Inputs
(* 1/4 (sqrt 2))
(+ (* 1/4 (sqrt 2)) (* 1/4 (* (pow v 2) (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2))))) (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -27/16 (sqrt 2)) (* 9/8 (sqrt 2))))) (* 1/4 (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2)))))))))
(+ (* -3/8 (* (pow v 2) (sqrt 2))) (* 1/4 (sqrt 2)))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* -9/32 (* (pow v 2) (sqrt 2))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* (pow v 2) (+ (* -27/64 (* (pow v 2) (sqrt 2))) (* -9/32 (sqrt 2)))))))
(* 3 (pow v 2))
1
(+ 1 (* -3/2 (pow v 2)))
(+ 1 (* (pow v 2) (- (* -9/8 (pow v 2)) 3/2)))
(+ 1 (* (pow v 2) (- (* (pow v 2) (- (* -27/16 (pow v 2)) 9/8)) 3/2)))
(* -1/4 (* (pow v 3) (* (sqrt -3) (sqrt 2))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2)))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4))))))
(* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (+ (* 1/4 (/ (+ (* -1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* -1/16 (/ (sqrt 2) (pow (sqrt -3) 5)))) (pow v 6))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4)))))))
(* 1/4 (* v (* (sqrt -3) (sqrt 2))))
(* v (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))
(* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))
(* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/64 (/ (sqrt 2) (* (pow v 6) (pow (sqrt -3) 5)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))))
(* v (sqrt -3))
(* v (+ (sqrt -3) (* 1/2 (/ 1 (* (pow v 2) (sqrt -3))))))
(* v (- (+ (sqrt -3) (/ 1/2 (* (pow v 2) (sqrt -3)))) (/ 1/8 (* (pow v 4) (pow (sqrt -3) 3)))))
(* v (- (+ (sqrt -3) (+ (/ 1/2 (* (pow v 2) (sqrt -3))) (* 1/16 (/ 1 (* (pow v 6) (pow (sqrt -3) 5)))))) (* 1/8 (/ 1 (* (pow v 4) (pow (sqrt -3) 3))))))
(* 1/4 (* (pow v 3) (* (sqrt -3) (sqrt 2))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4)))))))
(* -1 (* (pow v 3) (+ (* -1/4 (* (sqrt -3) (sqrt 2))) (+ (* 1/4 (/ (+ (* -1/2 (/ (sqrt 2) (sqrt -3))) (* (sqrt -3) (sqrt 2))) (pow v 2))) (+ (* 1/4 (/ (+ (* -1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* -1/16 (/ (sqrt 2) (pow (sqrt -3) 5)))) (pow v 6))) (* 1/4 (/ (+ (* 1/8 (/ (sqrt 2) (pow (sqrt -3) 3))) (* 1/2 (/ (sqrt 2) (sqrt -3)))) (pow v 4))))))))
(* -1/4 (* v (* (sqrt -3) (sqrt 2))))
(* -1 (* v (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))
(* -1 (* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2)))))))
(* -1 (* v (+ (* -1/32 (/ (sqrt 2) (* (pow v 4) (pow (sqrt -3) 3)))) (+ (* 1/64 (/ (sqrt 2) (* (pow v 6) (pow (sqrt -3) 5)))) (+ (* 1/8 (/ (sqrt 2) (* (pow v 2) (sqrt -3)))) (* 1/4 (* (sqrt -3) (sqrt 2))))))))
(* -1 (* v (sqrt -3)))
(* -1 (* v (+ (sqrt -3) (* 1/2 (/ 1 (* (pow v 2) (sqrt -3)))))))
(* -1 (* v (- (+ (sqrt -3) (/ 1/2 (* (pow v 2) (sqrt -3)))) (/ 1/8 (* (pow v 4) (pow (sqrt -3) 3))))))
(* -1 (* v (- (+ (sqrt -3) (+ (/ 1/2 (* (pow v 2) (sqrt -3))) (* 1/16 (/ 1 (* (pow v 6) (pow (sqrt -3) 5)))))) (* 1/8 (/ 1 (* (pow v 4) (pow (sqrt -3) 3)))))))
Outputs
(* 1/4 (sqrt 2))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
(+ (* 1/4 (sqrt 2)) (* 1/4 (* (pow v 2) (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2))))))
(sqrt.f64 #s(literal 2 binary64))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2))))) (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))))))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* 1/4 (+ (* -3/2 (sqrt 2)) (* -1 (sqrt 2)))) (* (pow v 2) (+ (* 1/4 (* (pow v 2) (+ (* -27/16 (sqrt 2)) (* 9/8 (sqrt 2))))) (* 1/4 (+ (* -9/8 (sqrt 2)) (* 3/2 (sqrt 2)))))))))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(+ (* -3/8 (* (pow v 2) (sqrt 2))) (* 1/4 (sqrt 2)))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* -9/32 (* (pow v 2) (sqrt 2))))))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
(+ (* 1/4 (sqrt 2)) (* (pow v 2) (+ (* -3/8 (sqrt 2)) (* (pow v 2) (+ (* -27/64 (* (pow v 2) (sqrt 2))) (* -9/32 (sqrt 2)))))))
(*.f64 #s(literal 3 binary64) (*.f64 v v))
(* 3 (pow v 2))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))

rewrite1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Counts
8 → 8
Calls
Call 1
Inputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
(sqrt.f64 #s(literal 2 binary64))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
(*.f64 #s(literal 3 binary64) (*.f64 v v))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))
Outputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
(sqrt.f64 #s(literal 2 binary64))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
(*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v)))))
(/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
(*.f64 #s(literal 3 binary64) (*.f64 v v))
(sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))

eval2.0ms (0.1%)

Memory
3.2MiB live, 3.2MiB allocated
Compiler

Compiled 586 to 41 computations (93% saved)

prune15.0ms (1.2%)

Memory
-69.0MiB live, 8.7MiB allocated
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New17017
Fresh000
Picked033
Done011
Total17421
Accuracy
100.0%
Counts
21 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
98.7%
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
98.8%
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
17.2%
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
Compiler

Compiled 196 to 106 computations (45.9% saved)

regimes5.0ms (0.4%)

Memory
10.6MiB live, 10.6MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
Calls

3 calls:

2.0ms
v
2.0ms
(*.f64 v v)
1.0ms
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
Results
AccuracySegmentsBranch
100.0%1v
100.0%1(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
100.0%1(*.f64 v v)
Compiler

Compiled 23 to 17 computations (26.1% saved)

regimes4.0ms (0.4%)

Memory
9.2MiB live, 9.2MiB allocated
Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
Outputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
Calls

3 calls:

2.0ms
v
1.0ms
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
1.0ms
(*.f64 v v)
Results
AccuracySegmentsBranch
98.8%1v
98.8%1(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
98.8%1(*.f64 v v)
Compiler

Compiled 23 to 17 computations (26.1% saved)

regimes4.0ms (0.3%)

Memory
7.1MiB live, 7.1MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
Outputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
Calls

3 calls:

1.0ms
v
1.0ms
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
1.0ms
(*.f64 v v)
Results
AccuracySegmentsBranch
98.7%1v
98.7%1(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
98.7%1(*.f64 v v)
Compiler

Compiled 23 to 17 computations (26.1% saved)

regimes3.0ms (0.2%)

Memory
6.3MiB live, 6.3MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
Outputs
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
Calls

3 calls:

1.0ms
v
1.0ms
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
1.0ms
(*.f64 v v)
Results
AccuracySegmentsBranch
17.2%1(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
17.2%1v
17.2%1(*.f64 v v)
Compiler

Compiled 23 to 17 computations (26.1% saved)

simplify8.0ms (0.6%)

Memory
-28.9MiB live, 9.0MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))) (-.f64 #s(literal 1 binary64) (*.f64 v v)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (*.f64 (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)) (sqrt.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) (*.f64 v v))))))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (/.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal 4 binary64)))
#s(approx (* (* (/ (sqrt 2) 4) (sqrt (- 1 (* 3 (* v v))))) (- 1 (* v v))) (sqrt.f64 #s(literal 2 binary64)))

soundness1.0ms (0.1%)

Memory
1.2MiB live, 1.2MiB allocated
Stop Event
done
Compiler

Compiled 98 to 30 computations (69.4% saved)

preprocess26.0ms (2%)

Memory
-0.0MiB live, 37.1MiB allocated
Compiler

Compiled 234 to 88 computations (62.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...