Commits

Timwi  committed 4b66bb0

Apply the same performance optimisation to "insert element"

  • Participants
  • Parent commits f9fe09e

Comments (0)

Files changed (1)

File lib/lists.fnc

          ║  »(l) = let b = ᴚ(l, 1);              ║   ╚════╝ ┌─┴──╖  ┌─┴─╖  ┌─┴─┐    ┌┴┐
          ║         let (f, _) = ‹(l >> b);       ║          │ << ╟──┤ · ╟──┤   │    └┬┘
          ║         [l & ¬(−1 << b), f]           ║          ╘═╤══╝  ╘═╤═╝  └───┘    ─┘
-         ╚═══════════════════════════════════════╝            └───────┘           
+         ╚═══════════════════════════════════════╝            └───────┘
 
                                                            ┌──────────────────┐
                                                            │                ┌─┴─╖
       └──────────┬─────┘     ╚═══╝
 
-        ┌──────────────────────────────────────────────────────────────┐
-        ├───────────────────────────────────────┐        ╓───╖  ┌───╖  │
-        │  ╔═════════════════════════════════╗  └────────╢ ɪ ╟──┤ ʁ ╟──┘
-        │  ║  insert element at index        ║           ╙─┬─╜  ╘═╤═╝
-        │  ╟─────────────────────────────────╢           ┌─┴─╖    │
-        │  ║  ɪ(l, e, i) = let b = ʁ(l, i);  ║  ┌────────┤ · ╟──┐ │
-        │  ║      (l & ((1 << b) − 1)) |     ║  │        ╘═╤═╝  │ │
-        │  ║        (›(l >> b, e) << b)      ║  │┌────╖  ┌─┴─╖  │ │
-        │  ╚═════════════════════════════════╝┌─┴┤ << ╟──┤ › ║  ├─┘
-        │                   ╔═══╗  ┌───╖  ┌───┴╖ ╘═╤══╝  ╘═╤═╝  │
-        │                   ║ 1 ╟──┤ − ╟──┤ << ║   │     ┌─┴──╖ │
-        │                   ╚═══╝  ╘═╤═╝  ╘═╤══╝   │  ┌──┤ >> ╟─┘
-        │                            │    ╔═╧═╗   ┌┴┐ │  ╘════╝
-        │                            │    ║ 1 ║   └┬┘ │
-        │                            │    ╚═══╝    │  │
-        │                            ├──────┬──────┘  │
-        └────────────────────────────┤      │         │
-                                     └────────────────┘
+           ┌───────────────────────────────────────────────────────┐
+           │                                         ╓───╖  ┌───╖  │
+           ├─────────────────────────────────────────╢ ɪ ╟──┤ ʁ ╟──┘
+           │  ╔════════════════╗                     ╙─┬─╜  ╘═╤═╝
+           │  ║  insert        ║                     ┌─┴─╖    │
+           │  ║  element at    ║           ┌─────────┤ · ╟──┐ │
+           │  ║  index         ║           │         ╘═╤═╝  │ │
+           │  ╟────────────────╢           │ ┌────╖  ┌─┴─╖  │ │
+           │  ║  ɪ(l, e, i) =  ║        ┌──┴─┤ << ╟──┤ › ║  ├─┘
+           │  ║    let b =     ║      ┌─┴──╖ ╘═╤══╝  ╘═╤═╝  │
+           │  ║      ʁ(l, i);  ║  ┌───┤ << ║   │     ┌─┴──╖ │
+           │  ║    (l & ¬(−1   ║  │   ╘═╤══╝   │  ┌──┤ >> ╟─┘
+           │  ║      << b)) |  ║ ┌┴┐  ╔═╧══╗  ┌┴┐ │  ╘════╝
+           │  ║    (›(l >> b,  ║ └┬┘  ║ −1 ║  └┬┘ │
+           │  ║      e) << b)  ║  │   ╚════╝   │  │
+           │  ╚════════════════╝  ├─────┬──────┘  │
+           └──────────────────────┤     │         │
+                                  └───────────────┘
                                                                  ╓┬───╖
                                                           ┌──────╫┘ᴙp ╟──────┐
         ╔════════════════════════════╗     ╓───╖       ┌──┴─┐    ╙────╜    ┌─┴──┐