Diagrams.TwoD.Apollonian:descartes from diagrams-contrib-1.3.0.5

Time bar (total: 11.2s)

analyze518.0ms (4.6%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
25%25%74.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
25%25%74.9%0.1%0%0%0%6
25%25%74.9%0.1%0%0%0%7
25%25%74.9%0.1%0%0%0%8
26.2%25%70.2%0.1%0%4.7%0%9
28.9%25%61.4%0.1%0%13.5%0%10
31.2%26.3%58%0.1%0%15.5%0%11
37.2%28.9%48.7%0.1%0%22.3%0%12
Compiler

Compiled 18 to 12 computations (33.3% saved)

sample10.2s (90.8%)

Results
812.0ms8255×0valid-sollya
2.5s8255×0valid-rival
Bogosity

preprocess336.0ms (3%)

Algorithm
egg-herbie
Rules
843×fma-neg
694×fma-define
234×cancel-sign-sub-inv
147×sub-neg
102×associate-+l-
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
057590
1156534
2328530
3624530
41291530
51969530
62919530
73283530
83342530
93348530
103348530
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 x) z)) (*.f64 y z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z)) (*.f64 (neg.f64 y) z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x (neg.f64 z))) (*.f64 y (neg.f64 z)))))
(neg.f64 (*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 x) z)) (*.f64 y z)))))
(neg.f64 (*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z)) (*.f64 (neg.f64 y) z)))))
(neg.f64 (*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x (neg.f64 z))) (*.f64 y (neg.f64 z))))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 y x) (*.f64 y z)) (*.f64 x z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 z y) (*.f64 z x)) (*.f64 y x))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x z) (*.f64 x y)) (*.f64 z y))))
Outputs
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x z (*.f64 y (+.f64 x z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x z (*.f64 y (+.f64 x z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 x) z)) (*.f64 y z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (neg.f64 x) (+.f64 y z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 y z (*.f64 (neg.f64 x) (+.f64 y z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x (-.f64 (neg.f64 y) z) (*.f64 y z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (-.f64 (*.f64 y (-.f64 z x)) (*.f64 x z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z)) (*.f64 (neg.f64 y) z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 y (neg.f64 z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (-.f64 (*.f64 x (fma.f64 #s(literal -1 binary64) y z)) (*.f64 y z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 y (neg.f64 z) (*.f64 x (-.f64 z y)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x (neg.f64 z))) (*.f64 y (neg.f64 z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 y (neg.f64 z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x (-.f64 y z) (*.f64 y (neg.f64 z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (-.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (neg.f64 (fma.f64 y z (*.f64 x (-.f64 z y))))))
(neg.f64 (*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 (neg.f64 x) z)) (*.f64 y z)))))
(*.f64 #s(literal -2 binary64) (sqrt.f64 (+.f64 (*.f64 y z) (*.f64 (neg.f64 x) (+.f64 y z)))))
(*.f64 (sqrt.f64 (fma.f64 y z (*.f64 (neg.f64 x) (+.f64 y z)))) #s(literal -2 binary64))
(*.f64 (sqrt.f64 (fma.f64 x (-.f64 (neg.f64 y) z) (*.f64 y z))) #s(literal -2 binary64))
(*.f64 (sqrt.f64 (-.f64 (*.f64 y (-.f64 z x)) (*.f64 x z))) #s(literal -2 binary64))
(neg.f64 (*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 x z)) (*.f64 (neg.f64 y) z)))))
(*.f64 #s(literal -2 binary64) (sqrt.f64 (+.f64 (*.f64 x (+.f64 (neg.f64 y) z)) (*.f64 y (neg.f64 z)))))
(*.f64 (sqrt.f64 (-.f64 (*.f64 x (fma.f64 #s(literal -1 binary64) y z)) (*.f64 y z))) #s(literal -2 binary64))
(*.f64 (sqrt.f64 (fma.f64 y (neg.f64 z) (*.f64 x (-.f64 z y)))) #s(literal -2 binary64))
(neg.f64 (*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x (neg.f64 z))) (*.f64 y (neg.f64 z))))))
(*.f64 #s(literal -2 binary64) (sqrt.f64 (+.f64 (*.f64 x (+.f64 y (neg.f64 z))) (*.f64 y (neg.f64 z)))))
(*.f64 (sqrt.f64 (fma.f64 x (-.f64 y z) (*.f64 y (neg.f64 z)))) #s(literal -2 binary64))
(*.f64 (sqrt.f64 (-.f64 (*.f64 x y) (*.f64 z (+.f64 x y)))) #s(literal -2 binary64))
(*.f64 (sqrt.f64 (neg.f64 (fma.f64 y z (*.f64 x (-.f64 z y))))) #s(literal -2 binary64))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 y x) (*.f64 y z)) (*.f64 x z))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x z (*.f64 y (+.f64 x z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 z y) (*.f64 z x)) (*.f64 y x))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x z (*.f64 y (+.f64 x z)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x z) (*.f64 x y)) (*.f64 z y))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (*.f64 x y) (*.f64 z (+.f64 y x)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x y (*.f64 z (+.f64 x y)))))
(*.f64 #s(literal 2 binary64) (sqrt.f64 (fma.f64 x z (*.f64 y (+.f64 x z)))))
Symmetry

(sort x y z)

Compiler

Compiled 17 to 11 computations (35.3% saved)

eval1.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune5.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
66.4%
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
Compiler

Compiled 34 to 22 computations (35.3% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01859
12459
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))
Outputs
(*.f64 #s(literal 2 binary64) (sqrt.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 x z)) (*.f64 y z))))

soundness1.0ms (0%)

Stop Event
fuel
Compiler

Compiled 17 to 11 computations (35.3% saved)

preprocess171.0ms (1.5%)

Remove

(sort x y z)

Compiler

Compiled 272 to 144 computations (47.1% saved)

end0.0ms (0%)

Profiling

Loading profile data...