12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- var RTL$ = {
- makeSet: function (/*...*/){
- var result = 0;
-
- function checkBit(b){
- if (b < 0 || b > 31)
- throw new Error("integes between 0 and 31 expected, got " + b);
- }
- function setBit(b){
- checkBit(b);
- result |= 1 << b;
- }
-
- for(var i = 0; i < arguments.length; ++i){
- var b = arguments[i];
- if (b instanceof Array){
- var from = b[0];
- var to = b[1];
- if (from < to)
- throw new Error("invalid SET diapason: " + from + ".." + to);
- for(var bi = from; bi <= to; ++bi)
- setBit(bi);
- }
- else
- setBit(b);
- }
- return result;
- },
- setInclL: function (l, r){return (l & r) == l;},
- setInclR: function (l, r){return (l & r) == r;}
- };
- var m = function (){
- var ci = 3;
- var cs1 = 2 | 4;
- var cs2 = 14 & ~18;
- var cs3 = 14 & 18;
- var cs4 = 14 ^ 18;
- var cs5 = ~2;
- var s1 = 0;var s2 = 0;
- var i1 = 0;
- var b = false;
- function getSet1(){
- return 2;
- }
- function getSet2(){
- return 4;
- }
- s1 = 0;
- s1 = 61;
- s1 = 8;
- s1 = 64;
- i1 = 3;
- s2 = RTL$.makeSet(i1, i1 + 2, [10 - i1, 15]);
- s2 = RTL$.makeSet(i1) | 4;
- b = 1 << i1 & s1;
- b = RTL$.setInclL(s1, s2);
- b = RTL$.setInclR(s1, s2);
- b = RTL$.setInclL(getSet1(), getSet2());
- b = RTL$.setInclR(getSet1(), getSet2());
- b = RTL$.setInclL(cs1, cs2);
- b = RTL$.setInclR(cs1, cs2);
- b = RTL$.setInclL(cs1 | cs2, cs1 | cs2);
- b = RTL$.setInclR(cs1 | cs2, cs2 | cs1);
- b = RTL$.setInclL(2 | 4, 2 | 4);
- b = RTL$.setInclR(2 | 4, 4 | 2);
- b = s1 == s2;
- b = s1 != s2;
- s1 = s1 | s2;
- s1 = s1 & ~s2;
- s1 = s1 & s2;
- s1 = s1 ^ s2;
- s1 = ~s2;
- s2 |= 1 << 3;
- s1 |= 1 << ci * 2 + 3;
- s1 |= 1 << ci * 2 - i1 + 3;
- s1 |= 1 << (b ? 1 : 0);
- s2 &= ~(1 << 3);
- s2 &= ~(1 << (b ? 1 : 0));
- }();
|