Ignaz Rutter

294 papers A* 9A 62B 32C 8Misc 1Journal 161Unranked 17
YearRankTypeTitle / Venue / Authors
2026 A conf
STACS
Christophe Paul, Ignaz Rutter
2026 J jnl
CoRR
Giordano Da Lozzo, Fabrizio Frati, Ignaz Rutter
2026 J jnl
Theor. Comput. Sci.
Michael A. Bekos, Giordano Da Lozzo, Fabrizio Frati, Siddharth Gupta, Philipp Kindermann, Giuseppe Liotta, Ignaz Rutter, Ioannis G. Tollis
2025 conf
SOSA
Simon D. Fink, Ignaz Rutter, Sandhya T. P.
2025 A conf
GECCO
Jakob Baumann, Ignaz Rutter, Dirk Sudholt
2025 J jnl
CoRR
Christophe Paul, Ignaz Rutter
2025 J jnl
J. Graph Algorithms Appl.
Simon Dominik Fink, Ignaz Rutter
2025 J jnl
CoRR
Miriam Goetze, Michael Hoffmann, Ignaz Rutter, Torsten Ueckerdt
2025 A conf
GD
Miriam Goetze, Michael Hoffmann, Ignaz Rutter, Torsten Ueckerdt
2025 conf
ArgMining
Martin Gruber, Zlata Kikteva, Ignaz Rutter, Annette Hautli-Janisz
2025 A conf
GD
Simon D. Fink, Miriam Münch, Matthias Pfretzschner, Ignaz Rutter
2025 J jnl
Theor. Comput. Sci.
Guido Brückner, Ignaz Rutter
2025 J jnl
J. Comput. Geom.
Tim Ophelders, Ignaz Rutter, Bettina Speckmann, Kevin Verbeek
2025 A conf
GD
Maarten Löffler, Miriam Münch, Ignaz Rutter
2025 J jnl
Algorithmica
Ignaz Rutter, Darren Strash, Peter Stumpf, Michael Vollmer
2025 B conf
ISAAC
Thomas Depian, Simon D. Fink, Alexander Firbas, Robert Ganian, Matthias Pfretzschner, Ignaz Rutter
2025 J jnl
Discret. Math. Theor. Comput. Sci.
Patrizio Angelini, Therese Biedl, Markus Chimani, Sabine Cornelsen, Giordano Da Lozzo, Seok-Hee Hong, Giuseppe Liotta, Maurizio Patrignani, Sergey Pupyrev, Ignaz Rutter
2025 J jnl
Artif. Intell.
Stephen G. Kobourov, Maarten Löffler, Fabrizio Montecchiani, Marcin Pilipczuk, Ignaz Rutter, Raimund Seidel, Manuel Sorge, Jules Wulms
2024 J jnl
CoRR
Simon D. Fink, Ignaz Rutter, T. P. Sandhya
2024 J jnl
CoRR
Simon D. Fink, Matthias Pfretzschner, Ignaz Rutter, Marie Diana Sieper
2024 A conf
GD
Therese Biedl, Sabine Cornelsen, Jan Kratochvíl, Ignaz Rutter
2024 A conf
ALENEX
Simon D. Fink, Ignaz Rutter
2024 A conf
GD
Jakob Baumann, Ignaz Rutter, Dirk Sudholt
2024 J jnl
CoRR
Jakob Baumann, Ignaz Rutter, Dirk Sudholt
2024 A conf
GECCO
Jakob Baumann, Ignaz Rutter, Dirk Sudholt
2024 B conf
WG
Miriam Münch, Maximilian Pfister, Ignaz Rutter
2024 J jnl
Algorithmica
Guido Brückner, Ignaz Rutter, Peter Stumpf
2024 A conf
GD
Simon D. Fink, Matthias Pfretzschner, Ignaz Rutter, Peter Stumpf
2024 J jnl
CoRR
Simon D. Fink, Matthias Pfretzschner, Ignaz Rutter, Peter Stumpf
2024 J jnl
Comput. Geom. Topol.
Simon Dominik Fink, Ignaz Rutter
2024 J jnl
J. Graph Algorithms Appl.
Patricia Bachmann, Ignaz Rutter, Peter Stumpf
2024 A conf
GD
Julia Katheder, Philipp Kindermann, Fabian Klute, Irene Parada, Ignaz Rutter
2024 J jnl
CoRR
Julia Katheder, Philipp Kindermann, Fabian Klute, Irene Parada, Ignaz Rutter
2024 A conf
GD
Miriam Münch, Ignaz Rutter
2024 J jnl
Theor. Comput. Sci.
Jakob Baumann, Matthias Pfretzschner, Ignaz Rutter
2024 J jnl
Algorithmica
Miriam Münch, Ignaz Rutter, Peter Stumpf
2024 B conf
ISAAC
Giordano Da Lozzo, Walter Didimo, Fabrizio Montecchiani, Miriam Münch, Maurizio Patrignani, Ignaz Rutter
2024 J jnl
CoRR
Giordano Da Lozzo, Walter Didimo, Fabrizio Montecchiani, Miriam Münch, Maurizio Patrignani, Ignaz Rutter
2024 A conf
GD
Patrizio Angelini, Therese Biedl, Markus Chimani, Sabine Cornelsen, Giordano Da Lozzo, Seok-Hee Hong, Giuseppe Liotta, Maurizio Patrignani, Sergey Pupyrev, Ignaz Rutter, Alexander Wolff
2024 J jnl
CoRR
Patrizio Angelini, Therese Biedl, Markus Chimani, Sabine Cornelsen, Giordano Da Lozzo, Seok-Hee Hong, Giuseppe Liotta, Maurizio Patrignani, Sergey Pupyrev, Ignaz Rutter, Alexander Wolff
2024 A conf
GD
Michael A. Bekos, Giordano Da Lozzo, Fabrizio Frati, Siddharth Gupta, Philipp Kindermann, Giuseppe Liotta, Ignaz Rutter, Ioannis G. Tollis
2024 J jnl
CoRR
Michael A. Bekos, Giordano Da Lozzo, Fabrizio Frati, Siddharth Gupta, Philipp Kindermann, Giuseppe Liotta, Ignaz Rutter, Ioannis G. Tollis
2023 J jnl
Discret. Comput. Geom.
Lukas Barth, Benjamin Niedermann, Ignaz Rutter, Matthias Wolf
2023 J jnl
J. Comput. Geom.
Guido Brückner, Ignaz Rutter
2023 J jnl
CoRR
Simon D. Fink, Ignaz Rutter
2023 J jnl
Int. J. Found. Comput. Sci.
Luca Grilli, Seok-Hee Hong, Jan Kratochvíl, Ignaz Rutter
2023 J jnl
ACM J. Exp. Algorithmics
Simon D. Fink, Matthias Pfretzschner, Ignaz Rutter
2023 J jnl
J. Graph Algorithms Appl.
Ignaz Rutter, Helen C. Purchase
2023 C conf
CIAC
Simon D. Fink, Ignaz Rutter
2023 J jnl
CoRR
Simon D. Fink, Ignaz Rutter
2023 conf
GD (1)
Patricia Bachmann, Ignaz Rutter, Peter Stumpf
2023 J jnl
CoRR
Patricia Bachmann, Ignaz Rutter, Peter Stumpf
2023 conf
GD (2)
Simon D. Fink, Matthias Pfretzschner, Ignaz Rutter
2023 J jnl
CoRR
Simon D. Fink, Matthias Pfretzschner, Ignaz Rutter
2023 B conf
WG
Jakob Baumann, Matthias Pfretzschner, Ignaz Rutter
2023 J jnl
CoRR
Jakob Baumann, Matthias Pfretzschner, Ignaz Rutter
2023 J jnl
J. Comput. Syst. Sci.
Giuseppe Liotta, Ignaz Rutter, Alessandra Tappini
2023 A conf
ESA
Ignaz Rutter, Peter Stumpf
2023 J jnl
ACM Trans. Algorithms
Thomas Bläsius, Simon D. Fink, Ignaz Rutter
2023 A* conf
AAAI
Stephen G. Kobourov, Maarten Löffler, Fabrizio Montecchiani, Marcin Pilipczuk, Ignaz Rutter, Raimund Seidel, Manuel Sorge, Jules Wulms
2023 J jnl
Comput. Geom.
Sujoy Bhore, Guangping Li, Martin Nöllenburg, Ignaz Rutter, Hsiang-Yun Wu
2022 A conf
GD
Grzegorz Gutowski, Florian Mittelstädt, Ignaz Rutter, Joachim Spoerhase, Alexander Wolff, Johannes Zink
2022 J jnl
CoRR
Grzegorz Gutowski, Florian Mittelstädt, Ignaz Rutter, Joachim Spoerhase, Alexander Wolff, Johannes Zink
2022 B conf
MFCS
Guido Brückner, Ignaz Rutter, Peter Stumpf
2022 B conf
WG
Jirí Fiala, Ignaz Rutter, Peter Stumpf, Peter Zeman
2022 J jnl
Comput. Geom.
Marcel Radermacher, Ignaz Rutter
2022 J jnl
Electron. J. Comb.
Guido Brückner, Ignaz Rutter, Peter Stumpf
2022 A conf
GD
Steven Chaplick, Philipp Kindermann, Jonathan Klawitter, Ignaz Rutter, Alexander Wolff
2022 J jnl
J. Graph Algorithms Appl.
Michael A. Bekos, Carla Binucci, Giuseppe Di Battista, Walter Didimo, Martin Gronemann, Karsten Klein, Maurizio Patrignani, Ignaz Rutter
2022 B conf
WG
Giuseppe Liotta, Ignaz Rutter, Alessandra Tappini
2022 J jnl
CoRR
Miriam Münch, Ignaz Rutter, Peter Stumpf
2022 B conf
ISAAC
Miriam Münch, Ignaz Rutter, Peter Stumpf
2022 J jnl
Theor. Comput. Sci.
Steven Chaplick, Stefan Felsner, Philipp Kindermann, Jonathan Klawitter, Ignaz Rutter, Alexander Wolff
2022 J jnl
CoRR
Stephen G. Kobourov, Maarten Löffler, Fabrizio Montecchiani, Marcin Pilipczuk, Ignaz Rutter, Raimund Seidel, Manuel Sorge, Jules Wulms
2022 A conf
GD
Michael A. Bekos, Stefan Felsner, Philipp Kindermann, Stephen G. Kobourov, Jan Kratochvíl, Ignaz Rutter
2022 J jnl
CoRR
Michael A. Bekos, Stefan Felsner, Philipp Kindermann, Stephen G. Kobourov, Jan Kratochvíl, Ignaz Rutter
2021 J jnl
CoRR
Lukas Barth, Benjamin Niedermann, Ignaz Rutter, Matthias Wolf
2021 A conf
ESA
Simon D. Fink, Matthias Pfretzschner, Ignaz Rutter
2021 J jnl
CoRR
Simon D. Fink, Matthias Pfretzschner, Ignaz Rutter
2021 J jnl
J. Graph Algorithms Appl.
Patrizio Angelini, Ignaz Rutter, T. P. Sandhya
2021 J jnl
CoRR
Jirí Fiala, Ignaz Rutter, Peter Stumpf, Peter Zeman
2021 C conf
CIAC
Steven Chaplick, Philipp Kindermann, Jonathan Klawitter, Ignaz Rutter, Alexander Wolff
2021 J jnl
CoRR
Steven Chaplick, Philipp Kindermann, Jonathan Klawitter, Ignaz Rutter, Alexander Wolff
2021 A ed.
GD
Helen C. Purchase, Ignaz Rutter
2021 J jnl
CoRR
Steven Chaplick, Philipp Kindermann, Jonathan Klawitter, Ignaz Rutter, Alexander Wolff
2021 A* conf
SoCG
Tim Ophelders, Ignaz Rutter, Bettina Speckmann, Kevin Verbeek
2021 J jnl
CoRR
Tim Ophelders, Ignaz Rutter, Bettina Speckmann, Kevin Verbeek
2021 J jnl
CoRR
Helen C. Purchase, Ignaz Rutter
2021 J jnl
J. Graph Algorithms Appl.
Guido Brückner, Ignaz Rutter
2021 J jnl
Theor. Comput. Sci.
Giuseppe Liotta, Ignaz Rutter, Alessandra Tappini
2021 A conf
ESA
Thomas Bläsius, Simon D. Fink, Ignaz Rutter
2021 B conf
ISAAC
Sujoy Bhore, Guangping Li, Martin Nöllenburg, Ignaz Rutter, Hsiang-Yun Wu
2021 J jnl
CoRR
Sujoy Bhore, Guangping Li, Martin Nöllenburg, Ignaz Rutter, Hsiang-Yun Wu
2020 A conf
GD
Benjamin Niedermann, Ignaz Rutter
2020 J jnl
CoRR
Benjamin Niedermann, Ignaz Rutter
2020 B conf
ISAAC
Guido Brückner, Ignaz Rutter
2020 J jnl
CoRR
Guido Brückner, Ignaz Rutter
2020 J jnl
Theor. Comput. Sci.
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2020 J jnl
J. Graph Algorithms Appl.
Tamara Mchedlidze, Marcel Radermacher, Ignaz Rutter, Nina Zimbel
2020 A conf
GD
Patrizio Angelini, Ignaz Rutter, Sandhya T. P.
2020 J jnl
CoRR
Patrizio Angelini, Ignaz Rutter, Sandhya T. P.
2020 A conf
GD
Philipp Kindermann, Tamara Mchedlidze, Wouter Meulemans, Ignaz Rutter
2020 A conf
GD
Michael A. Bekos, Carla Binucci, Giuseppe Di Battista, Walter Didimo, Martin Gronemann, Karsten Klein, Maurizio Patrignani, Ignaz Rutter
2020 J jnl
CoRR
Michael A. Bekos, Carla Binucci, Giuseppe Di Battista, Walter Didimo, Martin Gronemann, Karsten Klein, Maurizio Patrignani, Ignaz Rutter
2020 J jnl
J. Comb. Theory B
Patrizio Angelini, Michael A. Bekos, Franz J. Brandenburg, Giordano Da Lozzo, Giuseppe Di Battista, Walter Didimo, Michael Hoffmann, Giuseppe Liotta, Fabrizio Montecchiani, Ignaz Rutter, Csaba D. Tóth
2020 ch.
Beyond Planar Graphs
Ignaz Rutter
2020 B conf
SOFSEM
Giuseppe Liotta, Ignaz Rutter, Alessandra Tappini
2020 J jnl
CoRR
Thomas Bläsius, Simon D. Fink, Ignaz Rutter
2020 A conf
GD
Marcel Radermacher, Ignaz Rutter, Peter Stumpf
2020 J jnl
CoRR
Marcel Radermacher, Ignaz Rutter, Peter Stumpf
2020 J jnl
NII Shonan Meet. Rep.
Steven Chaplick, Takayuki Itoh, Giuseppe Liotta, Kwan-Liu Ma, Ignaz Rutter
2019 A conf
GD
Guido Brückner, Markus Himmel, Ignaz Rutter
2019 J jnl
CoRR
Guido Brückner, Markus Himmel, Ignaz Rutter
2019 B conf
WALCOM
Tamara Mchedlidze, Marcel Radermacher, Ignaz Rutter, Nina Zimbel
2019 A* conf
SoCG
Benjamin Niedermann, Ignaz Rutter, Matthias Wolf
2019 J jnl
CoRR
Benjamin Niedermann, Ignaz Rutter, Matthias Wolf
2019 A conf
ESA
Marcel Radermacher, Ignaz Rutter
2019 J jnl
CoRR
Marcel Radermacher, Ignaz Rutter
2019 J jnl
ACM J. Exp. Algorithmics
Marcel Radermacher, Klara Reichard, Ignaz Rutter, Dorothea Wagner
2019 A conf
GD
Philipp Kindermann, Tamara Mchedlidze, Ignaz Rutter
2019 J jnl
CoRR
Giuseppe Liotta, Ignaz Rutter, Alessandra Tappini
2019 J jnl
J. Graph Algorithms Appl.
Thomas Bläsius, Marcel Radermacher, Ignaz Rutter
2019 B conf
SSDBM
Vadim Arzamasov, Klemens Böhm, Ignaz Rutter
2019 J jnl
Algorithmica
Emilio Di Giacomo, Giuseppe Liotta, Maurizio Patrignani, Ignaz Rutter, Alessandra Tappini
2019 J jnl
Theor. Comput. Sci.
Giordano Da Lozzo, Ignaz Rutter
2019 C conf
IWOCA
Giordano Da Lozzo, Ignaz Rutter
2019 J jnl
CoRR
Patrizio Angelini, Michael A. Bekos, Franz J. Brandenburg, Giordano Da Lozzo, Giuseppe Di Battista, Walter Didimo, Michael Hoffmann, Giuseppe Liotta, Fabrizio Montecchiani, Ignaz Rutter, Csaba D. Tóth
2019 J jnl
CoRR
Giuseppe Liotta, Ignaz Rutter, Alessandra Tappini
2019 A conf
ESA
Ignaz Rutter, Darren Strash, Peter Stumpf, Michael Vollmer
2019 J jnl
CoRR
Ignaz Rutter, Darren Strash, Peter Stumpf, Michael Vollmer
2018 A conf
ALENEX
Marcel Radermacher, Klara Reichard, Ignaz Rutter, Dorothea Wagner
2018 J jnl
J. Graph Algorithms Appl.
Tamara Mchedlidze, Marcel Radermacher, Ignaz Rutter
2018 B conf
ISAAC
Giordano Da Lozzo, Ignaz Rutter
2018 J jnl
CoRR
Tamara Mchedlidze, Marcel Radermacher, Ignaz Rutter, Nina Zimbel
2018 J jnl
Theor. Comput. Sci.
Sang Won Bae, Jean-François Baffier, Jinhee Chun, Peter Eades, Kord Eickmeyer, Luca Grilli, Seok-Hee Hong, Matias Korman, Fabrizio Montecchiani, Ignaz Rutter, Csaba D. Tóth
2018 A conf
GD
William E. Devanny, Philipp Kindermann, Maarten Löffler, Ignaz Rutter
2018 A conf
GD
Marcel Radermacher, Ignaz Rutter
2018 J jnl
CoRR
Marcel Radermacher, Ignaz Rutter
2018 A conf
GD
Guido Brückner, Ignaz Rutter, Peter Stumpf
2018 J jnl
CoRR
Guido Brückner, Ignaz Rutter, Peter Stumpf
2018 J jnl
Discret. Optim.
Matthias Mnich, Ignaz Rutter, Jens M. Schmidt
2018 B conf
EDBT
Michael Vollmer, Ignaz Rutter, Klemens Böhm
2018 J jnl
J. Comput. Geom.
Moritz Baum, Thomas Bläsius, Andreas Gemsa, Ignaz Rutter, Franziska Wegner
2018 J jnl
Algorithmica
Thomas Bläsius, Annette Karrer, Ignaz Rutter
2018 conf
eScience
Mark Alfano, Scott W. Cunningham, Wouter Meulemans, Ignaz Rutter, Max Sondag, Bettina Speckmann, Emily Sullivan
2018 conf
e-Energy
Alban Grastien, Ignaz Rutter, Dorothea Wagner, Franziska Wegner, Matthias Wolf
2018 J jnl
CoRR
Philipp Kindermann, Boris Klemz, Ignaz Rutter, Patrick Schnider, André Schulz
2018 J jnl
ACM Trans. Algorithms
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Valentino Di Donato, Philipp Kindermann, Günter Rote, Ignaz Rutter
2017 conf
e-Energy
Sebastian Lehmann, Ignaz Rutter, Dorothea Wagner, Franziska Wegner
2017 A conf
GD
Tamara Mchedlidze, Marcel Radermacher, Ignaz Rutter
2017 J jnl
CoRR
Tamara Mchedlidze, Marcel Radermacher, Ignaz Rutter
2017 J jnl
Algorithmica
Pavel Klavík, Jan Kratochvíl, Yota Otachi, Ignaz Rutter, Toshiki Saitoh, Maria Saumell, Tomás Vyskocil
2017 A conf
GD
Sang Won Bae, Jean-François Baffier, Jinhee Chun, Peter Eades, Kord Eickmeyer, Luca Grilli, Seok-Hee Hong, Matias Korman, Fabrizio Montecchiani, Ignaz Rutter, Csaba D. Tóth
2017 J jnl
CoRR
Sang Won Bae, Jean-François Baffier, Jinhee Chun, Peter Eades, Kord Eickmeyer, Luca Grilli, Seok-Hee Hong, Matias Korman, Fabrizio Montecchiani, Ignaz Rutter, Csaba D. Tóth
2017 A conf
GD
William E. Devanny, Philipp Kindermann, Maarten Löffler, Ignaz Rutter
2017 B conf
SOFSEM
Thomas Bläsius, Marcel Radermacher, Ignaz Rutter
2017 J jnl
J. Graph Algorithms Appl.
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2017 B conf
WG
Patrizio Angelini, Michael A. Bekos, Franz J. Brandenburg, Giordano Da Lozzo, Giuseppe Di Battista, Walter Didimo, Giuseppe Liotta, Fabrizio Montecchiani, Ignaz Rutter
2017 A* conf
SODA
Guido Brückner, Ignaz Rutter
2017 J jnl
Int. J. Comput. Geom. Appl.
Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2017 J jnl
CoRR
Benjamin Niedermann, Martin Nöllenburg, Ignaz Rutter
2017 B conf
PacificVis
Benjamin Niedermann, Martin Nöllenburg, Ignaz Rutter
2017 A* conf
SoCG
Lukas Barth, Benjamin Niedermann, Ignaz Rutter, Matthias Wolf
2017 J jnl
CoRR
Lukas Barth, Benjamin Niedermann, Ignaz Rutter, Matthias Wolf
2016 J jnl
Theor. Comput. Sci.
Thomas Bläsius, Ignaz Rutter
2016 A conf
GD
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2016 J jnl
J. Comput. Geom.
Andreas Gemsa, Martin Nöllenburg, Ignaz Rutter
2016 J jnl
ACM J. Exp. Algorithmics
Andreas Gemsa, Martin Nöllenburg, Ignaz Rutter
2016 J jnl
Algorithmica
Tamara Mchedlidze, Martin Nöllenburg, Ignaz Rutter
2016 A conf
GD
Philipp Kindermann, Maarten Löffler, Lev Nachmanson, Ignaz Rutter
2016 conf
SWAT
Matthias Mnich, Ignaz Rutter, Jens M. Schmidt
2016 J jnl
Algorithmica
Philipp Kindermann, Benjamin Niedermann, Ignaz Rutter, Marcus Schaefer, André Schulz, Alexander Wolff
2016 J jnl
J. Comput. Geom.
Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2016 J jnl
CoRR
Giordano Da Lozzo, Ignaz Rutter
2016 J jnl
ACM Trans. Algorithms
Thomas Bläsius, Ignaz Rutter, Dorothea Wagner
2016 J jnl
Comput. Geom.
Thomas Bläsius, Sebastian Lehmann, Ignaz Rutter
2016 A conf
ESA
Moritz Baum, Thomas Bläsius, Andreas Gemsa, Ignaz Rutter, Franziska Wegner
2016 J jnl
CoRR
Moritz Baum, Thomas Bläsius, Andreas Gemsa, Ignaz Rutter, Franziska Wegner
2016 J jnl
Theor. Comput. Sci.
Reinhard Bauer, Tobias Columbus, Ignaz Rutter, Dorothea Wagner
2016 A conf
GD
Patrizio Angelini, Steven Chaplick, Sabine Cornelsen, Giordano Da Lozzo, Giuseppe Di Battista, Peter Eades, Philipp Kindermann, Jan Kratochvíl, Fabian Lipp, Ignaz Rutter
2016 J jnl
CoRR
Patrizio Angelini, Steven Chaplick, Sabine Cornelsen, Giordano Da Lozzo, Giuseppe Di Battista, Peter Eades, Philipp Kindermann, Jan Kratochvíl, Fabian Lipp, Ignaz Rutter
2016 J jnl
ACM Trans. Algorithms
Thomas Bläsius, Ignaz Rutter
2016 conf
VISIGRAPP (2: IVAPP)
Martin Nöllenburg, Ignaz Rutter, Alfred Schuhmacher
2016 J jnl
CoRR
Giordano Da Lozzo, Ignaz Rutter
2016 A* conf
SODA
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Valentino Di Donato, Philipp Kindermann, Günter Rote, Ignaz Rutter
2015 J jnl
CoRR
Thomas Bläsius, Ignaz Rutter
2015 J jnl
Comput. Geom.
Thomas Bläsius, Ignaz Rutter
2015 A conf
GD
Philipp Kindermann, Maarten Löffler, Lev Nachmanson, Ignaz Rutter
2015 A conf
GD
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2015 J jnl
CoRR
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2015 J jnl
J. Graph Algorithms Appl.
Michael A. Bekos, Sabine Cornelsen, Martin Fink, Seok-Hee Hong, Michael Kaufmann, Martin Nöllenburg, Ignaz Rutter, Antonios Symvonis
2015 A conf
GD
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2015 J jnl
Theor. Comput. Sci.
Jian-Jia Chen, Mong-Jen Kao, D. T. Lee, Ignaz Rutter, Dorothea Wagner
2015 conf
e-Energy
Thomas Leibfried, Tamara Mchedlidze, Nico Meyer-Hübner, Martin Nöllenburg, Ignaz Rutter, Peter Sanders, Dorothea Wagner, Franziska Wegner
2015 J jnl
CoRR
Thomas Leibfried, Tamara Mchedlidze, Nico Meyer-Hübner, Martin Nöllenburg, Ignaz Rutter, Peter Sanders, Dorothea Wagner, Franziska Wegner
2015 B conf
WADS
Sebastian Buchwald, Manuel Mohr, Ignaz Rutter
2015 J jnl
CoRR
Sebastian Buchwald, Manuel Mohr, Ignaz Rutter
2015 C conf
CIAC
Thomas Bläsius, Sebastian Lehmann, Ignaz Rutter
2015 B conf
ISAAC
Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2015 J jnl
CoRR
Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2015 A conf
GD
Md. Jawaherul Alam, Thomas Bläsius, Ignaz Rutter, Torsten Ueckerdt, Alexander Wolff
2015 J jnl
CoRR
Muhammad Jawaherul Alam, Thomas Bläsius, Ignaz Rutter, Torsten Ueckerdt, Alexander Wolff
2015 C conf
CIAC
Giordano Da Lozzo, Ignaz Rutter
2015 J jnl
CoRR
Giordano Da Lozzo, Ignaz Rutter
2015 J jnl
Algorithmica
Tanja Hartmann, Jonathan Rollin, Ignaz Rutter
2015 J jnl
CoRR
Thomas Bläsius, Annette Karrer, Ignaz Rutter
2015 J jnl
CoRR
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2015 J jnl
ACM Trans. Algorithms
Patrizio Angelini, Giuseppe Di Battista, Fabrizio Frati, Vít Jelínek, Jan Kratochvíl, Maurizio Patrignani, Ignaz Rutter
2015 conf
D-A-CH EI
Tamara Mchedlidze, Martin Nöllenburg, Ignaz Rutter, Dorothea Wagner, Franziska Wegner
2015 J jnl
CoRR
Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Valentino Di Donato, Philipp Kindermann, Günter Rote, Ignaz Rutter
2014 A conf
GD
Thomas Bläsius, Ignaz Rutter
2014 J jnl
J. Graph Algorithms Appl.
Gregor Betz, Andreas Gemsa, Christof Mathies, Ignaz Rutter, Dorothea Wagner
2014 A conf
ESA
Thomas Bläsius, Guido Brückner, Ignaz Rutter
2014 J jnl
CoRR
Thomas Bläsius, Guido Brückner, Ignaz Rutter
2014 A conf
GD
Luca Grilli, Seok-Hee Hong, Jan Kratochvíl, Ignaz Rutter
2014 B conf
SEA
Andreas Gemsa, Martin Nöllenburg, Ignaz Rutter
2014 J jnl
CoRR
Andreas Gemsa, Martin Nöllenburg, Ignaz Rutter
2014 conf
SWAT
Pavel Klavík, Jan Kratochvíl, Yota Otachi, Ignaz Rutter, Toshiki Saitoh, Maria Saumell, Tomás Vyskocil
2014 J jnl
J. Graph Algorithms Appl.
Edith Brunel, Andreas Gemsa, Marcus Krug, Ignaz Rutter, Dorothea Wagner
2014 A conf
GD
Carsten Gutwenger, Maarten Löffler, Lev Nachmanson, Ignaz Rutter
2014 A conf
GD
Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2014 J jnl
CoRR
Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2014 J jnl
Comput. Geom.
Daniel Delling, Andreas Gemsa, Martin Nöllenburg, Thomas Pajor, Ignaz Rutter
2014 A conf
STACS
Jian-Jia Chen, Mong-Jen Kao, D. T. Lee, Ignaz Rutter, Dorothea Wagner
2014 J jnl
Algorithmica
Thomas Bläsius, Marcus Krug, Ignaz Rutter, Dorothea Wagner
2014 J jnl
CoRR
Thomas Bläsius, Sebastian Lehmann, Ignaz Rutter
2014 B conf
ISAAC
Giordano Da Lozzo, Vít Jelínek, Jan Kratochvíl, Ignaz Rutter
2014 J jnl
CoRR
Giordano Da Lozzo, Vít Jelínek, Jan Kratochvíl, Ignaz Rutter
2014 J jnl
Int. J. Comput. Geom. Appl.
Patrizio Angelini, Thomas Bläsius, Ignaz Rutter
2013 J jnl
Comput. Geom.
Vít Jelínek, Jan Kratochvíl, Ignaz Rutter
2013 J jnl
CoRR
Mong-Jen Kao, Jian-Jia Chen, Ignaz Rutter, Dorothea Wagner
2013 A conf
GD
Tamara Mchedlidze, Martin Nöllenburg, Ignaz Rutter
2013 J jnl
CoRR
Tamara Mchedlidze, Martin Nöllenburg, Ignaz Rutter
2013 J jnl
J. Graph Algorithms Appl.
Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2013 J jnl
Discret. Appl. Math.
Maria Axenovich, Marcus Krug, Georg Osang, Ignaz Rutter
2013 J jnl
CoRR
Alexander Koch, Marcus Krug, Ignaz Rutter
2013 A conf
GD
Michael A. Bekos, Sabine Cornelsen, Martin Fink, Seok-Hee Hong, Michael Kaufmann, Martin Nöllenburg, Ignaz Rutter, Antonios Symvonis
2013 J jnl
CoRR
Michael A. Bekos, Sabine Cornelsen, Martin Fink, Seok-Hee Hong, Michael Kaufmann, Martin Nöllenburg, Ignaz Rutter, Antonios Symvonis
2013 J jnl
CoRR
Philipp Kindermann, Benjamin Niedermann, Ignaz Rutter, Marcus Schaefer, André Schulz, Alexander Wolff
2013 J jnl
J. Graph Algorithms Appl.
Reinhard Bauer, Moritz Baum, Ignaz Rutter, Dorothea Wagner
2013 J jnl
CoRR
Jian-Jia Chen, Mong-Jen Kao, D. T. Lee, Ignaz Rutter, Dorothea Wagner
2013 conf
ICALP (1)
Thomas Bläsius, Ignaz Rutter, Dorothea Wagner
2013 conf
ICALP (1)
Reinhard Bauer, Tobias Columbus, Ignaz Rutter, Dorothea Wagner
2013 ch.
Handbook of Graph Drawing and Visualization
Thomas Bläsius, Stephen G. Kobourov, Ignaz Rutter
2013 A conf
GD
Thomas Bläsius, Annette Karrer, Ignaz Rutter
2013 A* conf
SODA
Thomas Bläsius, Ignaz Rutter
2013 J jnl
CoRR
Patrizio Angelini, Thomas Bläsius, Ignaz Rutter
2013 B conf
ISAAC
Patrizio Angelini, Thomas Bläsius, Ignaz Rutter
2013 J jnl
J. Comb. Optim.
Mong-Jen Kao, Bastian Katz, Marcus Krug, D. T. Lee, Ignaz Rutter, Dorothea Wagner
2013 B conf
WADS
Philipp Kindermann, Benjamin Niedermann, Ignaz Rutter, Marcus Schaefer, André Schulz, Alexander Wolff
2013 A conf
GD
Therese Biedl, Thomas Bläsius, Benjamin Niedermann, Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2013 J jnl
CoRR
Therese Biedl, Thomas Bläsius, Benjamin Niedermann, Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2012 J jnl
CoRR
Vít Jelínek, Jan Kratochvíl, Ignaz Rutter
2012 J jnl
Acta Informatica
Bastian Katz, Ignaz Rutter, Gerhard J. Woeginger
2012 J jnl
J. Graph Algorithms Appl.
Ignaz Rutter, Alexander Wolff
2012 A conf
GD
Gregor Betz, Christoph Doll, Andreas Gemsa, Ignaz Rutter, Dorothea Wagner
2012 B conf
ISAAC
Mong-Jen Kao, Jian-Jia Chen, Ignaz Rutter, Dorothea Wagner
2012 J jnl
CoRR
Tanja Hartmann, Jonathan Rollin, Ignaz Rutter
2012 B conf
ISAAC
Tanja Hartmann, Jonathan Rollin, Ignaz Rutter
2012 J jnl
CoRR
Thomas Bläsius, Ignaz Rutter
2012 A conf
GD
Thomas Bläsius, Ignaz Rutter
2012 A conf
GD
Martin Nöllenburg, Roman Prutkin, Ignaz Rutter
2012 J jnl
CoRR
Pavel Klavík, Jan Kratochvíl, Yota Otachi, Ignaz Rutter, Toshiki Saitoh, Maria Saumell, Tomás Vyskocil
2012 J jnl
CoRR
Maria Axenovich, Marcus Krug, Georg Osang, Ignaz Rutter
2012 J jnl
J. Discrete Algorithms
Emilio Di Giacomo, Luca Grilli, Marcus Krug, Giuseppe Liotta, Ignaz Rutter
2012 C conf
ATMOS
Reinhard Bauer, Moritz Baum, Ignaz Rutter, Dorothea Wagner
2012 J jnl
CoRR
Thomas Bläsius, Ignaz Rutter, Dorothea Wagner
2012 J jnl
CoRR
Thomas Bläsius, Stephen G. Kobourov, Ignaz Rutter
2012 J jnl
J. Discrete Algorithms
Patrizio Angelini, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2011 conf
SCG
Vít Jelínek, Jan Kratochvíl, Ignaz Rutter
2011 J jnl
Theor. Comput. Sci.
Robert Franke, Ignaz Rutter, Dorothea Wagner
2011 conf
CCCG
Mong-Jen Kao, Bastian Katz, Marcus Krug, D. T. Lee, Martin Nöllenburg, Ignaz Rutter, Dorothea Wagner
2011 J jnl
CoRR
Andreas Gemsa, Martin Nöllenburg, Ignaz Rutter
2011 B conf
WADS
Andreas Gemsa, Martin Nöllenburg, Ignaz Rutter
2011 A conf
GD
Edith Brunel, Andreas Gemsa, Marcus Krug, Ignaz Rutter, Dorothea Wagner
2011 C conf
IWOCA
Emilio Di Giacomo, Luca Grilli, Marcus Krug, Giuseppe Liotta, Ignaz Rutter
2011 B conf
SOFSEM
Andreas Gemsa, Martin Nöllenburg, Thomas Pajor, Ignaz Rutter
2011 J jnl
CoRR
Thomas Bläsius, Ignaz Rutter
2011 conf
CCCG
Andreas Gemsa, Martin Nöllenburg, Ignaz Rutter
2011 B conf
SEA
Bastian Katz, Ignaz Rutter, Ben Strasser, Dorothea Wagner
2011 Misc conf
COCOON
Mong-Jen Kao, Bastian Katz, Marcus Krug, D. T. Lee, Ignaz Rutter, Dorothea Wagner
2011 ch.
Ausgezeichnete Informatikdissertationen
Ignaz Rutter
2011
Ignaz Rutter
2010 A conf
GD
Andreas Gemsa, Martin Nöllenburg, Thomas Pajor, Ignaz Rutter
2010 J jnl
ACM Trans. Algorithms
Ignaz Rutter, Alexander Wolff
2010 B conf
SEA
Bastian Katz, Marcus Krug, Andreas Lochbihler, Ignaz Rutter, Gregor Snelting, Dorothea Wagner
2010 A conf
GD
Thomas Bläsius, Marcus Krug, Ignaz Rutter, Dorothea Wagner
2010 A* conf
SODA
Patrizio Angelini, Giuseppe Di Battista, Fabrizio Frati, Vít Jelínek, Jan Kratochvíl, Maurizio Patrignani, Ignaz Rutter
2010 C conf
IWOCA
Patrizio Angelini, Giuseppe Di Battista, Fabrizio Frati, Maurizio Patrignani, Ignaz Rutter
2009 B conf
WG
Bastian Katz, Ignaz Rutter, Gerhard J. Woeginger
2009 B conf
ISAAC
Robert Franke, Ignaz Rutter, Dorothea Wagner
2009 A conf
GD
Bastian Katz, Marcus Krug, Ignaz Rutter, Alexander Wolff
2008 J jnl
Electron. Notes Discret. Math.
Ignaz Rutter, Alexander Wolff
2008 A* conf
SODA
Ignaz Rutter, Alexander Wolff
docs/new-code-binja-schema.md
← Index docs/new-code-binja-schema.md markdown
#################################
###### CODE RELATED TABLES ######
#################################

### CREATE FULL REDB DATABASE
def create_decompiled_binja_with_all_tables(client):
    create_phase1_decompiled_binja_tables(client)

#### CREATE FULL TABLES
def create_phase1_decompiled_binja_tables(client):
    create_function_analysis_error_dbtable(client)
    create_binja_decompiled_dbtable(client)
    create_binja_disassembly_dbtable(client)
    create_binja_cfg_dbtable(client)

#################################
### DECOMPILED BINJA INDIVIDUAL TABLES
#################################
def create_function_analysis_error_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS function_analysis_errors_binja (
        sha256 FixedString(64),
        function_name Nullable(String) CODEC(ZSTD(3)),
        function_address UInt64,
        error_location LowCardinality(String) CODEC(ZSTD(3)),
        error_message Nullable(String) CODEC(ZSTD(3)),
        error_details Nullable(String) CODEC(ZSTD(3)),
        error_type Nullable(String) CODEC(ZSTD(3)),
        error_hash FixedString(32), -- MD5, To help identify duplicate errors
        status Enum8('new' = 1, 'investigating' = 2, 'fixed' = 3, 'wontfix' = 4) DEFAULT 'new',
        analysis_date DateTime64(3, 'UTC'),
        PRIMARY KEY (sha256, function_address, error_location)
    )
    ENGINE = MergeTree()
    ORDER BY (sha256, function_address, error_location);
    """)

def create_binja_decompiled_dbtable(client):
    # Create decompiled_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_decompiled_functions_content (
        decompiled_function_hash FixedString(64),
        decompiled_function String CODEC(ZSTD(3)),
        decompiled_function_lower String MATERIALIZED lower(decompiled_function) CODEC(ZSTD(3)),
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL
        flattened_score Nullable(Float64),
        mba_score Nullable(Float64),
        analysis_date DateTime64(3, 'UTC'),

        INDEX idx_function_content_token lower(decompiled_function) TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_text_decompiled_function decompiled_function TYPE text(tokenizer = 'splitByNonAlpha', preprocessor = lower(decompiled_function)) GRANULARITY 64,
        INDEX idx_func_hash decompiled_function_hash TYPE bloom_filter GRANULARITY 1,
    ) ENGINE = ReplacingMergeTree(analysis_date)
    PRIMARY KEY decompiled_function_hash -- TODO: remove is redundant
    ORDER BY decompiled_function_hash;
    """)

    # Create decompiled_functions_references table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_decompiled_functions_references (
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        decompiled_function_hash FixedString(64),
        disassembled_function_hash Nullable(FixedString(64)),
        decompiled_function_name LowCardinality(String),
        decompiled_function_prototype LowCardinality(String),
        decompiled_function_address UInt64,
        functions_caller Array(String),
        functions_call Array(String),

        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_hash decompiled_function_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_name decompiled_function_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        INDEX idx_func_addr decompiled_function_address TYPE minmax GRANULARITY 1,
        analysis_date DateTime64(3, 'UTC')
    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (sha256, decompiled_function_hash);
    """)

def create_binja_disassembly_dbtable(client):
    # Create disassembly_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_disassembled_functions_content (
        -- Content hashes for each normalization level
        disassembled_function_hash FixedString(64),             -- This is the hash of the disassembled function without addresses
        
        -- The actual function content at different normalization levels
        disassembled_function String CODEC(ZSTD(3)),
        disassembled_function_no_addresses String CODEC(ZSTD(3)),

        -- Function 
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL

        -- Analysis fields
        instructions_count UInt32,
        instructions_types Array(LowCardinality(String)), -- Types of instructions used
        control_flow_count UInt32,                      -- Number of control flow instructions
        memory_access_pattern Array(LowCardinality(String)),  -- Patterns of memory access
        register_usage Array(LowCardinality(String)),         -- Types of registers used
        data_references_count UInt32,                   -- Number of data references
        opcode_frequency_vector Array(Float32),-- Not computed yet
        api_calls_vector Array(Float32),-- Not computed yet
        minhash_signature Array(UInt64),-- Not computed yet
        max_block_size Nullable(UInt32),
        num_calls Nullable(UInt32),
        stack_size Nullable(Int32),
        instruction_type_ratios Array(Float32), -- Not computed yet
        instruction_embedding Array(Float32), -- Not computed yet
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for each normalization level
        INDEX idx_disasm_ngram disassembled_function TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
        INDEX idx_function_type function_type TYPE set(10) GRANULARITY 1,
        INDEX idx_instr_count instructions_count TYPE minmax GRANULARITY 4

    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (disassembled_function_hash);
    """)

    client.command("""
    CREATE TABLE code_binja_disassembled_functions_references
    (
        -- Original fields
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        disassembled_function_hash FixedString(64),
        decompiled_function_hash Nullable(FixedString(64)),

        disassembled_function_name LowCardinality(String),
        disassembled_function_address UInt64,
        analysis_date DateTime64(3, 'UTC'),
        
        -- New hash fields moved from content table
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),
        
        -- OPTIMIZED INDEXES for all search patterns
        INDEX idx_func_addr disassembled_function_address TYPE minmax GRANULARITY 1,
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_norm ssdeep_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_name disassembled_function_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 2
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    -- OPTIMIZED ORDER BY: Primary query pattern first, then hash fields for locality
    ORDER BY (sha256, disassembled_function_hash)
    SETTINGS index_granularity = 8192
    """)

def create_binja_llil_dbtable(client):
    # Create llil_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_llil_functions_content (
        -- Content hashes for each normalization level
        llil_function_hash FixedString(64),             -- sha256_llil This is the hash of the disassembled function without addresses

        -- Function 
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL

        -- Analysis fields
        instructions_types_llil Array(LowCardinality(String)), -- Types of instructions used
        control_flow_count_llil UInt32,                      -- Number of control flow instructions
        memory_access_pattern_llil Array(LowCardinality(String)),  -- Patterns of memory access
        register_usage_llil Map(LowCardinality(String), Tuple(UInt32, UInt32)),         -- Types of registers used
        total_reg_reads UInt32,
        total_reg_written UInt32,
        data_references_count UInt32,                   -- Number of data references
        max_block_size Nullable(UInt32),
        num_calls Nullable(UInt32),
        stack_size Nullable(Int32),
        body_llil_vector Array(Tuple(UInt32, Array(UInt16))),
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for each normalization level
        INDEX function_type_idx function_type TYPE set(10) GRANULARITY 1,
        INDEX idx_reg_usage mapKeys(register_usage_llil) TYPE bloom_filter(0.01) GRANULARITY 1

    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY llil_function_hash;
    """)

    client.command("""
    CREATE TABLE code_binja_llil_functions_references
    (
        -- Original fields
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        llil_function_hash Nullable(FixedString(64)),
        disassembled_function_hash FixedString(64),
        
        -- New hash fields moved from content table
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),

        analysis_date DateTime64(3, 'UTC'),
        
        -- OPTIMIZED INDEXES for all search patterns
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_llil ssdeep_llil TYPE bloom_filter GRANULARITY 1,
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    -- OPTIMIZED ORDER BY: Primary query pattern first, then hash fields for locality
    ORDER BY (sha256, function_address)
    SETTINGS index_granularity = 8192
    """)

def create_binja_cfg_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_cfg_blocks_content (
        block_instructions_hash FixedString(64), -- PK
        block_size UInt32,
        instructions_count UInt16,
        branch_type Enum8('DIRECT'=1, 'CONDITIONAL'=2, 'CALL'=3, 'RETURN'=4, 'FALLTHROUGH'=5, 'INDIRECT'=6, 'UNKNOWN'=7),
        block_type Enum8('CODE'=1, 'DATA'=2, 'THUNK'=3),
        flags Array(String),
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for filtering/analysis
        INDEX idx_branch_type branch_type TYPE set(10) GRANULARITY 4,
        INDEX idx_block_type block_type TYPE set(5) GRANULARITY 4,
        INDEX idx_instr_count instructions_count TYPE minmax GRANULARITY 4,
        INDEX idx_block_size block_size TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (block_instructions_hash);
    """)
  
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_cfg_blocks_references (
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        block_instructions_hash FixedString(64),
        disassembled_function_hash FixedString(64),
        
        -- Address information (for CFG traversal and debugging)
        function_address UInt64,
        block_start_address UInt64,
        block_end_address UInt64,
        
        -- CFG structure (addresses refer to block_start_address)
        predecessor_blocks Array(UInt64),
        successor_blocks Array(UInt64),
        depth UInt16,
        position UInt32,
        
        -- Dominator analysis
        dominators Array(UInt16),
        post_dominators Array(UInt16),
        
        analysis_date DateTime64(3, 'UTC'),
        
        -- OPTIMIZED INDEXES based on query patterns
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_block_hash block_instructions_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_hash disassembled_function_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_addr function_address TYPE minmax GRANULARITY 1,
        INDEX idx_block_start block_start_address TYPE minmax GRANULARITY 1,
        INDEX idx_depth depth TYPE minmax GRANULARITY 4,
        INDEX idx_position position TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (sha256, function_address, block_start_address)
    SETTINGS index_granularity = 8192;
    """)

def create_binja_strings_dbtable(client):
    # 1. Raw table - INSERT target
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_strings_raw (
        sha256 FixedString(64),
        string String CODEC(ZSTD(3)),              -- Decoded UTF-8 string (for searching)
        string_raw String CODEC(ZSTD(3)),          -- Raw bytes from binary (ground truth)
        string_encoding LowCardinality(String),    -- Detected/guessed encoding by binja
        string_offset UInt64,
        string_length UInt32,                      -- Length of decoded string
        string_raw_length UInt32,                  -- Length of raw bytes
        string_entropy Float32
    )
    ENGINE = Null;
    """)
   
    # 3a. Target table for reverse lookup (with indexes)
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_strings_by_binary (
        sha256 FixedString(64),
        string_offset UInt64,
        string String CODEC(ZSTD(3)),
        string_raw String CODEC(ZSTD(3)),
        string_encoding LowCardinality(String),
        string_length UInt32,
        string_raw_length UInt32,
        string_entropy Float32,
        
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_string_ngram lower(string) TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_string string TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_string_raw string_raw TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        INDEX idx_entropy string_entropy TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree()
    ORDER BY (sha256, string_offset);
    """)
    
    # 3b. Materialized view -> target table
    client.command("""
    CREATE MATERIALIZED VIEW IF NOT EXISTS code_binja_strings_by_binary_mv
    TO code_binja_strings_by_binary
    AS SELECT
        sha256,
        string_offset,
        string,
        string_raw,
        string_encoding,
        string_length,
        string_raw_length,
        string_entropy
    FROM code_binja_strings_raw;
    """)

    client.command("""
    -- 1. Create the new public-only popularity table
    CREATE TABLE mv_string_popularity_public_table (
        string_xxhash64 UInt64,
        sample_count AggregateFunction(uniq, FixedString(64))
    ) ENGINE = AggregatingMergeTree()
    ORDER BY string_xxhash64;
    """)

    client.command("""
    -- 2. Create the MV for new data going forward
    CREATE MATERIALIZED VIEW mv_string_popularity_public
    TO mv_string_popularity_public_table AS
    SELECT
        xxHash64(s.string) AS string_xxhash64,
        uniqState(s.sha256) AS sample_count
    FROM code_binja_strings_raw s
    INNER JOIN catalog_visibility_lookup_v2 v 
        ON s.sha256 = v.sha256 AND v.visibility_scope = 'public'
    GROUP BY string_xxhash64;
    """)

    # client.command("""
    # INSERT INTO mv_string_popularity_public_table
    # SELECT
    #     xxHash64(s.string) AS string_xxhash64,
    #     uniqState(s.sha256) AS sample_count
    # FROM code_binja_strings_by_binary s
    # INNER JOIN catalog_visibility_lookup_v2 v 
    #     ON s.sha256 = v.sha256 AND v.visibility_scope = 'public'
    # GROUP BY string_xxhash64;
    # """)

def create_binja_function_similarity_metrics_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_function_similarity_metrics (
        disassembled_function_hash FixedString(64),
        
        -- Complexity metrics
        cyclomatic_complexity Nullable(UInt16),
        
        -- Fuzzy hashes (duplicated from reference tables for performance)
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),
        
        -- Similarity hashes
        minhash Array(UInt8),
        
        analysis_date DateTime64(3, 'UTC'),
        
        -- Indexes
        INDEX idx_complexity cyclomatic_complexity TYPE minmax GRANULARITY 4,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_llil ssdeep_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY disassembled_function_hash;
    """)

def create_golang_metadata_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS redb_golang_metadata (
        sha256 FixedString(64),
        goresym JSON,
        analysis_date DateTime64(3, 'UTC')
    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY sha256
    """)