ArithmeticLib.java 598 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package com.oblivm.backend.circuits.arithmetic;
  2. import com.oblivm.backend.flexsc.CompEnv;
  3. public interface ArithmeticLib<T> {
  4. CompEnv<T> getEnv();
  5. T[] inputOfAlice(double d);
  6. T[] inputOfBob(double d);
  7. double outputToAlice(T[] a);
  8. T[] add(T[] x, T[] y);
  9. T[] multiply(T[] x, T[] y);
  10. T[] div(T[] x, T[] y);
  11. T[] sub(T[] x, T[] y);
  12. T[] publicValue(double v);
  13. T leq(T[] a, T[] b);
  14. T eq(T[] a, T[] b);
  15. T[] sqrt(T[] a);
  16. T[] toSecureInt(T[] a, IntegerLib<T> lib);
  17. T[] toSecureFloat(T[] a, FloatLib<T> lib);
  18. T[] toSecureFixPoint(T[] a, FixedPointLib<T> lib);
  19. int numBits();
  20. }