Extended C Library
Why Is libxc needed? There doesn't exist a library for ANSI C99 for common data containers, such as vectors, trees, etc. There also also doesn't exist a library for common functionality, such as error reporting/logging, string functions, configuration management (reading config files), etc... The programmer working in C doesn't have anything analogous to the Boost C++ library. The extended C library is intended to make some headway into providing this functionality. To ensure unrestricted usage the libxc project is provided under the very permissive BSD license. If you need a different license then please send me a request (lelanthran at gmail) and I'll do my best to satisfy your request. What's completed? As of writing, the following libraries have been written and tested: 1. Memory accounting/tracking 2. String operations 3. Vectors 4. Trees 5. Dictionary arrays 6. Configuration management See the wiki page for more information
Some Useful C-Utilities
Libcutils provides a self-contained set of fundamental routines which are essential to basically any Unix utility or daemon application written in C. The library provides fundamental data structures such as lists, hash-maps, strings and parsing functions for JSON or the typical dot-file based configuration data. The following list summarizes the currently supported functionality: * length delimited instead of NULL terminated strings * memory management based on reference counting * several list processing functions like iterators and map-reduce * support of [Ideal Hash Tries](http://infoscience.epfl.ch/record/64398/files/idealhashtrees.pdf) for highly efficient hash map data structures * parsers for [JSON](http://json.org) data and the text configuration files found in Unix system * doubly linked circular lists for reliable event queues * support for test and debugging of memory management problems such as memory leaks
Heterogeneous cluster for acceleration of linear algebra computations
This project deals with a new concept of the heterogeneous grid for acceleration of the numerical linear algebra computing. We design this grid with respect to maximal ratio between cost and computational power. It allows a parallelization of scientific codes with minimal programming effort. We also optimize grid concept to be less sensitive to network parameters.
OpenGL 3D Mesh generating library
GLOB allows OpenGL programmers to create a variety of 3D meshes ranging from spheres, cubes and cyliders to NURBS and extrusions. GLOB compiles under Windows, Linux-based OSs and MAC. The library is compatible with OpenGL 4.0+ and doesn't use any deprecated features. 4 attrributes: 4D color, 3D normal, 3D position and 2D texture coordinate are stored per vertex in VAO (Vertex Array Objects). GLOB doesn't do any rendering to the screen and only builds the attributes for the mesh. Thus, the user must provide his own shader programs. However, if there is no current shader program registered, a default one is used which will depict the mesh under simple lighting and texture map. The GLOB API is very simple and intuitive to use, providing opportunities for customization, including that of normal and texture mapping.