Introduction.- GCC compiler and basic UNIX, GNU/Linux utilities, including Makefiles and GDB.- Processor particularities for x86, x86_64, PowerPC, and SPARC, hardware monitors and timers, measurement counters.- Subversion/CVS for source code management: before we write code we should know how to manage it.- Boost and Boost Graph Library (BGL): since graph theory is an integral part of most system applications.- Pthread for multi-thread applications.- Google perftools and vlagrind.- ZLIB for compression, MD5 for hashing.- Lex/Yacc (ANTLR) for front-end processing: we develop several languages rapidly introducing key techniques in lexical processing and parsing.- LLVM for back-end code generation and virtual machine based optimization.- GNU Scientific Library (GSL), GNU multi-precision library (GMP), BLAS, ATLAS, TAUCS: mathematic functions and linear algebra.- Reduce computer algebra, AXIOM, ACL2 proof systems, GAP (group theory), nauty (graph isomorphism), BUDDY CUDD.- GNU GLPK, lp_solve linear solvers.- FFTW3 FFT solvers targeted for specific processors.- SWIG interface generator.- Doxygen for code annotation, LaTeX for code and product documentation, Graphviz (dot), GNUPLOT, asymptote, gd.- Boehm GC, libtcmalloc, ext::memory_pool.- CGAL Computational Geometry.- Berkeley db for persistent storage.- CV (computer vision), ANN (neural network simulation), CImg (image processing).- OpenGL for graphics.- Qt for GUI.- PostgreSQL.- CLIPS : Expert system software.- ACL2 proof system.- Conclusions.- Index.
Part I Fundamentals.- GNU/Linux Operating System.- Text processing.- Part II Software Engineering and Libraries.- Software Engineering.- Standard Libraries.- Apache Portable Runtime.- Boost C++ Libraries.- Performance Libraries.- Compression Engines.- Application Development Libraries.- Hierarchical Data Format 5 : HDF5.- Graphics and Image Processing Libraries.- Part III Parallel and System Programming.- Parallel Programming.- Part IV Engineering and Mathematical Software.- Scientific Software.- VLSI CAD Tools.- Math libraries.- Mathematics Software.- Artificial Intelligence and Optimization.- Part V Scientific Visualization.- Information Visualization.- Web and Database Systems.- Conclusion.- Index
Handbook of Open Source Tools introduces a comprehensive collection of advanced open source tools useful in developing software applications. The book contains information on more than 200 open-source tools which include software construction utilities for compilers, virtual-machines, database, graphics, high-performance computing, OpenGL, geometry, algebra, graph theory , GUIs and more. Special highlights for software construction utilities and application libraries are included. Each tool is covered in the context of a real like application development setting. This unique handbook presents a comprehensive discussion of advanced tools, a valuable asset used by most application developers and programmers; includes a special focus on Mathematical Open Source Software not available in most Open Source Software books, and introduces several tools (eg ACL2, CLIPS, CUDA, and COIN) which are not known outside of select groups, but are very powerful.
Handbook of Open Source Tools is designed for application developers and programmers working with Open Source Tools. Advanced-level students concentrating on Engineering, Mathematics and Computer Science will find this reference a valuable asset as well.
Presents a comprehensive discussion of more than 200 advanced tools, a valuable asset used by most application developers and programmersIncludes a special focus on Mathematical Open Source Software not available in most Open Source Software booksIntroduces several tools (eg ACL2 andCOIN) which are not known outside of select groups, but are very powerful