QrMath class
class QrMath { static ReadOnlyCollection<int> _logTable; static ReadOnlyCollection<int> _expTable; static List<int> getZeroedList(int count) { final l = new List<int>(); l.insertRange(0, count, 0); return l; } static glog(n) { if (n < 1) { throw 'glog($n)'; } return LOG_TABLE[n]; } static gexp(n) { while (n < 0) { n += 255; } while (n >= 256) { n -= 255; } return EXP_TABLE[n]; } static get EXP_TABLE { if(_expTable == null) { var t = QrMath.getZeroedList(256); for (int i = 0; i < 8; i++) { t[i] = 1 << i; } for (int i = 8; i < 256; i++) { t[i] = t[i - 4] ^ t[i - 5] ^ t[i - 6] ^ t[i - 8]; } _expTable = new ReadOnlyCollection.wrap(t); } return _expTable; } static get LOG_TABLE { if(_logTable == null) { var t = QrMath.getZeroedList(256); // this was the code I had in pl // only to 255? seems really weird for (int i = 0; i < 255; i++) { t[EXP_TABLE[i]] = i; } _logTable = new ReadOnlyCollection.wrap(t); } return _logTable; } }
Static Properties
final EXP_TABLE #
static get EXP_TABLE { if(_expTable == null) { var t = QrMath.getZeroedList(256); for (int i = 0; i < 8; i++) { t[i] = 1 << i; } for (int i = 8; i < 256; i++) { t[i] = t[i - 4] ^ t[i - 5] ^ t[i - 6] ^ t[i - 8]; } _expTable = new ReadOnlyCollection.wrap(t); } return _expTable; }
final LOG_TABLE #
static get LOG_TABLE { if(_logTable == null) { var t = QrMath.getZeroedList(256); // this was the code I had in pl // only to 255? seems really weird for (int i = 0; i < 255; i++) { t[EXP_TABLE[i]] = i; } _logTable = new ReadOnlyCollection.wrap(t); } return _logTable; }
Static Methods
List<int> getZeroedList(int count) #
static List<int> getZeroedList(int count) { final l = new List<int>(); l.insertRange(0, count, 0); return l; }
glog(n) #
static glog(n) { if (n < 1) { throw 'glog($n)'; } return LOG_TABLE[n]; }
gexp(n) #
static gexp(n) { while (n < 0) { n += 255; } while (n >= 256) { n -= 255; } return EXP_TABLE[n]; }
Properties
final Type runtimeType #
A representation of the runtime type of the object.
external Type get runtimeType;
Operators
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();
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();
String toString() #
Returns a string representation of this object.
external String toString();