Skip to content

Commit

Permalink
Merge pull request #12 from cpunkzzz/native-mul-goldilocks
Browse files Browse the repository at this point in the history
Native mul goldilocks
  • Loading branch information
starkoracles authored Oct 11, 2022
2 parents 64883c2 + 3c9a217 commit 187dc4a
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 24 deletions.
17 changes: 11 additions & 6 deletions recursive/methods/guest/src/bin/exp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,21 @@
#![no_std]
extern crate alloc;

use miden_air::FieldElement;
use risc0_zkvm_guest::env;
use risc0_zkvm_guest::{env, mul};
use winter_math::fields::f64::BaseElement;

risc0_zkvm_guest::entry!(main);

pub fn main() {
let base: u64 = env::read();
let exp: u64 = env::read();
let b = BaseElement::new(base);
let res = b.exp(exp);
let a: u64 = env::read();
let b: u64 = env::read();
let a_felt = BaseElement::new(a.clone());
let b_felt = BaseElement::new(b.clone());
for _i in 0..10 {
let _res = mul::mul_goldilocks(&a, &b);
let _res_felt = a_felt * b_felt;
}
let res = mul::mul_goldilocks(&a, &b).get_u64();
let _res_felt = a_felt * b_felt;
env::commit(&res);
}
32 changes: 16 additions & 16 deletions recursive/starter/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ pub mod fibonacci;

fn main() -> Result<()> {
// fib_winter::fib_winter()?;
recursive_miden()?;
// recursive_miden()?;
// sha3();
// exp();
exp();
Ok(())
}

Expand Down Expand Up @@ -137,20 +137,20 @@ fn get_verifier_channel(
// assert_eq!(&s, &hashed);
//}
//
//#[allow(dead_code)]
//fn exp() {
// let mut prover = Prover::new(&std::fs::read(EXP_PATH).unwrap(), EXP_ID).unwrap();
// let base = 16u64;
// let exp = 10u64;
// prover.add_input(to_vec(&base).unwrap().as_slice()).unwrap();
// prover.add_input(to_vec(&exp).unwrap().as_slice()).unwrap();
// let receipt = prover.run().unwrap();
// let result: BaseElement = from_slice(&receipt.get_journal_vec().unwrap()).unwrap();
// println!("{}^{} = {}", &base, &exp, &result);
// receipt.verify(EXP_ID).unwrap();
// let b = BaseElement::new(base);
// assert_eq!(result, b.exp(exp));
//}
#[allow(dead_code)]
fn exp() {
let mut prover = Prover::new(&std::fs::read(EXP_PATH).unwrap(), EXP_ID).unwrap();
let a = 0xFFFFFFFF00000000u64;
let b = 2u64;
prover.add_input(to_vec(&a).unwrap().as_slice()).unwrap();
prover.add_input(to_vec(&b).unwrap().as_slice()).unwrap();
let receipt = prover.run().unwrap();
let result: u64 = from_slice(&receipt.get_journal_vec().unwrap()).unwrap();
println!("{}*{} = {}", &a, &b, &result);
receipt.verify(EXP_ID).unwrap();
let res_felt = BaseElement::new(result);
assert_eq!(res_felt, BaseElement::new(a) * BaseElement::new(b));
}

pub fn get_proof_options() -> ProofOptions {
ProofOptions::with_sha2()
Expand Down
2 changes: 1 addition & 1 deletion risc0
Submodule risc0 updated from 3a6ac0 to a9945a
2 changes: 1 addition & 1 deletion winterfell

0 comments on commit 187dc4a

Please sign in to comment.