Dart Documentationbot_qrQrPolynomial

QrPolynomial class

class QrPolynomial {
  final List<int> _myThings;

  QrPolynomial._internal(this._myThings);

  factory	QrPolynomial(List<int> thing, int shift) {

    var offset = 0;

    while (offset < thing.length && thing[offset] == 0) {
      offset++;
    }

    final List<int> values = QrMath.getZeroedList(thing.length - offset + shift);

    for (var i = 0; i < thing.length - offset; i++) {
      values[i] = thing[i + offset];
    }

    return new QrPolynomial._internal(values);
  }

  operator [](int index) => _myThings[index];

  int get length => _myThings.length;

  QrPolynomial multiply(QrPolynomial e) {

    final List<int> foo = QrMath.getZeroedList(length + e.length - 1);

    for (var i = 0; i < length; i++) {
      for (var j = 0; j < e.length; j++) {
        foo[i + j] ^= QrMath.gexp(QrMath.glog(this[i]) + QrMath.glog(e[j]));
      }
    }

    return new QrPolynomial(foo, 0);
  }

  QrPolynomial mod(QrPolynomial e) {

    if (length - e.length < 0) {
      return this;
    }

    var ratio = QrMath.glog(this[0]) - QrMath.glog(e[0]);

    var thing = QrMath.getZeroedList(length);

    for (int i = 0; i < length; i++) {
      thing[i] = this[i];
    }

    for (int i = 0; i < e.length; i++) {
      thing[i] ^= QrMath.gexp(QrMath.glog(e[i]) + ratio);
    }

    // recursive call
    return (new QrPolynomial(thing, 0)).mod(e);
  }
}

Constructors

factory QrPolynomial(List<int> thing, int shift) #

factory	QrPolynomial(List<int> thing, int shift) {

  var offset = 0;

  while (offset < thing.length && thing[offset] == 0) {
    offset++;
  }

  final List<int> values = QrMath.getZeroedList(thing.length - offset + shift);

  for (var i = 0; i < thing.length - offset; i++) {
    values[i] = thing[i + offset];
  }

  return new QrPolynomial._internal(values);
}

new QrPolynomial._internal(List<int> _myThings) #

QrPolynomial._internal(this._myThings);

Properties

final int length #

int get length => _myThings.length;

final Type runtimeType #

inherited from Object

A representation of the runtime type of the object.

external Type get runtimeType;

Operators

operator [](int index) #

operator [](int index) => _myThings[index];

bool operator ==(other) #

inherited from Object

The equality operator.

The default behavior for all Objects is to return true if and only if this and other are the same object.

If a subclass overrides the equality operator it should override the hashCode method as well to maintain consistency.

bool operator ==(other) => identical(this, other);

Methods

int hashCode() #

inherited from Object

Get a hash code for this object.

All objects have hash codes. Hash codes are guaranteed to be the same for objects that are equal when compared using the equality operator ==. Other than that there are no guarantees about the hash codes. They will not be consistent between runs and there are no distribution guarantees.

If a subclass overrides hashCode it should override the equality operator as well to maintain consistency.

external int hashCode();

QrPolynomial mod(QrPolynomial e) #

QrPolynomial mod(QrPolynomial e) {

  if (length - e.length < 0) {
    return this;
  }

  var ratio = QrMath.glog(this[0]) - QrMath.glog(e[0]);

  var thing = QrMath.getZeroedList(length);

  for (int i = 0; i < length; i++) {
    thing[i] = this[i];
  }

  for (int i = 0; i < e.length; i++) {
    thing[i] ^= QrMath.gexp(QrMath.glog(e[i]) + ratio);
  }

  // recursive call
  return (new QrPolynomial(thing, 0)).mod(e);
}

QrPolynomial multiply(QrPolynomial e) #

QrPolynomial multiply(QrPolynomial e) {

  final List<int> foo = QrMath.getZeroedList(length + e.length - 1);

  for (var i = 0; i < length; i++) {
    for (var j = 0; j < e.length; j++) {
      foo[i + j] ^= QrMath.gexp(QrMath.glog(this[i]) + QrMath.glog(e[j]));
    }
  }

  return new QrPolynomial(foo, 0);
}

noSuchMethod(String name, List args) #

inherited from Object

noSuchMethod is invoked when users invoke a non-existant method on an object. The name of the method and the arguments of the invocation are passed to noSuchMethod. If noSuchMethod returns a value, that value becomes the result of the original invocation.

The default behavior of noSuchMethod is to throw a noSuchMethodError.

external Dynamic noSuchMethod(String name, List args);

const Object() #

inherited from Object

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

const Object();

factory QrPolynomial(List<int> thing, int shift) #

factory	QrPolynomial(List<int> thing, int shift) {

  var offset = 0;

  while (offset < thing.length && thing[offset] == 0) {
    offset++;
  }

  final List<int> values = QrMath.getZeroedList(thing.length - offset + shift);

  for (var i = 0; i < thing.length - offset; i++) {
    values[i] = thing[i + offset];
  }

  return new QrPolynomial._internal(values);
}

new QrPolynomial._internal(List<int> _myThings) #

QrPolynomial._internal(this._myThings);

String toString() #

inherited from Object

Returns a string representation of this object.

external String toString();