From 6e39b59e73930a4dc2ac6edbe889a7f52b0ca2b4 Mon Sep 17 00:00:00 2001 From: dzaima Date: Sun, 28 Jan 2024 02:38:16 +0200 Subject: [PATCH] use tuple destructuring in mask.singeli --- src/singeli/src/mask.singeli | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/singeli/src/mask.singeli b/src/singeli/src/mask.singeli index 7a862627..60232f3a 100644 --- a/src/singeli/src/mask.singeli +++ b/src/singeli/src/mask.singeli @@ -74,19 +74,18 @@ def hCast{T,p:P & same{T,eltype{P}}} = p def hCast{T,p:P & same{P,*void}} = *T~~p def mlExec{i, iter, vars0, bulk, M} = { - def vproc2{T,p:P} = tptr{{i} => loadBatch{p, i, T}, {i,x} => storeBatch{p, i, x, M}} - def vproc2{S=='b', p:P} = tptr{{i} => b_getBatch{bulk, hCast{u64,p}, i}, '!'} - def vproc2{S=='b',T,p:P} = tptr{{i} => loadBatchBit{T, hCast{u64,p}, i}, '!'} - def vproc2{S=='g', p:P} = tptr{{i} => ({x} => storeBatch{p, i, x, M}), '!'} - def vproc2{S=='g',T,p:P} = tptr{{i} => { + def vproc{p:P & isptr{P}} = p + def vproc{('m')} = tptr{{_}=>M, '!'} + + def vproc{{T,p:P}} = tptr{{i} => loadBatch{p, i, T}, {i,x} => storeBatch{p, i, x, M}} + def vproc{{('b'), p:P}} = tptr{{i} => b_getBatch{bulk, hCast{u64,p}, i}, '!'} + def vproc{{('b'),T,p:P}} = tptr{{i} => loadBatchBit{T, hCast{u64,p}, i}, '!'} + def vproc{{('g'), p:P}} = tptr{{i} => ({x} => storeBatch{p, i, x, M}), '!'} + def vproc{{('g'),T,p:P}} = tptr{{i} => { def dv{} = loadBatch{p, i, T} def dv{x} = storeBatch{p, i, x, M} }, '!'} - def vproc{p:P & isptr{P}} = p - def vproc{S=='m'} = tptr{{_}=>M, '!'} - def vproc{t & ktup{t}} = vproc2{...t} - iter{i, each{vproc, vars0}} }