def first

stelliferous@0.0.2.0 · proofs/kernel_weights_witness.bend:77

import stelliferous@0.0.2.0/proofs/kernel_weights_witness.bend as KernelWeightsWitness
import Base
import stelliferous@0.0.2.0/kernel_weights.bend as Weights
import stelliferous@0.0.2.0/kernel_tile.bend as Tile
import stelliferous@0.0.2.0/storage_buffer.bend as Storage
import stelliferous@0.0.2.0/proofs/storage_witness.bend as Witness
import stelliferous@0.0.2.0/proofs/traversal_witness.bend as TraversalWitness

77def first(+rows: U32,+inner: U32,+row: U32,+index: U32,-input: Array<F32>,-result: Array<F32> & F32,
78  observed: TraversalWitness.Sample<Array<F32>,F32,input,result>,+evidence: Witness.ArrayWitness<F32,input>) ->
79  TraversalWitness.Sample<Array<F32>,Tile.Tile8,input,Weights.first(rows,inner,row,index,result)>:
80  TraversalWitness.Sample{a,equation} = observed
81  %Equal.sym(Array<F32> & F32,result,(input,a),equation) :
82    TraversalWitness.Sample<Array<F32>,Tile.Tile8,input,Weights.first(rows,inner,row,index,_)>
83  second(rows,inner,row,index,input,a,Storage.read_when(~F32,0.0,U32.is_lt((row + 1 : U32),rows),input,((row + 1) * inner + index : U32)),
84    conditional(input,U32.is_lt((row + 1 : U32),rows),((row + 1) * inner + index : U32),evidence),evidence)

Uses (16)

Used by (1)