UniformSampleCone, z

Time bar (total: 3.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze134.0ms (4.3%)

Memory
-3.3MiB live, 137.0MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0.1%99.9%0%0%0%0
0%0%0.1%99.9%0%0%0%1
0%0%0.1%99.9%0%0%0%2
25%0%0.1%99.9%0%0%0%3
25%0%0.1%99.9%0%0%0%4
37.5%0%0.1%99.9%0%0%0%5
56.2%0.1%0%99.9%0%0%0%6
56.2%0.1%0%99.9%0%0%0%7
65.6%0.1%0%99.9%0%0%0%8
76.6%0.1%0%99.9%0%0%0%9
76.6%0.1%0%99.9%0%0%0%10
82%0.1%0%99.9%0%0%0%11
87.9%0.1%0%99.9%0%0%0%12
Compiler

Compiled 31 to 21 computations (32.3% saved)

sample1.0s (33.2%)

Memory
89.2MiB live, 1 334.7MiB allocated
Samples
677.0ms8 180×0valid
8.0ms76×1valid
Precisions
Click to see histograms. Total time spent on operations: 462.0ms
const: 135.0ms (29.2% of total)
ival-<=: 116.0ms (25.1% of total)
ival-sub: 67.0ms (14.5% of total)
ival-mult: 60.0ms (13% of total)
ival-add: 42.0ms (9.1% of total)
ival-and: 30.0ms (6.5% of total)
exact: 8.0ms (1.7% of total)
ival-assert: 3.0ms (0.6% of total)
adjust: 2.0ms (0.4% of total)
Bogosity

explain210.0ms (6.8%)

Memory
-2.9MiB live, 306.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-#s(literal 1 binary32)
00-0-(*.f32 ux maxCos)
00-0-maxCos
00-0-ux
00-0-(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
00-0-(-.f32 #s(literal 1 binary32) ux)
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
23.0ms504×0valid
1.0ms1valid
Compiler

Compiled 59 to 32 computations (45.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 4.0ms (39.9% of total)
ival-add: 3.0ms (29.9% of total)
ival-sub: 3.0ms (29.9% of total)
adjust: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess63.0ms (2%)

Memory
8.9MiB live, 47.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02572
17863
221563
358663
4130163
5167963
6180963
7182963
067
097
1177
2357
3647
41437
52907
64267
74647
84697
04696
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Outputs
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))
Symmetry

(abs uy)

Compiler

Compiled 7 to 7 computations (0% saved)

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Compiler

Compiled 7 to 7 computations (0% saved)

simplify18.0ms (0.6%)

Memory
-17.7MiB live, 19.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f32 ux maxCos)
cost-diff0
(-.f32 #s(literal 1 binary32) ux)
cost-diff64
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0616
0916
11716
23516
36416
414316
529016
642616
746416
846916
046915
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
maxCos
Outputs
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
(*.f32 ux maxCos)
(*.f32 maxCos ux)
maxCos

localize442.0ms (14.2%)

Memory
-9.1MiB live, 275.7MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(-.f32 #s(literal 1 binary32) ux)
accuracy0
(*.f32 ux maxCos)
accuracy0.04296875
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
Samples
12.0ms252×0valid
0.0ms1valid
Compiler

Compiled 34 to 16 computations (52.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 2.0ms (41% of total)
ival-add: 1.0ms (20.5% of total)
ival-sub: 1.0ms (20.5% of total)
adjust: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.1%)

Memory
7.6MiB live, 7.6MiB allocated
Counts
3 → 60
Calls
Call 1
Inputs
#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())
#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())
#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())
Outputs
#s(alt (- 1 ux) (taylor 0 maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (- (+ 1 (* maxCos ux)) ux) (taylor 0 maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (- (+ 1 (* maxCos ux)) ux) (taylor 0 maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (- (+ 1 (* maxCos ux)) ux) (taylor 0 maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor 0 maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor 0 maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor 0 maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor 0 maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos))) (taylor inf maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos))) (taylor inf maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos))) (taylor inf maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos))))) (taylor -inf maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos))))) (taylor -inf maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos))))) (taylor -inf maxCos) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf maxCos) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt 1 (taylor 0 ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (+ 1 (* ux (- maxCos 1))) (taylor 0 ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (+ 1 (* ux (- maxCos 1))) (taylor 0 ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (+ 1 (* ux (- maxCos 1))) (taylor 0 ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt 1 (taylor 0 ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (+ 1 (* -1 ux)) (taylor 0 ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (+ 1 (* -1 ux)) (taylor 0 ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (+ 1 (* -1 ux)) (taylor 0 ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor 0 ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor 0 ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor 0 ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor 0 ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* ux (- maxCos 1)) (taylor inf ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* ux (- (+ maxCos (/ 1 ux)) 1)) (taylor inf ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* ux (- (+ maxCos (/ 1 ux)) 1)) (taylor inf ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* ux (- (+ maxCos (/ 1 ux)) 1)) (taylor inf ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* -1 ux) (taylor inf ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* ux (- (/ 1 ux) 1)) (taylor inf ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* ux (- (/ 1 ux) 1)) (taylor inf ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* ux (- (/ 1 ux) 1)) (taylor inf ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor inf ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* -1 (* ux (+ 1 (* -1 maxCos)))) (taylor -inf ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux)))) (taylor -inf ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux)))) (taylor -inf ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux)))) (taylor -inf ux) (#s(alt (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) (patch (+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos)) #<representation binary32>) () ())) ())
#s(alt (* -1 ux) (taylor -inf ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* -1 (* ux (- 1 (/ 1 ux)))) (taylor -inf ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* -1 (* ux (- 1 (/ 1 ux)))) (taylor -inf ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* -1 (* ux (- 1 (/ 1 ux)))) (taylor -inf ux) (#s(alt (-.f32 #s(literal 1 binary32) ux) (patch (-.f32 #s(literal 1 binary32) ux) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
#s(alt (* maxCos ux) (taylor -inf ux) (#s(alt (*.f32 ux maxCos) (patch (*.f32 ux maxCos) #<representation binary32>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
ux
@inf
((+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* ux maxCos))
1.0ms
ux
@-inf
((+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* ux maxCos))
1.0ms
maxCos
@-inf
((+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* ux maxCos))
0.0ms
maxCos
@0
((+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* ux maxCos))
0.0ms
maxCos
@inf
((+ (- 1 ux) (* ux maxCos)) (- 1 ux) (* ux maxCos))

simplify180.0ms (5.8%)

Memory
15.6MiB live, 122.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039250
1110250
2306250
3848250
42091250
53292250
64316250
75345250
86781250
97325250
107658250
117962250
08013232
Stop Event
iter limit
node limit
Counts
60 → 60
Calls
Call 1
Inputs
(- 1 ux)
(- (+ 1 (* maxCos ux)) ux)
(- (+ 1 (* maxCos ux)) ux)
(- (+ 1 (* maxCos ux)) ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
1
(+ 1 (* ux (- maxCos 1)))
(+ 1 (* ux (- maxCos 1)))
(+ 1 (* ux (- maxCos 1)))
1
(+ 1 (* -1 ux))
(+ 1 (* -1 ux))
(+ 1 (* -1 ux))
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* ux (- maxCos 1))
(* ux (- (+ maxCos (/ 1 ux)) 1))
(* ux (- (+ maxCos (/ 1 ux)) 1))
(* ux (- (+ maxCos (/ 1 ux)) 1))
(* -1 ux)
(* ux (- (/ 1 ux) 1))
(* ux (- (/ 1 ux) 1))
(* ux (- (/ 1 ux) 1))
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* -1 (* ux (+ 1 (* -1 maxCos))))
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(* -1 ux)
(* -1 (* ux (- 1 (/ 1 ux))))
(* -1 (* ux (- 1 (/ 1 ux))))
(* -1 (* ux (- 1 (/ 1 ux))))
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
(* maxCos ux)
Outputs
(- 1 ux)
(-.f32 #s(literal 1 binary32) ux)
(- (+ 1 (* maxCos ux)) ux)
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(- (+ 1 (* maxCos ux)) ux)
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(- (+ 1 (* maxCos ux)) ux)
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* maxCos (- (+ ux (/ 1 maxCos)) (/ ux maxCos)))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* -1 (* maxCos (+ (* -1 ux) (* -1 (/ (- 1 ux) maxCos)))))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
1
#s(literal 1 binary32)
(+ 1 (* ux (- maxCos 1)))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(+ 1 (* ux (- maxCos 1)))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(+ 1 (* ux (- maxCos 1)))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
1
#s(literal 1 binary32)
(+ 1 (* -1 ux))
(-.f32 #s(literal 1 binary32) ux)
(+ 1 (* -1 ux))
(-.f32 #s(literal 1 binary32) ux)
(+ 1 (* -1 ux))
(-.f32 #s(literal 1 binary32) ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* ux (- maxCos 1))
(-.f32 (*.f32 maxCos ux) ux)
(* ux (- (+ maxCos (/ 1 ux)) 1))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* ux (- (+ maxCos (/ 1 ux)) 1))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* ux (- (+ maxCos (/ 1 ux)) 1))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* -1 ux)
(neg.f32 ux)
(* ux (- (/ 1 ux) 1))
(-.f32 #s(literal 1 binary32) ux)
(* ux (- (/ 1 ux) 1))
(-.f32 #s(literal 1 binary32) ux)
(* ux (- (/ 1 ux) 1))
(-.f32 #s(literal 1 binary32) ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* -1 (* ux (+ 1 (* -1 maxCos))))
(-.f32 (*.f32 maxCos ux) ux)
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* -1 (* ux (- (+ 1 (* -1 maxCos)) (/ 1 ux))))
(-.f32 (fma.f32 maxCos ux #s(literal 1 binary32)) ux)
(* -1 ux)
(neg.f32 ux)
(* -1 (* ux (- 1 (/ 1 ux))))
(-.f32 #s(literal 1 binary32) ux)
(* -1 (* ux (- 1 (/ 1 ux))))
(-.f32 #s(literal 1 binary32) ux)
(* -1 (* ux (- 1 (/ 1 ux))))
(-.f32 #s(literal 1 binary32) ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)
(* maxCos ux)
(*.f32 maxCos ux)

rewrite206.0ms (6.6%)

Memory
-13.6MiB live, 232.9MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
0913
14213
234313
3526813
0896812
Stop Event
iter limit
node limit
iter limit
Counts
3 → 311
Calls
Call 1
Inputs
(+.f32 (-.f32 #s(literal 1 binary32) ux) (*.f32 ux maxCos))
(-.f32 #s(literal 1 binary32) ux)
(*.f32 ux maxCos)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval33.0ms (1%)

Memory
36.2MiB live, 73.6MiB allocated
Compiler

Compiled 6 295 to 781 computations (87.6% saved)

prune11.0ms (0.4%)

Memory
-3.8MiB live, 34.2MiB allocated
Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New3638371
Fresh000
Picked101
Done000
Total3648372
Accuracy
100.0%
Counts
372 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.6%
(/.f32 (-.f32 #s(literal 1 binary32) (pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32))) (+.f32 #s(literal 1 binary32) (+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux)))))
97.1%
(/.f32 (+.f32 #s(literal 1 binary32) (pow.f32 (*.f32 ux (-.f32 #s(literal -1 binary32) maxCos)) #s(literal 3 binary32))) (+.f32 #s(literal 1 binary32) (-.f32 (pow.f32 (*.f32 ux (-.f32 #s(literal -1 binary32) maxCos)) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (*.f32 ux (-.f32 #s(literal -1 binary32) maxCos))))))
84.1%
(/.f32 (*.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux)))) (+.f32 (pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32)) (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32))))
99.9%
(-.f32 #s(literal 1 binary32) (-.f32 ux (*.f32 maxCos ux)))
98.8%
(+.f32 (/.f32 (-.f32 (*.f32 ux ux) #s(literal 1 binary32)) (-.f32 (neg.f32 ux) #s(literal 1 binary32))) (*.f32 ux maxCos))
39.5%
(exp.f32 (*.f32 (log.f32 (/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux)))) #s(literal -1 binary32)))
98.5%
#s(approx (+ (- 1 ux) (* ux maxCos)) (-.f32 #s(literal 1 binary32) ux))
72.4%
#s(approx (+ (- 1 ux) (* ux maxCos)) #s(literal 1 binary32))
Compiler

Compiled 244 to 176 computations (27.9% saved)

simplify195.0ms (6.3%)

Memory
-27.4MiB live, 227.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
cost-diff0
(pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32))
cost-diff0
(-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32)))
cost-diff0
(/.f32 (*.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux)))) (+.f32 (pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32)) (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32))))
cost-diff160
(*.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))))
cost-diff0
(/.f32 (-.f32 #s(literal 1 binary32) (pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32))) (+.f32 #s(literal 1 binary32) (+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux)))))
cost-diff64
(+.f32 #s(literal 1 binary32) (+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux))))
cost-diff160
(*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux))
cost-diff3072
(+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux)))
cost-diff64
(-.f32 (neg.f32 ux) #s(literal 1 binary32))
cost-diff64
(-.f32 (*.f32 ux ux) #s(literal 1 binary32))
cost-diff64
(+.f32 (/.f32 (-.f32 (*.f32 ux ux) #s(literal 1 binary32)) (-.f32 (neg.f32 ux) #s(literal 1 binary32))) (*.f32 ux maxCos))
cost-diff544
(/.f32 (-.f32 (*.f32 ux ux) #s(literal 1 binary32)) (-.f32 (neg.f32 ux) #s(literal 1 binary32)))
cost-diff0
#s(approx (+ (- 1 ux) (* ux maxCos)) #s(literal 1 binary32))
cost-diff0
(*.f32 maxCos ux)
cost-diff0
(-.f32 ux (*.f32 maxCos ux))
cost-diff64
(-.f32 #s(literal 1 binary32) (-.f32 ux (*.f32 maxCos ux)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039278
067267
1135263
2294260
31146260
43813248
08472245
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(-.f32 #s(literal 1 binary32) (-.f32 ux (*.f32 maxCos ux)))
#s(literal 1 binary32)
(-.f32 ux (*.f32 maxCos ux))
ux
(*.f32 maxCos ux)
maxCos
#s(approx (+ (- 1 ux) (* ux maxCos)) #s(literal 1 binary32))
#s(literal 1 binary32)
(+.f32 (/.f32 (-.f32 (*.f32 ux ux) #s(literal 1 binary32)) (-.f32 (neg.f32 ux) #s(literal 1 binary32))) (*.f32 ux maxCos))
(/.f32 (-.f32 (*.f32 ux ux) #s(literal 1 binary32)) (-.f32 (neg.f32 ux) #s(literal 1 binary32)))
(-.f32 (*.f32 ux ux) #s(literal 1 binary32))
(*.f32 ux ux)
ux
#s(literal 1 binary32)
(-.f32 (neg.f32 ux) #s(literal 1 binary32))
(neg.f32 ux)
(*.f32 ux maxCos)
maxCos
(/.f32 (-.f32 #s(literal 1 binary32) (pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32))) (+.f32 #s(literal 1 binary32) (+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux)))))
(-.f32 #s(literal 1 binary32) (pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32)))
#s(literal 1 binary32)
(pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32))
(fma.f32 maxCos ux ux)
maxCos
ux
#s(literal 3 binary32)
(+.f32 #s(literal 1 binary32) (+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux))))
(+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux)))
(pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32))
#s(literal 2 binary32)
(*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux))
(/.f32 (*.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux)))) (+.f32 (pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32)) (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32))))
(*.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))))
(-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32)))
(pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
#s(literal 4 binary32)
(pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))
(*.f32 maxCos ux)
maxCos
(/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux)))
(fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))
(+.f32 (pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32)) (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32)))
(pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32))
#s(literal 2 binary32)
(pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32))
Outputs
(-.f32 #s(literal 1 binary32) (-.f32 ux (*.f32 maxCos ux)))
(fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))
#s(literal 1 binary32)
(-.f32 ux (*.f32 maxCos ux))
ux
(*.f32 maxCos ux)
maxCos
#s(approx (+ (- 1 ux) (* ux maxCos)) #s(literal 1 binary32))
#s(literal 1 binary32)
(+.f32 (/.f32 (-.f32 (*.f32 ux ux) #s(literal 1 binary32)) (-.f32 (neg.f32 ux) #s(literal 1 binary32))) (*.f32 ux maxCos))
(fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))
(/.f32 (-.f32 (*.f32 ux ux) #s(literal 1 binary32)) (-.f32 (neg.f32 ux) #s(literal 1 binary32)))
(-.f32 #s(literal 1 binary32) ux)
(-.f32 (*.f32 ux ux) #s(literal 1 binary32))
(fma.f32 ux ux #s(literal -1 binary32))
(*.f32 ux ux)
ux
#s(literal 1 binary32)
(-.f32 (neg.f32 ux) #s(literal 1 binary32))
(-.f32 #s(literal -1 binary32) ux)
(neg.f32 ux)
(*.f32 ux maxCos)
(*.f32 maxCos ux)
maxCos
(/.f32 (-.f32 #s(literal 1 binary32) (pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32))) (+.f32 #s(literal 1 binary32) (+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux)))))
(/.f32 (-.f32 #s(literal 1 binary32) (pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32))) (fma.f32 (fma.f32 (fma.f32 maxCos ux ux) ux ux) (+.f32 maxCos #s(literal 1 binary32)) #s(literal 1 binary32)))
(-.f32 #s(literal 1 binary32) (pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32)))
#s(literal 1 binary32)
(pow.f32 (fma.f32 maxCos ux ux) #s(literal 3 binary32))
(fma.f32 maxCos ux ux)
maxCos
ux
#s(literal 3 binary32)
(+.f32 #s(literal 1 binary32) (+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux))))
(fma.f32 (fma.f32 (fma.f32 maxCos ux ux) ux ux) (+.f32 maxCos #s(literal 1 binary32)) #s(literal 1 binary32))
(+.f32 (pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32)) (*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux)))
(*.f32 (fma.f32 (fma.f32 maxCos ux ux) ux ux) (+.f32 maxCos #s(literal 1 binary32)))
(pow.f32 (fma.f32 maxCos ux ux) #s(literal 2 binary32))
#s(literal 2 binary32)
(*.f32 #s(literal 1 binary32) (fma.f32 maxCos ux ux))
(fma.f32 maxCos ux ux)
(/.f32 (*.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux)))) (+.f32 (pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32)) (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32))))
(/.f32 (/.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))) (+.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32))))
(*.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))))
(/.f32 (-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux)))
(-.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32)))
(pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 4 binary32))
(-.f32 #s(literal 1 binary32) ux)
#s(literal 1 binary32)
ux
#s(literal 4 binary32)
(pow.f32 (*.f32 maxCos ux) #s(literal 4 binary32))
(*.f32 maxCos ux)
maxCos
(/.f32 #s(literal 1 binary32) (fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux)))
(fma.f32 maxCos ux (-.f32 #s(literal 1 binary32) ux))
(+.f32 (pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32)) (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32)))
(+.f32 (pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32)) (pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32)))
(pow.f32 (*.f32 maxCos ux) #s(literal 2 binary32))
#s(literal 2 binary32)
(pow.f32 (-.f32 #s(literal 1 binary32) ux) #s(literal 2 binary32))

localize579.0ms (18.6%)

Memory
9.3MiB live, 953.7MiB allocated
Samples
21.0ms75×0valid
1.0ms1valid
Compiler

Compiled 565 to 76 computations (86.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-add: 5.0ms (30.3% of total)
ival-div: 2.0ms (12.1% of total)
ival-pow2: 2.0ms (12.1% of total)
ival-sub: 2.0ms (12.1% of total)
ival-pow: 2.0ms (12.1% of total)
ival-mult: 2.0ms (12.1% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-neg: 0.0ms (0% of total)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...