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

Method register

ar.py:339–361  ·  view source on GitHub ↗

Register a new equality vc=[(v, c), ..] with traceback dependency dep.

(self, vc: list[tuple[str, float]], dep: pr.Dependency)

Source from the content-addressed store, hash-verified

337 return True
338
339 def register(self, vc: list[tuple[str, float]], dep: pr.Dependency) -> None:
340 """Register a new equality vc=[(v, c), ..] with traceback dependency dep."""
341 result = plus_all(*[{v: c} for v, c in vc])
342 if is_zero(result):
343 return
344
345 vs, _ = zip(*vc)
346 for v in vs:
347 if v not in self.v2i:
348 self.v2i[v] = len(self.v2i)
349
350 (m, n), l = self.A.shape, len(self.v2i)
351 if l > m:
352 self.A = np.concatenate([self.A, np.zeros([l - m, n])], 0)
353
354 new_column = np.zeros([len(self.v2i), 2]) # N, 2
355 for v, c in vc:
356 new_column[self.v2i[v], 0] += float(c)
357 new_column[self.v2i[v], 1] -= float(c)
358
359 self.A = np.concatenate([self.A, new_column], 1)
360 self.c += [1.0, -1.0]
361 self.deps += [dep]
362
363 def register2(
364 self, a: str, b: str, m: float, n: float, dep: pr.Dependency

Callers 4

register2Method · 0.95
register3Method · 0.95
register4Method · 0.95
add_eqangleMethod · 0.80

Calls 2

plus_allFunction · 0.85
is_zeroFunction · 0.85

Tested by

no test coverage detected