Cancel like terms

Time bar (total: 1.3s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

Compiled 7 to 6 computations (14.3% saved)

sample754.0ms (57%)

Memory
20.1MiB live, 374.0MiB allocated; 878ms collecting garbage
Samples
424.0ms3 863×1valid
163.0ms4 393×0valid
Precisions
Click to see histograms. Total time spent on operations: 188.0ms
ival-add!: 108.0ms (57.4% of total)
adjust: 53.0ms (28.2% of total)
ival-sub!: 27.0ms (14.4% of total)
Bogosity

preprocess75.0ms (5.7%)

Memory
-25.6MiB live, 18.3MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0816
1283
2763
32963
434633
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
49.7%
(-.f64 (+.f64 #s(literal 1 binary64) x) x)
Symmetry

(abs x)

Compiler

Compiled 8 to 8 computations (0% saved)

series4.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01128
Stop Event
iter-limit
Counts
4 → 4
Calls
Call 1
Inputs
(-.f64 (+.f64 #s(literal 1 binary64) x) x)
(+.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
Outputs
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
#s(approx (+ 1 x) (+.f64 #s(literal 1 binary64) x))
#s(approx x x)
#s(approx (+ 1 x) (*.f64 x (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x))))
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
((- (+ 1 x) x) (+ 1 x) 1 x)
0.0ms
x
@inf
((- (+ 1 x) x) (+ 1 x) 1 x)
0.0ms
x
@0
((- (+ 1 x) x) (+ 1 x) 1 x)

rewrite256.0ms (19.4%)

Memory
33.1MiB live, 172.1MiB allocated; 27ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0410
066
1466
21556
36126
440216
097646
1165456
Stop Event
saturated
node-limit
iter-limit
Counts
4 → 105
Calls
Call 1
Inputs
(-.f64 (+.f64 #s(literal 1 binary64) x) x)
(+.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
Outputs
#s(literal 1 binary64)
(*.f64 (/.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 8 binary64)) #s(literal 4 binary64))
(*.f64 (/.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 4 binary64)) #s(literal 2 binary64))
(*.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 1/2 binary64))
(/.f64 (neg.f64 (/.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 1 binary64))) #s(literal -2 binary64))
(/.f64 (neg.f64 (fma.f64 x #s(literal -2 binary64) #s(literal -2 binary64))) #s(literal 2 binary64))
(/.f64 (neg.f64 (fma.f64 x (exp.f64 x) (exp.f64 x))) (neg.f64 (exp.f64 x)))
(/.f64 (neg.f64 (fma.f64 x #s(literal 1 binary64) #s(literal 1 binary64))) #s(literal -1 binary64))
(/.f64 (neg.f64 (-.f64 (*.f64 x #s(literal -2 binary64)) #s(literal 2 binary64))) #s(literal 2 binary64))
(/.f64 (neg.f64 (+.f64 #s(literal 0 binary64) (*.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 2 binary64)))) #s(literal -4 binary64))
(/.f64 (neg.f64 (+.f64 #s(literal 0 binary64) (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)))) #s(literal -2 binary64))
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) (-.f64 #s(literal -1 binary64) x)))) #s(literal -2 binary64))
(/.f64 (neg.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64))))) #s(literal -4 binary64))
(/.f64 (neg.f64 (fma.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 2 binary64) #s(literal 0 binary64))) #s(literal -4 binary64))
(/.f64 (neg.f64 (-.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (-.f64 #s(literal -1 binary64) x))))) #s(literal -4 binary64))
(/.f64 (neg.f64 (-.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 0 binary64))) #s(literal -4 binary64))
(/.f64 (neg.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (-.f64 #s(literal -1 binary64) x)))) #s(literal -2 binary64))
(/.f64 (neg.f64 (neg.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)))) #s(literal 2 binary64))
(/.f64 (/.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 1 binary64)) #s(literal 2 binary64))
(/.f64 (-.f64 #s(literal 2 binary64) (-.f64 (neg.f64 x) x)) #s(literal 2 binary64))
(/.f64 (fma.f64 x #s(literal -2 binary64) #s(literal -2 binary64)) #s(literal -2 binary64))
(/.f64 (fma.f64 x (exp.f64 x) (exp.f64 x)) (exp.f64 x))
(/.f64 (fma.f64 x #s(literal 1 binary64) #s(literal 1 binary64)) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 x #s(literal -2 binary64)) #s(literal 2 binary64)) #s(literal -2 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) (*.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 2 binary64))) #s(literal 4 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64))) #s(literal 2 binary64))
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) (-.f64 #s(literal -1 binary64) x))) #s(literal 2 binary64))
(/.f64 (+.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 2 binary64) #s(literal 0 binary64)) #s(literal 4 binary64))
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (-.f64 #s(literal -1 binary64) x)))) #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 0 binary64)) #s(literal 4 binary64))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (-.f64 #s(literal -1 binary64) x))) #s(literal 2 binary64))
(/.f64 (neg.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64))) #s(literal -2 binary64))
(/.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (-.f64 #s(literal -1 binary64) x)) #s(literal -2 binary64))
(/.f64 (-.f64 #s(literal -1 binary64) x) #s(literal -1 binary64))
(/.f64 (-.f64 x #s(literal -1 binary64)) #s(literal 1 binary64))
(neg.f64 (-.f64 #s(literal -1 binary64) x))
(fma.f64 (fabs.f64 (fabs.f64 (cosh.f64 x))) (fabs.f64 (fabs.f64 (cosh.f64 x))) (fma.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x) x))
(fma.f64 (fabs.f64 (fabs.f64 (cosh.f64 x))) (fabs.f64 (fabs.f64 (cosh.f64 x))) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x)) (neg.f64 x)))
(fma.f64 (neg.f64 (fabs.f64 (cosh.f64 x))) (neg.f64 (fabs.f64 (cosh.f64 x))) (fma.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x) x))
(fma.f64 (neg.f64 (fabs.f64 (cosh.f64 x))) (neg.f64 (fabs.f64 (cosh.f64 x))) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x)) (neg.f64 x)))
(fma.f64 (neg.f64 (neg.f64 (cosh.f64 x))) (neg.f64 (neg.f64 (cosh.f64 x))) (fma.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x) x))
(fma.f64 (neg.f64 (neg.f64 (cosh.f64 x))) (neg.f64 (neg.f64 (cosh.f64 x))) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x)) (neg.f64 x)))
(fma.f64 (/.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 8 binary64)) #s(literal 4 binary64) #s(literal 0 binary64))
(fma.f64 (/.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 4 binary64)) #s(literal 2 binary64) #s(literal 0 binary64))
(fma.f64 (*.f64 x #s(literal 1 binary64)) #s(literal 2 binary64) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (fabs.f64 (cosh.f64 x)) (fabs.f64 (cosh.f64 x)) (fma.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x) x))
(fma.f64 (fabs.f64 (cosh.f64 x)) (fabs.f64 (cosh.f64 x)) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x)) (neg.f64 x)))
(fma.f64 (neg.f64 (cosh.f64 x)) (neg.f64 (cosh.f64 x)) (fma.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x) x))
(fma.f64 (neg.f64 (cosh.f64 x)) (neg.f64 (cosh.f64 x)) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x)) (neg.f64 x)))
(fma.f64 (+.f64 x x) #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 2 binary64)) #s(literal 1/2 binary64) #s(literal 0 binary64))
(fma.f64 (cosh.f64 x) (cosh.f64 x) (fma.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x) x))
(fma.f64 (cosh.f64 x) (cosh.f64 x) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x)) (neg.f64 x)))
(fma.f64 (cosh.f64 x) (sinh.f64 x) (fma.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x) (-.f64 x #s(literal -1 binary64))))
(fma.f64 (cosh.f64 x) (sinh.f64 x) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (-.f64 #s(literal -1 binary64) x)))
(fma.f64 (sinh.f64 x) (cosh.f64 x) (fma.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x) (-.f64 x #s(literal -1 binary64))))
(fma.f64 (sinh.f64 x) (cosh.f64 x) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (-.f64 #s(literal -1 binary64) x)))
(fma.f64 #s(literal 2 binary64) x (-.f64 #s(literal 1 binary64) x))
(fma.f64 x #s(literal 2 binary64) (-.f64 #s(literal 1 binary64) x))
(-.f64 (+.f64 x (*.f64 (cosh.f64 x) (cosh.f64 x))) (*.f64 (sinh.f64 x) (sinh.f64 x)))
(-.f64 (fma.f64 #s(literal 2 binary64) x (-.f64 x #s(literal -1 binary64))) (+.f64 x x))
(-.f64 (+.f64 (-.f64 x #s(literal -1 binary64)) (*.f64 (cosh.f64 x) (sinh.f64 x))) (*.f64 (cosh.f64 x) (sinh.f64 x)))
(-.f64 (-.f64 (-.f64 x #s(literal -1 binary64)) (*.f64 (cosh.f64 x) (sinh.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)))
(-.f64 (-.f64 x #s(literal -2 binary64)) #s(literal 1 binary64))
(-.f64 (+.f64 x x) (-.f64 x #s(literal 1 binary64)))
(-.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 1 binary64)) x)
(-.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (-.f64 (*.f64 (sinh.f64 x) (sinh.f64 x)) x))
(-.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (fma.f64 (sinh.f64 x) (sinh.f64 x) (neg.f64 x)))
(-.f64 (*.f64 (cosh.f64 x) (sinh.f64 x)) (-.f64 (*.f64 (cosh.f64 x) (sinh.f64 x)) (-.f64 x #s(literal -1 binary64))))
(-.f64 (*.f64 (cosh.f64 x) (sinh.f64 x)) (fma.f64 (cosh.f64 x) (sinh.f64 x) (-.f64 #s(literal -1 binary64) x)))
(-.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (neg.f64 x) x))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal -1 binary64) x))
(-.f64 (neg.f64 x) (-.f64 (-.f64 #s(literal -1 binary64) x) x))
(-.f64 (-.f64 x #s(literal -1 binary64)) #s(literal 0 binary64))
(-.f64 x #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (-.f64 #s(literal -1 binary64) x)))
(-.f64 #s(literal 1 binary64) (neg.f64 x))
(+.f64 (+.f64 x #s(literal 1/2 binary64)) #s(literal 1/2 binary64))
(+.f64 (+.f64 x (*.f64 (cosh.f64 x) (cosh.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x)))
(+.f64 (fma.f64 #s(literal 2 binary64) x (-.f64 x #s(literal -1 binary64))) (-.f64 (neg.f64 x) x))
(+.f64 (+.f64 (-.f64 x #s(literal -1 binary64)) (*.f64 (cosh.f64 x) (sinh.f64 x))) (*.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)))
(+.f64 (+.f64 #s(literal 0 binary64) (+.f64 x x)) (-.f64 #s(literal 1 binary64) x))
(+.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 0 binary64)) (-.f64 #s(literal 1 binary64) x))
(+.f64 (fma.f64 #s(literal 2 binary64) x x) (-.f64 (-.f64 #s(literal 1 binary64) x) x))
(+.f64 (-.f64 #s(literal 0 binary64) (-.f64 (neg.f64 x) x)) (-.f64 #s(literal 1 binary64) x))
(+.f64 (-.f64 (-.f64 x #s(literal -1 binary64)) (*.f64 (cosh.f64 x) (sinh.f64 x))) (*.f64 (cosh.f64 x) (sinh.f64 x)))
(+.f64 (/.f64 (+.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
(+.f64 (+.f64 x x) (-.f64 #s(literal 1 binary64) x))
(+.f64 (fma.f64 #s(literal 2 binary64) x #s(literal 1 binary64)) (neg.f64 x))
(+.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1/2 binary64) x))
(+.f64 #s(literal 1/2 binary64) (-.f64 #s(literal 1/2 binary64) (neg.f64 x)))
(+.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (fma.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x) x))
(+.f64 (*.f64 (cosh.f64 x) (cosh.f64 x)) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (sinh.f64 x)) (neg.f64 x)))
(+.f64 (*.f64 (cosh.f64 x) (sinh.f64 x)) (fma.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x) (-.f64 x #s(literal -1 binary64))))
(+.f64 (*.f64 (cosh.f64 x) (sinh.f64 x)) (-.f64 (*.f64 (sinh.f64 (neg.f64 x)) (cosh.f64 x)) (-.f64 #s(literal -1 binary64) x)))
(+.f64 (-.f64 #s(literal 1 binary64) x) (+.f64 x x))
(+.f64 #s(literal 0 binary64) (-.f64 x #s(literal -1 binary64)))
(+.f64 (neg.f64 x) (fma.f64 #s(literal 2 binary64) x #s(literal 1 binary64)))
(+.f64 (-.f64 x #s(literal -1 binary64)) #s(literal 0 binary64))
(+.f64 x #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x

eval8.0ms (0.6%)

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

Compiled 647 to 311 computations (51.9% saved)

prune3.0ms (0.2%)

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

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New1051106
Fresh000
Picked101
Done000
Total1061107
Accuracy
100.0%
Counts
107 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
Compiler

Compiled 6 to 6 computations (0% saved)

series1.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
057
Stop Event
iter-limit
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
#s(literal 1 binary64)
Outputs
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
((- (+ 1 x) x) 1)
0.0ms
x
@inf
((- (+ 1 x) x) 1)
0.0ms
x
@-inf
((- (+ 1 x) x) 1)

rewrite206.0ms (15.5%)

Memory
-8.7MiB live, 181.1MiB allocated; 15ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
058
058
1454
21554
36124
440244
097674
1165494
Stop Event
saturated
node-limit
saturated
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
#s(literal 1 binary64)
Outputs
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
#s(literal 1 binary64)

eval0.0ms (0%)

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

Compiled 0 to 1 computations (-∞% saved)

prune1.0ms (0%)

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

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done000
Total011
Accuracy
100.0%
Counts
1 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
Compiler

Compiled 14 to 14 computations (0% saved)

regimes2.0ms (0.2%)

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

Total -32.2b remaining (-∞%)

Threshold costs -32.2b (-∞%)

Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
(-.f64 (+.f64 #s(literal 1 binary64) x) x)
Outputs
#s(approx (- (+ 1 x) x) #s(literal 1 binary64))
Calls

2 calls:

1.0ms
x
1.0ms
(-.f64 (+.f64 #s(literal 1 binary64) x) x)
Results
AccuracySegmentsBranch
100.0%1(-.f64 (+.f64 #s(literal 1 binary64) x) x)
100.0%1x
Compiler

Compiled 5 to 5 computations (0% saved)

derivations1.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 6 to 6 computations (0% saved)

preprocess11.0ms (0.9%)

Memory
-30.8MiB live, 14.3MiB allocated; 5ms collecting garbage
Remove

(abs x)

Compiler

Compiled 22 to 22 computations (0% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...