86 Commits

Author SHA1 Message Date
Benjamin Diamond
c4fbd3ac1a
update 2-adic generator to 0x64fdd1a46201e246 (#1579)
* update 2-adic generator to `0x64fdd1a46201e246`

this necesstitates that we also change the various lifts of the two-adic generator; i.e. the lifts to mult. generators of the _entire_ field, as well as the lifts to 2-adic generators of the various extension fields.

* cargo fmt

---------

Co-authored-by: Benjamin Diamond <bdiamond@ulvetanna.io>
2024-04-27 04:46:04 +09:00
Jim Posen
692a9e35d0 Add stdarch_x86_avx512 feature 2024-04-11 21:13:57 +03:00
Bob Niu
3e89c7c24c refactor code 2024-03-22 16:22:05 +08:00
Alonso González
4f8e631550
Prove Starks without constraints (#1552)
* Enable starks without constraints

* Clippy

* Add test stark without constraints

* Missing file

* Missing changes in the recursive side

* Fix bug with recursion

* Missing import

* Clippy

* Apply suggestions from code review

Co-authored-by: Robin Salen <30937548+Nashtare@users.noreply.github.com>

* Address reviews

* Fix TODO

* Apply suggestions from code review

Co-authored-by: Linda Guiga <101227802+LindaGuiga@users.noreply.github.com>

* More reviews

* Fix bug in eval_helper_columns

* Apply suggestions from code review

Co-authored-by: Robin Salen <30937548+Nashtare@users.noreply.github.com>

* Address reviews

* Allow <= blowup_factor + 1 constraints + reviews

* Add unconstrined Stark

* Missing file

* Remove asserts

---------

Co-authored-by: Robin Salen <30937548+Nashtare@users.noreply.github.com>
Co-authored-by: Linda Guiga <101227802+LindaGuiga@users.noreply.github.com>
2024-03-15 11:43:45 +00:00
Robin Salen
0817fd8e98
Pacify clippy (#1547) 2024-02-28 15:21:34 +09:00
Robin Salen
598ac876ae
Do some additional cleanup pre-release (#1532)
* Add Debug impl for types

* Remove outdated clippy lint exceptions

* Hide internal custom gate methods and make some const
2024-02-19 10:32:07 -05:00
Robin Salen
4a620f4d79
Fix latest clippy for redundant_imports (#1535)
* Fix clippy for maybe_rayon

* Remove reimports
2024-02-19 08:13:32 -05:00
David
b6fec06c38
Fix nightly build (ahash issue) (#1524)
* Revert "Fix workflow"

This reverts commit 246c2b6263f71313192801b1c27a3c08e241f545.

* Revert "Fix nightly version"

This reverts commit 8f919133379213698ba43fda5a39a153a17324b7.

* chore: remove stdsimd feature req (stabilized)
2024-02-12 09:42:07 -05:00
yanziseeker
c329b3681c
chore(evm,field,plonky2):fix typos (#1454) 2024-01-10 10:40:39 +00:00
Robin Salen
cb19f21994
Add crate-level documentation (#1444)
* Add crate-level documentation

* Revert change

* Skip

* Typo

* Apply comments

* Rephrase paragraph

* Apply comments
2024-01-08 14:08:53 +01:00
Ayush Shukla
fdd7ee46fe
fix: make from_noncanonical_biguint work for zero (#1427) 2023-12-15 15:49:34 +01:00
Robin Salen
2d36559dad
Make some functions const (#1407) 2023-12-05 13:41:31 -05:00
Paul Gebheim
40d3c6dd0d
Merge pull request #1294 from matthiasgoergens/matthias/make-clippy-happy
Make clippy happy
2023-11-15 19:54:55 -08:00
shuoer86
a0ea26f4b2
Fix typos in comments 2023-11-04 23:07:36 +08:00
Matthias Goergens
f92427021c Make clippy happy
Nightly has added more clippy rules.
2023-10-16 13:43:16 +08:00
Robin Salen
1997bf242b
Implement inverse from Fermat little theorem (#1176)
* Add inverse from Fermat little theorem

* Remove inlining for goldilocks try_inverse method
2023-08-19 00:50:08 +10:00
Jacqueline Nabaglo
b2626fdc71
Merge pull request #1162 from topos-protocol/cleanup_attributes
Remove unused attributes
2023-08-04 13:11:25 -07:00
Hamish Ivey-Law
c9bd32d5cf
Fix trait import. (#1163) 2023-08-02 23:24:03 +10:00
Robin Salen
9f8c152222
Remove unused attributes 2023-08-02 08:54:20 -04:00
Robin Salen
04657d246b
Fix import 2023-07-16 11:21:56 -04:00
Nicholas Ward
2d7a94de6a formatting 2023-07-11 12:05:22 -07:00
Matthias Goergens
4df4d86555 No default implementation 2023-07-04 17:21:27 +08:00
Matthias Goergens
6122dccb6e Move operations to Field
Implement the TODOs and move `from_noncanonical_u64` and `from_noncanonical_i64` from `Field64` to `Field`.
2023-06-28 18:44:47 +08:00
Hamish Ivey-Law
653a6b15de
Remove generic_const_exprs dependency from field crate. (#1020) 2023-05-04 07:28:50 +10:00
Robin Salen
f7f5fb4e93
Change display for GoldilocksField 2023-04-20 07:59:34 +02:00
Robin Salen
bb2233cb21
Override from_noncanonical_u96() for Goldilocks field 2023-03-16 10:27:26 -04:00
Hamish Ivey-Law
2501386004
Add missing feature to field crate. (#818) 2022-11-18 15:00:58 +11:00
Brandon H. Gomes
9f4dc3464e
fix: add architecture gating for inline-assembly
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 20:04:57 -07:00
Brandon H. Gomes
fc3f63398d
wip: start moving starky to no-std
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 12:17:03 -07:00
Brandon H. Gomes
e2cdd5a954
feat: upgrade Sampling APIs
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-03 08:26:03 -07:00
Brandon H. Gomes
7a81c5d46a
feat: move to alloc for Vec/String/Box
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-02 19:59:12 -07:00
Brandon H. Gomes
6fd0da216a
fix: remove unstable features from plonky2
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
2022-11-02 17:50:31 -07:00
wborgeaud
b97ec3bda1 New clippy lint 2022-10-25 10:50:40 +02:00
Daniel Lubarov
443a070003 Clippy fix 2022-10-08 14:09:18 -07:00
Hamish Ivey-Law
d7bb47318c
Modular operations for the EVM arithmetic unit (#755)
* First draft of 256-bit addition.

* Update comment.

* cargo fmt

* Rename addition evaluation file.

* Port ALU logic from SZ.

* Give a name to some magic numbers.

* `addition.rs` -> `add.rs`; fix carry propagation in add; impl sub.

* Clippy.

* Combine hi and lo parts of the output.

* Implement MUL.

* Suppress Clippy's attempt to make my code even harder to read.

* Next draft of MUL.

* Make all limbs (i.e. input and output) 16-bits.

* Tidying.

* Use iterators instead of building arrays.

* Documentation.

* Clippy is wrong; also cargo fmt.

* Un-refactor equality checking, since it was wrong for sub.

* Daniel comments.

* Daniel comments.

* Rename folder 'alu' -> 'arithmetic'.

* Rename file.

* Finish changing name ALU -> Arithmetic Unit.

* Finish removing dependency on array_zip feature.

* Remove operations that will be handled elsewhere.

* Rename var; tidy up.

* Clean up columns; mark places where range-checks need to be done.

* Import all names in 'columns' to reduce verbiage.

* cargo fmt

* Fix aux_in calculation in mul.

* Remove redundant 'allow's; more precise range-check size.

* Document functions.

* Document MUL instruction verification technique.

* Initial tests for ADD.

* Minor test fixes; add test for SUB.

* Fix bugs in generate functions.

* Fix SUB verification; refactor equality verification.

* cargo fmt

* Add test for MUL and fix some bugs.

* Update doc.

* Quiet incorrect clippy error.

* Initial implementation of ADDMOD and MOD.

* Fixes to addmod.

* Update doc.

* Do 1000 random tests instead of just 1.

* Documentation fix.

* Working version of ADDMOD.

* Working version of MOD.

* Name magic number; do multiple MUL tests.

* Add code and test for special case; add some docs.

* Fix spelling mistake.

* Simplify asserts.

* Tidy comment.

* Remove unused module.

* cargo fmt

* Check that output is reduced.

* Add conversion of canonical `i64` to a `Field64`.

* Handle zero modulus within degree constraint.

* cargo fmt

* Fix some comments.

* Check that the top half of the product is zero!

* Start of refactor.

* Refactoring.

* Remove zero and reduction handling from addmod.

* Refactoring; renaming; bug fixes.

* Reuse intermediate calculations across all modular operations; don't negate quot poly unnecessarily.

* Fix bug where last elt of q*m wasn't checked.

* Refactoring.

* Move circuit poly functions to utils.rs.

* Rename ADDMOD stuff to MODULAR.

* Rename module addmod -> modular.

* Handle zero modulus.

* Verify that output is reduced.

* Implement recursive version of modular circuits.

* clippy

* Tidy up i64 -> Field conversion following Jacqui's comments.

* cargo fmt

* Improved documentation.

* Address Jacqui's comments.

* Save some gates by using builder.arithmetic_extension().
2022-10-07 17:15:50 +11:00
Nicholas Ward
33d97eff1c moved sqrt to PrimeField 2022-09-26 11:31:11 -07:00
Nicholas Ward
a053372176 cleanup and documentation 2022-09-26 11:19:09 -07:00
Nicholas Ward
3bc1e65a7a fix 2022-09-26 11:11:41 -07:00
Nicholas Ward
4668e8c5f8 clippy 2022-09-26 10:45:20 -07:00
Nicholas Ward
59acd9436c fmt 2022-09-26 10:44:51 -07:00
Nicholas Ward
880bc87bb1 sqrt 2022-09-26 10:43:18 -07:00
wborgeaud
3007b5e779 Fix DTH_ROOT for degree 1 extension 2022-09-19 11:25:21 +02:00
wborgeaud
a930c1a823 s/l1/l0 2022-09-12 08:09:17 +02:00
Daniel Lubarov
2c77247d43 Keccak sponge STARK
It contains a row for each absorb step of the sponge.
2022-09-01 09:41:19 -07:00
Daniel Lubarov
e87392bdba comment 2022-08-22 11:32:36 -07:00
Daniel Lubarov
464b23297c Check each PolynomialValues len
I.e. that it is the length of some power-of-two subgroup.
2022-08-22 11:16:24 -07:00
Daniel Lubarov
3a6bbd825c
Merge pull request #677 from mir-protocol/u160_comments
Tweak comments
2022-08-19 18:28:49 -07:00
Daniel Lubarov
831a671872 Tweak comments 2022-08-19 10:35:02 -07:00
Daniel Lubarov
2fd5fbbe01 Change from_biguint's behavior with extension fields
These appear to be unused for extension fields, so we're free to change the mapping without breaking anything.

As the TODO says, the mapping that's currently implemented doesn't seem natural or useful. It seems more natural to treat the `BigUint` as a base field element, potentially in a non-canonical form.
2022-08-19 09:21:10 -07:00
Daniel Lubarov
bf4e7ff3b7 Feedback 2022-08-15 17:17:05 -07:00