FastMath dist4

Time bar (total: 4.1s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
100%99.8%0%0.2%0%0%0%1
Compiler

Compiled 17 to 13 computations (23.5% saved)

sample812.0ms (19.9%)

Memory
-3.4MiB live, 1 073.0MiB allocated; 248ms collecting garbage
Samples
458.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 209.0ms
ival-mult!: 158.0ms (75.5% of total)
ival-sub!: 33.0ms (15.8% of total)
ival-add!: 17.0ms (8.1% of total)
adjust: 2.0ms (1% of total)
Bogosity

preprocess33.0ms (0.8%)

Memory
-0.9MiB live, 43.8MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065207
1641207
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
84.0%
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Compiler

Compiled 30 to 22 computations (26.7% saved)

series133.0ms (3.3%)

Memory
21.2MiB live, 157.9MiB allocated; 51ms collecting garbage
Counts
11 → 44
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 d2)
d1
d2
(*.f64 d1 d3)
d3
(*.f64 d4 d1)
d4
(*.f64 d1 d1)
Outputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3)))
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 d1 (-.f64 d2 d3)))
#s(approx (* d1 d2) (*.f64 d1 d2))
#s(approx d1 d1)
#s(approx (* d1 d3) (*.f64 d1 d3))
#s(approx (* d4 d1) (*.f64 d1 d4))
#s(approx (* d1 d1) (pow.f64 d1 #s(literal 2 binary64)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)) d1)) #s(literal 1 binary64))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)))))
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d2) (*.f64 #s(literal -1 binary64) d3)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (*.f64 d1 d3)))
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 d3)))
#s(approx (- (* d1 d2) (* d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))
#s(approx d2 d2)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (+.f64 (/.f64 (*.f64 d1 d3) d2) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d2)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (/.f64 (*.f64 d1 d3) d2))))
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d2))))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) d2))))))
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4)))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))))
#s(approx (- (* d1 d2) (* d1 d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d2)))
#s(approx d3 d3)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) (+.f64 d1 (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d3)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) d1)))
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 d3 (-.f64 (/.f64 (*.f64 d1 d2) d3) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))) d3)) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) d3)) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3)) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx d4 d4)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (+.f64 (/.f64 (*.f64 d1 d3) d4) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d4)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (/.f64 (*.f64 d1 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d4))))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) d4))))))
Calls

12 calls:

TimeVariablePoint
2.0ms
d1
-inf
2.0ms
d1
inf
1.0ms
d1
0
1.0ms
d2
-inf
1.0ms
d2
inf

rewrite228.0ms (5.6%)

Memory
-6.8MiB live, 330.7MiB allocated; 87ms collecting garbage
Counts
11 → 34
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 d2)
d1
d2
(*.f64 d1 d3)
d3
(*.f64 d4 d1)
d4
(*.f64 d1 d1)
Outputs
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 (-.f64 d3 d4)) (neg.f64 d1)))
(*.f64 d1 (+.f64 (neg.f64 d1) (-.f64 d2 (-.f64 d3 d4))))
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)
(*.f64 (-.f64 (-.f64 d2 d3) d4) d1)
(*.f64 d1 (+.f64 d2 (-.f64 d3 d4)))
(*.f64 d1 (-.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d4))
(*.f64 (+.f64 d3 d2) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) (neg.f64 d1))
(*.f64 (neg.f64 d1) (-.f64 d2 d3))
(*.f64 (neg.f64 d1) (+.f64 d3 d2))
(*.f64 d1 d2)
(*.f64 d2 d1)
d1
(neg.f64 (neg.f64 d1))
d2
(*.f64 d1 d3)
(*.f64 d3 d1)
(neg.f64 (neg.f64 (*.f64 d1 d3)))
d3
(*.f64 d4 d1)
(*.f64 d1 d4)
(neg.f64 (neg.f64 (*.f64 d4 d1)))
d4
(neg.f64 (neg.f64 d4))
(*.f64 d1 d1)
(*.f64 (fabs.f64 d1) (fabs.f64 d1))
(*.f64 (fabs.f64 d1) d1)
(*.f64 (fabs.f64 d1) (neg.f64 d1))
(*.f64 (neg.f64 d1) d1)

eval12.0ms (0.3%)

Memory
26.6MiB live, 26.5MiB allocated; 0ms collecting garbage
Compiler

Compiled 1 560 to 319 computations (79.6% saved)

prune4.0ms (0.1%)

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

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New67370
Fresh000
Picked101
Done000
Total68371
Accuracy
100.0%
Counts
71 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
68.7%
(-.f64 #s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) (*.f64 d1 d1))
100.0%
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
76.6%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
Compiler

Compiled 54 to 37 computations (31.5% saved)

series160.0ms (3.9%)

Memory
-52.9MiB live, 197.6MiB allocated; 42ms collecting garbage
Counts
17 → 107
Calls
Call 1
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
d1
(-.f64 (+.f64 d2 d4) d3)
(+.f64 d2 d4)
d2
d4
d3
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(+.f64 (-.f64 d4 d1) (-.f64 d2 d3))
(-.f64 d4 d1)
(-.f64 d2 d3)
(-.f64 #s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) (*.f64 d1 d1))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4)))
(fma.f64 d1 d2 (*.f64 d1 d4))
(*.f64 d1 d4)
(*.f64 d1 d1)
Outputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3)))
#s(approx d1 d1)
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d3))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3))
#s(approx (- d4 d1) d4)
#s(approx (- d4 d1) (+.f64 d4 (*.f64 #s(literal -1 binary64) d1)))
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 d1 (+.f64 d2 d4)))
#s(approx (* d1 d4) (*.f64 d1 d4))
#s(approx (* d1 d1) (pow.f64 d1 #s(literal 2 binary64)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d1 (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (- d4 d1) (*.f64 d1 (-.f64 (/.f64 d4 d1) #s(literal 1 binary64))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)) d1)) #s(literal 1 binary64))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d3) d1))))))
#s(approx (- d4 d1) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d1))))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)))))
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d4 d3)))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 d3))))
#s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))
#s(approx (+ d2 d4) (+.f64 d2 d4))
#s(approx d2 d2)
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) d3))
#s(approx (- d2 d3) (-.f64 d2 d3))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (*.f64 d1 d3)))
#s(approx (+ (* d1 d2) (* d1 d4)) (fma.f64 d1 d2 (*.f64 d1 d4)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (+.f64 (/.f64 (*.f64 d1 d3) d2) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d2)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2))))
#s(approx (- (+ d2 d4) d3) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (/.f64 d3 d2))))
#s(approx (+ d2 d4) (*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (+.f64 (/.f64 d1 d2) (/.f64 d3 d2)))))
#s(approx (- d2 d3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d2)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (/.f64 (*.f64 d1 d3) d2))))
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d2))))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d2)) #s(literal 1 binary64)))))
#s(approx (+ d2 d4) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d4 d2)) #s(literal 1 binary64)))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2))))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 (+.f64 d1 d3)) d2)) #s(literal 1 binary64)))))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (/.f64 d3 d2) #s(literal 1 binary64)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) d2))))))
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d4) d2))))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d4))))
#s(approx (- (+ d2 d4) d3) (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))))
#s(approx d3 d3)
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1))))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))) d1))
#s(approx (- d2 d3) (+.f64 d2 (*.f64 #s(literal -1 binary64) d3)))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) (+.f64 d1 (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d3)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3))))
#s(approx (- (+ d2 d4) d3) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) #s(literal 1 binary64))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3)))))
#s(approx (- d2 d3) (*.f64 d3 (-.f64 (/.f64 d2 d3) #s(literal 1 binary64))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))) d3)) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d2 d4) d3))))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3))))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d1) d3))))))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d2 d3))))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) d3)) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d2 (+.f64 d1 d3)))
#s(approx (- d4 d1) (-.f64 d4 d1))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (+.f64 (/.f64 (*.f64 d1 d3) d4) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d4)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4))))
#s(approx (- (+ d2 d4) d3) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (/.f64 d3 d4))))
#s(approx (+ d2 d4) (*.f64 d4 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (+.f64 (/.f64 d1 d4) (/.f64 d3 d4)))))
#s(approx (- d4 d1) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d1 d4)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (/.f64 (*.f64 d1 d3) d4))))
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d4))))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 d3) d4)) #s(literal 1 binary64)))))
#s(approx (+ d2 d4) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d4)) #s(literal 1 binary64)))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4))))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) #s(literal 1 binary64)))))
#s(approx (- d4 d1) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (/.f64 d1 d4) #s(literal 1 binary64)))))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) d4))))))
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d4))))))
Calls

12 calls:

TimeVariablePoint
5.0ms
d1
inf
3.0ms
d1
0
2.0ms
d1
-inf
2.0ms
d4
-inf
1.0ms
d2
-inf

rewrite414.0ms (10.2%)

Memory
-4.0MiB live, 681.9MiB allocated; 128ms collecting garbage
Counts
17 → 57
Calls
Call 1
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
d1
(-.f64 (+.f64 d2 d4) d3)
(+.f64 d2 d4)
d2
d4
d3
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(+.f64 (-.f64 d4 d1) (-.f64 d2 d3))
(-.f64 d4 d1)
(-.f64 d2 d3)
(-.f64 #s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) (*.f64 d1 d1))
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4)))
(fma.f64 d1 d2 (*.f64 d1 d4))
(*.f64 d1 d4)
(*.f64 d1 d1)
Outputs
#s(approx (* d1 (- (- d2 d3) (+ d4 d1))) (*.f64 d1 (-.f64 d2 (-.f64 d3 d4))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 d4)))
(*.f64 (-.f64 d2 (-.f64 d3 d4)) (neg.f64 d1))
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)
(*.f64 (-.f64 (-.f64 d2 d3) d4) d1)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d4)))
d1
(neg.f64 (neg.f64 d1))
(*.f64 (+.f64 (+.f64 d3 d2) d4) (/.f64 (-.f64 d2 (-.f64 d3 d4)) (+.f64 (+.f64 d3 d2) d4)))
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4))) (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4)))) (-.f64 d2 (-.f64 d3 d4)))
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4))) (fma.f64 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)) (+.f64 d2 d4) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 (+.f64 d2 d4)) (*.f64 (+.f64 d2 d4) (+.f64 d2 d4))))
(*.f64 (fma.f64 (+.f64 (+.f64 d3 d2) d4) d3 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4))) (/.f64 (-.f64 d2 (-.f64 d3 d4)) (fma.f64 (+.f64 (+.f64 d3 d2) d4) d3 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)))))
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)) (+.f64 d2 d4)) (*.f64 (*.f64 d3 d3) d3)) (+.f64 (pow.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) d3) #s(literal 3 binary64)) (pow.f64 (+.f64 d2 d4) (+.f64 #s(literal 3 binary64) #s(literal 3 binary64))))) (fma.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) d3) (-.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) d3) (*.f64 (+.f64 d2 d4) (+.f64 d2 d4))) (*.f64 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)) (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)))))
(*.f64 (+.f64 d2 d4) (/.f64 (-.f64 d2 d4) (-.f64 d2 d4)))
(*.f64 (/.f64 (*.f64 (+.f64 d2 d4) (-.f64 d2 d4)) (*.f64 (+.f64 d2 d4) (-.f64 d2 d4))) (+.f64 d2 d4))
(*.f64 (/.f64 (*.f64 (+.f64 d2 d4) (-.f64 d2 d4)) (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (+.f64 d2 d4) d4 (*.f64 d2 d2)))
(*.f64 (fma.f64 (-.f64 d4 d2) d4 (*.f64 d2 d2)) (/.f64 (+.f64 d2 d4) (fma.f64 (-.f64 d4 d2) d4 (*.f64 d2 d2))))
(*.f64 (/.f64 (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d4 d4) d4)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (-.f64 d4 d2) d4) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 d4 d2) d4) (-.f64 (*.f64 (-.f64 d4 d2) d4) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2))))
d2
d4
(neg.f64 (neg.f64 d4))
d3
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3))
(*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) d1)
(*.f64 d1 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 (*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))) (/.f64 d1 (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))))
(*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (/.f64 (-.f64 (-.f64 d4 d1) (-.f64 d2 d3)) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))))
(*.f64 (/.f64 (*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))) (-.f64 (*.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (-.f64 d4 d1)) (*.f64 (*.f64 (-.f64 d2 d3) (-.f64 d2 d3)) (-.f64 d2 d3)))) (fma.f64 (-.f64 d2 d3) (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (fma.f64 d1 d1 (*.f64 d4 d4))))
(*.f64 (/.f64 (*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))) (*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3)))) (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3))
(*.f64 (fma.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3) (fma.f64 d1 d1 (*.f64 d4 d4))) (/.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (fma.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3) (fma.f64 d1 d1 (*.f64 d4 d4)))))
(*.f64 (/.f64 (fma.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (-.f64 d4 d1) (*.f64 (*.f64 (-.f64 d2 d3) (-.f64 d2 d3)) (-.f64 d2 d3))) (+.f64 (pow.f64 (*.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3)) #s(literal 3 binary64)) (pow.f64 (-.f64 d4 d1) (+.f64 #s(literal 3 binary64) #s(literal 3 binary64))))) (fma.f64 (*.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3)) (-.f64 (*.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3)) (fma.f64 d1 d1 (*.f64 d4 d4))) (*.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 d1 d1 (*.f64 d4 d4)))))
(*.f64 (-.f64 d4 d1) (/.f64 (-.f64 d4 d1) (-.f64 d4 d1)))
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 d1 d1 (*.f64 d4 d4))) (-.f64 d4 d1))
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 (*.f64 d1 d1) d1 (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (-.f64 d4 d1) d1 (*.f64 d4 d4)))
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (neg.f64 (fma.f64 d1 d1 (*.f64 d4 d4)))) (neg.f64 (-.f64 d4 d1)))
(*.f64 (+.f64 (fabs.f64 d1) d4) (/.f64 (-.f64 d4 (fabs.f64 d1)) (-.f64 d4 d1)))
(*.f64 (+.f64 d3 d2) (/.f64 (-.f64 d2 d3) (+.f64 d3 d2)))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (-.f64 d2 d3))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)))
(*.f64 (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)) (/.f64 (-.f64 d2 d3) (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2))))
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d3 d3) d3)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (+.f64 d3 d2) d3) #s(literal 3 binary64)))) (fma.f64 (*.f64 (+.f64 d3 d2) d3) (-.f64 (*.f64 (+.f64 d3 d2) d3) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2))))
(-.f64 #s(approx (* (- d2 (+ d4 d3)) d1) (*.f64 (-.f64 d2 d4) d1)) (*.f64 d1 d1))
#s(approx (* (- d2 (+ d4 d3)) d1) (*.f64 (-.f64 d2 d4) d1))
(*.f64 (+.f64 d2 d4) d1)
(*.f64 (-.f64 d2 d4) d1)
(*.f64 (neg.f64 d1) (-.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d2))
(*.f64 d1 d4)
(*.f64 d4 d1)
(neg.f64 (neg.f64 (*.f64 d1 d4)))
(*.f64 d1 d1)
(*.f64 (fabs.f64 d1) (fabs.f64 d1))
(*.f64 (fabs.f64 d1) d1)
(*.f64 (fabs.f64 d1) (neg.f64 d1))
(*.f64 (neg.f64 d1) d1)

eval20.0ms (0.5%)

Memory
21.7MiB live, 69.0MiB allocated; 5ms collecting garbage
Compiler

Compiled 4 590 to 808 computations (82.4% saved)

prune9.0ms (0.2%)

Memory
-21.6MiB live, 24.8MiB allocated; 3ms collecting garbage
Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1588166
Fresh000
Picked303
Done000
Total1618169
Accuracy
100.0%
Counts
169 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.7%
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)))
81.3%
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))))
34.0%
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)))
76.6%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
56.4%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
27.3%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
75.8%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))))
49.3%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
Compiler

Compiled 346 to 230 computations (33.5% saved)

series189.0ms (4.6%)

Memory
32.3MiB live, 403.1MiB allocated; 45ms collecting garbage
Counts
23 → 119
Calls
Call 1
Inputs
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))))
d1
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))
(-.f64 d4 (+.f64 d1 d3))
d4
(+.f64 d1 d3)
d3
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
(*.f64 d1 d2)
d2
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))
#s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))
(-.f64 d4 d3)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)
(-.f64 d2 (-.f64 d3 d4))
(-.f64 d3 d4)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 d2 d3)
Outputs
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3)))
#s(approx d1 d1)
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d3))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3))
#s(approx (- d4 (+ d1 d3)) (-.f64 d4 d3))
#s(approx (- d4 (+ d1 d3)) (-.f64 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1)) d3))
#s(approx (+ d1 d3) d3)
#s(approx (+ d1 d3) (+.f64 d1 d3))
#s(approx (* d1 d2) (*.f64 d1 d2))
#s(approx (* d1 (- d2 d3)) (*.f64 d1 (-.f64 d2 d3)))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d1 (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (- d4 (+ d1 d3)) (*.f64 d1 (-.f64 (/.f64 d4 d1) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (+ d1 d3) (*.f64 d1 (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d3) d1))))))
#s(approx (- d4 (+ d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d1))))))
#s(approx (+ d1 d3) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d3 d1)) #s(literal 1 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)) d1)) #s(literal 1 binary64))))
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d1 (fma.f64 #s(literal -1 binary64) d4 (*.f64 #s(literal -1 binary64) (-.f64 d2 d3))))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx d2 d2)
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d4 d3)))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 d3))))
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d4)))
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))))
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 d3)))
#s(approx (* d1 (- d2 d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d2)))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) d3))
#s(approx (- d2 d3) (-.f64 d2 d3))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (+.f64 (/.f64 d1 d2) (/.f64 d3 d2)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (+.f64 (/.f64 (*.f64 d1 d3) d2) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d2)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2))))
#s(approx (- (+ d2 d4) d3) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (/.f64 d3 d2))))
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2) (/.f64 (*.f64 d1 d4) d2)))))
#s(approx (* d1 (- d2 d3)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (- d2 d3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d2)))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2))))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 (+.f64 d1 d3)) d2)) #s(literal 1 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d2))))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d2)) #s(literal 1 binary64)))))
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d4)) d2))))))
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (/.f64 d3 d2) #s(literal 1 binary64)))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1))))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))) d1))
#s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))
#s(approx (- d4 (+ d1 d3)) (-.f64 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)) d1))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (+.f64 d2 d4)))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d4))))
#s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))
#s(approx (- (+ d2 d4) d3) (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))))
#s(approx (- d4 d3) d4)
#s(approx (- d4 d3) (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)))
#s(approx (- d3 d4) (*.f64 #s(literal -1 binary64) d4))
#s(approx (- d3 d4) (-.f64 d3 d4))
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))
#s(approx (- d2 d3) (+.f64 d2 (*.f64 #s(literal -1 binary64) d3)))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3)))))
#s(approx (- d4 (+ d1 d3)) (*.f64 d3 (-.f64 (/.f64 d4 d3) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3)))))
#s(approx (+ d1 d3) (*.f64 d3 (+.f64 #s(literal 1 binary64) (/.f64 d1 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) (+.f64 d1 (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d3)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3))))
#s(approx (- (+ d2 d4) d3) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) #s(literal 1 binary64))))
#s(approx (- d4 d3) (*.f64 d3 (-.f64 (/.f64 d4 d3) #s(literal 1 binary64))))
#s(approx (- d3 d4) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d3)))))
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)))))
#s(approx (* d1 (- d2 d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d2) d3))))
#s(approx (- d2 d3) (*.f64 d3 (-.f64 (/.f64 d2 d3) #s(literal 1 binary64))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3))))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d1) d3))))))
#s(approx (- d4 (+ d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d1) d3))))))
#s(approx (+ d1 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d1 d3)) #s(literal 1 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))) d3)) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d2 d4) d3))))))
#s(approx (- d4 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d3))))))
#s(approx (- d3 d4) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (/.f64 d4 d3) #s(literal 1 binary64)))))
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) d3))))))
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3))))))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d2 d3))))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))))
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d2 (+.f64 d1 d3)))
#s(approx (- d4 (+ d1 d3)) (*.f64 #s(literal -1 binary64) (+.f64 d1 d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- d3 d4) (+.f64 d3 (*.f64 #s(literal -1 binary64) d4)))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 d4))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (+.f64 (/.f64 d1 d4) (/.f64 d3 d4)))))
#s(approx (- d4 (+ d1 d3)) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d1 d3) d4)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (+.f64 (/.f64 (*.f64 d1 d3) d4) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d4)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4))))
#s(approx (- (+ d2 d4) d3) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (/.f64 d3 d4))))
#s(approx (- d4 d3) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d4)))))
#s(approx (- d3 d4) (*.f64 d4 (-.f64 (/.f64 d3 d4) #s(literal 1 binary64))))
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4))))))
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) #s(literal 1 binary64)))))
#s(approx (- d4 (+ d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (+.f64 (/.f64 d1 d4) (/.f64 d3 d4)) #s(literal 1 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d4))))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 d3) d4)) #s(literal 1 binary64)))))
#s(approx (- d4 d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (/.f64 d3 d4) #s(literal 1 binary64)))))
#s(approx (- d3 d4) (*.f64 #s(literal -1 binary64) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d4))))))
Calls

12 calls:

TimeVariablePoint
6.0ms
d2
-inf
2.0ms
d1
-inf
2.0ms
d1
inf
1.0ms
d1
0
1.0ms
d3
-inf

rewrite494.0ms (12.1%)

Memory
27.3MiB live, 441.6MiB allocated; 166ms collecting garbage
Counts
23 → 62
Calls
Call 1
Inputs
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))))
d1
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))
(-.f64 d4 (+.f64 d1 d3))
d4
(+.f64 d1 d3)
d3
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
(*.f64 d1 d2)
d2
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))
#s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))
(-.f64 d4 d3)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)
(-.f64 d2 (-.f64 d3 d4))
(-.f64 d3 d4)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))
(fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 d2 d3)
Outputs
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
d1
(neg.f64 (neg.f64 d1))
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))
(*.f64 (-.f64 d4 (-.f64 d1 d3)) (/.f64 (-.f64 (-.f64 d4 d1) d3) (-.f64 d4 (-.f64 d1 d3))))
(*.f64 (/.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (-.f64 (-.f64 d4 d1) d3)) (fma.f64 (*.f64 (+.f64 d1 d3) (+.f64 d1 d3)) (+.f64 d1 d3) (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (+.f64 d1 d3) (-.f64 (+.f64 d1 d3) d4) (*.f64 d4 d4)))
(*.f64 (/.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (-.f64 (-.f64 d4 d1) d3)) (*.f64 (-.f64 d4 (-.f64 d1 d3)) (-.f64 (-.f64 d4 d1) d3))) (-.f64 (-.f64 d4 d1) d3))
(*.f64 (fma.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3) (*.f64 d4 d4)) (/.f64 (-.f64 (-.f64 d4 d1) d3) (fma.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3) (*.f64 d4 d4))))
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 d4 d4) d4) (*.f64 (*.f64 (+.f64 d1 d3) (+.f64 d1 d3)) (+.f64 d1 d3))) (fma.f64 (*.f64 (*.f64 d4 d4) (*.f64 d4 d4)) (*.f64 d4 d4) (pow.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3)) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3)) (-.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3)) (*.f64 d4 d4)) (*.f64 (*.f64 d4 d4) (*.f64 d4 d4))))
d4
(neg.f64 (neg.f64 d4))
(*.f64 (+.f64 d1 d3) (/.f64 (-.f64 d1 d3) (-.f64 d1 d3)))
(*.f64 (/.f64 (*.f64 (+.f64 d1 d3) (-.f64 d1 d3)) (*.f64 (+.f64 d1 d3) (-.f64 d1 d3))) (+.f64 d1 d3))
(*.f64 (/.f64 (*.f64 (+.f64 d1 d3) (-.f64 d1 d3)) (-.f64 (*.f64 (*.f64 d1 d1) d1) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 (+.f64 d1 d3) d3 (*.f64 d1 d1)))
(*.f64 (+.f64 (fabs.f64 d1) d3) (/.f64 (-.f64 (fabs.f64 d1) d3) (-.f64 d1 d3)))
(*.f64 (+.f64 (neg.f64 d1) d3) (/.f64 (-.f64 (neg.f64 d1) d3) (-.f64 d1 d3)))
d3
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 d2))
(*.f64 d1 d2)
(*.f64 d2 d1)
d2
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 #s(approx (- d4 (- d3 d2)) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (- d4 (- d3 d2)) (-.f64 d4 d3)))
#s(approx (- d4 (- d3 d2)) (-.f64 d4 d3))
(*.f64 (+.f64 d4 d3) (/.f64 (-.f64 d4 d3) (+.f64 d4 d3)))
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d4 d3)) (*.f64 (+.f64 d4 d3) (-.f64 d3 d4))) (-.f64 d3 d4))
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d4 d3)) (*.f64 (+.f64 d4 d3) (-.f64 d4 d3))) (-.f64 d4 d3))
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d4 d3)) (fma.f64 (*.f64 d3 d3) d3 (*.f64 (*.f64 d4 d4) d4))) (fma.f64 d3 (-.f64 d3 d4) (*.f64 d4 d4)))
(*.f64 (fma.f64 (+.f64 d4 d3) d3 (*.f64 d4 d4)) (/.f64 (-.f64 d4 d3) (fma.f64 (+.f64 d4 d3) d3 (*.f64 d4 d4))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)
(*.f64 (-.f64 d4 (-.f64 d2 d3)) d1)
(*.f64 (-.f64 d2 (-.f64 d3 d4)) (neg.f64 d1))
(*.f64 (-.f64 (-.f64 d2 d3) (neg.f64 d4)) d1)
(*.f64 (-.f64 (-.f64 d2 d3) d4) d1)
(*.f64 (/.f64 (fma.f64 (-.f64 d4 d3) (-.f64 d3 d4) (*.f64 d2 d2)) (fma.f64 (-.f64 d4 d3) (-.f64 d3 d4) (*.f64 d2 d2))) (-.f64 d2 (-.f64 d3 d4)))
(*.f64 (+.f64 (+.f64 d3 d2) d4) (/.f64 (-.f64 d2 (-.f64 d3 d4)) (+.f64 (+.f64 d3 d2) d4)))
(*.f64 (-.f64 d2 (-.f64 d4 d3)) (/.f64 (-.f64 d2 (-.f64 d3 d4)) (-.f64 d2 (-.f64 d4 d3))))
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4))) (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4)))) (-.f64 d2 (-.f64 d3 d4)))
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4))) (fma.f64 (*.f64 (+.f64 d4 d2) (+.f64 d4 d2)) (+.f64 d4 d2) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 (+.f64 d4 d2)) (*.f64 (+.f64 d4 d2) (+.f64 d4 d2))))
(*.f64 (+.f64 d4 d3) (/.f64 (-.f64 d3 d4) (+.f64 d4 d3)))
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d3 d4)) (*.f64 (+.f64 d4 d3) (-.f64 d3 d4))) (-.f64 d3 d4))
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d3 d4)) (*.f64 (+.f64 d4 d3) (-.f64 d4 d3))) (-.f64 d4 d3))
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d3 d4)) (fma.f64 (*.f64 d3 d3) d3 (*.f64 (*.f64 d4 d4) d4))) (fma.f64 d3 (-.f64 d3 d4) (*.f64 d4 d4)))
(*.f64 (fma.f64 (+.f64 d4 d3) d3 (*.f64 d4 d4)) (/.f64 (-.f64 d3 d4) (fma.f64 (+.f64 d4 d3) d3 (*.f64 d4 d4))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) #s(approx (* d1 (- (+ d2 d3) d4)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)))
#s(approx (* d1 (- (+ d2 d3) d4)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)
(*.f64 (-.f64 d4 (-.f64 d2 d3)) d1)
(*.f64 (-.f64 d2 (-.f64 d3 d4)) (neg.f64 d1))
(*.f64 (-.f64 (-.f64 d2 d3) (neg.f64 d4)) d1)
(*.f64 (-.f64 (-.f64 d2 d3) d4) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d3 d2) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) (neg.f64 d1))
(*.f64 (neg.f64 d1) (+.f64 d3 d2))
(*.f64 (+.f64 d3 d2) (/.f64 (-.f64 d2 d3) (+.f64 d3 d2)))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (-.f64 d2 d3))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)))
(*.f64 (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)) (/.f64 (-.f64 d2 d3) (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2))))
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d3 d3) d3)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (+.f64 d3 d2) d3) #s(literal 3 binary64)))) (fma.f64 (*.f64 (+.f64 d3 d2) d3) (-.f64 (*.f64 (+.f64 d3 d2) d3) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2))))

eval53.0ms (1.3%)

Memory
-11.2MiB live, 37.0MiB allocated; 29ms collecting garbage
Compiler

Compiled 5 645 to 938 computations (83.4% saved)

prune12.0ms (0.3%)

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

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1735178
Fresh123
Picked325
Done000
Total1779186
Accuracy
100.0%
Counts
186 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.3%
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
79.7%
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)))
60.2%
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
56.4%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
55.3%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
33.9%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
27.3%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
49.3%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
55.7%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))))
Compiler

Compiled 394 to 252 computations (36% saved)

series161.0ms (4%)

Memory
-5.8MiB live, 88.4MiB allocated; 40ms collecting garbage
Counts
23 → 108
Calls
Call 1
Inputs
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
d1
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))
(-.f64 (-.f64 d4 d1) d3)
(-.f64 d4 d1)
d4
d3
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
(*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))
#s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))
#s(approx (- d4 d3) d4)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 d2 d3)
d2
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))
#s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))
#s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))
(+.f64 d2 d4)
Outputs
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3)))
#s(approx d1 d1)
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d3))
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3))
#s(approx (- (- d4 d1) d3) (-.f64 d4 d3))
#s(approx (- (- d4 d1) d3) (-.f64 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1)) d3))
#s(approx (- d4 d1) d4)
#s(approx (- d4 d1) (+.f64 d4 (*.f64 #s(literal -1 binary64) d1)))
#s(approx (* d1 (- d2 d3)) (*.f64 d1 (-.f64 d2 d3)))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 #s(literal -1 binary64) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) d1))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 d1 (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (- (- d4 d1) d3) (*.f64 d1 (-.f64 (/.f64 d4 d1) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))))
#s(approx (- d4 d1) (*.f64 d1 (-.f64 (/.f64 d4 d1) #s(literal 1 binary64))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d3) d1))))))
#s(approx (- (- d4 d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d1))))))
#s(approx (- d4 d1) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d1))))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)) d1)) #s(literal 1 binary64))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 d4 (+.f64 d1 d3)))
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d4 d3)))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 d3))))
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 d3)))
#s(approx (* d1 (- d2 d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d2)))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) d3))
#s(approx (- d2 d3) (-.f64 d2 d3))
#s(approx d2 d2)
#s(approx (+ d2 d4) (+.f64 d2 d4))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 d2))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (+.f64 (/.f64 d1 d2) (/.f64 d3 d2)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (+.f64 (/.f64 (*.f64 d1 d3) d2) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d2)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2))))
#s(approx (- (+ d2 d4) d3) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (/.f64 d3 d2))))
#s(approx (* d1 (- d2 d3)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (- d2 d3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d2)))))
#s(approx (+ d2 d4) (*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2))))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 (+.f64 d1 d3)) d2)) #s(literal 1 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d2))))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d2)) #s(literal 1 binary64)))))
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d3) d2)))))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (/.f64 d3 d2) #s(literal 1 binary64)))))
#s(approx (+ d2 d4) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d4 d2)) #s(literal 1 binary64)))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1))
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))) d1))
#s(approx (- (- d4 d1) d3) (-.f64 d4 d1))
#s(approx (- (- d4 d1) d3) (-.f64 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)) d1))
#s(approx d3 d3)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))) (pow.f64 d1 #s(literal 2 binary64))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (+.f64 d2 d4)))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d4))))
#s(approx (- (+ d2 d4) d3) (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))))
#s(approx (- d4 d3) (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)))
#s(approx (- d2 d3) (+.f64 d2 (*.f64 #s(literal -1 binary64) d3)))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3)))))
#s(approx (- (- d4 d1) d3) (*.f64 d3 (-.f64 (/.f64 d4 d3) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) (+.f64 d1 (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d3)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3))))
#s(approx (- (+ d2 d4) d3) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) #s(literal 1 binary64))))
#s(approx (- d4 d3) (*.f64 d3 (-.f64 (/.f64 d4 d3) #s(literal 1 binary64))))
#s(approx (* d1 (- d2 d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d2) d3))))
#s(approx (- d2 d3) (*.f64 d3 (-.f64 (/.f64 d2 d3) #s(literal 1 binary64))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3))))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d1) d3))))))
#s(approx (- (- d4 d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d1) d3))))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))) d3)) (*.f64 #s(literal -1 binary64) d1)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d2 d4) d3))))))
#s(approx (- d4 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d3))))))
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3))))))
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d2 d3))))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 d2 (+.f64 d1 d3)))
#s(approx (- (- d4 d1) d3) (*.f64 #s(literal -1 binary64) (+.f64 d1 d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 d4))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (+.f64 (/.f64 d1 d4) (/.f64 d3 d4)))))
#s(approx (- (- d4 d1) d3) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d1 d3) d4)))))
#s(approx (- d4 d1) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d1 d4)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (+.f64 (/.f64 (*.f64 d1 d3) d4) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d4)))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4))))
#s(approx (- (+ d2 d4) d3) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (/.f64 d3 d4))))
#s(approx (- d4 d3) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d4)))))
#s(approx (+ d2 d4) (*.f64 d4 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4))))
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4))))))
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) #s(literal 1 binary64)))))
#s(approx (- (- d4 d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (+.f64 (/.f64 d1 d4) (/.f64 d3 d4)) #s(literal 1 binary64)))))
#s(approx (- d4 d1) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (/.f64 d1 d4) #s(literal 1 binary64)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d4))))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4))))))
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 d3) d4)) #s(literal 1 binary64)))))
#s(approx (- d4 d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (/.f64 d3 d4) #s(literal 1 binary64)))))
#s(approx (+ d2 d4) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d4)) #s(literal 1 binary64)))))
Calls

12 calls:

TimeVariablePoint
6.0ms
d1
inf
2.0ms
d1
-inf
1.0ms
d3
-inf
1.0ms
d2
-inf
1.0ms
d4
-inf

rewrite515.0ms (12.6%)

Memory
-2.6MiB live, 228.4MiB allocated; 62ms collecting garbage
Counts
23 → 45
Calls
Call 1
Inputs
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
d1
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))
(-.f64 (-.f64 d4 d1) d3)
(-.f64 d4 d1)
d4
d3
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
(*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))
#s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))
#s(approx (- d4 d3) d4)
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 d2 d3)
d2
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))
#s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))
#s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))
(+.f64 d2 d4)
Outputs
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d1 d3)) (-.f64 (-.f64 d4 d1) d3)))
d1
(neg.f64 (neg.f64 d1))
#s(approx (- (+ d2 d4) (+ d1 d3)) (-.f64 (-.f64 d4 d1) d3))
(*.f64 (/.f64 (fma.f64 (-.f64 d3 d1) (-.f64 d1 d3) (*.f64 d4 d4)) (fma.f64 (-.f64 d3 d1) (-.f64 d1 d3) (*.f64 d4 d4))) (-.f64 (-.f64 d4 d1) d3))
(*.f64 (-.f64 d4 (-.f64 d1 d3)) (/.f64 (-.f64 (-.f64 d4 d1) d3) (-.f64 d4 (-.f64 d1 d3))))
(*.f64 (/.f64 (fma.f64 (-.f64 d3 d1) (-.f64 d1 d3) (*.f64 d4 d4)) (fma.f64 (fma.f64 d1 d1 (*.f64 d3 d3)) (-.f64 d3 d1) (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (-.f64 d3 d1) (-.f64 (-.f64 d3 d1) d4) (*.f64 d4 d4)))
(*.f64 (/.f64 (fma.f64 (-.f64 d3 d1) (-.f64 d1 d3) (*.f64 d4 d4)) (fma.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (-.f64 d4 d1) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 (-.f64 d4 d1)) (fma.f64 d1 d1 (*.f64 d4 d4))))
(*.f64 (fma.f64 (-.f64 d4 (-.f64 d1 d3)) d3 (fma.f64 d1 d1 (*.f64 d4 d4))) (/.f64 (-.f64 (-.f64 d4 d1) d3) (fma.f64 (-.f64 d4 (-.f64 d1 d3)) d3 (fma.f64 d1 d1 (*.f64 d4 d4)))))
(*.f64 (-.f64 d4 d1) (/.f64 (-.f64 d4 d1) (-.f64 d4 d1)))
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 d1 d1 (*.f64 d4 d4))) (-.f64 d4 d1))
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (neg.f64 (fma.f64 d1 d1 (*.f64 d4 d4)))) (neg.f64 (-.f64 d4 d1)))
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 (*.f64 d1 d1) d1 (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (-.f64 d4 d1) d1 (*.f64 d4 d4)))
(*.f64 (+.f64 (fabs.f64 d1) d4) (/.f64 (-.f64 d4 (fabs.f64 d1)) (-.f64 d4 d1)))
d4
(neg.f64 (neg.f64 d4))
d3
#s(approx (* d1 (- d2 (+ (+ d4 d1) d3))) (*.f64 d1 #s(approx (- d2 (- d3 d4)) #s(approx (- d4 d3) d4))))
(*.f64 d1 #s(approx (- d2 (- d3 d4)) #s(approx (- d4 d3) d4)))
#s(approx (- d2 (- d3 d4)) #s(approx (- d4 d3) d4))
#s(approx (- d4 d3) d4)
#s(approx (* d1 (- d2 (+ (+ d4 d1) d3))) #s(approx (* (- d2 (- d3 d4)) d1) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (* (- d2 (- d3 d4)) d1) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d3 d2) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) (neg.f64 d1))
(*.f64 (neg.f64 d1) (+.f64 d3 d2))
(*.f64 (+.f64 d3 d2) (/.f64 (-.f64 d2 d3) (+.f64 d3 d2)))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (-.f64 d2 d3))
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2)))
(*.f64 (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)) (/.f64 (-.f64 d2 d3) (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2))))
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d3 d3) d3)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (+.f64 d3 d2) d3) #s(literal 3 binary64)))) (fma.f64 (*.f64 (+.f64 d3 d2) d3) (-.f64 (*.f64 (+.f64 d3 d2) d3) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2))))
d2
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d1 d3)) #s(approx (- (- d4 d3) d1) (-.f64 d4 d1))))
#s(approx (- (+ d2 d4) (+ d1 d3)) #s(approx (- (- d4 d3) d1) (-.f64 d4 d1)))
#s(approx (- (- d4 d3) d1) (-.f64 d4 d1))
#s(approx (* d1 (- d2 (+ (+ d4 d1) d3))) (*.f64 d1 #s(approx (- d2 (- d3 d4)) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (- d2 (- d3 d4)) (+.f64 d2 d4)))
#s(approx (- d2 (- d3 d4)) (+.f64 d2 d4))
(*.f64 (+.f64 d2 d4) (/.f64 (-.f64 d2 d4) (-.f64 d2 d4)))
(*.f64 (/.f64 (*.f64 (+.f64 d2 d4) (-.f64 d2 d4)) (*.f64 (+.f64 d2 d4) (-.f64 d2 d4))) (+.f64 d2 d4))
(*.f64 (/.f64 (*.f64 (+.f64 d2 d4) (-.f64 d2 d4)) (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (+.f64 d2 d4) d4 (*.f64 d2 d2)))
(*.f64 (fma.f64 (-.f64 d4 d2) d4 (*.f64 d2 d2)) (/.f64 (+.f64 d2 d4) (fma.f64 (-.f64 d4 d2) d4 (*.f64 d2 d2))))
(*.f64 (/.f64 (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d4 d4) d4)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (-.f64 d4 d2) d4) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 d4 d2) d4) (-.f64 (*.f64 (-.f64 d4 d2) d4) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2))))

eval44.0ms (1.1%)

Memory
-10.4MiB live, 36.2MiB allocated; 17ms collecting garbage
Compiler

Compiled 5 104 to 854 computations (83.3% saved)

prune9.0ms (0.2%)

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

9 alts after pruning (2 fresh and 7 done)

PrunedKeptTotal
New1701171
Fresh112
Picked055
Done022
Total1719180
Accuracy
100.0%
Counts
180 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.3%
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
79.7%
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1)))
60.2%
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
56.4%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
55.3%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
33.9%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
27.3%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
49.3%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
55.7%
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))))
Compiler

Compiled 220 to 141 computations (35.9% saved)

regimes175.0ms (4.3%)

Memory
24.1MiB live, 161.6MiB allocated; 21ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
2 → 3
3 → 3
4 → 3
5 → 4
8 → 6
9 → 3
12 → 3
14 → 3
15 → 3
18 → 1
Calls
Call 1
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
Outputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
Call 2
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
Outputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
Call 3
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
Outputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
Call 4
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
Outputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
Call 5
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
Outputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
Call 6
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))))
Outputs
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
Call 7
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
Outputs
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
Call 8
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))))
Outputs
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
Call 9
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1)))
Outputs
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
Call 10
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))))
Outputs
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
Call 11
Inputs
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4)))))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)))
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1)))
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(-.f64 #s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Outputs
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
Calls

41 calls:

12.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
10.0ms
d1
7.0ms
d2
6.0ms
d1
5.0ms
d1
Results
AccuracySegmentsBranch
27.3%1(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
27.3%1d3
27.3%1d1
27.3%1d4
27.3%1d2
51.6%3d2
33.9%1(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
33.9%1d3
35.4%2d1
50.0%3d4
69.4%3d4
61.1%5d2
71.4%3d4
56.4%1d3
56.4%1(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
56.4%1d1
72.5%3d2
78.1%4d2
75.5%3d1
78.1%4d2
76.0%4d3
74.0%3d4
77.7%5(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
81.3%6d1
82.2%3d3
88.7%3(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
81.0%3d2
91.8%3d1
94.2%3d2
95.1%3d1
96.4%3d1
93.7%3(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
96.4%3d1
95.7%3d2
93.5%3d3
83.0%2d4
100.0%1(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
100.0%1d1
100.0%1d2
100.0%1d3
100.0%1d4
Compiler

Compiled 526 to 301 computations (42.8% saved)

bsearch145.0ms (3.6%)

Memory
-42.6MiB live, 26.6MiB allocated; 97ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
38.0ms
1.5231364852525202e+75
5.688221327627627e+82
98.0ms
-2.8057402410049587e+76
-8.989949302046866e+70
Samples
43.0ms288×0valid
Compiler

Compiled 864 to 594 computations (31.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult!: 8.0ms (73.8% of total)
ival-sub!: 2.0ms (18.4% of total)
ival-add!: 1.0ms (9.2% of total)
adjust: 0.0ms (0% of total)

bsearch7.0ms (0.2%)

Memory
4.3MiB live, 4.3MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
2.0ms
1.5231364852525202e+75
5.688221327627627e+82
3.0ms
-2.8057402410049587e+76
-8.989949302046866e+70
Compiler

Compiled 702 to 522 computations (25.6% saved)

bsearch42.0ms (1%)

Memory
7.7MiB live, 7.7MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
1.5231364852525202e+75
5.688221327627627e+82
38.0ms
-2.8057402410049587e+76
-8.989949302046866e+70
Samples
30.0ms112×0valid
Compiler

Compiled 702 to 522 computations (25.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
ival-add!: 20.0ms (79.6% of total)
ival-mult!: 4.0ms (15.9% of total)
ival-sub!: 1.0ms (4% of total)
adjust: 0.0ms (0% of total)

bsearch31.0ms (0.8%)

Memory
10.1MiB live, 10.1MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
3.692579716538747e+154
3.7496533316346696e+159
9.0ms
-2.8057402410049587e+76
-8.989949302046866e+70
Samples
14.0ms224×0valid
Compiler

Compiled 774 to 558 computations (27.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-mult!: 5.0ms (75.9% of total)
ival-sub!: 1.0ms (15.2% of total)
adjust: 0.0ms (0% of total)
ival-add!: 0.0ms (0% of total)

bsearch92.0ms (2.3%)

Memory
-11.8MiB live, 37.5MiB allocated; 10ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
1.5231364852525202e+75
5.688221327627627e+82
15.0ms
2.3906532203379798e-132
6.020847196735768e-112
9.0ms
-2.9492383280768315e-185
-3.3252498370631482e-186
38.0ms
-3.1518452754941533e-16
-8.372135106981142e-31
3.0ms
-2.8057402410049587e+76
-8.989949302046866e+70
Samples
38.0ms432×0valid
Compiler

Compiled 2 342 to 1 585 computations (32.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult!: 13.0ms (78.5% of total)
ival-sub!: 3.0ms (18.1% of total)
ival-add!: 1.0ms (6% of total)
adjust: 0.0ms (0% of total)

bsearch55.0ms (1.4%)

Memory
-5.7MiB live, 40.6MiB allocated; 6ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
3.3000401678705353e+168
1.5978453008489738e+178
17.0ms
-1.7744633220374124e-287
-6.015036029354905e-295
20.0ms
-3.1042351238833946e+90
-9.651640938171182e+56
Samples
31.0ms480×0valid
Compiler

Compiled 1 528 to 1 043 computations (31.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult!: 10.0ms (77.1% of total)
ival-sub!: 2.0ms (15.4% of total)
ival-add!: 1.0ms (7.7% of total)
adjust: 0.0ms (0% of total)

bsearch43.0ms (1.1%)

Memory
16.5MiB live, 16.5MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
39.0ms
5.174528119496633e+140
8.027972181038792e+150
1.0ms
-3.1042351238833946e+90
-9.651640938171182e+56
Samples
31.0ms160×0valid
Compiler

Compiled 1 194 to 795 computations (33.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult!: 4.0ms (74.4% of total)
ival-sub!: 1.0ms (18.6% of total)
adjust: 0.0ms (0% of total)
ival-add!: 0.0ms (0% of total)

bsearch50.0ms (1.2%)

Memory
-36.6MiB live, 8.9MiB allocated; 11ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
9.0ms
2.819894473209625e+150
9.90523552223344e+150
33.0ms
-4.318095741310827e+96
-1.911532168386525e+94
Samples
32.0ms192×0valid
Compiler

Compiled 714 to 474 computations (33.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-mult!: 4.0ms (67.8% of total)
ival-sub!: 1.0ms (17% of total)
ival-add!: 1.0ms (17% of total)
adjust: 0.0ms (0% of total)

bsearch2.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
5.174528119496633e+140
8.027972181038792e+150
1.0ms
-3.1042351238833946e+90
-9.651640938171182e+56
Compiler

Compiled 1 026 to 711 computations (30.7% saved)

derivations4.0ms (0.1%)

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

Compiled 836 to 110 computations (86.8% saved)

preprocess129.0ms (3.2%)

Memory
27.8MiB live, 124.4MiB allocated; 21ms collecting garbage
Compiler

Compiled 860 to 129 computations (85% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...