(
vertices_dist: pw.Table[DistFromSource], edges: pw.Table[Edge | Dist]
)
| 24 | |
| 25 | |
| 26 | def _bellman_ford_step( |
| 27 | vertices_dist: pw.Table[DistFromSource], edges: pw.Table[Edge | Dist] |
| 28 | ) -> pw.Table[DistFromSource]: |
| 29 | relaxed_edges = edges + edges.select( |
| 30 | dist_from_source=vertices_dist.ix(edges.u).dist_from_source + edges.dist |
| 31 | ) |
| 32 | vertices_dist = vertices_dist.update_rows( |
| 33 | relaxed_edges.groupby(id=relaxed_edges.v).reduce( |
| 34 | dist_from_source=pw.reducers.min(relaxed_edges.dist_from_source), |
| 35 | ) |
| 36 | ) |
| 37 | return vertices_dist |
| 38 | |
| 39 | |
| 40 | @check_arg_types |
nothing calls this directly
no test coverage detected