|
1 |
| -/** |
2 |
| - * Inlined version, small improvement, 1mln random integer inserts: |
3 |
| - * |
4 |
| - * 1.83s |
5 |
| - * rss 248.05 MB |
6 |
| - * heapTotal 219.61 MB |
7 |
| - * heapUsed 117.88 MB |
8 |
| - * external 0.25 MB |
9 |
| - * arrayBuffers 0.01 MB |
10 |
| - * |
11 |
| - * vs original: |
12 |
| - * |
13 |
| - * 1.85s |
14 |
| - * rss 248.34 MB |
15 |
| - * heapTotal 219.36 MB |
16 |
| - * heapUsed 126.33 MB |
17 |
| - * external 0.25 MB |
18 |
| - * arrayBuffers 0.01 MB |
19 |
| - * |
20 |
| - */ |
| 1 | +// /** |
| 2 | +// * Inlined version, small improvement, 1mln random integer inserts: |
| 3 | +// * |
| 4 | +// * 1.83s |
| 5 | +// * rss 248.05 MB |
| 6 | +// * heapTotal 219.61 MB |
| 7 | +// * heapUsed 117.88 MB |
| 8 | +// * external 0.25 MB |
| 9 | +// * arrayBuffers 0.01 MB |
| 10 | +// * |
| 11 | +// * vs original: |
| 12 | +// * |
| 13 | +// * 1.85s |
| 14 | +// * rss 248.34 MB |
| 15 | +// * heapTotal 219.36 MB |
| 16 | +// * heapUsed 126.33 MB |
| 17 | +// * external 0.25 MB |
| 18 | +// * arrayBuffers 0.01 MB |
| 19 | +// * |
| 20 | +// */ |
21 | 21 |
|
22 |
| -import { R, B, BB, M } from './prelude.js' |
| 22 | +// import { R, B, BB, M } from './prelude.js' |
23 | 23 |
|
24 |
| -const balance = |
25 |
| - <T>(_: M<T>): M<T> => { |
26 |
| - switch (true) { |
27 |
| - case _.c === B && _.l?.c === R && _.l.l?.c === R: |
28 |
| - return { c: R, l: { c: B, l: _.l!.l!.l, v: _.l!.l!.v, r: _.l!.l!.r }, v: _.l!.v, r: { c: B, l: _.l!.r, v: _.v, r: _.r } } |
29 |
| - case _.c === B && _.l?.c === R && _.l.r?.c === R: |
30 |
| - return { c: R, l: { c: B, l: _.l!.l, v: _.l!.v, r: _.l!.r!.l }, v: _.l!.r!.v, r: { c: B, l: _.l!.r!.r, v: _.v, r: _.r } } |
31 |
| - case _.c === B && _.r?.c === R && _.r.l?.c === R: |
32 |
| - return { c: R, l: { c: B, l: _.l, v: _.v, r: _.r!.l!.l }, v: _.r!.l!.v, r: { c: B, l: _.r!.l!.r, v: _.r!.v, r: _.r!.r } } |
33 |
| - case _.c === B && _.r?.c === R && _.r.r?.c === R: |
34 |
| - return { c: R, l: { c: B, l: _.l, v: _.v, r: _.r!.l }, v: _.r!.v, r: { c: B, l: _.r!.r!.l, v: _.r!.r!.v, r: _.r!.r!.r } } |
35 |
| - case _.c === BB && _.r?.c === R && _.r.l?.c === R: |
36 |
| - return { c: B, l: { c: B, l: _.l, v: _.v, r: _.r!.l!.l }, v: _.r!.l!.v, r: { c: B, l: _.r!.l!.r, v: _.r!.v, r: _.r!.r } } |
37 |
| - case _.c === BB && _.l?.c === R && _.l.r?.c === R: |
38 |
| - return { c: B, l: { c: B, l: _.l!.l, v: _.l!.v, r: _.l!.r!.l }, v: _.l!.r!.v, r: { c: B, l: _.l!.r!.r, v: _.v, r: _.r } } |
39 |
| - default: |
40 |
| - return _ |
41 |
| - } |
42 |
| - } |
| 24 | +// const balance = |
| 25 | +// <T>(_: M<T>): M<T> => { |
| 26 | +// switch (true) { |
| 27 | +// case _.c === B && _.l?.c === R && _.l.l?.c === R: |
| 28 | +// return { c: R, l: { c: B, l: _.l!.l!.l, v: _.l!.l!.v, r: _.l!.l!.r }, v: _.l!.v, r: { c: B, l: _.l!.r, v: _.v, r: _.r } } |
| 29 | +// case _.c === B && _.l?.c === R && _.l.r?.c === R: |
| 30 | +// return { c: R, l: { c: B, l: _.l!.l, v: _.l!.v, r: _.l!.r!.l }, v: _.l!.r!.v, r: { c: B, l: _.l!.r!.r, v: _.v, r: _.r } } |
| 31 | +// case _.c === B && _.r?.c === R && _.r.l?.c === R: |
| 32 | +// return { c: R, l: { c: B, l: _.l, v: _.v, r: _.r!.l!.l }, v: _.r!.l!.v, r: { c: B, l: _.r!.l!.r, v: _.r!.v, r: _.r!.r } } |
| 33 | +// case _.c === B && _.r?.c === R && _.r.r?.c === R: |
| 34 | +// return { c: R, l: { c: B, l: _.l, v: _.v, r: _.r!.l }, v: _.r!.v, r: { c: B, l: _.r!.r!.l, v: _.r!.r!.v, r: _.r!.r!.r } } |
| 35 | +// case _.c === BB && _.r?.c === R && _.r.l?.c === R: |
| 36 | +// return { c: B, l: { c: B, l: _.l, v: _.v, r: _.r!.l!.l }, v: _.r!.l!.v, r: { c: B, l: _.r!.l!.r, v: _.r!.v, r: _.r!.r } } |
| 37 | +// case _.c === BB && _.l?.c === R && _.l.r?.c === R: |
| 38 | +// return { c: B, l: { c: B, l: _.l!.l, v: _.l!.v, r: _.l!.r!.l }, v: _.l!.r!.v, r: { c: B, l: _.l!.r!.r, v: _.v, r: _.r } } |
| 39 | +// default: |
| 40 | +// return _ |
| 41 | +// } |
| 42 | +// } |
43 | 43 |
|
44 |
| -export default balance |
| 44 | +// export default balance |
0 commit comments