package com.oblivm.backend.circuits.arithmetic; import com.oblivm.backend.flexsc.CompEnv; public interface ArithmeticLib { CompEnv getEnv(); T[] inputOfAlice(double d); T[] inputOfBob(double d); double outputToAlice(T[] a); T[] add(T[] x, T[] y); T[] multiply(T[] x, T[] y); T[] div(T[] x, T[] y); T[] sub(T[] x, T[] y); T[] publicValue(double v); T leq(T[] a, T[] b); T eq(T[] a, T[] b); T[] sqrt(T[] a); T[] toSecureInt(T[] a, IntegerLib lib); T[] toSecureFloat(T[] a, FloatLib lib); T[] toSecureFixPoint(T[] a, FixedPointLib lib); int numBits(); }