Selaa lähdekoodia

replace {{prefix}} with {{P}}

narodnik 5 vuotta sitten
vanhempi
sitoutus
0bfe462401
1 muutettua tiedostoa jossa 48 lisäystä ja 48 poistoa
  1. 48 48
      proofs/jubjub.pism

+ 48 - 48
proofs/jubjub.pism

@@ -2,77 +2,77 @@ constant a 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000
 constant d 0x2a9318e74bfa2b48f5fd9207e6bd7fd4292d7f6d37579d2601065fd6d6343eb1
 constant one 0x0000000000000000000000000000000000000000000000000000000000000001
 
-{% macro jubjub_add(prefix, x1, y1, x2, y2) -%}
+{% macro jubjub_add(P, x1, y1, x2, y2) -%}
     # Compute U = (x1 + y1) * (y2 - EDWARDS_A*x2)
     #           = (x1 + y1) * (x2 + y2)
-    private {{prefix}}_U
-    set {{prefix}}_U {{ x1 }}
-    add {{prefix}}_U {{ y1 }}
-    local {{prefix}}_tmp
-    set {{prefix}}_tmp {{ x2 }}
-    add {{prefix}}_tmp {{ y2 }}
-    mul {{prefix}}_U {{prefix}}_tmp
+    private {{P}}_U
+    set {{P}}_U {{ x1 }}
+    add {{P}}_U {{ y1 }}
+    local {{P}}_tmp
+    set {{P}}_tmp {{ x2 }}
+    add {{P}}_tmp {{ y2 }}
+    mul {{P}}_U {{P}}_tmp
 
     # assert (x1 + y1) * (x2 + y2) == U
     lc0_add {{ x1 }}
     lc0_add {{ y1 }}
     lc1_add {{ x2 }}
     lc1_add {{ y2 }}
-    lc2_add {{prefix}}_U
+    lc2_add {{P}}_U
     enforce
 
     # Compute A = y2 * x1
-    private {{prefix}}_A
-    set {{prefix}}_A {{ y2 }}
-    mul {{prefix}}_A {{ x1 }}
+    private {{P}}_A
+    set {{P}}_A {{ y2 }}
+    mul {{P}}_A {{ x1 }}
     # Compute B = x2 * y1
-    private {{prefix}}_B
-    set {{prefix}}_B {{ x2 }}
-    mul {{prefix}}_B {{ y1 }}
+    private {{P}}_B
+    set {{P}}_B {{ x2 }}
+    mul {{P}}_B {{ y1 }}
     # Compute C = d*A*B
-    private {{prefix}}_C
-    load {{prefix}}_C d
-    mul {{prefix}}_C {{prefix}}_A
-    mul {{prefix}}_C {{prefix}}_B
+    private {{P}}_C
+    load {{P}}_C d
+    mul {{P}}_C {{P}}_A
+    mul {{P}}_C {{P}}_B
 
     # assert (d * A) * (B) == C
-    lc0_add_coeff d {{prefix}}_A
-    lc1_add {{prefix}}_B
-    lc2_add {{prefix}}_C
+    lc0_add_coeff d {{P}}_A
+    lc1_add {{P}}_B
+    lc2_add {{P}}_C
     enforce
 
-    # Compute u3 = (A + B) / (1 + C)
-    private {{prefix}}_u3
-    set {{prefix}}_u3 {{prefix}}_A
-    add {{prefix}}_u3 {{prefix}}_B
-    local {{prefix}}_u3_denom
-    load {{prefix}}_u3_denom one
-    add {{prefix}}_u3_denom {{prefix}}_C
-    divide {{prefix}}_u3 {{prefix}}_u3_denom
+    # Compute P.x = (A + B) / (1 + C)
+    private {{P}}_x
+    set {{P}}_x {{P}}_A
+    add {{P}}_x {{P}}_B
+    local {{P}}_x_denom
+    load {{P}}_x_denom one
+    add {{P}}_x_denom {{P}}_C
+    divide {{P}}_x {{P}}_x_denom
 
     lc0_add_one
-    lc0_add {{prefix}}_C
-    lc1_add {{prefix}}_u3
-    lc2_add {{prefix}}_A
-    lc2_add {{prefix}}_B
+    lc0_add {{P}}_C
+    lc1_add {{P}}_x
+    lc2_add {{P}}_A
+    lc2_add {{P}}_B
     enforce
 
-    # Compute v3 = (U - A - B) / (1 - C)
-    private {{prefix}}_v3
-    set {{prefix}}_v3 {{prefix}}_U
-    sub {{prefix}}_v3 {{prefix}}_A
-    sub {{prefix}}_v3 {{prefix}}_B
-    local {{prefix}}_v3_denom
-    load {{prefix}}_v3_denom one
-    sub {{prefix}}_v3_denom {{prefix}}_C
-    divide {{prefix}}_v3 {{prefix}}_v3_denom
+    # Compute P.y = (U - A - B) / (1 - C)
+    private {{P}}_y
+    set {{P}}_y {{P}}_U
+    sub {{P}}_y {{P}}_A
+    sub {{P}}_y {{P}}_B
+    local {{P}}_y_denom
+    load {{P}}_y_denom one
+    sub {{P}}_y_denom {{P}}_C
+    divide {{P}}_y {{P}}_y_denom
 
     lc0_add_one
-    lc0_sub {{prefix}}_C
-    lc1_add {{prefix}}_v3
-    lc2_add {{prefix}}_U
-    lc2_sub {{prefix}}_A
-    lc2_sub {{prefix}}_B
+    lc0_sub {{P}}_C
+    lc1_add {{P}}_y
+    lc2_add {{P}}_U
+    lc2_sub {{P}}_A
+    lc2_sub {{P}}_B
     enforce
 {%- endmacro %}