FF10_2_2.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // by Boyang Wei
  2. // FindFirst1 Garbled Gate of Table 1
  3. package YaoGC;
  4. public class FF10_2_2 extends CompositeCircuit {
  5. private int id; // 1, 2, or 3
  6. public FF10_2_2(int id) {
  7. super(2, 2, 1, "FF10_2_2");
  8. this.id = id;
  9. }
  10. protected void createSubCircuits() throws Exception {
  11. if (id == 1) {
  12. subCircuits[0] = FF10_1_SC_2_2.newInstance();
  13. } else if (id == 2) {
  14. subCircuits[0] = FF10_2_SC_2_2.newInstance();
  15. } else {
  16. subCircuits[0] = FF10_3_SC_2_2.newInstance();
  17. }
  18. id = -1;
  19. super.createSubCircuits();
  20. }
  21. protected void connectWires() throws Exception {
  22. inputWires[0].connectTo(subCircuits[0].inputWires, 0);
  23. inputWires[1].connectTo(subCircuits[0].inputWires, 1);
  24. }
  25. protected void defineOutputWires() {
  26. outputWires[0] = subCircuits[0].outputWires[0];
  27. outputWires[1] = subCircuits[0].outputWires[1];
  28. }
  29. /*
  30. public FF10_2_2(int id) {
  31. super(2, 2, 2, "FF10_2_2");
  32. this.id = id;
  33. }
  34. protected void createSubCircuits() throws Exception {
  35. if (id == 1) {
  36. subCircuits[0] = T1_FF1_S_2_1.newInstance();
  37. subCircuits[1] = T1_FF1_O_2_1.newInstance();
  38. } else if (id == 2) {
  39. subCircuits[0] = T1_FF0_S_2_1.newInstance();
  40. subCircuits[1] = T1_FF0_O_2_1.newInstance();
  41. } else {
  42. subCircuits[0] = T2_FF10_S_2_1.newInstance();
  43. subCircuits[1] = T2_FF10_O_2_1.newInstance();
  44. }
  45. id = -1;
  46. super.createSubCircuits();
  47. }
  48. protected void connectWires() throws Exception {
  49. inputWires[0].connectTo(subCircuits[0].inputWires, 0);
  50. inputWires[0].connectTo(subCircuits[1].inputWires, 0);
  51. inputWires[1].connectTo(subCircuits[0].inputWires, 1);
  52. inputWires[1].connectTo(subCircuits[1].inputWires, 1);
  53. }
  54. protected void defineOutputWires() {
  55. outputWires[0] = subCircuits[0].outputWires[0];
  56. outputWires[1] = subCircuits[1].outputWires[0];
  57. }
  58. */
  59. protected void fixInternalWires() {
  60. }
  61. }