OLD | NEW |
1 var math; | 1 var math; |
2 (function(exports) { | 2 (function(exports) { |
3 'use strict'; | 3 'use strict'; |
4 class _JenkinsSmiHash extends core.Object { | 4 class _JenkinsSmiHash extends core.Object { |
5 static combine(hash, value) { | 5 static combine(hash, value) { |
6 hash = 536870911 & dart.notNull(hash) + dart.notNull(value); | 6 hash = 536870911 & dart.notNull(hash) + dart.notNull(value); |
7 hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) <<
10); | 7 hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) <<
10); |
8 return dart.notNull(hash) ^ dart.notNull(hash) >> 6; | 8 return dart.notNull(hash) ^ dart.notNull(hash) >> 6; |
9 } | 9 } |
10 static finish(hash) { | 10 static finish(hash) { |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 nextDouble() { | 313 nextDouble() { |
314 return Math.random(); | 314 return Math.random(); |
315 } | 315 } |
316 nextBool() { | 316 nextBool() { |
317 return Math.random() < 0.5; | 317 return Math.random() < 0.5; |
318 } | 318 } |
319 } | 319 } |
320 _JSRandom[dart.implements] = () => [Random]; | 320 _JSRandom[dart.implements] = () => [Random]; |
321 let _lo = Symbol('_lo'); | 321 let _lo = Symbol('_lo'); |
322 let _hi = Symbol('_hi'); | 322 let _hi = Symbol('_hi'); |
323 let _MASK32 = Symbol('_MASK32'); | |
324 let _nextState = Symbol('_nextState'); | 323 let _nextState = Symbol('_nextState'); |
325 let _POW2_27_D = Symbol('_POW2_27_D'); | |
326 let _POW2_53_D = Symbol('_POW2_53_D'); | |
327 class _Random extends core.Object { | 324 class _Random extends core.Object { |
328 _Random(seed) { | 325 _Random(seed) { |
329 this[_lo] = 0; | 326 this[_lo] = 0; |
330 this[_hi] = 0; | 327 this[_hi] = 0; |
331 let empty_seed = 0; | 328 let empty_seed = 0; |
332 if (dart.notNull(seed) < 0) { | 329 if (dart.notNull(seed) < 0) { |
333 empty_seed = -1; | 330 empty_seed = -1; |
334 } | 331 } |
335 do { | 332 do { |
336 let low = dart.notNull(seed) & dart.notNull(_Random[_MASK32]); | 333 let low = dart.notNull(seed) & dart.notNull(_Random._MASK32); |
337 seed = ((dart.notNull(seed) - dart.notNull(low)) / dart.notNull(_POW2_32
)).truncate(); | 334 seed = ((dart.notNull(seed) - dart.notNull(low)) / dart.notNull(_POW2_32
)).truncate(); |
338 let high = dart.notNull(seed) & dart.notNull(_Random[_MASK32]); | 335 let high = dart.notNull(seed) & dart.notNull(_Random._MASK32); |
339 seed = ((dart.notNull(seed) - dart.notNull(high)) / dart.notNull(_POW2_3
2)).truncate(); | 336 seed = ((dart.notNull(seed) - dart.notNull(high)) / dart.notNull(_POW2_3
2)).truncate(); |
340 let tmplow = dart.notNull(low) << 21; | 337 let tmplow = dart.notNull(low) << 21; |
341 let tmphigh = dart.notNull(high) << 21 | dart.notNull(low) >> 11; | 338 let tmphigh = dart.notNull(high) << 21 | dart.notNull(low) >> 11; |
342 tmplow = (~dart.notNull(low) & dart.notNull(_Random[_MASK32])) + dart.no
tNull(tmplow); | 339 tmplow = (~dart.notNull(low) & dart.notNull(_Random._MASK32)) + dart.not
Null(tmplow); |
343 low = dart.notNull(tmplow) & dart.notNull(_Random[_MASK32]); | 340 low = dart.notNull(tmplow) & dart.notNull(_Random._MASK32); |
344 high = ~dart.notNull(high) + dart.notNull(tmphigh) + ((dart.notNull(tmpl
ow) - dart.notNull(low)) / 4294967296).truncate() & dart.notNull(_Random[_MASK32
]); | 341 high = ~dart.notNull(high) + dart.notNull(tmphigh) + ((dart.notNull(tmpl
ow) - dart.notNull(low)) / 4294967296).truncate() & dart.notNull(_Random._MASK32
); |
345 tmphigh = dart.notNull(high) >> 24; | 342 tmphigh = dart.notNull(high) >> 24; |
346 tmplow = dart.notNull(low) >> 24 | dart.notNull(high) << 8; | 343 tmplow = dart.notNull(low) >> 24 | dart.notNull(high) << 8; |
347 low = dart.notNull(low) ^ dart.notNull(tmplow); | 344 low = dart.notNull(low) ^ dart.notNull(tmplow); |
348 high = dart.notNull(high) ^ dart.notNull(tmphigh); | 345 high = dart.notNull(high) ^ dart.notNull(tmphigh); |
349 tmplow = dart.notNull(low) * 265; | 346 tmplow = dart.notNull(low) * 265; |
350 low = dart.notNull(tmplow) & dart.notNull(_Random[_MASK32]); | 347 low = dart.notNull(tmplow) & dart.notNull(_Random._MASK32); |
351 high = dart.notNull(high) * 265 + ((dart.notNull(tmplow) - dart.notNull(
low)) / 4294967296).truncate() & dart.notNull(_Random[_MASK32]); | 348 high = dart.notNull(high) * 265 + ((dart.notNull(tmplow) - dart.notNull(
low)) / 4294967296).truncate() & dart.notNull(_Random._MASK32); |
352 tmphigh = dart.notNull(high) >> 14; | 349 tmphigh = dart.notNull(high) >> 14; |
353 tmplow = dart.notNull(low) >> 14 | dart.notNull(high) << 18; | 350 tmplow = dart.notNull(low) >> 14 | dart.notNull(high) << 18; |
354 low = dart.notNull(low) ^ dart.notNull(tmplow); | 351 low = dart.notNull(low) ^ dart.notNull(tmplow); |
355 high = dart.notNull(high) ^ dart.notNull(tmphigh); | 352 high = dart.notNull(high) ^ dart.notNull(tmphigh); |
356 tmplow = dart.notNull(low) * 21; | 353 tmplow = dart.notNull(low) * 21; |
357 low = dart.notNull(tmplow) & dart.notNull(_Random[_MASK32]); | 354 low = dart.notNull(tmplow) & dart.notNull(_Random._MASK32); |
358 high = dart.notNull(high) * 21 + ((dart.notNull(tmplow) - dart.notNull(l
ow)) / 4294967296).truncate() & dart.notNull(_Random[_MASK32]); | 355 high = dart.notNull(high) * 21 + ((dart.notNull(tmplow) - dart.notNull(l
ow)) / 4294967296).truncate() & dart.notNull(_Random._MASK32); |
359 tmphigh = dart.notNull(high) >> 28; | 356 tmphigh = dart.notNull(high) >> 28; |
360 tmplow = dart.notNull(low) >> 28 | dart.notNull(high) << 4; | 357 tmplow = dart.notNull(low) >> 28 | dart.notNull(high) << 4; |
361 low = dart.notNull(low) ^ dart.notNull(tmplow); | 358 low = dart.notNull(low) ^ dart.notNull(tmplow); |
362 high = dart.notNull(high) ^ dart.notNull(tmphigh); | 359 high = dart.notNull(high) ^ dart.notNull(tmphigh); |
363 tmplow = dart.notNull(low) << 31; | 360 tmplow = dart.notNull(low) << 31; |
364 tmphigh = dart.notNull(high) << 31 | dart.notNull(low) >> 1; | 361 tmphigh = dart.notNull(high) << 31 | dart.notNull(low) >> 1; |
365 tmplow = dart.notNull(tmplow) + dart.notNull(low); | 362 tmplow = dart.notNull(tmplow) + dart.notNull(low); |
366 low = dart.notNull(tmplow) & dart.notNull(_Random[_MASK32]); | 363 low = dart.notNull(tmplow) & dart.notNull(_Random._MASK32); |
367 high = dart.notNull(high) + dart.notNull(tmphigh) + ((dart.notNull(tmplo
w) - dart.notNull(low)) / 4294967296).truncate() & dart.notNull(_Random[_MASK32]
); | 364 high = dart.notNull(high) + dart.notNull(tmphigh) + ((dart.notNull(tmplo
w) - dart.notNull(low)) / 4294967296).truncate() & dart.notNull(_Random._MASK32)
; |
368 tmplow = dart.notNull(this[_lo]) * 1037; | 365 tmplow = dart.notNull(this[_lo]) * 1037; |
369 this[_lo] = dart.notNull(tmplow) & dart.notNull(_Random[_MASK32]); | 366 this[_lo] = dart.notNull(tmplow) & dart.notNull(_Random._MASK32); |
370 this[_hi] = dart.notNull(this[_hi]) * 1037 + ((dart.notNull(tmplow) - da
rt.notNull(this[_lo])) / 4294967296).truncate() & dart.notNull(_Random[_MASK32])
; | 367 this[_hi] = dart.notNull(this[_hi]) * 1037 + ((dart.notNull(tmplow) - da
rt.notNull(this[_lo])) / 4294967296).truncate() & dart.notNull(_Random._MASK32); |
371 this[_lo] = dart.notNull(this[_lo]) ^ dart.notNull(low); | 368 this[_lo] = dart.notNull(this[_lo]) ^ dart.notNull(low); |
372 this[_hi] = dart.notNull(this[_hi]) ^ dart.notNull(high); | 369 this[_hi] = dart.notNull(this[_hi]) ^ dart.notNull(high); |
373 } while (seed != empty_seed); | 370 } while (seed != empty_seed); |
374 if (this[_hi] == 0 && this[_lo] == 0) { | 371 if (this[_hi] == 0 && this[_lo] == 0) { |
375 this[_lo] = 23063; | 372 this[_lo] = 23063; |
376 } | 373 } |
377 this[_nextState](); | 374 this[_nextState](); |
378 this[_nextState](); | 375 this[_nextState](); |
379 this[_nextState](); | 376 this[_nextState](); |
380 this[_nextState](); | 377 this[_nextState](); |
381 } | 378 } |
382 [_nextState]() { | 379 [_nextState]() { |
383 let tmpHi = 4294901760 * dart.notNull(this[_lo]); | 380 let tmpHi = 4294901760 * dart.notNull(this[_lo]); |
384 let tmpHiLo = dart.notNull(tmpHi) & dart.notNull(_Random[_MASK32]); | 381 let tmpHiLo = dart.notNull(tmpHi) & dart.notNull(_Random._MASK32); |
385 let tmpHiHi = dart.notNull(tmpHi) - dart.notNull(tmpHiLo); | 382 let tmpHiHi = dart.notNull(tmpHi) - dart.notNull(tmpHiLo); |
386 let tmpLo = 55905 * dart.notNull(this[_lo]); | 383 let tmpLo = 55905 * dart.notNull(this[_lo]); |
387 let tmpLoLo = dart.notNull(tmpLo) & dart.notNull(_Random[_MASK32]); | 384 let tmpLoLo = dart.notNull(tmpLo) & dart.notNull(_Random._MASK32); |
388 let tmpLoHi = dart.notNull(tmpLo) - dart.notNull(tmpLoLo); | 385 let tmpLoHi = dart.notNull(tmpLo) - dart.notNull(tmpLoLo); |
389 let newLo = dart.notNull(tmpLoLo) + dart.notNull(tmpHiLo) + dart.notNull(t
his[_hi]); | 386 let newLo = dart.notNull(tmpLoLo) + dart.notNull(tmpHiLo) + dart.notNull(t
his[_hi]); |
390 this[_lo] = dart.notNull(newLo) & dart.notNull(_Random[_MASK32]); | 387 this[_lo] = dart.notNull(newLo) & dart.notNull(_Random._MASK32); |
391 let newLoHi = dart.notNull(newLo) - dart.notNull(this[_lo]); | 388 let newLoHi = dart.notNull(newLo) - dart.notNull(this[_lo]); |
392 this[_hi] = ((dart.notNull(tmpLoHi) + dart.notNull(tmpHiHi) + dart.notNull
(newLoHi)) / dart.notNull(_POW2_32)).truncate() & dart.notNull(_Random[_MASK32])
; | 389 this[_hi] = ((dart.notNull(tmpLoHi) + dart.notNull(tmpHiHi) + dart.notNull
(newLoHi)) / dart.notNull(_POW2_32)).truncate() & dart.notNull(_Random._MASK32); |
393 dart.assert(dart.notNull(this[_lo]) < dart.notNull(_POW2_32)); | 390 dart.assert(dart.notNull(this[_lo]) < dart.notNull(_POW2_32)); |
394 dart.assert(dart.notNull(this[_hi]) < dart.notNull(_POW2_32)); | 391 dart.assert(dart.notNull(this[_hi]) < dart.notNull(_POW2_32)); |
395 } | 392 } |
396 nextInt(max) { | 393 nextInt(max) { |
397 if (dart.notNull(max) <= 0 || dart.notNull(max) > dart.notNull(_POW2_32))
{ | 394 if (dart.notNull(max) <= 0 || dart.notNull(max) > dart.notNull(_POW2_32))
{ |
398 throw new core.RangeError(`max must be in range 0 < max ≤ 2^32, was ${ma
x}`); | 395 throw new core.RangeError(`max must be in range 0 < max ≤ 2^32, was ${ma
x}`); |
399 } | 396 } |
400 if ((dart.notNull(max) & dart.notNull(max) - 1) == 0) { | 397 if ((dart.notNull(max) & dart.notNull(max) - 1) == 0) { |
401 this[_nextState](); | 398 this[_nextState](); |
402 return dart.notNull(this[_lo]) & dart.notNull(max) - 1; | 399 return dart.notNull(this[_lo]) & dart.notNull(max) - 1; |
403 } | 400 } |
404 let rnd32 = null; | 401 let rnd32 = null; |
405 let result = null; | 402 let result = null; |
406 do { | 403 do { |
407 this[_nextState](); | 404 this[_nextState](); |
408 rnd32 = this[_lo]; | 405 rnd32 = this[_lo]; |
409 result = rnd32.remainder(max); | 406 result = rnd32.remainder(max); |
410 } while (dart.notNull(rnd32) - dart.notNull(result) + dart.notNull(max) >=
dart.notNull(_POW2_32)); | 407 } while (dart.notNull(rnd32) - dart.notNull(result) + dart.notNull(max) >=
dart.notNull(_POW2_32)); |
411 return result; | 408 return result; |
412 } | 409 } |
413 nextDouble() { | 410 nextDouble() { |
414 this[_nextState](); | 411 this[_nextState](); |
415 let bits26 = dart.notNull(this[_lo]) & (1 << 26) - 1; | 412 let bits26 = dart.notNull(this[_lo]) & (1 << 26) - 1; |
416 this[_nextState](); | 413 this[_nextState](); |
417 let bits27 = dart.notNull(this[_lo]) & (1 << 27) - 1; | 414 let bits27 = dart.notNull(this[_lo]) & (1 << 27) - 1; |
418 return (dart.notNull(bits26) * dart.notNull(_Random[_POW2_27_D]) + dart.no
tNull(bits27)) / dart.notNull(_Random[_POW2_53_D]); | 415 return (dart.notNull(bits26) * dart.notNull(_Random._POW2_27_D) + dart.not
Null(bits27)) / dart.notNull(_Random._POW2_53_D); |
419 } | 416 } |
420 nextBool() { | 417 nextBool() { |
421 this[_nextState](); | 418 this[_nextState](); |
422 return (dart.notNull(this[_lo]) & 1) == 0; | 419 return (dart.notNull(this[_lo]) & 1) == 0; |
423 } | 420 } |
424 } | 421 } |
425 _Random[dart.implements] = () => [Random]; | 422 _Random[dart.implements] = () => [Random]; |
426 _Random._POW2_53_D = 1.0 * 9007199254740992; | 423 _Random._POW2_53_D = 1.0 * 9007199254740992; |
427 _Random._POW2_27_D = 1.0 * (1 << 27); | 424 _Random._POW2_27_D = 1.0 * (1 << 27); |
428 _Random._MASK32 = 4294967295; | 425 _Random._MASK32 = 4294967295; |
(...skipping 20 matching lines...) Expand all Loading... |
449 exports.sin = sin; | 446 exports.sin = sin; |
450 exports.cos = cos; | 447 exports.cos = cos; |
451 exports.tan = tan; | 448 exports.tan = tan; |
452 exports.acos = acos; | 449 exports.acos = acos; |
453 exports.asin = asin; | 450 exports.asin = asin; |
454 exports.atan = atan; | 451 exports.atan = atan; |
455 exports.sqrt = sqrt; | 452 exports.sqrt = sqrt; |
456 exports.exp = exp; | 453 exports.exp = exp; |
457 exports.log = log; | 454 exports.log = log; |
458 })(math || (math = {})); | 455 })(math || (math = {})); |
OLD | NEW |