diff options
Diffstat (limited to 'src/step.rs')
-rw-r--r-- | src/step.rs | 29 |
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!") +} |