summaryrefslogtreecommitdiff
path: root/src/step.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/step.rs')
-rw-r--r--src/step.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/step.rs b/src/step.rs
new file mode 100644
index 0000000..1256688
--- /dev/null
+++ b/src/step.rs
@@ -0,0 +1,29 @@
+use crate::ctx::Ctx;
+use crate::quad::Node;
+
+pub fn step<A: Default, B: Copy>(ctx: &mut Ctx, node: Node<A, B>) -> Node<A, B> {
+ // pad the graph if needed.
+
+ // if we're at the base, run the cellular automation rule:
+ // collect training pair base -> rule.
+ // return the updated cached node.
+
+ // forward predict all children nodes of the root
+ // collect children nodes into vector X, X'
+ // forward predict compressed representation of root Y, Y'
+ // our target is to train Y' to match X'.
+
+ // calculate the difference between X and Y.
+ // if the difference is below an acceptable threshold:
+ // collect training pair Y -> X' (with error Y').
+ // return the updated cached node with compr = X'
+
+ // if the difference is above an acceptable threshold:
+ // recurse `step` on each child to produce four vectors
+ // (the recursion will stop when the true base is reached or threshold is small enough.)
+ // collect all children predictions into Z'
+ // collect training pair Y -> Z' (with error Y').
+ // return the updated cached node with compr = Z'.
+
+ todo!("Implement a step!")
+}