Compare commits

..

8 Commits

Author SHA1 Message Date
dante
c2897a1dce Update binding_tests.py 2025-02-11 08:20:57 -05:00
dante
a2881647f8 patch 2025-02-10 17:58:47 -05:00
dante
821418796f patch 2025-02-10 17:28:12 -05:00
dante
20cc54fd2a Update python.rs 2025-02-10 17:17:16 -05:00
dante
56785057e8 Update integration_tests.rs 2025-02-10 13:17:16 -05:00
dante
c4e7088f36 patch tests 2025-02-10 12:56:02 -05:00
dante
c05b21c253 Update accum_sumpool.rs 2025-02-10 12:33:22 -05:00
dante
7cd0467770 refactor: rm tolerance parameter 2025-02-10 12:33:05 -05:00

View File

@@ -19,11 +19,6 @@ pub fn integer_rep_to_felt<F: PrimeField>(x: IntegerRep) -> F {
/// Converts a PrimeField element to an f64.
pub fn felt_to_f64<F: PrimeField + PartialOrd + Field>(x: F) -> f64 {
if x > F::from_u128(IntegerRep::MAX as u128) {
if x == -F::from_u128(IntegerRep::MAX as u128) - F::ONE {
return IntegerRep::MIN as f64;
} else if x < -F::from_u128(IntegerRep::MAX as u128) - F::ONE {
panic!("Felt value out of range for conversion to integer rep");
}
let rep = (-x).to_repr();
let negtmp: &[u8] = rep.as_ref();
let lower_128: u128 = u128::from_le_bytes(negtmp[..16].try_into().unwrap());
@@ -36,13 +31,11 @@ pub fn felt_to_f64<F: PrimeField + PartialOrd + Field>(x: F) -> f64 {
}
}
/// Converts a PrimeField element to an integer rep.
/// Converts a PrimeField element to an i64.
pub fn felt_to_integer_rep<F: PrimeField + PartialOrd + Field>(x: F) -> IntegerRep {
if x > F::from_u128(IntegerRep::MAX as u128) {
if x == -F::from_u128(IntegerRep::MAX as u128) - F::ONE {
return IntegerRep::MIN;
} else if x < -F::from_u128(IntegerRep::MAX as u128) - F::ONE {
panic!("Felt value out of range for conversion to integer rep");
}
let rep = (-x).to_repr();
let negtmp: &[u8] = rep.as_ref();
@@ -77,13 +70,6 @@ mod test {
assert_eq!(res, F::from(131072));
}
#[test]
#[should_panic]
fn felttointegerrep_overflow() {
let fieldx: F = integer_rep_to_felt::<F>(IntegerRep::MIN) - F::ONE;
let _xf: IntegerRep = felt_to_integer_rep::<F>(fieldx);
}
#[test]
fn felttointegerrep() {
for x in -(2_i128.pow(16))..(2_i128.pow(16)) {