Skip to content

Commit 5eeb4e3

Browse files
authored
Merge pull request pyscript#74 from ericmjl/example/message-passing
Providing an example for message passing + interactive REPL
2 parents 7fcdd80 + 7dcc73a commit 5eeb4e3

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<html>
2+
3+
<head>
4+
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
5+
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
6+
</head>
7+
8+
<body>
9+
<py-env>
10+
- numpy
11+
- networkx
12+
- matplotlib
13+
</py-env>
14+
<py-script>
15+
import numpy as np
16+
import networkx as nx
17+
</py-script>
18+
19+
<p>Message passing with linear algebra: a demo.</p>
20+
<p>Imagine we have a chain graph that looks like this:</p>
21+
<pre><code>O --> 1 --> 2 --> 3</code></pre>
22+
<p>In NetworkX this graph would look like the following:</p>
23+
<pre>
24+
<py-script>
25+
G = nx.Graph()
26+
nodes = list(range(4))
27+
G.add_edges_from(zip(nodes[0:-1], nodes[1:]))
28+
print(G.edges())
29+
</py-script></pre>
30+
<p>This chain graph has the following adjacency matrix:</p>
31+
<pre>
32+
<py-script>
33+
adj_mat = np.eye(4, k=1)
34+
print(f"A: {adj_mat}")
35+
</py-script>
36+
</pre>
37+
<p>And imagine that we have a message that lives on the graph:</p>
38+
<pre>
39+
<py-script>
40+
message = np.array([1.0, 0.0, 0.0, 0.0])
41+
print(f"message: {message}")
42+
</py-script>
43+
</pre>
44+
<p>Try out message passing below by doing any one of the following steps:</p>
45+
<pre><code>message @ adj_mat</code></pre>
46+
<pre><code>message @ adj_mat @ adj_mat</code></pre>
47+
<pre><code>message @ adj_mat @ adj_mat @ adj_mat</code></pre>
48+
<div>
49+
<py-repl id="my-repl" auto-generate="true"> </py-repl>
50+
</div>
51+
</body>
52+
53+
</html>

0 commit comments

Comments
 (0)