Skip to main content

tree_inference_pruning_scaled.tppl

function build_forest​

Build forest of trees from leaves, recursively

function build_forest(data: Int[][], forest: MsgTree[], index: Int, data_len: Int, seq_len: Int) => MsgTree[]

function cluster​

KEY FUNCTION: CLUSTER

function cluster(q: Matrix[Real], trees: MsgTree[], maxAge: Real, seq_len: Int) => MsgTree[]

function get_factor​

Get factor for each message

function get_factor(msg: Matrix[Real]) => Real

function get_leaf_message​

Get message from leaves for each site

function get_leaf_message(seq: Int) => Matrix[Real]

type MsgTree​

type MsgTree =
| Leaf {age: Real, index: Int, msg: Matrix[Real][]}
| Node {age: Real, msg: Matrix[Real][], left: MsgTree, right: MsgTree}

function myModel​

model function myModel(data: Int[][]) => MsgTree[]

function norm_mess​

Normalise message for each site

function norm_mess(msg: Matrix[Real], factor: Real) => Matrix[Real]

function pickpair​

Randomly sample two indices in the trees vector, to be combined. Avoiding mirror cases.

function pickpair(n: Int) => Int[]