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 #
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) #
The equality operator.
The default behavior for all Object
s 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() #
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) #
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() #
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() #
Returns a string representation of this object.
external String toString();