Commit graph

826 commits

Author SHA1 Message Date
Henry de Valence
285e57f2ff
Merge pull request #128 from hdevalence/feature/avx2-docs
Update docs for AVX2 backend
2018-04-08 17:16:05 -07:00
Henry de Valence
67ba201835 Update AVX2 documentation 2018-04-08 16:59:57 -07:00
Henry de Valence
6bb2c02a1f
Merge pull request #127 from hdevalence/feature/generalize-naf
Generalize NAF code to wider window sizes.
2018-04-08 16:39:45 -07:00
Henry de Valence
1464c4101d change LSB to least significant bit 2018-04-08 16:29:54 -07:00
Henry de Valence
9fc5602ce7 Split AVX2 docs into markdown file 2018-04-08 15:15:23 -07:00
Henry de Valence
85dd3329fb Merge branch 'master' into develop 2018-04-06 15:14:06 -07:00
Henry de Valence
5d1f0a4ca6 Merge branch 'release/0.16.2' 2018-04-06 15:13:53 -07:00
Henry de Valence
dc563c7415 Bump version to 0.16.2
Only change is better Ristretto docs
2018-04-06 15:11:08 -07:00
Henry de Valence
d2cdc878d6
Merge pull request #124 from hdevalence/feature/ristretto-docs
Update & expand Ristretto docs
2018-04-06 15:07:58 -07:00
Henry de Valence
68bbd1bd03 Document algorithm for NAFs 2018-04-06 12:11:59 -07:00
Henry de Valence
6b768c2a1a Change AVX2 backend to use width-8 tables 2018-04-05 16:20:47 -07:00
Henry de Valence
e30d764b7f Add eq testing stub 2018-04-05 14:52:01 -07:00
Henry de Valence
9aa208959d split into new Ristretto Group section 2018-04-05 14:52:01 -07:00
Henry de Valence
dbca373639 Promote headers 2018-04-05 14:52:01 -07:00
Henry de Valence
f446ea82e0 Explicit decoding formulas 2018-04-05 14:52:01 -07:00
Henry de Valence
35c18cfc51 Stub out remaining sections, add overview of batching 2018-04-05 14:52:01 -07:00
Henry de Valence
b713274890 Describe encoding better and more generally 2018-04-05 14:52:01 -07:00
Henry de Valence
5385399854 Use Q_4 instead of T_4
T_4 is nicer because it sounds like "torsion", but T is also used as a variable in ext. coordinates, so Q is better overall since it avoids conflicts later.
2018-04-05 14:52:01 -07:00
Henry de Valence
34a6de83e0 Split out torquing section to cover cof=4 case better 2018-04-05 14:52:01 -07:00
Henry de Valence
fbee5e252c Split explanation of encoding formulas 2018-04-05 14:52:01 -07:00
Henry de Valence
25024a63bc Add dual isogeny 2018-04-05 14:52:01 -07:00
Henry de Valence
3f68349480 Fix whitespace characters 2018-04-05 14:52:01 -07:00
Henry de Valence
862dd33695 Add link to curve models 2018-04-05 14:52:01 -07:00
Henry de Valence
83c3d97651 clarify wording 2018-04-05 14:52:01 -07:00
Henry de Valence
c2d409788a Add links, tweak intro 2018-04-05 14:52:01 -07:00
Henry de Valence
ff787c2f12 Clarify Ristretto / Decaf relation in user docs 2018-04-05 14:52:00 -07:00
Henry de Valence
c99bd62b25 Add example to RistrettoBasepointTable 2018-04-05 14:52:00 -07:00
Henry de Valence
46048e451b Clarify wording on canonical scalars 2018-04-05 14:52:00 -07:00
Henry de Valence
35e1b07e72 Clarify abstraction layers in Ristretto intro 2018-04-05 14:52:00 -07:00
Henry de Valence
c841998b07 Extract Ristretto notes into a markdown file 2018-04-05 14:52:00 -07:00
Henry de Valence
ef0dae241a Add an explanatory note that's built on stable
When building on stable, the README.md is not included in the documentation,
leaving a bare entry. This adds a warning stub, pointing people to use nightly
rust.
2018-04-05 14:52:00 -07:00
Henry de Valence
51f9823c91 Create a new docs/ subtree and move assets into it 2018-04-05 14:52:00 -07:00
Henry & Isis
62d43752df
Add NafLookupTable8 and use for pre-computed basepoint table generation. 2018-04-05 05:12:13 +00:00
Henry & Isis
753a0292de
Rename OddLookupTable to NafLookupTable5.
An OddLookupTable corresponds to a non-adjacent form of width 5.
2018-04-05 04:48:28 +00:00
Henry de Valence
7e0ddf6b98 Rewrite NAF code to work with more window sizes
Change Scalar::non_adjacent_form() to take a width parameter.

This rewrite also makes it faster, although it's probably a ways off
from optimal. I don't know how much it matters.

TODO: write up description of why this computes the same thing.

Thanks to @oleganza for pointing out an error reading bits across words
in an earlier version of this code.
2018-04-04 21:13:09 -07:00
Henry de Valence
ece4bd715a Merge branch 'master' into develop 2018-04-04 15:35:16 -07:00
Henry de Valence
bf41bde917 Merge branch 'release/0.16.1' 2018-04-04 15:34:40 -07:00
Henry de Valence
207fbb640e Bump version to 0.16.1 2018-04-04 15:30:12 -07:00
Henry de Valence
05c1d073d1
Merge pull request #123 from hdevalence/feature/drop-bench-travis
Drop benchmarks from Travis
2018-04-04 15:23:50 -07:00
Henry de Valence
46d8f9c45d
Merge pull request #122 from hdevalence/feature/drop-stdsimd
Move from external `stdsimd` crate to `core::{arch, simd}` intrinsics
2018-04-04 11:06:23 -07:00
Henry de Valence
5f136fbd0c Remove some warnings.
Not all of the warnings are removed, since although this code works, it still
needs a significant amount of cleanup, editing, and polish.
2018-04-04 10:25:42 -07:00
Henry de Valence
1048100cd0 Reduce benchmark runs 2018-04-04 10:16:32 -07:00
Henry de Valence
f830268128 Drop benchmarks from Travis 2018-04-04 10:00:18 -07:00
Henry de Valence
b0bda0278c Drop the stdsimd crate in favor of core::{simd, arch}.
This change required some work, because the to-be-stabilized SIMD functions
don't allow non-constant `imm8`s.  Previously, the `stdsimd` functions had a
constifying macro that ensured that the immediates were known.  The dalek code
used this to build helper functions which would be inlined into different
places where the immediates were known.  Unfortunately, since constexprs aren't
fully supported in Rust yet, this is done by a hidden compiler attribute, and
there's no way to propagate "constness".

To deal with this, some of the functions are specialized (e.g.,
`square_and_negate_D` instead of taking a mask), and others use an enum.
2018-04-03 17:58:23 -07:00
Henry de Valence
2465e0f962
Merge pull request #121 from isislovecruft/feature/montgomery-mul-variants
Define mul variants for MontgomeryPoints.
2018-04-03 10:06:48 -07:00
Isis Lovecruft
3281708965
Define mul variants for MontgomeryPoints.
This results in less changes to the x25519-dalek code to upgrade to
the latest version.
2018-04-02 21:09:41 +00:00
Isis Lovecruft
1a8cf7beed
Merge remote-tracking branch 'hdevalence/feature/refactor-scalar-mul_r1' into develop 2018-04-02 21:03:17 +00:00
Henry de Valence
4a648df713 Feature-gate multiscalar impls on alloc 2018-03-26 17:58:31 -07:00
Henry de Valence
7ef6a1e6fa Reorganize AVX2 point code 2018-03-26 17:41:05 -07:00
Henry de Valence
e8b053b281 Remove AVX2 addition formulas
Only the readdition formulas are actually used by scalar multiplication, so
there's no reason to implement vectorized addition.
2018-03-26 17:41:05 -07:00