aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js
diff options
context:
space:
mode:
authorMyles Borins <myles.borins@gmail.com>2017-10-26 22:35:25 -0400
committerMyles Borins <myles.borins@gmail.com>2017-10-29 21:32:15 -0400
commitace4fe566fc3af4876c7458f983feeb5eae3df26 (patch)
tree458d847e9bd56199cd0d8b34cec126c7410fb6ca /deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js
parent64168eb9b43e30e4c0b986c9b29c41be63e85df6 (diff)
downloadandroid-node-v8-ace4fe566fc3af4876c7458f983feeb5eae3df26.tar.gz
android-node-v8-ace4fe566fc3af4876c7458f983feeb5eae3df26.tar.bz2
android-node-v8-ace4fe566fc3af4876c7458f983feeb5eae3df26.zip
deps: update npm to 5.5.1
Closes: https://github.com/nodejs/node/pull/16280 PR-URL: https://github.com/nodejs/node/pull/16509 Fixes: https://github.com/nodejs/node/issues/14161 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Diffstat (limited to 'deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js')
-rw-r--r--deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js
new file mode 100644
index 0000000000..f8754cbcb4
--- /dev/null
+++ b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js
@@ -0,0 +1,66 @@
+var QRMath = require('./QRMath');
+
+function QRPolynomial(num, shift) {
+ if (num.length === undefined) {
+ throw new Error(num.length + "/" + shift);
+ }
+
+ var offset = 0;
+
+ while (offset < num.length && num[offset] === 0) {
+ offset++;
+ }
+
+ this.num = new Array(num.length - offset + shift);
+ for (var i = 0; i < num.length - offset; i++) {
+ this.num[i] = num[i + offset];
+ }
+}
+
+QRPolynomial.prototype = {
+
+ get : function(index) {
+ return this.num[index];
+ },
+
+ getLength : function() {
+ return this.num.length;
+ },
+
+ multiply : function(e) {
+
+ var num = new Array(this.getLength() + e.getLength() - 1);
+
+ for (var i = 0; i < this.getLength(); i++) {
+ for (var j = 0; j < e.getLength(); j++) {
+ num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i) ) + QRMath.glog(e.get(j) ) );
+ }
+ }
+
+ return new QRPolynomial(num, 0);
+ },
+
+ mod : function(e) {
+
+ if (this.getLength() - e.getLength() < 0) {
+ return this;
+ }
+
+ var ratio = QRMath.glog(this.get(0) ) - QRMath.glog(e.get(0) );
+
+ var num = new Array(this.getLength() );
+
+ for (var i = 0; i < this.getLength(); i++) {
+ num[i] = this.get(i);
+ }
+
+ for (var x = 0; x < e.getLength(); x++) {
+ num[x] ^= QRMath.gexp(QRMath.glog(e.get(x) ) + ratio);
+ }
+
+ // recursive call
+ return new QRPolynomial(num, 0).mod(e);
+ }
+};
+
+module.exports = QRPolynomial;