Skip to content
Boilerplate code for my open source software projects. It will include implementations of common data structures and algorithms, including those for electronic design automation (such as AND-Inverter Graphs and Binary Decision Diagrams)
Branch: master
Clone or download
Pull request Compare This branch is even with eda-globetrotter:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmarks
binaries
evaluation
notes
scripts
solver_interfaces
src
.DS_Store
.gitattributes
.gitignore
readme.md

readme.md

lamiera-per-caldaie

C++1y boilerplate code for my open source software projects. It will include implementations of common data structures and algorithms, including those for electronic design automation (such as AND-Inverter Graphs and Binary Decision Diagrams)

Currently Implemented Data Structures and Algorithms

  • Graph: Directed graphs, such as AIGs and BDDs.
  • Heap: min heap, max heap, Fibonacci heap (important for fast implementations of graph algorithms), and binomial heaps.
  • Trees: binary search trees, self-balancing trees, and combinations thereof (e.g., AVL trees and red-black trees)
  • Stack

[Note: The priority queue is available from the C++ STL.]

Organization of the Repository

  • benchmarks: Benchmarks (synthetic) or otherwise
  • binaries: Build and run software here.
  • docs:
    • Automatically generated API (using Doxygen) for software in HTML.
  • notes:
    • Software license(s).
    • Software documentation for project, written in LaTeX.
    • Guidelines for collaborating on open source software and/or hardware projects.
    • BibTeX database for the documentation.
  • README.md: Readme file to describe the software project, and organization of the repository.
  • scripts: Scripts to perform miscellaneous tasks for the software project.
  • src: Source code of the software project, including test suites for automated regression testing and a "sandbox" for testing concepts in EDA programming or VLSI design.

Building Static Binaries for Boilerplate Code

UNIX command for determining if a binary is statically linked: ldd . If dynamic libraries show up, the binary/software is not statically linked.

Produce statically linked binaries to meet requirements of research contests.

Statically linked binaries:

  • Advantages:
    • Can optimize library code that is not available via pre-compiled object files.
    • guarantee
  • Disadvantages:
    • S

Dynamically linked binaries:

  • Advantages:
    • "Reduce total resource consumption" for sharing libraries with multiple processes. The resources include: disk space, RAM, and cache space.
    • Enable bug fixes and library upgrades to propagate without requiring actions from the developers.
  • Disadvantages:
    • Risk of suffering in DLL hell (dependency hell for dynamic link libraries).
  • Required by plugins.

To get more information on "C++ statically linked binary compilation," see: https://www.google.com/search?sourceid=chrome-psyapi2&ion=1&espv=2&ie=UTF-8&q=c%2B%2B%20statically%20linked%20binary%20compilation&oq=c%2B%2B%20statically%20linked%20binary%20compilation&aqs=chrome..69i57.17967j0j7

References for Statically Linked Binary Compilation in C++:

Eloff, "Static linking vs dynamic linking," in Stack Overflow, Stack Exchange Inc., New York, NY, January 3, 2010. Available from Stack Exchange: Stack Overflow: Questions at: http://stackoverflow.com/questions/1993390/static-linking-vs-dynamic-linking; last viewed on July 7, 2015.

Giovanni Funchal, "Compiling C++ into portable linux binaries," in Stack Overflow, Stack Exchange Inc., New York, NY, April 6, 2011. Available from Stack Exchange: Stack Overflow: Questions at: http://stackoverflow.com/questions/5563906/compiling-c-into-portable-linux-binaries; last viewed on October 13, 2015.

Bill Forster, "How do I make a fully statically linked .exe with Visual Studio Express 2005?," in Stack Overflow, Stack Exchange Inc., New York, NY, September 10, 2008. Available from Stack Exchange: Stack Overflow: Questions at: http://stackoverflow.com/questions/37398/how-do-i-make-a-fully-statically-linked-exe-with-visual-studio-express-2005; last viewed on October 13, 2015.

Johan Petersson, "Linking libstdc++ statically," in Scatter/Gather thoughts, trilithium.com, June 1, 2005. Available from Scatter/Gather thoughts at: http://www.trilithium.com/johan/2005/06/static-libstdc/; last viewed on October 13, 2015.

Tobias Schottdorf, "Golang: Statically linked binary and tests for Cockroach," in Tobias Schottdorf, PhD: Stuff I Ran Into, GitHub, San Francisco, CA, November 10, 2014. Available from his Cologne, Germany -based web page at: http://tschottdorf.github.io/linking-golang-go-statically-cgo-testing/; last viewed on October 13, 2015.

Wikipedia contributors, "Static library," in Wikipedia, The Free Encyclopedia, Wikimedia Foundation, San Francisco, CA, August 27, 2015. Available online in Wikipedia, The Free Encyclopedia: Computer libraries at: https://en.wikipedia.org/wiki/Static_library; last viewed on October 13, 2015.

Eric Zhiqiang Ma, "How to Statically Link C and C++ Programs on Linux with gcc," in SysTutorials: tutorials on Linux, systems and more, January 1, 2014. Available online on SysTutorials: tutorials on Linux, systems and more at: http://www.systutorials.com/5217/how-to-statically-link-c-and-c-programs-on-linux-with-gcc/; last viewed on October 13, 2015.

References for Markdown:

Stack Overflow staff, "Markdown help," in Stack Overflow, Stack Exchange Inc., New York, NY, 2015. Available as Stack Exchange: Stack Overflow (rev 2015.10.13.2885) at: http://stackoverflow.com/editing-help; last viewed on October 14, 2015.

John Gruber, "Markdown," The Daring Fireball Company LLC, December 17, 2004. Available as The Daring Fireball Company LLC: Projects: Markdown, Version 1.0.1 at: http://daringfireball.net/projects/markdown/; last viewed on October 14, 2015.

Adam Pritchard et al., "Markdown Cheatsheet," GitHub, San Francisco, CA, August 10, 2015. Available at: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet; last viewed on October 14, 2015.

GitHub staff, "Writing on GitHub," in GitHub Help, GitHub, San Francisco, CA, 2015. Available from GitHub: GitHub Help: Writing on GitHub category at: https://help.github.com/articles/writing-on-github/; last viewed on October 14, 2015.

GitHub staff, "Markdown Basics," in GitHub Help, GitHub, San Francisco, CA, 2015. Available from GitHub: GitHub Help: Writing on GitHub category at: https://help.github.com/articles/markdown-basics/; last viewed on October 14, 2015.

GitHub staff, "GitHub Flavored Markdown," in GitHub Help, GitHub, San Francisco, CA, 2015. Available from GitHub: GitHub Help: Writing on GitHub category at: https://help.github.com/articles/github-flavored-markdown/; last viewed on October 14, 2015.

Scott Boms, "Markdown 1.0.1 Syntax Cheatsheet," Wishingline, Menlo Park, CA. Available as Version 1.0.3 at: http://scottboms.com/downloads/documentation/markdown_cheatsheet.pdf; last viewed on October 14, 2015.

Daniel Greenfeld, "Markdown Basics," Revision 0dfc38d3, from the Read the Docs repository, 2012. Available at: http://markdown-guide.readthedocs.org/en/latest/basics.html; last viewed on October 14, 2015.

References (to show me how to create box with scroll bar):
Stack Overflow contributors, "Static linking vs dynamic linking," Stack Exchange Inc., New York, NY, September 10, 2008. Available from ** at: http://stackoverflow.com/questions/1993390/static-linking-vs-dynamic-linking; last viewed on October 13, 2015.

GitHub Repository for this project: https://github.com/eda-globetrotter/lamiera-per-caldaie

You can’t perform that action at this time.