Current implementation only allows to fold over the main streamline in a linear way, where there is a main running instance and new fresh incoming instances (which don't come from a folding process) are folded into the main running instance. The task of this issue is to allow to fold in a tree-shape style, where the instances being fold can come from previous folding steps.
This requires adapting the checks being done at the folding step in the diverse folding schemes implemented, part of this issue/task is thinking how to do it.
This will unlock parallel folding.
My 2 sonobe-uninformed cents: The most naive and simple way to achieve that is extending the FCircuit trait to accept a zis: Vec<Vec<F>> each corresponding to one incoming instance.
Current implementation only allows to fold over the main streamline in a linear way, where there is a main running instance and new fresh incoming instances (which don't come from a folding process) are folded into the main running instance. The task of this issue is to allow to fold in a tree-shape style, where the instances being fold can come from previous folding steps.
This requires adapting the checks being done at the folding step in the diverse folding schemes implemented, part of this issue/task is thinking how to do it. This will unlock parallel folding.