Skip to content
/ ita3e Public

C Implementation of Algorithms described in 3rd Edition of Cormen, Leiserson and Rivest

License

Notifications You must be signed in to change notification settings

Arka2009/ita3e

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ita3e : What is it ?

A collection of Agorithms in topics as diverse as computational geometry, scientific computing, quantitative finance, physics simulations, statistics, bioinformatics, DSP, EDA etc.

ita3e : Objectives ?

  1. Learning Practical (sort of) implementation of algorithms and data structures in C/C++.
  2. Complexity Analysis (cache, time and space) of algorithms.
  3. Benchmarking, Energy and power analyses of applications.
  4. Act as a testbed for the following 4.1 Kernel/Application benchmarking. 4.2 Inspect code generation and assembly code quality 4.3 Use of tools like gdb/valgrind/PIN.
  5. Not meant to be a production codebase. So dont expect rigorous software development techniques to be applied consistently.
  6. The level of abstraction is resticted to C/C++, any higher level programming abstraction are to be avoided. The basic objective to understand how programs behave under the hood. process.

Skill required/acquired

  1. C/C++ programming in the UNIX environment.
  2. C/C++ based parallel programming frameworks and libraries (pthreads, openMP, Intel TBB and cilk)
  3. Learn task and data parallelism and their implementation using thread and SIMD instructions. Try to understand the compiler optimizations (IR level and below) and code generation process.
  4. Dynamic analyses like gdb/valgrind/PIN.
  5. Build tools like GNUMake/CMake.
  6. Computer System Security concepts

Other cool/similar projects

  1. Check C++ STL implementation from scratch stl-from-scatch
  2. Also check the implementation of Discrete Event Simulators in C++ (Book by James Nutaro). In particular gem5 for computer systems. Also check Sniper simulator.
  3. Use GSL for mathematical functions.
  4. Use Boost.Graph for graph algorithms in C/C++.
  5. Use srsLTE for SDR for 3GPP based cellular communication.
  6. Use GNURadio for implementation of DSP kernels and (simulink-like) interfaces for creating Radio Systems. Volk provides SIMD implementation for many of the core DSP functions.
  7. Use LLVM for program analyses/compilation/code generation.

About

C Implementation of Algorithms described in 3rd Edition of Cormen, Leiserson and Rivest

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published