I am a junior computer science major and for a class I have to try to improve the performance of an open source project through changes in the data structures. I have chosen to work on GNU Octave. I am confident in my general C++ skills, but I need help understanding the structure of this project. Specifically, does anyone know where any data structures that cause significant bottlenecks are located? I have been looking at the matrices in the "octave/liboctave/array" folder of the source but have no idea what classes are used for what because there seem to be few comments.