Kaynağa Gözat

added zkscalar operations (neg scalar::one)

ada 5 yıl önce
ebeveyn
işleme
7df8a6a73a
2 değiştirilmiş dosya ile 6 ekleme ve 7 silme
  1. 5 6
      lisp/core.rs
  2. 1 1
      lisp/new-cs.lisp

+ 5 - 6
lisp/core.rs

@@ -320,17 +320,16 @@ fn scalar_zero(a: MalArgs) -> MalRet {
 }
 
 fn scalar_one(a: MalArgs) -> MalRet {
-    println!("{:?}", a);
-    Ok(Nil)
+    Ok(ZKScalar(bls12_381::Scalar::one()))
 }
 
 fn negate_from(a: MalArgs) -> MalRet {
-    println!("{:?}", a);
-    match a[0].clone() {
+    match a[0].apply(vec![])? {
         ZKScalar(a0) => {
             Ok(ZKScalar(a0.neg()))
         },
-        _ => error("expected (string)"),
+        Nil => error("nil not supported"),
+        _ => error("negate error, expected (zkscalar)"),
     }
 }
 fn scalar_from(a: MalArgs) -> MalRet {
@@ -481,7 +480,7 @@ pub fn ns() -> Vec<(&'static str, MalVal)> {
         ("alloc", func(alloc)),
         ("alloc-input", func(alloc_input)),
         ("scalar::one", func(scalar_one)),
-        ("negate", func(negate_from)),
+        ("neg", func(negate_from)),
         ("scalar::zero", func(scalar_zero)),
         // TODO add .neg maybe neg, add and sub
         ("scalar", func(scalar_from)),

+ 1 - 1
lisp/new-cs.lisp

@@ -19,7 +19,7 @@
    ;; Lc0: [(Scalar::one(), CS::one()), (Scalar::one().neg(), C)]
 ;; Lc1: [(Scalar::one(), y)]
 ;; Lc2: [(Scalar::one(), U), (Scalar::one().neg(), A), (Scalar::one().neg(), B)]
-    (enforce (scalar::one x) ((negate scalar::one) x2) ((negate scalar::one) x3))
+    (enforce (scalar::one x) ((neg scalar::one) x2) ((neg scalar::one) x3))
 )))
 (def! a (scalar "0000000000000000000000000000000000000000000000000000000000000003"))
 (setup (MyCircuit (a (* a a) (* (* a a) a))))