Expected communication cost in compiler.

This commit is contained in:
Marcel Keller
2025-12-24 13:46:43 +11:00
parent f10864f85e
commit bf7f8f4b65
194 changed files with 2768 additions and 884 deletions

View File

@@ -0,0 +1,5 @@
a = sbits.get_type(int(program.args[1]))(0)
@for_range(int(program.args[2]))
def _(i):
a & a

View File

@@ -0,0 +1,11 @@
import math
n = int(program.args[1])
n_sqrt = int(math.sqrt(n))
sfix.Matrix(n_sqrt, 10) * sfix.Matrix(10, n_sqrt)
(sfix(0, size=n) < 0).store_in_mem(0)
sint.Array(n).secure_shuffle()
sint(personal(0, cint(0, size=n)))

View File

@@ -0,0 +1,15 @@
#sfix.set_precision(32, 63)
#program.use_trunc_pr = True
#program.use_split(3)
program.options_from_args()
sfix.set_precision_from_args(program)
try:
n_loops = int(program.args[2])
except:
n_loops = 1
a = sfix(cint(0, size=int(program.args[1])))
@for_range(n_loops)
def _(i):
(a < a)#.store_in_mem(0)

View File

@@ -0,0 +1,10 @@
program.options_from_args()
sfix.set_precision_from_args(program)
n = int(program.args[1])
m = int(program.args[2])
a = sfix(0, size=n)
@for_range(m)
def _(i):
(a / a).store_in_mem(0)

View File

@@ -0,0 +1,14 @@
program.options_from_args()
sfix.set_precision_from_args(program)
try:
n = int(program.args[1])
except:
n = 10 ** 6
m = int(program.args[2])
a = sfix(0, size=n)
@for_range(m)
def _(i):
(a * a).store_in_mem(0)

View File

@@ -0,0 +1,5 @@
x = personal(0, cint(0, size=int(program.args[1])))
@for_range(int(program.args[2]))
def _(i):
sint(x).store_in_mem(0)

View File

@@ -0,0 +1,15 @@
n = int(program.args[1])
try:
m = int(program.args[3])
except:
m = n
try:
k = int(program.args[4])
except:
k = n
A = sint.Matrix(n, m)
B = sint.Matrix(m, k)
@for_range(int(program.args[2]))
def _(i):
A * B

View File

@@ -0,0 +1,6 @@
x = sint(0, size=int(program.args[1]))
m = int(program.args[2])
@for_range(m)
def _(i):
(x * x)#.store_in_mem(0)

View File

@@ -0,0 +1,5 @@
x = sint(0, size=int(program.args[1]))
@for_range(int(program.args[2]))
def _(i):
x.reveal().store_in_mem(0)

View File

@@ -0,0 +1,3 @@
@for_range(int(program.args[1]))
def _(i):
sint.get_random().store_in_mem(0)

View File

@@ -0,0 +1,14 @@
n_apply = 1
if len(program.args) > 3:
n_apply = int(program.args[3])
@for_range(int(program.args[2]))
def _(i):
print_ln('%s', i)
handle = sint.get_secure_shuffle(int(program.args[1]))
@for_range(n_apply)
def _(i):
sint.Array(int(program.args[1])).secure_permute(handle)
print_ln('bye')

View File

@@ -21,9 +21,14 @@ test(sbit(1) * sbits(3), 3)
test(sbit(1) * 3, 3)
test(~sbits.new(1, n=64), 2**64 - 2)
test(sbits(5) & sbits(3), 5 & 3)
test(sbits(5) | sbits(3), 5 | 3)
test(sbits(3).equal(sbits(3)), 1)
test(sbits(3).equal(sbits(2)), 0)
test(sbits(3) == sbits(3), 1)
test(sbits(3) == sbits(2), 0)
test(sbits(3) != sbits(3), 0)
test(sbits(3) != sbits(2), 1)
test(sbit(1).if_else(sbits(3), sbits(5)), 3)
test(sbits(7) << 1, 14)
test(cbits(5) >> 1, 2)

View File

@@ -0,0 +1,16 @@
program.options_from_args()
sfix.set_precision_from_args(program)
try:
n = int(program.args[1])
except:
n = 10 ** 6
m = int(program.args[2])
x = sint(0, size=n)
@for_range(m)
def _(i):
x.round(sfix.k + sfix.f, sfix.f, nearest=sfix.round_nearest,
signed=True)