MCPcopy Create free account
hub / github.com/google-deepmind/alphageometry / why_cyclic

Method why_cyclic

geometry.py:375–403  ·  view source on GitHub ↗

Why points are connected to self.

(self, points: list[Point], level: int = None)

Source from the content-addressed store, hash-verified

373 """Node of type Circle."""
374
375 def why_cyclic(self, points: list[Point], level: int = None) -> list[Any]:
376 """Why points are connected to self."""
377 level = level or float('inf')
378
379 groups = []
380 for p in points:
381 group = [
382 c
383 for c, d in self.edge_graph[p].items()
384 if d is None or d.level < level
385 ]
386 if not group:
387 return None
388 groups.append(group)
389
390 min_deps = None
391 for circle in groups[0]:
392 deps, others = circle.why_equal_groups(groups[1:], level)
393 if deps is None:
394 continue
395 for p, o in zip(points, [circle] + others):
396 deps.append(self.edge_graph[p][o])
397
398 if min_deps is None or len(deps) < len(min_deps):
399 min_deps = deps
400
401 if min_deps is None:
402 return None
403 return [d for d in min_deps if d is not None]
404
405
406def why_equal(x: Node, y: Node, level: int = None) -> list[Any]:

Callers 1

circle_of_and_whyFunction · 0.80

Calls 1

why_equal_groupsMethod · 0.80

Tested by

no test coverage detected