Skip to content

Instantly share code, notes, and snippets.

@nicmart
Last active August 15, 2019 22:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicmart/ece4967de6dbfeffe25d359f37429c6a to your computer and use it in GitHub Desktop.
Save nicmart/ece4967de6dbfeffe25d359f37429c6a to your computer and use it in GitHub Desktop.
Unique Predicates:
List(
Predicate("Num", List(Var("T0"))),
Predicate("Mult", List(Var("T0"), Point, Var("T1"))),
Predicate("Mult", List(Var("T0"), Var("T1"), Var("T2"))),
Predicate("Mult", List(Var("T0"), Var("T2"), Var("T3"))),
Predicate("Mult", List(Var("T0"), Var("T3"), Var("T4")))
)
Time to Compute Substitutions: 315ms
Time to Remove Empty Subst: 0ms
Time to Order substs: 2ms
Time to Reduce Substitutions: 11ms
Ordered substitutions:
List(
(
Predicate("Num", List(Var("T0"))),
List(Substitution(List("T0" -> Dbl)), Substitution(List("T0" -> Integer)))
),
(
Predicate("Mult", List(Var("T0"), Point, Var("T1"))),
List(
Substitution(List("T0" -> Dbl, "T1" -> Point)),
Substitution(List("T0" -> Integer, "T1" -> Point))
)
),
(
Predicate("Mult", List(Var("T0"), Var("T2"), Var("T3"))),
List(
Substitution(List("T0" -> Dbl, "T2" -> Dbl, "T3" -> Dbl)),
Substitution(List("T0" -> Dbl, "T2" -> Point, "T3" -> Point)),
Substitution(List("T0" -> Point, "T2" -> Dbl, "T3" -> Point)),
Substitution(List("T0" -> Integer, "T2" -> Integer, "T3" -> Integer)),
Substitution(List("T0" -> Integer, "T2" -> Dbl, "T3" -> Dbl)),
Substitution(List("T0" -> Dbl, "T2" -> Integer, "T3" -> Dbl)),
Substitution(List("T0" -> Integer, "T2" -> Point, "T3" -> Point)),
Substitution(List("T0" -> Dbl, "T2" -> Evo(Dbl), "T3" -> Evo(Dbl))),
Substitution(List("T0" -> Evo(Dbl), "T2" -> Dbl, "T3" -> Evo(Dbl))),
Substitution(List("T0" -> Dbl, "T2" -> Evo(Point), "T3" -> Evo(Point))),
Substitution(List("T0" -> Evo(Point), "T2" -> Dbl, "T3" -> Evo(Point))),
Substitution(List("T0" -> Evo(Dbl), "T2" -> Evo(Dbl), "T3" -> Evo(Dbl))),
Substitution(List("T0" -> Evo(Point), "T2" -> Evo(Dbl), "T3" -> Evo(Point))),
Substitution(List("T0" -> Evo(Dbl), "T2" -> Evo(Point), "T3" -> Evo(Point)))
)
),
(
Predicate("Mult", List(Var("T0"), Var("T3"), Var("T4"))),
List(
Substitution(List("T0" -> Dbl, "T3" -> Dbl, "T4" -> Dbl)),
Substitution(List("T0" -> Dbl, "T3" -> Point, "T4" -> Point)),
Substitution(List("T0" -> Point, "T3" -> Dbl, "T4" -> Point)),
Substitution(List("T0" -> Integer, "T3" -> Integer, "T4" -> Integer)),
Substitution(List("T0" -> Integer, "T3" -> Dbl, "T4" -> Dbl)),
Substitution(List("T0" -> Dbl, "T3" -> Integer, "T4" -> Dbl)),
Substitution(List("T0" -> Integer, "T3" -> Point, "T4" -> Point)),
Substitution(List("T0" -> Dbl, "T3" -> Evo(Dbl), "T4" -> Evo(Dbl))),
Substitution(List("T0" -> Evo(Dbl), "T3" -> Dbl, "T4" -> Evo(Dbl))),
Substitution(List("T0" -> Dbl, "T3" -> Evo(Point), "T4" -> Evo(Point))),
Substitution(List("T0" -> Evo(Point), "T3" -> Dbl, "T4" -> Evo(Point))),
Substitution(List("T0" -> Evo(Dbl), "T3" -> Evo(Dbl), "T4" -> Evo(Dbl))),
Substitution(List("T0" -> Evo(Point), "T3" -> Evo(Dbl), "T4" -> Evo(Point))),
Substitution(List("T0" -> Evo(Dbl), "T3" -> Evo(Point), "T4" -> Evo(Point)))
)
),
(
Predicate("Mult", List(Var("T0"), Var("T1"), Var("T2"))),
List(
Substitution(List("T0" -> Dbl, "T1" -> Dbl, "T2" -> Dbl)),
Substitution(List("T0" -> Dbl, "T1" -> Point, "T2" -> Point)),
Substitution(List("T0" -> Point, "T1" -> Dbl, "T2" -> Point)),
Substitution(List("T0" -> Integer, "T1" -> Integer, "T2" -> Integer)),
Substitution(List("T0" -> Integer, "T1" -> Dbl, "T2" -> Dbl)),
Substitution(List("T0" -> Dbl, "T1" -> Integer, "T2" -> Dbl)),
Substitution(List("T0" -> Integer, "T1" -> Point, "T2" -> Point)),
Substitution(List("T0" -> Dbl, "T1" -> Evo(Dbl), "T2" -> Evo(Dbl))),
Substitution(List("T0" -> Evo(Dbl), "T1" -> Dbl, "T2" -> Evo(Dbl))),
Substitution(List("T0" -> Dbl, "T1" -> Evo(Point), "T2" -> Evo(Point))),
Substitution(List("T0" -> Evo(Point), "T1" -> Dbl, "T2" -> Evo(Point))),
Substitution(List("T0" -> Evo(Dbl), "T1" -> Evo(Dbl), "T2" -> Evo(Dbl))),
Substitution(List("T0" -> Evo(Point), "T1" -> Evo(Dbl), "T2" -> Evo(Point))),
Substitution(List("T0" -> Evo(Dbl), "T1" -> Evo(Point), "T2" -> Evo(Point)))
)
)
)
Optimised substitutions:
List(
(
Predicate("Num", List(Var("T0"))),
List(Substitution(List("T0" -> Dbl)), Substitution(List("T0" -> Integer)))
),
(
Predicate("Mult", List(Var("T0"), Point, Var("T1"))),
List(
Substitution(List("T0" -> Dbl, "T1" -> Point)),
Substitution(List("T0" -> Integer, "T1" -> Point))
)
),
(
Predicate("Mult", List(Var("T0"), Var("T2"), Var("T3"))),
List(
Substitution(List("T0" -> Dbl, "T2" -> Dbl, "T3" -> Dbl)),
Substitution(List("T0" -> Dbl, "T2" -> Point, "T3" -> Point)),
Substitution(List("T0" -> Integer, "T2" -> Integer, "T3" -> Integer)),
Substitution(List("T0" -> Integer, "T2" -> Dbl, "T3" -> Dbl)),
Substitution(List("T0" -> Integer, "T2" -> Point, "T3" -> Point)),
Substitution(List("T0" -> Dbl, "T2" -> Evo(Dbl), "T3" -> Evo(Dbl))),
Substitution(List("T0" -> Dbl, "T2" -> Evo(Point), "T3" -> Evo(Point)))
)
),
(
Predicate("Mult", List(Var("T0"), Var("T3"), Var("T4"))),
List(
Substitution(List("T0" -> Dbl, "T3" -> Dbl, "T4" -> Dbl)),
Substitution(List("T0" -> Dbl, "T3" -> Point, "T4" -> Point)),
Substitution(List("T0" -> Integer, "T3" -> Integer, "T4" -> Integer)),
Substitution(List("T0" -> Integer, "T3" -> Dbl, "T4" -> Dbl)),
Substitution(List("T0" -> Integer, "T3" -> Point, "T4" -> Point)),
Substitution(List("T0" -> Dbl, "T3" -> Evo(Dbl), "T4" -> Evo(Dbl))),
Substitution(List("T0" -> Dbl, "T3" -> Evo(Point), "T4" -> Evo(Point)))
)
),
(
Predicate("Mult", List(Var("T0"), Var("T1"), Var("T2"))),
List(
Substitution(List("T0" -> Dbl, "T1" -> Point, "T2" -> Point)),
Substitution(List("T0" -> Integer, "T1" -> Point, "T2" -> Point))
)
)
)
Time to Log predicates: 91ms
Time to build product: 4ms
Time to Time to unify: 5ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment