packages feed

clash-systemverilog-0.7: primitives/CLaSH.Sized.RTree.json

[ { "BlackBox" :
    { "name"      : "CLaSH.Sized.RTree.treplicate"
    , "type"      : "replicate :: SNat d -> a -> RTree d a"
    , "templateE" : "'{(2**~LIT[0]) {~TOBV[~ARG[1]][~TYP[1]]}}"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.RTree.textract"
    , "type"      : "textract :: RTree 0 a -> a"
    , "templateD" :
"// textract begin
~SIGD[~GENSYM[tree][0]][0];
assign ~SYM[0] = ~ARG[0];

assign ~RESULT = ~FROMBV[~SYM[0][\\0\\]][~TYPO];
// textract end"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.RTree.tsplit"
    , "type"      : "tsplit:: RTree (d+1) a -> (RTree d a,RTree d a)"
    , "templateD" :
"// tsplit begin
~SIGD[~GENSYM[tree][0]][0];
assign ~SYM[0] = ~ARG[0];

assign ~RESULT = ~TOBV[~SYM[0]][~TYP[0]];
// tsplit end"
    }
  }
]