This is an automated email from the ASF dual-hosted git repository.

kmccusker pushed a commit to branch develop
in repository 
https://gitbox.apache.org/repos/asf/incubator-milagro-crypto-rust.git


The following commit(s) were added to refs/heads/develop by this push:
     new 0044179  Remove lazy static and other dependencies
     new 565d69f  Merge pull request #41 from sigp/remove-deps
0044179 is described below

commit 00441797babd2fdfba906eeb2e51437ab6ba5763
Author: Kirk Baird <[email protected]>
AuthorDate: Mon Jul 27 21:28:04 2020 +1000

    Remove lazy static and other dependencies
    
    Signed-off-by: Kirk Baird <[email protected]>
---
 Cargo.lock                      | 332 ++++++++++----------
 Cargo.toml                      |   8 +-
 src/bls381/iso.rs               | 359 +++++++--------------
 src/bls381/iso_constants_x32.rs | 354 +++++++++++++++++++++
 src/bls381/iso_constants_x64.rs | 678 ++++++++++++++++++++++++++++++++++++++++
 src/bls381/mod.rs               |  14 +
 src/fp.rs                       |   6 +
 src/lib.rs                      |   3 -
 8 files changed, 1344 insertions(+), 410 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index a8061a4..1ef8182 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,13 +4,12 @@
 name = "amcl"
 version = "0.3.0"
 dependencies = [
- "criterion 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "criterion 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.106 
(registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.114 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -18,9 +17,9 @@ name = "atty"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "hermit-abi 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -35,18 +34,18 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "bstr"
-version = "0.2.12"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "regex-automata 0.1.9 
(registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.2.1"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
@@ -69,45 +68,46 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "clap"
-version = "2.33.0"
+version = "2.33.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "criterion"
-version = "0.3.1"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
  "cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "criterion-plot 0.4.1 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "criterion-plot 0.4.3 
(registry+https://github.com/rust-lang/crates.io-index)",
  "csv 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "oorandom 11.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "plotters 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.106 
(registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)",
- "tinytemplate 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "oorandom 11.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "plotters 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rayon 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_cbor 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.114 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tinytemplate 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "criterion-plot"
-version = "0.4.1"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -130,17 +130,18 @@ dependencies = [
  "crossbeam-utils 0.7.2 
(registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "memoffset 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
  "crossbeam-utils 0.7.2 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -158,11 +159,11 @@ name = "csv"
 version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "bstr 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bstr 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
  "csv-core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -184,16 +185,21 @@ version = "0.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
  "wasi 0.9.0+wasi-snapshot-preview1 
(registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
+name = "half"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+
+[[package]]
 name = "hermit-abi"
-version = "0.1.10"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -203,7 +209,7 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "itertools"
-version = "0.8.2"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -211,15 +217,15 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "js-sys"
-version = "0.3.37"
+version = "0.3.42"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -229,12 +235,12 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "libc"
-version = "0.2.68"
+version = "0.2.73"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "log"
-version = "0.4.8"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -252,7 +258,7 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "memoffset"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -260,7 +266,7 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -268,48 +274,48 @@ dependencies = [
 
 [[package]]
 name = "num_cpus"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "hermit-abi 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "oorandom"
-version = "11.1.0"
+version = "11.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "plotters"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
- "web-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)",
+ "js-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+ "web-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "ppv-lite86"
-version = "0.2.6"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.10"
+version = "1.0.19"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.3"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -318,7 +324,7 @@ version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -329,7 +335,7 @@ name = "rand_chacha"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -351,32 +357,33 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
+ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "crossbeam-deque 0.7.3 
(registry+https://github.com/rust-lang/crates.io-index)",
  "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rayon-core 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "rayon-core"
-version = "1.7.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "crossbeam-deque 0.7.3 
(registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-queue 0.2.1 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-queue 0.2.3 
(registry+https://github.com/rust-lang/crates.io-index)",
  "crossbeam-utils 0.7.2 
(registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "regex"
-version = "1.3.6"
+version = "1.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -389,7 +396,7 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.17"
+version = "0.6.18"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
@@ -402,7 +409,7 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.3"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
@@ -410,7 +417,7 @@ name = "same-file"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -433,37 +440,46 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "serde"
-version = "1.0.106"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
+name = "serde_cbor"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "half 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
 name = "serde_derive"
-version = "1.0.106"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.51"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "syn"
-version = "1.0.17"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -471,26 +487,26 @@ name = "textwrap"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tinytemplate"
-version = "1.0.3"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "unicode-width"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
@@ -499,8 +515,8 @@ version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -510,65 +526,65 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.60"
+version = "0.2.65"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen-macro 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen-macro 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.60"
+version = "0.2.65"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "bumpalo 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bumpalo 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen-shared 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen-shared 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.60"
+version = "0.2.65"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen-macro-support 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen-macro-support 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.60"
+version = "0.2.65"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen-backend 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen-shared 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen-backend 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen-shared 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.60"
+version = "0.2.65"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "web-sys"
-version = "0.3.37"
+version = "0.3.42"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "js-sys 0.3.37 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
+ "js-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "winapi"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "winapi-i686-pc-windows-gnu 0.4.0 
(registry+https://github.com/rust-lang/crates.io-index)",
@@ -582,10 +598,10 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 
 [[package]]
 name = "winapi-util"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -597,72 +613,74 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" 
= "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 "checksum autocfg 1.0.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
 "checksum bitflags 1.2.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-"checksum bstr 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" 
= "2889e6d50f394968c8bf4240dc3f2a7eb4680844d27308f798229ac9d4725f41"
-"checksum bumpalo 3.2.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187"
+"checksum bstr 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" 
= "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931"
+"checksum bumpalo 3.4.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
 "checksum byteorder 1.3.4 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
 "checksum cast 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" 
= "4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0"
 "checksum cfg-if 0.1.10 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" 
= "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-"checksum criterion 0.3.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"1fc755679c12bda8e5523a71e4d654b6bf2e14bd838dfc48cde6559a05caf7d1"
-"checksum criterion-plot 0.4.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"a01e15e0ea58e8234f96146b1f91fa9d0e4dd7a38da93ff7a75d42c0b9d3a545"
+"checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" 
= "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
+"checksum criterion 0.3.3 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"70daa7ceec6cf143990669a04c7df13391d55fb27bd4079d252fca774ba244d8"
+"checksum criterion-plot 0.4.3 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d"
 "checksum crossbeam-deque 0.7.3 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
 "checksum crossbeam-epoch 0.8.2 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
-"checksum crossbeam-queue 0.2.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
+"checksum crossbeam-queue 0.2.3 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
 "checksum crossbeam-utils 0.7.2 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
 "checksum csv 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"00affe7f6ab566df61b4be3ce8cf16bc2576bca0963ceb0955e45d514bf9a279"
 "checksum csv-core 0.1.10 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
 "checksum either 1.5.3 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
 "checksum getrandom 0.1.14 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-"checksum hermit-abi 0.1.10 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"725cf19794cf90aa94e65050cb4191ff5d8fa87a498383774c47b332e3af952e"
+"checksum half 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" 
= "d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177"
+"checksum hermit-abi 0.1.15 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
 "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
-"checksum itertools 0.8.2 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
-"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" 
= "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
-"checksum js-sys 0.3.37 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"6a27d435371a2fa5b6d2b028a74bbdb1234f308da363226a2854ca3ff8ba7055"
+"checksum itertools 0.9.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+"checksum itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" 
= "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+"checksum js-sys 0.3.42 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"52732a3d3ad72c58ad2dc70624f9c17b46ecd0943b9a4f1ee37c4c18c5d983e2"
 "checksum lazy_static 1.4.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" 
= "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
-"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = 
"14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
+"checksum libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)" 
= "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
+"checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" 
= "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
 "checksum maybe-uninit 2.0.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
 "checksum memchr 2.3.3 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-"checksum memoffset 0.5.4 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
-"checksum num-traits 0.2.11 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
-"checksum num_cpus 1.12.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
-"checksum oorandom 11.1.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"ebcec7c9c2a95cacc7cd0ecb89d8a8454eca13906f6deb55258ffff0adeb9405"
-"checksum plotters 0.2.12 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"4e3bb8da247d27ae212529352020f3e5ee16e83c0c258061d27b08ab92675eeb"
-"checksum ppv-lite86 0.2.6 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-"checksum proc-macro2 1.0.10 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
-"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" 
= "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
+"checksum memoffset 0.5.5 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+"checksum num-traits 0.2.12 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+"checksum num_cpus 1.13.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+"checksum oorandom 11.1.2 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"a170cebd8021a008ea92e4db85a72f80b35df514ec664b296fdcbb654eac0b2c"
+"checksum plotters 0.2.15 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"0d1685fbe7beba33de0330629da9d955ac75bd54f33d7b79f9a895590124f6bb"
+"checksum ppv-lite86 0.2.8 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+"checksum proc-macro2 1.0.19 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" 
= "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
 "checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" 
= "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 "checksum rand_chacha 0.2.2 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
 "checksum rand_core 0.5.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
 "checksum rand_hc 0.2.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-"checksum rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" 
= "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098"
-"checksum rayon-core 1.7.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9"
-"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" 
= "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3"
+"checksum rayon 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" 
= "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
+"checksum rayon-core 1.7.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
+"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" 
= "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
 "checksum regex-automata 0.1.9 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
-"checksum regex-syntax 0.6.17 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
+"checksum regex-syntax 0.6.18 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
 "checksum rustc_version 0.2.3 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-"checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76"
+"checksum ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
 "checksum same-file 1.0.6 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
 "checksum scopeguard 1.1.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 "checksum semver 0.9.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 "checksum semver-parser 0.7.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-"checksum serde 1.0.106 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
-"checksum serde_derive 1.0.106 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
-"checksum serde_json 1.0.51 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"da07b57ee2623368351e9a0488bb0b261322a15a6e0ae53e243cbdc0f4208da9"
-"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" 
= "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
+"checksum serde 1.0.114 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+"checksum serde_cbor 0.11.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622"
+"checksum serde_derive 1.0.114 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+"checksum serde_json 1.0.57 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
+"checksum syn 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)" 
= "4cdb98bcb1f9d81d07b536179c269ea15999b5d14ea958196413869445bb5250"
 "checksum textwrap 0.11.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-"checksum tinytemplate 1.0.3 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"57a3c6667d3e65eb1bc3aed6fd14011c6cbc3a0665218ab7f5daf040b9ec371a"
-"checksum unicode-width 0.1.7 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-"checksum unicode-xid 0.2.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+"checksum tinytemplate 1.1.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"6d3dc76004a03cec1c5932bca4cdc2e39aaa798e3f82363dd94f9adf6098c12f"
+"checksum unicode-width 0.1.8 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+"checksum unicode-xid 0.2.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
 "checksum walkdir 2.3.1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
 "checksum wasi 0.9.0+wasi-snapshot-preview1 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-"checksum wasm-bindgen 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"2cc57ce05287f8376e998cbddfb4c8cb43b84a7ec55cf4551d7c00eef317a47f"
-"checksum wasm-bindgen-backend 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"d967d37bf6c16cca2973ca3af071d0a2523392e4a594548155d89a678f4237cd"
-"checksum wasm-bindgen-macro 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"8bd151b63e1ea881bb742cd20e1d6127cef28399558f3b5d415289bc41eee3a4"
-"checksum wasm-bindgen-macro-support 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"d68a5b36eef1be7868f668632863292e37739656a80fc4b9acec7b0bd35a4931"
-"checksum wasm-bindgen-shared 0.2.60 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"daf76fe7d25ac79748a37538b7daeed1c7a6867c92d3245c12c6222e4a20d639"
-"checksum web-sys 0.3.37 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"2d6f51648d8c56c366144378a33290049eafdd784071077f6fe37dae64c1c4cb"
-"checksum winapi 0.3.8 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+"checksum wasm-bindgen 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"f3edbcc9536ab7eababcc6d2374a0b7bfe13a2b6d562c5e07f370456b1a8f33d"
+"checksum wasm-bindgen-backend 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"89ed2fb8c84bfad20ea66b26a3743f3e7ba8735a69fe7d95118c33ec8fc1244d"
+"checksum wasm-bindgen-macro 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"eb071268b031a64d92fc6cf691715ca5a40950694d8f683c5bb43db7c730929e"
+"checksum wasm-bindgen-macro-support 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"cf592c807080719d1ff2f245a687cbadb3ed28b2077ed7084b47aba8b691f2c6"
+"checksum wasm-bindgen-shared 0.2.65 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"72b6c0220ded549d63860c78c38f3bcc558d1ca3f4efa74942c536ddbbb55e87"
+"checksum web-sys 0.3.42 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"8be2398f326b7ba09815d0b403095f34dd708579220d099caae89be0b32137b2"
+"checksum winapi 0.3.9 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 "checksum winapi-i686-pc-windows-gnu 0.4.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-"checksum winapi-util 0.1.4 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e"
+"checksum winapi-util 0.1.5 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 "checksum winapi-x86_64-pc-windows-gnu 0.4.0 
(registry+https://github.com/rust-lang/crates.io-index)" = 
"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/Cargo.toml b/Cargo.toml
index 0ba9f81..9d57834 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -7,12 +7,8 @@ license = "Apache-2.0"
 repository = "https://github.com/apache/incubator-milagro-crypto-rust";
 edition = "2018"
 
-[dependencies]
-hex = "0.3"
-lazy_static = "1.2.0"
-criterion = { version = "0.3.0", optional = true }
-
 [dev-dependencies]
+hex = "0.3"
 serde = "1.0"
 serde_json = "1.0"
 serde_derive = "1.0"
@@ -88,4 +84,4 @@ rsa2048 = []
 rsa3072 = []
 rsa4096 = []
 secp256k1 = []
-bench = ["all", "criterion"]
+bench = ["all"]
diff --git a/src/bls381/iso.rs b/src/bls381/iso.rs
index bbf4f82..c543f5b 100644
--- a/src/bls381/iso.rs
+++ b/src/bls381/iso.rs
@@ -17,251 +17,87 @@ specific language governing permissions and limitations
 under the License.
 */
 
-use super::super::big::Big;
 use super::super::ecp::ECP;
 use super::super::ecp2::ECP2;
 use super::super::fp::FP;
 use super::super::fp2::FP2;
 
-/**************************************************
-* 3-Isogeny Constants
-**************************************************/
-lazy_static! {
-    // ISO-3 Mapping values
-    pub static ref ISO3_XNUM: [FP2; 4] = [
-        FP2::new_bigs(
-            
Big::frombytes(&hex::decode("05c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6").unwrap()),
-            
Big::frombytes(&hex::decode("05c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6").unwrap())
-        ),
-        FP2::new_bigs(
-            Big::new(),
-            
Big::frombytes(&hex::decode("11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a").unwrap())
-        ),
-        FP2::new_bigs(
-            
Big::frombytes(&hex::decode("11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e").unwrap()),
-            
Big::frombytes(&hex::decode("08ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d").unwrap())
-        ),
-        FP2::new_bigs(
-            
Big::frombytes(&hex::decode("171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1").unwrap()),
-            Big::new()
-        )
-    ];
-    pub static ref ISO3_XDEN: [FP2; 4] = [
-        FP2::new_bigs(
-            Big::new(),
-            
Big::frombytes(&hex::decode("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63").unwrap())
-        ),
-        FP2::new_bigs(
-            Big::new_int(12),
-            
Big::frombytes(&hex::decode("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f").unwrap())
-        ),
-        FP2::new_int(1),
-        FP2::new(),
-    ];
-    pub static ref ISO3_YNUM: [FP2; 4] = [
-        FP2::new_bigs(
-            
Big::frombytes(&hex::decode("1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706").unwrap()),
-            
Big::frombytes(&hex::decode("1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706").unwrap())
-        ),
-        FP2::new_bigs(
-            Big::new(),
-            
Big::frombytes(&hex::decode("05c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be").unwrap())
-        ),
-        FP2::new_bigs(
-            
Big::frombytes(&hex::decode("11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c").unwrap()),
-            
Big::frombytes(&hex::decode("08ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f").unwrap())
-        ),
-        FP2::new_bigs(
-            
Big::frombytes(&hex::decode("124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10").unwrap()),
-            Big::new()
-        )
-    ];
-    pub static ref ISO3_YDEN: [FP2; 4] = [
-        FP2::new_bigs(
-            
Big::frombytes(&hex::decode("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb").unwrap()),
-            
Big::frombytes(&hex::decode("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb").unwrap())
-        ),
-        FP2::new_bigs(
-            Big::new(),
-            
Big::frombytes(&hex::decode("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3").unwrap())
-        ),
-        FP2::new_bigs(
-            Big::new_int(18),
-            
Big::frombytes(&hex::decode("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99").unwrap())
-        ),
-        FP2::new_ints(1, 0)
-    ];
-
-    // ISO-11 Mapping values
-    pub static ref ISO11_XNUM: [FP; 12] = [
-        FP::new_big(
-            
Big::frombytes(&hex::decode("11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0d54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0e99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0d6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("080d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("06e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229").unwrap()),
-        ),
-    ];
-    pub static ref ISO11_XDEN: [FP; 11] = [
-        FP::new_big(
-            
Big::frombytes(&hex::decode("08ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0b2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("03425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0e7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0a10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641").unwrap())
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("095fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a").unwrap())
-        ),
-        FP::new_int(1),
-    ];
-    pub static ref ISO11_YNUM: [FP; 16] = [
-        FP::new_big(
-            
Big::frombytes(&hex::decode("090d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("00cc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("01f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("08cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("04ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("09fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0e1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0b182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("05c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604").unwrap()),
-        ),
-    ];
-    pub static ref ISO11_YDEN: [FP; 16] = [
-        FP::new_big(
-            
Big::frombytes(&hex::decode("16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("058df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0be0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("08d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("04d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0accbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0ad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("02660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7").unwrap()),
-        ),
-        FP::new_big(
-            
Big::frombytes(&hex::decode("0e0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f").unwrap()),
-        ),
-        FP::new_int(1),
-    ];
+use super::{
+    ISO11_XDEN, ISO11_XNUM, ISO11_YDEN, ISO11_YNUM, ISO3_XDEN, ISO3_XNUM, 
ISO3_YDEN, ISO3_YNUM,
+};
+
+// Returns ISO-11 Constants (X-Numerator, X-Denominator, Y-Numerator, 
Y-Denominator)
+#[inline(always)]
+fn iso11_from_constants() -> ([FP; 12], [FP; 11], [FP; 16], [FP; 16]) {
+    (
+        [
+            // X-Numerator
+            FP::new_ints(&ISO11_XNUM[0]),
+            FP::new_ints(&ISO11_XNUM[1]),
+            FP::new_ints(&ISO11_XNUM[2]),
+            FP::new_ints(&ISO11_XNUM[3]),
+            FP::new_ints(&ISO11_XNUM[4]),
+            FP::new_ints(&ISO11_XNUM[5]),
+            FP::new_ints(&ISO11_XNUM[6]),
+            FP::new_ints(&ISO11_XNUM[7]),
+            FP::new_ints(&ISO11_XNUM[8]),
+            FP::new_ints(&ISO11_XNUM[9]),
+            FP::new_ints(&ISO11_XNUM[10]),
+            FP::new_ints(&ISO11_XNUM[11]),
+        ],
+        [
+            // X-Denominator
+            FP::new_ints(&ISO11_XDEN[0]),
+            FP::new_ints(&ISO11_XDEN[1]),
+            FP::new_ints(&ISO11_XDEN[2]),
+            FP::new_ints(&ISO11_XDEN[3]),
+            FP::new_ints(&ISO11_XDEN[4]),
+            FP::new_ints(&ISO11_XDEN[5]),
+            FP::new_ints(&ISO11_XDEN[6]),
+            FP::new_ints(&ISO11_XDEN[7]),
+            FP::new_ints(&ISO11_XDEN[8]),
+            FP::new_ints(&ISO11_XDEN[9]),
+            FP::new_ints(&ISO11_XDEN[10]),
+        ],
+        [
+            // Y-Numerator
+            FP::new_ints(&ISO11_YNUM[0]),
+            FP::new_ints(&ISO11_YNUM[1]),
+            FP::new_ints(&ISO11_YNUM[2]),
+            FP::new_ints(&ISO11_YNUM[3]),
+            FP::new_ints(&ISO11_YNUM[4]),
+            FP::new_ints(&ISO11_YNUM[5]),
+            FP::new_ints(&ISO11_YNUM[6]),
+            FP::new_ints(&ISO11_YNUM[7]),
+            FP::new_ints(&ISO11_YNUM[8]),
+            FP::new_ints(&ISO11_YNUM[9]),
+            FP::new_ints(&ISO11_YNUM[10]),
+            FP::new_ints(&ISO11_YNUM[11]),
+            FP::new_ints(&ISO11_YNUM[12]),
+            FP::new_ints(&ISO11_YNUM[13]),
+            FP::new_ints(&ISO11_YNUM[14]),
+            FP::new_ints(&ISO11_YNUM[15]),
+        ],
+        [
+            // Y-Denominator
+            FP::new_ints(&ISO11_YDEN[0]),
+            FP::new_ints(&ISO11_YDEN[1]),
+            FP::new_ints(&ISO11_YDEN[2]),
+            FP::new_ints(&ISO11_YDEN[3]),
+            FP::new_ints(&ISO11_YDEN[4]),
+            FP::new_ints(&ISO11_YDEN[5]),
+            FP::new_ints(&ISO11_YDEN[6]),
+            FP::new_ints(&ISO11_YDEN[7]),
+            FP::new_ints(&ISO11_YDEN[8]),
+            FP::new_ints(&ISO11_YDEN[9]),
+            FP::new_ints(&ISO11_YDEN[10]),
+            FP::new_ints(&ISO11_YDEN[11]),
+            FP::new_ints(&ISO11_YDEN[12]),
+            FP::new_ints(&ISO11_YDEN[13]),
+            FP::new_ints(&ISO11_YDEN[14]),
+            FP::new_ints(&ISO11_YDEN[15]),
+        ],
+    )
 }
 
 /// Mapping from 11-Isogeny Curve to BLS12-381 ECP
@@ -269,8 +105,8 @@ lazy_static! {
 /// Adjusted from https://eprint.iacr.org/2019/403
 /// to convert projectives to (XZ, YZ, Z)
 pub fn iso11_to_ecp(iso_x: &FP, iso_y: &FP) -> ECP {
-    let polynomials_coefficients: [&[FP]; 4] =
-        [&*ISO11_XNUM, &*ISO11_XDEN, &*ISO11_YNUM, &*ISO11_YDEN];
+    let (x_num, x_den, y_num, y_den) = iso11_from_constants();
+    let polynomials_coefficients: [&[FP]; 4] = [&x_num, &x_den, &y_num, 
&y_den];
 
     // x-num, x-den, y-num, y-den
     let mut mapped_vals: [FP; 4] = [FP::new(), FP::new(), FP::new(), 
FP::new()];
@@ -299,13 +135,48 @@ pub fn iso11_to_ecp(iso_x: &FP, iso_y: &FP) -> ECP {
     ECP::new_projective(x, y, z)
 }
 
+// Returns ISO-3 Constants (X-Numerator, X-Denominator, Y-Numerator, 
Y-Denominator)
+#[inline(always)]
+fn iso3_from_constants() -> ([FP2; 4], [FP2; 4], [FP2; 4], [FP2; 4]) {
+    (
+        [
+            // X-Numerator
+            FP2::new_fps(FP::new_ints(&ISO3_XNUM[0]), 
FP::new_ints(&ISO3_XNUM[1])),
+            FP2::new_fps(FP::new_ints(&ISO3_XNUM[2]), 
FP::new_ints(&ISO3_XNUM[3])),
+            FP2::new_fps(FP::new_ints(&ISO3_XNUM[4]), 
FP::new_ints(&ISO3_XNUM[5])),
+            FP2::new_fps(FP::new_ints(&ISO3_XNUM[6]), 
FP::new_ints(&ISO3_XNUM[7])),
+        ],
+        [
+            // X-Denominator
+            FP2::new_fps(FP::new_ints(&ISO3_XDEN[0]), 
FP::new_ints(&ISO3_XDEN[1])),
+            FP2::new_fps(FP::new_ints(&ISO3_XDEN[2]), 
FP::new_ints(&ISO3_XDEN[3])),
+            FP2::new_fps(FP::new_ints(&ISO3_XDEN[4]), 
FP::new_ints(&ISO3_XDEN[5])),
+            FP2::new_fps(FP::new_ints(&ISO3_XDEN[6]), 
FP::new_ints(&ISO3_XDEN[7])),
+        ],
+        [
+            // Y-Numerator
+            FP2::new_fps(FP::new_ints(&ISO3_YNUM[0]), 
FP::new_ints(&ISO3_YNUM[1])),
+            FP2::new_fps(FP::new_ints(&ISO3_YNUM[2]), 
FP::new_ints(&ISO3_YNUM[3])),
+            FP2::new_fps(FP::new_ints(&ISO3_YNUM[4]), 
FP::new_ints(&ISO3_YNUM[5])),
+            FP2::new_fps(FP::new_ints(&ISO3_YNUM[6]), 
FP::new_ints(&ISO3_YNUM[7])),
+        ],
+        [
+            // Y-Denominator
+            FP2::new_fps(FP::new_ints(&ISO3_YDEN[0]), 
FP::new_ints(&ISO3_YDEN[1])),
+            FP2::new_fps(FP::new_ints(&ISO3_YDEN[2]), 
FP::new_ints(&ISO3_YDEN[3])),
+            FP2::new_fps(FP::new_ints(&ISO3_YDEN[4]), 
FP::new_ints(&ISO3_YDEN[5])),
+            FP2::new_fps(FP::new_ints(&ISO3_YDEN[6]), 
FP::new_ints(&ISO3_YDEN[7])),
+        ],
+    )
+}
+
 /// Mapping from 3-Isogeny Curve to BLS12-381 ECP2
 ///
 /// Adjusted from https://eprint.iacr.org/2019/403
 /// to convert projectives to (XZ, YZ, Z)
 pub fn iso3_to_ecp2(iso_x: &FP2, iso_y: &FP2) -> ECP2 {
-    let polynomials_coefficients: [&[FP2; 4]; 4] =
-        [&*ISO3_XNUM, &*ISO3_XDEN, &*ISO3_YNUM, &*ISO3_YDEN];
+    let (x_num, x_den, y_num, y_den) = iso3_from_constants();
+    let polynomials_coefficients: [&[FP2; 4]; 4] = [&x_num, &x_den, &y_num, 
&y_den];
 
     // x-num, x-den, y-num, y-den
     let mut mapped_vals: [FP2; 4] = [FP2::new(), FP2::new(), FP2::new(), 
FP2::new()];
diff --git a/src/bls381/iso_constants_x32.rs b/src/bls381/iso_constants_x32.rs
new file mode 100644
index 0000000..5e47ba9
--- /dev/null
+++ b/src/bls381/iso_constants_x32.rs
@@ -0,0 +1,354 @@
+use super::super::big::NLEN;
+use crate::arch::Chunk;
+
+// ISO-3 Mapping values
+pub const ISO3_XNUM: [[Chunk; NLEN]; 8] = [
+    [
+        0xaaa97d6, 0x11c55555, 0x1671c718, 0xc71c687, 0xe15d5c2, 0x211e285, 
0x10aa22d6, 0x73fa740,
+        0x532c52d, 0x123ebf6c, 0xed6dea6, 0x1d1c667d, 0x1c759507, 0x2,
+    ],
+    [
+        0xaaa97d6, 0x11c55555, 0x1671c718, 0xc71c687, 0xe15d5c2, 0x211e285, 
0x10aa22d6, 0x73fa740,
+        0x532c52d, 0x123ebf6c, 0xed6dea6, 0x1d1c667d, 0x1c759507, 0x2,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x1fffc71a, 0x154fffff, 0x3555549, 0x5555397, 0xa418147, 0x635a790, 
0x11fe6882, 0x15bef5c1,
+        0xf984f87, 0x16bc3e44, 0xc849bf3, 0x17553378, 0x1560bf17, 0x8,
+    ],
+    [
+        0x1fffc71e, 0x154fffff, 0x3555549, 0x5555397, 0xa418147, 0x635a790, 
0x11fe6882, 0x15bef5c1,
+        0xf984f87, 0x16bc3e44, 0xc849bf3, 0x17553378, 0x1560bf17, 0x8,
+    ],
+    [
+        0x1fffe38d, 0x1aa7ffff, 0x11aaaaa4, 0x12aaa9cb, 0x520c0a3, 0x31ad3c8, 
0x18ff3441,
+        0x1adf7ae0, 0x7cc27c3, 0x1b5e1f22, 0x6424df9, 0x1baa99bc, 0xab05f8b, 
0x4,
+    ],
+    [
+        0xaaa5ed1, 0x7155555, 0x19c71c62, 0x11c71a1e, 0x18575709, 0x8478a15, 
0x2a88b58, 0x1cfe9d02,
+        0x14cb14b4, 0x8fafdb0, 0x1b5b7a9a, 0x147199f5, 0x11d6541f, 0xb,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+];
+pub const ISO3_XDEN: [[Chunk; NLEN]; 8] = [
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x1fffaa63, 0xff7ffff, 0x14ffffee, 0x17fffd62, 0xf6241ea, 0x9507b58, 
0xafd9cc3, 0x109e70a2,
+        0x1764774b, 0x121a5d66, 0x12c6e9ed, 0x12ffcd34, 0x111ea3, 0xd,
+    ],
+    [
+        0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x1fffaa9f, 0xff7ffff, 0x14ffffee, 0x17fffd62, 0xf6241ea, 0x9507b58, 
0xafd9cc3, 0x109e70a2,
+        0x1764774b, 0x121a5d66, 0x12c6e9ed, 0x12ffcd34, 0x111ea3, 0xd,
+    ],
+    [
+        0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+];
+pub const ISO3_YNUM: [[Chunk; NLEN]; 8] = [
+    [
+        0x11c6d706, 0x167e38e3, 0x124bda04, 0x184bd7f1, 0x1e500fc8, 
0x1cec3e93, 0x126fd510,
+        0x1a940fec, 0x130f7da5, 0x183b688c, 0x16693062, 0x15682276, 
0x130477c7, 0xa,
+    ],
+    [
+        0x11c6d706, 0x167e38e3, 0x124bda04, 0x184bd7f1, 0x1e500fc8, 
0x1cec3e93, 0x126fd510,
+        0x1a940fec, 0x130f7da5, 0x183b688c, 0x16693062, 0x15682276, 
0x130477c7, 0xa,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0xaaa97be, 0x11c55555, 0x1671c718, 0xc71c687, 0xe15d5c2, 0x211e285, 
0x10aa22d6, 0x73fa740,
+        0x532c52d, 0x123ebf6c, 0xed6dea6, 0x1d1c667d, 0x1c759507, 0x2,
+    ],
+    [
+        0x1fffc71c, 0x154fffff, 0x3555549, 0x5555397, 0xa418147, 0x635a790, 
0x11fe6882, 0x15bef5c1,
+        0xf984f87, 0x16bc3e44, 0xc849bf3, 0x17553378, 0x1560bf17, 0x8,
+    ],
+    [
+        0x1fffe38f, 0x1aa7ffff, 0x11aaaaa4, 0x12aaa9cb, 0x520c0a3, 0x31ad3c8, 
0x18ff3441,
+        0x1adf7ae0, 0x7cc27c3, 0x1b5e1f22, 0x6424df9, 0x1baa99bc, 0xab05f8b, 
0x4,
+    ],
+    [
+        0x1c718b10, 0xd9b8e38, 0x1712f678, 0x1212f4ad, 0x74524e7, 0x1be34d51, 
0xa1ac3a5, 0x6f43c4c,
+        0x10761b0f, 0xf1c08d6, 0x1efdc10f, 0x16d9ef37, 0x4c9ad43, 0x9,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+];
+pub const ISO3_YDEN: [[Chunk; NLEN]; 8] = [
+    [
+        0x1fffa8fb, 0xff7ffff, 0x14ffffee, 0x17fffd62, 0xf6241ea, 0x9507b58, 
0xafd9cc3, 0x109e70a2,
+        0x1764774b, 0x121a5d66, 0x12c6e9ed, 0x12ffcd34, 0x111ea3, 0xd,
+    ],
+    [
+        0x1fffa8fb, 0xff7ffff, 0x14ffffee, 0x17fffd62, 0xf6241ea, 0x9507b58, 
0xafd9cc3, 0x109e70a2,
+        0x1764774b, 0x121a5d66, 0x12c6e9ed, 0x12ffcd34, 0x111ea3, 0xd,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x1fffa9d3, 0xff7ffff, 0x14ffffee, 0x17fffd62, 0xf6241ea, 0x9507b58, 
0xafd9cc3, 0x109e70a2,
+        0x1764774b, 0x121a5d66, 0x12c6e9ed, 0x12ffcd34, 0x111ea3, 0xd,
+    ],
+    [
+        0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x1fffaa99, 0xff7ffff, 0x14ffffee, 0x17fffd62, 0xf6241ea, 0x9507b58, 
0xafd9cc3, 0x109e70a2,
+        0x1764774b, 0x121a5d66, 0x12c6e9ed, 0x12ffcd34, 0x111ea3, 0xd,
+    ],
+    [
+        0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+    [
+        0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+];
+
+// ISO-11 Mapping values
+pub const ISO11_XNUM: [[Chunk; NLEN]; 12] = [
+    [
+        0x134649b7, 0x1560b313, 0x198b5bab, 0x185abe5, 0xe2c8561, 0x1dab66da, 
0x17fc989,
+        0x11145ae0, 0x56b303e, 0xeccc0ac, 0xe024407, 0x1d066681, 0x1a05f2b1, 
0x8,
+    ],
+    [
+        0x13cb83bb, 0x1a7778d, 0x630d5ba, 0x11e54de6, 0x1e86b483, 0x119e3868, 
0x105fd597,
+        0xb65ed50, 0x1c7c17e7, 0x110a3d40, 0x1622eac, 0x1287565e, 0x1294ed3e, 
0xb,
+    ],
+    [
+        0xc9edcb0, 0xbcfced, 0x25ca7f8, 0x187c7a54, 0xe25c958, 0x1280f634, 
0xf95a1e3, 0xe652b30,
+        0x1bce0324, 0xe8854d0, 0x7441231, 0x12ecf1d8, 0x154005db, 0x6,
+    ],
+    [
+        0x1d9b6861, 0xd9c4320, 0x41c64f1, 0xdc4b9c6, 0x13083533, 0x1944f8d9, 
0x1c97c6cc, 0xcad51b7,
+        0x12d7f5e4, 0x183f2aa0, 0x13818274, 0x1f98db6e, 0x178e7166, 0xb,
+    ],
+    [
+        0xc8895d9, 0x8aa674d, 0x79df114, 0x1450de60, 0x1ac18985, 0x15b2cc17, 
0xcfc21bb, 0xb424aff,
+        0x1499db99, 0x1f208c72, 0x1990ad2c, 0x333e886, 0x99726a3, 0x7,
+    ],
+    [
+        0xf652983, 0x89e0e33, 0x19cf4673, 0xe1a5b95, 0x8f90a08, 0x15c84bf3, 
0x66e7b4e, 0xfbb2a4f,
+        0x15db3cb1, 0x1fbd3a55, 0x744806, 0x1ae627fe, 0x30c3250, 0xb,
+    ],
+    [
+        0x139ed84, 0xebf912d, 0x14bb2b7, 0x4a25182, 0x6b2a8da, 0x110c7ce4, 
0x13864023, 0x4c9e1f1,
+        0x1fb11586, 0x1c573295, 0x1a8dc9b0, 0x1fc89a52, 0x16ed6553, 0x6,
+    ],
+    [
+        0x3f0c88e, 0x65ab0c7, 0x1d1d6be7, 0xf91f191, 0x753339b, 0x3177879, 
0x16c69a0b, 0x1564eb69,
+        0x13356de5, 0x6888bf2, 0x1a1d0e21, 0x357b7c5, 0x1b81e770, 0xb,
+    ],
+    [
+        0x497e317, 0xb8cc354, 0xdd3a55b, 0x52be52d, 0x1d1de4fa, 0xb649462, 
0x15d28b16, 0xd9cf3ea,
+        0xdc43b75, 0xb1df4c8, 0x1ee42ccd, 0x134f1f88, 0xd3cf1f, 0x4,
+    ],
+    [
+        0x1e390c9e, 0x1920833d, 0xc9de5f, 0x12165db8, 0x11b7fa31, 0xa5d7a5d, 
0x12659d8c,
+        0x1007418b, 0x2dd2ecb, 0xae89c79, 0xb830dd4, 0x179f4f88, 0x9b1f8e1, 
0xb,
+    ],
+    [
+        0x1605fb7b, 0x133ef9f8, 0xa177b32, 0x16ee3f18, 0x14866f69, 0x19b001d8, 
0x1e5b542b,
+        0x1bbccf0f, 0xdfa7dcc, 0xe92b2d8, 0x1cb63b02, 0x139c0fc4, 0x321da07, 
0x8,
+    ],
+    [
+        0xba2d229, 0xe45d174, 0x134e47ea, 0x1637016c, 0x6b68c24, 0x1f8de126, 
0x1ef08f02, 0xfc45906,
+        0x1d31d79d, 0x1c0f6f71, 0xf47a588, 0x1c4c1ce1, 0xe08c248, 0x3,
+    ],
+];
+pub const ISO11_XDEN: [[Chunk; NLEN]; 11] = [
+    [
+        0xd21b1c, 0x9e7cfd2, 0xd0f7e26, 0x11ad037c, 0xac62b55, 0x430bfe4, 
0x2ea7256, 0x9746b69,
+        0xf01d5ef, 0x1a5e9fd3, 0x62cb98b, 0x19fe335c, 0xca8d548, 0x4,
+    ],
+    [
+        0x82b3bff, 0xe413b76, 0xc09ba79, 0x155108d9, 0xbf5713d, 0x12c4624, 
0x30049b, 0x19419e10,
+        0x167041e8, 0x14c729b1, 0x122d1c44, 0x16ab3886, 0x561a5de, 0x9,
+    ],
+    [
+        0x1cb83e19, 0x611cdd2, 0x53fb73f, 0x7a12cf9, 0xceacd6a, 0x700588d, 
0x1347f299, 0xdeb4e31,
+        0x1f6f8941, 0xdff94c8, 0x4df98a, 0xf4644bd, 0x12962fe5, 0x5,
+    ],
+    [
+        0xdc62cd8, 0x186f449c, 0x1b3d7104, 0xdaa487d, 0x16fd0497, 0x1455e146, 
0x15455332,
+        0x7e2d62c, 0x145b0824, 0x1be2075a, 0x120eabfb, 0xb15c5fd, 0x1425581a, 
0x1,
+    ],
+    [
+        0x1532a21e, 0x1ce9cad9, 0xd5e0754, 0x537503e, 0x106da9bd, 0x27419d9, 
0xaee35ad, 0xb34240c,
+        0x1dffdfc7, 0x1a1f3d03, 0x29bc757, 0x4522950, 0x1a8e1620, 0x9,
+    ],
+    [
+        0x1f6304a5, 0x16fcd14, 0x8a3c470, 0x1a49788, 0x982f740, 0x1e77925c, 
0x1534290e, 0x1d39d395,
+        0x9395735, 0x18283637, 0x154e43df, 0x9cccf72, 0x7355f8e, 0x7,
+    ],
+    [
+        0xee84a3a, 0x12ba24b, 0x3781b3b, 0x766a71e, 0xde9cea7, 0x3983157, 
0x62538b8, 0x1335ea74,
+        0x1570f57, 0x1f02cb39, 0x3cf8318, 0x2d26c32, 0x172caacf, 0x3,
+    ],
+    [
+        0x1dcc5a5e, 0xfbeccdd, 0x478b4c4, 0xb72913a, 0x2c580fa, 0x10e6fcc1, 
0x2a0665b, 0x1843794d,
+        0x196e7f63, 0x3a6780c, 0xc2cfd6c, 0x1ac95164, 0xa7ac2a9, 0xa,
+    ],
+    [
+        0x19a1d641, 0x1bb761d3, 0xe90dc11, 0x4cd2557, 0x18835038, 0x6d33f9c, 
0x19add040, 0x3ae2c26,
+        0xce07f8d, 0xd7e3d1e, 0x17a482cf, 0x1b4a9f04, 0x10ecf6a, 0x5,
+    ],
+    [
+        0x8ecdd0a, 0xb1c268b, 0x1e19400b, 0xe9c9696, 0x11c15931, 0x99cbc79, 
0xdddb7d, 0x1dd2defa,
+        0xf682b4, 0x159d2b34, 0x11db5b8f, 0x13d255a8, 0x15fc13ab, 0x4,
+    ],
+    [
+        0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+];
+pub const ISO11_YNUM: [[Chunk; NLEN]; 16] = [
+    [
+        0x1707bb33, 0x14c22b8c, 0xee8f0af, 0x18f5dd36, 0x143d3cd0, 0x17b64ab2, 
0x548ad4a,
+        0x11c9150d, 0x1a11ad13, 0xa4c06e7, 0x96747c2, 0x17449dc0, 0x10d97c81, 
0x4,
+    ],
+    [
+        0xe41c696, 0x4bf3ad1, 0xbea2ff8, 0xace232c, 0x1ad34d6c, 0x11a1f5b3, 
0xf43e41, 0xd84a9e7,
+        0x31223e9, 0x1bb7da34, 0x15440db5, 0x9dcb023, 0x14996a10, 0x9,
+    ],
+    [
+        0x72de1f6, 0x6ff1206, 0xc0148ee, 0x1aa42c51, 0xda7d26, 0x1f25c8a0, 
0x138b0d12, 0x1acb1463,
+        0x142552e2, 0x351da4c, 0x1d28e132, 0x152cdccd, 0xcc786ba, 0x0,
+    ],
+    [
+        0x10e5f4cb, 0x11aae3bd, 0x11877b29, 0xb5753d, 0x11cf9de4, 0x11f60192, 
0x4702792,
+        0x1721dd6f, 0x17d42aa7, 0x16c3a33a, 0x1e261d46, 0x11303842, 
0x1f86376e, 0x0,
+    ],
+    [
+        0x12e8fedb, 0xdb6d767, 0x4102a10, 0xff1b813, 0x11adc2ee, 0x1fe9109a, 
0x2e1e60c, 0x1f7c79ca,
+        0x4195536, 0x1510a94e, 0x172bd3f8, 0x1fc1fe26, 0xcc03fde, 0x4,
+    ],
+    [
+        0x1633a5f0, 0xd91d589, 0x16a01ca6, 0x1ec64d92, 0x1544e203, 0xe1e9d6a, 
0x1ef5d941,
+        0x1a95f5b6, 0x74a7d0, 0xdc78535, 0x8847847, 0xc696d4, 0x603fca4, 0xb,
+    ],
+    [
+        0x1fe9d6f2, 0xb0fc42a, 0x3d057b2, 0x10f5848c, 0x14f3747a, 0x9e26b1, 
0x132d48c5, 0x19457c30,
+        0x1ce75bb8, 0x13bcb59, 0xcb25df4, 0x1f583779, 0xab0b9bc, 0x2,
+    ],
+    [
+        0x1870fb29, 0xaf26518, 0x17fa4d68, 0xc8aa1fd, 0x842642f, 0x6d36136, 
0x7ff40e, 0x17fc77bb,
+        0x14170a05, 0x9653633, 0x17a649af, 0x67570df, 0x187c8d53, 0x4,
+    ],
+    [
+        0x1bdba587, 0x1b872bb, 0x181e8d8, 0xca4038f, 0xcabe69d, 0x17350f90, 
0x9b07a2d, 0x2ccf3b8,
+        0x1b8f3abd, 0x10f26d0d, 0x1a232788, 0x1b2cd097, 0x1fc4018b, 0x4,
+    ],
+    [
+        0xa731c30, 0x1d7d575e, 0x13ae9bca, 0x1ee0abba, 0xd43b9b3, 0xf3f68f2, 
0x1bf81a61,
+        0x14f22b5e, 0x3c42a0c, 0x1d6d0a51, 0x88eaf79, 0x30d7b6a, 0x1bba7a1, 
0x7,
+    ],
+    [
+        0x1011c132, 0x9b88d6, 0xfeebf3a, 0x1e74b99c, 0x1e61031b, 0x1f20b1c4, 
0x4ff4460, 0x196d95e9,
+        0x13cd2fcb, 0x18ea1fdc, 0x37f42e3, 0x6f9a37c, 0x1713e479, 0xc,
+    ],
+    [
+        0x10074d8e, 0x103e4526, 0x113581b3, 0x139be836, 0x1643249d, 
0x1f3fc88f, 0x918b9af,
+        0x17155e18, 0xc523559, 0x1ff6976e, 0xe463050, 0x1e6dedbd, 0xb46a908, 
0xc,
+    ],
+    [
+        0xb971ef8, 0xa602780, 0x4847c83, 0x10a38323, 0x633f06c, 0x87403da, 
0x23b009c, 0x54684d6,
+        0x47aa7b1, 0x27a9fa, 0x14554258, 0x372733, 0x1182cac1, 0x5,
+    ],
+    [
+        0x1b980133, 0x16ce9fae, 0x8ca9910, 0x1f215a38, 0x659cc6c, 0x11969e20, 
0x16004f99,
+        0x101a982, 0x1c757b3b, 0x13df18ae, 0x1cbf002b, 0x1a3d9536, 0x45a394a, 
0x1,
+    ],
+    [
+        0x1475224b, 0x1358f38a, 0x1e6bede1, 0x20936ca, 0x7ce46ba, 0x7ae9cb5, 
0x15a366ac,
+        0x103afd0c, 0x1c5e673d, 0x1a46251f, 0xa8567d, 0x1c899e22, 0x1c129645, 
0x2,
+    ],
+    [
+        0x9c8b604, 0x5a2b5f3, 0x10071dc1, 0xa04fdfd, 0x101b2b66, 0xa7d4ad7, 
0x8e55eb7, 0x11f092cb,
+        0x15cb181d, 0x1a16f975, 0x13a942ce, 0x121e079c, 0x1e6be4e9, 0xa,
+    ],
+];
+pub const ISO11_YDEN: [[Chunk; NLEN]; 16] = [
+    [
+        0x103663c1, 0xa3c929d, 0x3081b40, 0x6d11dec, 0x12e7a07f, 0x1195adf3, 
0xf9bbb0c, 0x1caf1301,
+        0x9601a6d, 0x7d68757, 0x14860450, 0x15393164, 0x112c4c3, 0xb,
+    ],
+    [
+        0xe49a03d, 0x17b08161, 0x14a78d4c, 0x84c0ec6, 0x1e01f78a, 0x1ab7a29, 
0x16729284,
+        0x1ee6389a, 0x1885c84f, 0x21e1a45, 0x6832f5b, 0x702403c, 0x162d75c2, 
0xc,
+    ],
+    [
+        0x1dbf67f2, 0x1129c5a9, 0x1e5be247, 0xaf9ac6d, 0xd2eca67, 0x12ee93ce, 
0x1cc430d6,
+        0xaaa35cf, 0x1778c485, 0xb74758a, 0x1beaab9f, 0xc81b44e, 0x18df3306, 
0x2,
+    ],
+    [
+        0x45f5416, 0x6936cc2, 0xa5eb6a, 0x6c9e585, 0xaf41727, 0x1244f393, 
0xc3848f6, 0x1b7bb79a,
+        0x11d115c5, 0x1c4f6da6, 0x1c8348ef, 0x131ca72b, 0xb7d2887, 0xb,
+    ],
+    [
+        0x11a5001d, 0x11c8a118, 0x14bb7b76, 0x162bb81f, 0xc916a20, 0xd07e4ef, 
0xec150bb,
+        0x13e1ed37, 0x1cc6d19c, 0x17c1146e, 0xc033244, 0x8be87c9, 0x1e0e0795, 
0x5,
+    ],
+    [
+        0xaf9b7ac, 0x16323bfd, 0xa733880, 0x71b73bf, 0x15a6449f, 0xc3db787, 
0x20717b3, 0x18caaa1b,
+        0x2b70152, 0x1563c18c, 0x7ec99ba, 0x30db65b, 0xd9e5297, 0x4,
+    ],
+    [
+        0x126a775c, 0x8d09cc8, 0x2c7ee4f, 0x1538034b, 0x51d5f, 0x12de2005, 
0x3bd774d, 0x1f51a19f,
+        0xb5eecfd, 0x5674c12, 0x10eea1cd, 0x1533b65f, 0x6007c08, 0xb,
+    ],
+    [
+        0x15812ed9, 0x7720ad0, 0x77b918, 0x1eb6010, 0x17132b92, 0x7e9031a, 
0x1f5ffacd, 0xbdf43e9,
+        0xee5a437, 0x15dd37fb, 0xef377e, 0x1c7d4fd4, 0xa3ef08b, 0xb,
+    ],
+    [
+        0x15535d4a, 0x1919ecea, 0x49220da, 0x1fc5ef77, 0x19b4852c, 0x1a8625f9, 
0x482af15,
+        0x1c98d5eb, 0x4f9fb0c, 0x1e8eba66, 0x686f953, 0x6d8c246, 0x66c8ed3, 
0xc,
+    ],
+    [
+        0x18913f55, 0x377a45d, 0xa6cd78d, 0x10bd47aa, 0x1d4fbc73, 0xc973f53, 
0x1eed4c21, 0xc7c27b0,
+        0x103216f7, 0x1eca5424, 0x1aa08165, 0xe14dc39, 0x7a55cda, 0xb,
+    ],
+    [
+        0x1a8f6aa8, 0x7c5a4e5, 0xc18100, 0xb853e9f, 0xa5c871a, 0xd9b731b, 
0x18a43964, 0x7376c34,
+        0x1d9c6dd0, 0xd69488, 0x123c0428, 0x1d480b7a, 0xd2f259e, 0x2,
+    ],
+    [
+        0x2561092, 0x1425a94f, 0x1faefaa5, 0x12d130de, 0x1913516f, 0xd446753, 
0xb4a303e,
+        0x115df9c8, 0x77f94ff, 0x12462862, 0x1d614b07, 0x103a067f, 0xccbb674, 
0x5,
+    ],
+    [
+        0x173345cc, 0x14cd89c2, 0xe42b047, 0xec7c7, 0x19b86930, 0x177cd006, 
0x899f573, 0x1b315be0,
+        0x16543346, 0x5a2f8a4, 0x10d84c51, 0x18ecffc7, 0xd6b9514, 0x5,
+    ],
+    [
+        0x6ed06f7, 0xfd6e099, 0x5332034, 0xa2f7b0e, 0x480e420, 0x6f93ca1, 
0x1f072dd2, 0x129ce524,
+        0x12bf565b, 0xa9e6bb7, 0x18a2f743, 0x165c9e76, 0x660400e, 0x1,
+    ],
+    [
+        0x1d634b8f, 0xaa39d0, 0xd25e011, 0x5eae1e2, 0xaa205ca, 0x1e6b1ab6, 
0x14cc93b, 0xcbc4e77,
+        0x171c40f, 0x106bc0ce, 0x1ac90957, 0xdbb807c, 0xfa1d81, 0x7,
+    ],
+    [
+        0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    ],
+];
diff --git a/src/bls381/iso_constants_x64.rs b/src/bls381/iso_constants_x64.rs
new file mode 100644
index 0000000..542f0f7
--- /dev/null
+++ b/src/bls381/iso_constants_x64.rs
@@ -0,0 +1,678 @@
+use super::super::big::NLEN;
+use crate::arch::Chunk;
+
+// ISO-3 Mapping values
+pub const ISO3_XNUM: [[Chunk; NLEN]; 8] = [
+    [
+        0x238aaaaaaaa97d6,
+        0x18e38d0f671c718,
+        0x423c50ae15d5c2,
+        0xe7f4e810aa22d6,
+        0x247d7ed8532c52d,
+        0x3a38ccfaed6dea6,
+        0x5c759507,
+    ],
+    [
+        0x238aaaaaaaa97d6,
+        0x18e38d0f671c718,
+        0x423c50ae15d5c2,
+        0xe7f4e810aa22d6,
+        0x247d7ed8532c52d,
+        0x3a38ccfaed6dea6,
+        0x5c759507,
+    ],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [
+        0x2a9ffffffffc71a,
+        0xaaaa72e3555549,
+        0xc6b4f20a418147,
+        0x2b7deb831fe6882,
+        0x2d787c88f984f87,
+        0x2eaa66f0c849bf3,
+        0x11560bf17,
+    ],
+    [
+        0x2a9ffffffffc71e,
+        0xaaaa72e3555549,
+        0xc6b4f20a418147,
+        0x2b7deb831fe6882,
+        0x2d787c88f984f87,
+        0x2eaa66f0c849bf3,
+        0x11560bf17,
+    ],
+    [
+        0x354ffffffffe38d,
+        0x255553971aaaaa4,
+        0x635a790520c0a3,
+        0x35bef5c18ff3441,
+        0x36bc3e447cc27c3,
+        0x375533786424df9,
+        0x8ab05f8b,
+    ],
+    [
+        0xe2aaaaaaaa5ed1,
+        0x238e343d9c71c62,
+        0x108f142b8575709,
+        0x39fd3a042a88b58,
+        0x11f5fb614cb14b4,
+        0x28e333ebb5b7a9a,
+        0x171d6541f,
+    ],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+];
+pub const ISO3_XDEN: [[Chunk; NLEN]; 8] = [
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [
+        0x1feffffffffaa63,
+        0x2ffffac54ffffee,
+        0x12a0f6b0f6241ea,
+        0x213ce144afd9cc3,
+        0x2434bacd764774b,
+        0x25ff9a692c6e9ed,
+        0x1a0111ea3,
+    ],
+    [0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [
+        0x1feffffffffaa9f,
+        0x2ffffac54ffffee,
+        0x12a0f6b0f6241ea,
+        0x213ce144afd9cc3,
+        0x2434bacd764774b,
+        0x25ff9a692c6e9ed,
+        0x1a0111ea3,
+    ],
+    [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+];
+pub const ISO3_YNUM: [[Chunk; NLEN]; 8] = [
+    [
+        0x2cfc71c71c6d706,
+        0x3097afe324bda04,
+        0x39d87d27e500fc8,
+        0x35281fd926fd510,
+        0x3076d11930f7da5,
+        0x2ad044ed6693062,
+        0x1530477c7,
+    ],
+    [
+        0x2cfc71c71c6d706,
+        0x3097afe324bda04,
+        0x39d87d27e500fc8,
+        0x35281fd926fd510,
+        0x3076d11930f7da5,
+        0x2ad044ed6693062,
+        0x1530477c7,
+    ],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [
+        0x238aaaaaaaa97be,
+        0x18e38d0f671c718,
+        0x423c50ae15d5c2,
+        0xe7f4e810aa22d6,
+        0x247d7ed8532c52d,
+        0x3a38ccfaed6dea6,
+        0x5c759507,
+    ],
+    [
+        0x2a9ffffffffc71c,
+        0xaaaa72e3555549,
+        0xc6b4f20a418147,
+        0x2b7deb831fe6882,
+        0x2d787c88f984f87,
+        0x2eaa66f0c849bf3,
+        0x11560bf17,
+    ],
+    [
+        0x354ffffffffe38f,
+        0x255553971aaaaa4,
+        0x635a790520c0a3,
+        0x35bef5c18ff3441,
+        0x36bc3e447cc27c3,
+        0x375533786424df9,
+        0x8ab05f8b,
+    ],
+    [
+        0x1b371c71c718b10,
+        0x2425e95b712f678,
+        0x37c69aa274524e7,
+        0xde87898a1ac3a5,
+        0x1e3811ad0761b0f,
+        0x2db3de6fefdc10f,
+        0x124c9ad43,
+    ],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+];
+pub const ISO3_YDEN: [[Chunk; NLEN]; 8] = [
+    [
+        0x1feffffffffa8fb,
+        0x2ffffac54ffffee,
+        0x12a0f6b0f6241ea,
+        0x213ce144afd9cc3,
+        0x2434bacd764774b,
+        0x25ff9a692c6e9ed,
+        0x1a0111ea3,
+    ],
+    [
+        0x1feffffffffa8fb,
+        0x2ffffac54ffffee,
+        0x12a0f6b0f6241ea,
+        0x213ce144afd9cc3,
+        0x2434bacd764774b,
+        0x25ff9a692c6e9ed,
+        0x1a0111ea3,
+    ],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [
+        0x1feffffffffa9d3,
+        0x2ffffac54ffffee,
+        0x12a0f6b0f6241ea,
+        0x213ce144afd9cc3,
+        0x2434bacd764774b,
+        0x25ff9a692c6e9ed,
+        0x1a0111ea3,
+    ],
+    [0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [
+        0x1feffffffffaa99,
+        0x2ffffac54ffffee,
+        0x12a0f6b0f6241ea,
+        0x213ce144afd9cc3,
+        0x2434bacd764774b,
+        0x25ff9a692c6e9ed,
+        0x1a0111ea3,
+    ],
+    [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+    [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+];
+
+// ISO-11 Mapping values
+
+pub const ISO11_XNUM: [[Chunk; NLEN]; 12] = [
+    [
+        0x2ac1662734649b7,
+        0x30b57cb98b5bab,
+        0x3b56cdb4e2c8561,
+        0x2228b5c017fc989,
+        0x1d99815856b303e,
+        0x3a0ccd02e024407,
+        0x11a05f2b1,
+    ],
+    [
+        0x34eef1b3cb83bb,
+        0x23ca9bcc630d5ba,
+        0x233c70d1e86b483,
+        0x16cbdaa105fd597,
+        0x22147a81c7c17e7,
+        0x250eacbc1622eac,
+        0x17294ed3e,
+    ],
+    [
+        0x179f9dac9edcb0,
+        0x30f8f4a825ca7f8,
+        0x2501ec68e25c958,
+        0x1cca5660f95a1e3,
+        0x1d10a9a1bce0324,
+        0x25d9e3b07441231,
+        0xd54005db,
+    ],
+    [
+        0x1b388641d9b6861,
+        0x1b89738c41c64f1,
+        0x3289f1b33083533,
+        0x195aa36fc97c6cc,
+        0x307e55412d7f5e4,
+        0x3f31b6dd3818274,
+        0x1778e7166,
+    ],
+    [
+        0x1154ce9ac8895d9,
+        0x28a1bcc079df114,
+        0x2b65982fac18985,
+        0x168495fecfc21bb,
+        0x3e4118e5499db99,
+        0x667d10d990ad2c,
+        0xe99726a3,
+    ],
+    [
+        0x113c1c66f652983,
+        0x1c34b72b9cf4673,
+        0x2b9097e68f90a08,
+        0x1f76549e66e7b4e,
+        0x3f7a74ab5db3cb1,
+        0x35cc4ffc0744806,
+        0x1630c3250,
+    ],
+    [
+        0x1d7f225a139ed84,
+        0x944a30414bb2b7,
+        0x2218f9c86b2a8da,
+        0x993c3e33864023,
+        0x38ae652bfb11586,
+        0x3f9134a5a8dc9b0,
+        0xd6ed6553,
+    ],
+    [
+        0xcb5618e3f0c88e,
+        0x1f23e323d1d6be7,
+        0x62ef0f2753339b,
+        0x2ac9d6d36c69a0b,
+        0xd1117e53356de5,
+        0x6af6f8ba1d0e21,
+        0x17b81e770,
+    ],
+    [
+        0x171986a8497e317,
+        0xa57ca5add3a55b,
+        0x16c928c5d1de4fa,
+        0x1b39e7d55d28b16,
+        0x163be990dc43b75,
+        0x269e3f11ee42ccd,
+        0x80d3cf1f,
+    ],
+    [
+        0x3241067be390c9e,
+        0x242cbb700c9de5f,
+        0x14baf4bb1b7fa31,
+        0x200e83172659d8c,
+        0x15d138f22dd2ecb,
+        0x2f3e9f10b830dd4,
+        0x169b1f8e1,
+    ],
+    [
+        0x267df3f1605fb7b,
+        0x2ddc7e30a177b32,
+        0x336003b14866f69,
+        0x37799e1fe5b542b,
+        0x1d2565b0dfa7dcc,
+        0x27381f89cb63b02,
+        0x10321da07,
+    ],
+    [
+        0x1c8ba2e8ba2d229,
+        0x2c6e02d934e47ea,
+        0x3f1bc24c6b68c24,
+        0x1f88b20def08f02,
+        0x381edee3d31d79d,
+        0x389839c2f47a588,
+        0x6e08c248,
+    ],
+];
+pub const ISO11_XDEN: [[Chunk; NLEN]; 11] = [
+    [
+        0x13cf9fa40d21b1c,
+        0x235a06f8d0f7e26,
+        0x8617fc8ac62b55,
+        0x12e8d6d22ea7256,
+        0x34bd3fa6f01d5ef,
+        0x33fc66b862cb98b,
+        0x8ca8d548,
+    ],
+    [
+        0x1c8276ec82b3bff,
+        0x2aa211b2c09ba79,
+        0x2588c48bf5713d,
+        0x32833c20030049b,
+        0x298e536367041e8,
+        0x2d56710d22d1c44,
+        0x12561a5de,
+    ],
+    [
+        0xc239ba5cb83e19,
+        0xf4259f253fb73f,
+        0xe00b11aceacd6a,
+        0x1bd69c63347f299,
+        0x1bff2991f6f8941,
+        0x1e8c897a04df98a,
+        0xb2962fe5,
+    ],
+    [
+        0x30de8938dc62cd8,
+        0x1b5490fbb3d7104,
+        0x28abc28d6fd0497,
+        0xfc5ac595455332,
+        0x37c40eb545b0824,
+        0x162b8bfb20eabfb,
+        0x3425581a,
+    ],
+    [
+        0x39d395b3532a21e,
+        0xa6ea07cd5e0754,
+        0x4e833b306da9bd,
+        0x16684818aee35ad,
+        0x343e7a07dffdfc7,
+        0x8a452a029bc757,
+        0x13a8e1620,
+    ],
+    [
+        0x2df9a29f6304a5,
+        0x3492f108a3c470,
+        0x3cef24b8982f740,
+        0x3a73a72b534290e,
+        0x30506c6e9395735,
+        0x13999ee554e43df,
+        0xe7355f8e,
+    ],
+    [
+        0x2574496ee84a3a,
+        0xecd4e3c3781b3b,
+        0x73062aede9cea7,
+        0x266bd4e862538b8,
+        0x3e0596721570f57,
+        0x5a4d8643cf8318,
+        0x772caacf,
+    ],
+    [
+        0x1f7d99bbdcc5a5e,
+        0x16e52274478b4c4,
+        0x21cdf9822c580fa,
+        0x3086f29a2a0665b,
+        0x74cf01996e7f63,
+        0x3592a2c8c2cfd6c,
+        0x14a7ac2a9,
+    ],
+    [
+        0x376ec3a79a1d641,
+        0x99a4aaee90dc11,
+        0xda67f398835038,
+        0x75c584d9add040,
+        0x1afc7a3cce07f8d,
+        0x36953e097a482cf,
+        0xa10ecf6a,
+    ],
+    [
+        0x16384d168ecdd0a,
+        0x1d392d2de19400b,
+        0x133978f31c15931,
+        0x3ba5bdf40dddb7d,
+        0x2b3a56680f682b4,
+        0x27a4ab511db5b8f,
+        0x95fc13ab,
+    ],
+    [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+];
+pub const ISO11_YNUM: [[Chunk; NLEN]; 16] = [
+    [
+        0x29845719707bb33,
+        0x31ebba6cee8f0af,
+        0x2f6c956543d3cd0,
+        0x23922a1a548ad4a,
+        0x14980dcfa11ad13,
+        0x2e893b8096747c2,
+        0x90d97c81,
+    ],
+    [
+        0x97e75a2e41c696,
+        0x159c4658bea2ff8,
+        0x2343eb67ad34d6c,
+        0x1b0953ce0f43e41,
+        0x376fb46831223e9,
+        0x13b960475440db5,
+        0x134996a10,
+    ],
+    [
+        0xdfe240c72de1f6,
+        0x354858a2c0148ee,
+        0x3e4b91400da7d26,
+        0x359628c738b0d12,
+        0x6a3b49942552e2,
+        0x2a59b99bd28e132,
+        0xcc786ba,
+    ],
+    [
+        0x2355c77b0e5f4cb,
+        0x16aea7b1877b29,
+        0x23ec03251cf9de4,
+        0x2e43bade4702792,
+        0x2d8746757d42aa7,
+        0x22607085e261d46,
+        0x1f86376e,
+    ],
+    [
+        0x1b6daecf2e8fedb,
+        0x1fe370264102a10,
+        0x3fd221351adc2ee,
+        0x3ef8f3942e1e60c,
+        0x2a21529c4195536,
+        0x3f83fc4d72bd3f8,
+        0x8cc03fde,
+    ],
+    [
+        0x1b23ab13633a5f0,
+        0x3d8c9b256a01ca6,
+        0x1c3d3ad5544e203,
+        0x352beb6def5d941,
+        0x1b8f0a6a074a7d0,
+        0x18d2da88847847,
+        0x16603fca4,
+    ],
+    [
+        0x161f8855fe9d6f2,
+        0x21eb09183d057b2,
+        0x13c4d634f3747a,
+        0x328af86132d48c5,
+        0x27796b3ce75bb8,
+        0x3eb06ef2cb25df4,
+        0x4ab0b9bc,
+    ],
+    [
+        0x15e4ca31870fb29,
+        0x191543fb7fa4d68,
+        0xda6c26c842642f,
+        0x2ff8ef7607ff40e,
+        0x12ca6c674170a05,
+        0xceae1bf7a649af,
+        0x987c8d53,
+    ],
+    [
+        0x370e577bdba587,
+        0x1948071e181e8d8,
+        0x2e6a1f20cabe69d,
+        0x599e7709b07a2d,
+        0x21e4da1bb8f3abd,
+        0x3659a12fa232788,
+        0x9fc4018b,
+    ],
+    [
+        0x3afaaebca731c30,
+        0x3dc157753ae9bca,
+        0x1e7ed1e4d43b9b3,
+        0x29e456bdbf81a61,
+        0x3ada14a23c42a0c,
+        0x61af6d488eaf79,
+        0xe1bba7a1,
+    ],
+    [
+        0x13711ad011c132,
+        0x3ce97338feebf3a,
+        0x3e416389e61031b,
+        0x32db2bd24ff4460,
+        0x31d43fb93cd2fcb,
+        0xdf346f837f42e3,
+        0x19713e479,
+    ],
+    [
+        0x207c8a4d0074d8e,
+        0x2737d06d13581b3,
+        0x3e7f911f643249d,
+        0x2e2abc30918b9af,
+        0x3fed2edcc523559,
+        0x3cdbdb7ae463050,
+        0x18b46a908,
+    ],
+    [
+        0x14c04f00b971ef8,
+        0x214706464847c83,
+        0x10e807b4633f06c,
+        0xa8d09ac23b009c,
+        0x4f53f447aa7b1,
+        0x6e4e674554258,
+        0xb182cac1,
+    ],
+    [
+        0x2d9d3f5db980133,
+        0x3e42b4708ca9910,
+        0x232d3c40659cc6c,
+        0x20353056004f99,
+        0x27be315dc757b3b,
+        0x347b2a6dcbf002b,
+        0x245a394a,
+    ],
+    [
+        0x26b1e715475224b,
+        0x4126d95e6bede1,
+        0xf5d396a7ce46ba,
+        0x2075fa195a366ac,
+        0x348c4a3fc5e673d,
+        0x39133c440a8567d,
+        0x5c129645,
+    ],
+    [
+        0xb456be69c8b604,
+        0x1409fbfb0071dc1,
+        0x14fa95af01b2b66,
+        0x23e125968e55eb7,
+        0x342df2eb5cb181d,
+        0x243c0f393a942ce,
+        0x15e6be4e9,
+    ],
+];
+pub const ISO11_YDEN: [[Chunk; NLEN]; 16] = [
+    [
+        0x1479253b03663c1,
+        0xda23bd83081b40,
+        0x232b5be72e7a07f,
+        0x395e2602f9bbb0c,
+        0xfad0eae9601a6d,
+        0x2a7262c94860450,
+        0x16112c4c3,
+    ],
+    [
+        0x2f6102c2e49a03d,
+        0x10981d8d4a78d4c,
+        0x356f453e01f78a,
+        0x3dcc71356729284,
+        0x43c348b885c84f,
+        0xe0480786832f5b,
+        0x1962d75c2,
+    ],
+    [
+        0x22538b53dbf67f2,
+        0x15f358dbe5be247,
+        0x25dd279cd2eca67,
+        0x15546b9fcc430d6,
+        0x16e8eb15778c485,
+        0x1903689dbeaab9f,
+        0x58df3306,
+    ],
+    [
+        0xd26d98445f5416,
+        0xd93cb0a0a5eb6a,
+        0x2489e726af41727,
+        0x36f76f34c3848f6,
+        0x389edb4d1d115c5,
+        0x26394e57c8348ef,
+        0x16b7d2887,
+    ],
+    [
+        0x239142311a5001d,
+        0x2c57703f4bb7b76,
+        0x1a0fc9dec916a20,
+        0x27c3da6eec150bb,
+        0x2f8228ddcc6d19c,
+        0x117d0f92c033244,
+        0xbe0e0795,
+    ],
+    [
+        0x2c6477faaf9b7ac,
+        0xe36e77ea733880,
+        0x187b6f0f5a6449f,
+        0x3195543620717b3,
+        0x2ac783182b70152,
+        0x61b6cb67ec99ba,
+        0x8d9e5297,
+    ],
+    [
+        0x11a1399126a775c,
+        0x2a7006962c7ee4f,
+        0x25bc400a0051d5f,
+        0x3ea3433e3bd774d,
+        0xace9824b5eecfd,
+        0x2a676cbf0eea1cd,
+        0x166007c08,
+    ],
+    [
+        0xee415a15812ed9,
+        0x3d6c020077b918,
+        0xfd206357132b92,
+        0x17be87d3f5ffacd,
+        0x2bba6ff6ee5a437,
+        0x38fa9fa80ef377e,
+        0x16a3ef08b,
+    ],
+    [
+        0x3233d9d55535d4a,
+        0x3f8bdeee49220da,
+        0x350c4bf39b4852c,
+        0x3931abd6482af15,
+        0x3d1d74cc4f9fb0c,
+        0xdb1848c686f953,
+        0x1866c8ed3,
+    ],
+    [
+        0x6ef48bb8913f55,
+        0x217a8f54a6cd78d,
+        0x192e7ea7d4fbc73,
+        0x18f84f61eed4c21,
+        0x3d94a84903216f7,
+        0x1c29b873aa08165,
+        0x167a55cda,
+    ],
+    [
+        0xf8b49cba8f6aa8,
+        0x170a7d3e0c18100,
+        0x1b36e636a5c871a,
+        0xe6ed8698a43964,
+        0x1ad2911d9c6dd0,
+        0x3a9016f523c0428,
+        0x4d2f259e,
+    ],
+    [
+        0x284b529e2561092,
+        0x25a261bdfaefaa5,
+        0x1a88cea7913516f,
+        0x22bbf390b4a303e,
+        0x248c50c477f94ff,
+        0x20740cffd614b07,
+        0xaccbb674,
+    ],
+    [
+        0x299b138573345cc,
+        0x1d8f8ee42b047,
+        0x2ef9a00d9b86930,
+        0x3662b7c0899f573,
+        0xb45f1496543346,
+        0x31d9ff8f0d84c51,
+        0xad6b9514,
+    ],
+    [
+        0x1fadc1326ed06f7,
+        0x145ef61c5332034,
+        0xdf27942480e420,
+        0x2539ca49f072dd2,
+        0x153cd76f2bf565b,
+        0x2cb93ced8a2f743,
+        0x2660400e,
+    ],
+    [
+        0x15473a1d634b8f,
+        0xbd5c3c4d25e011,
+        0x3cd6356caa205ca,
+        0x19789cee14cc93b,
+        0x20d7819c171c40f,
+        0x1b7700f9ac90957,
+        0xe0fa1d81,
+    ],
+    [0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0],
+];
diff --git a/src/bls381/mod.rs b/src/bls381/mod.rs
index 90b5c3c..4239667 100644
--- a/src/bls381/mod.rs
+++ b/src/bls381/mod.rs
@@ -30,3 +30,17 @@ pub mod utils;
 
 mod core;
 mod iso;
+
+#[cfg(target_pointer_width = "64")]
+mod iso_constants_x64;
+#[cfg(target_pointer_width = "64")]
+pub(crate) use iso_constants_x64::{
+    ISO11_XDEN, ISO11_XNUM, ISO11_YDEN, ISO11_YNUM, ISO3_XDEN, ISO3_XNUM, 
ISO3_YDEN, ISO3_YNUM,
+};
+
+#[cfg(target_pointer_width = "32")]
+mod iso_constants_x32;
+#[cfg(target_pointer_width = "32")]
+pub(crate) use iso_constants_x32::{
+    ISO11_XDEN, ISO11_XNUM, ISO11_YDEN, ISO11_YNUM, ISO3_XDEN, ISO3_XNUM, 
ISO3_YDEN, ISO3_YNUM,
+};
diff --git a/src/fp.rs b/src/fp.rs
index 00ed092..a3e1776 100644
--- a/src/fp.rs
+++ b/src/fp.rs
@@ -70,6 +70,7 @@ impl FP {
         }
     }
 
+    /// Creates a FP from an int
     pub fn new_int(a: isize) -> FP {
         let mut f = FP::new();
         f.x.inc(a);
@@ -77,6 +78,11 @@ impl FP {
         return f;
     }
 
+    /// Creates a FP from a slice of raw ints in Big from
+    pub fn new_ints(w: &[Chunk]) -> FP {
+        Self::new_big(Big::new_ints(w))
+    }
+
     pub fn new_big(x: Big) -> FP {
         let mut f = FP { x, xes: 1 };
         f.nres();
diff --git a/src/lib.rs b/src/lib.rs
index 909eb58..000bf7c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,6 +1,3 @@
-#[macro_use]
-extern crate lazy_static;
-
 #[cfg(test)]
 extern crate serde_json;
 #[cfg(test)]

Reply via email to