Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TODO #2

Open
6 of 27 tasks
Validark opened this issue Jul 12, 2022 · 0 comments
Open
6 of 27 tasks

TODO #2

Validark opened this issue Jul 12, 2022 · 0 comments

Comments

@Validark
Copy link
Owner

Validark commented Jul 12, 2022

Demo

  • Make transition from Completion Trie to decomposed trie animate the vertical linked lists into the parent nodes
  • Dark mode
  • Shift the Completion Trie and subsequent diagrams upwards slightly by default?

Paper

  • Fix font inconsistency across platforms
    • Currently, Figures 1-3 use the "serif" font-family, which becomes the default serif font on whatever the target platform is. For consistency, a dynamically loaded font should be used or the text should be converted to paths.
      • At present, I'd prefer a dynamically loaded font
    • Change the Big-Theta from Georgia to a dynamically loaded font
    • Consider moving all diagrams to monospace or the KaTeX_Main font?
  • Where $\large n$ and $\large bp[i]$ are identical, we should remove $\large n$ in favor of $\large bp[i]$
  • Add an "Experimental Analysis" section
    • The main problem I have with this is that performance characteristics may vary by implementation. Maybe I will support an analysis for each of them, but without scripts only one will be shown?
    • Decide: Should I have a performance comparison with an implementation of the Completion Trie? Just horizontally sorted or should I include the totally unsorted Completion Trie as well?
    • Diagrams I am thinking to include:
      • How $\large k$ correlates with runtime
        • This will only use those prefix queries which are in the top-10 or top-100 of number of total completions in the entire dataset
      • How number of completions to a query (for all possible prefix string queries) correlates with runtime (when $\large k$ is set to 10)
  • Submit to some academic platforms

Code

  • Add implementations!
    • I am open to Pull Requests from others for more implementations!

    • C-sharp This was the original version!
    • TypeScript The initial implementation only exists to closely match the pseudocode in the paper, and the pseudocode was actually based on the C# version. The problem with the direct port is that the C# version wraps nodes in tuples, which are values, not actual objects with lifetimes. However, in TS/JS, there is no such concept, just objects. Hence, the TS version should have the LCP values moved into the node that it actually describes, to cut the number of JS objects in half.
    • Lua Should be pretty easy to port from TypeScript, especially given my extensive experience developing https://roblox-ts.com/. Could probably be largely auto-generated.
    • Java Should be pretty similar to C#, right?
    • Zig All your codebase are belong to us!
      • Maybe do some nice compression of the data structure?
    • Python I don't actually "know python" yet, but the constructs I need to write this library should be pretty trivial.
    • Go fast!
    • Markdown Make a table that displays the supported features for each version. More than likely, the initial implementation for many languages may not have numeric compression initially.
@Validark Validark pinned this issue Jul 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant