12 return w.app(w.annex<
Buf>(), {r, s, T});
17 auto& w =
mem->world();
18 return w.app(w.app(w.annex<
alloc>(), {r, s, T}),
mem);
23 auto& w =
mem->world();
24 return w.app(w.app(w.annex<
read>(), {r, s, T}), {mem, buf, idx});
30 auto& w =
mem->world();
31 return w.app(w.app(w.annex<
write>(), {r, s, T}), {mem, buf, idx, val});
36 auto& w =
mem->world();
37 return w.app(w.app(w.annex<
copy>(), {r, s, T}), {mem, dst, src});
42 auto& w =
mem->world();
43 return w.app(w.app(w.annex<
init>(), {r, s, T}), {mem, val});
48 auto& w =
mem->world();
49 return w.app(w.app(w.annex<
constant>(), {r, s, T}), {mem, val});
const Def * type_buf(const Def *r, const Def *s, const Def *T)
The buffer type buffer.Buf (r, s, T).
const Def * op_write(const Def *r, const Def *s, const Def *T, const Def *mem, const Def *buf, const Def *idx, const Def *val)
buffer.write (r, s, T) (mem, buf, idx, val) ↦ [mem.M 0, buffer.Buf (r, s, T)].
const Def * op_constant(const Def *r, const Def *s, const Def *T, const Def *mem, const Def *val)
buffer.constant (r, s, T) (mem, val) ↦ [mem.M 0, buffer.Buf (r, s, T)] (every element initialised to ...
const Def * op_read(const Def *r, const Def *s, const Def *T, const Def *mem, const Def *buf, const Def *idx)
buffer.read (r, s, T) (mem, buf, idx) ↦ [mem.M 0, T].
const Def * op_init(const Def *r, const Def *s, const Def *T, const Def *mem, const Def *val)
buffer.init (r, s, T) (mem, val) ↦ [mem.M 0, buffer.Buf (r, s, T)] (initialised with the array value ...
const Def * op_alloc(const Def *r, const Def *s, const Def *T, const Def *mem)
buffer.alloc (r, s, T) mem ↦ [mem.M 0, buffer.Buf (r, s, T)].
const Def * op_copy(const Def *r, const Def *s, const Def *T, const Def *mem, const Def *dst, const Def *src)
buffer.copy (r, s, T) (mem, dst, src) ↦ mem.M 0 (copies the whole buffer src into dst).