SPDZ库的安全类型sint、sfix等的比较运算函数:

小于:less_than = __lt__()

大于:greater_than = __gt__()

小于等于: less_equal = __le__()

大于等于: greater_equal = __ge__()

等于: equal = __eq__()

不等于: not_equal = __ne__()

写了一个小程序:

a = sfix(12)
b = sfix(13)
c = sfix.__eq__(a,b)
print_ln("a: %s",a.reveal())
print_ln("b: %s",b.reveal())
print_ln("c: %s",c.reveal())

主要想测试下__eq__()函数的用法。 该函数主要用来比较两个数是否相等。相等返回1,不相等返回0。

编译的时候没有问题:

但是程序执行时出现如下错误:

根据错误描述,程序编译时候没有指定环的比特数。于是需要在编译的时候指定环的比特数。

再次执行程序即可通过。

-------------------------分割线------------------------------------------------------------

a = sfix(12)
b = sfix(13)
print_ln("a: %s",a.reveal())
print_ln("b: %s",b.reveal())
print_ln("less_than: %s", sfix.__lt__(a,b).reveal())
print_ln("greater_than: %s", sfix.__gt__(a,b).reveal())
print_ln("less_equal: %s", sfix.__le__(a,b).reveal())
print_ln("greater_equal: %s", sfix.__ge__(a,b).reveal())
print_ln("equal: %s", sfix.__eq__(a,b).reveal())
print_ln("not_equal: %s", sfix.__ne__(a,b).reveal())  

 程序运行结果:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐