Hi I'm studying 2nd year for a bachelor's degree in physics and I'm interested in programming (Beginner C++ programmer). I have already done simulations like harmonic motions, Ising model etc but I know this can go further and I need help with that. I use Ubuntu for programming with c++. (GCC compiler) 1- So far I just have used GNUPLOT for drawing plots and exporting as .xpm pictures and joining them to make .gif files to demonstrate models like Ising. I searched for a great amount of time and I found out there are libraries like Qt, Octave, SDL,... but honestly I couldn't use any of them. Seems like they are suited for game programming and I need something more simple. 2- What libraries can I use for more advanced mathematical functions like determinants, inverse matrices, integral calculations, solving ODEs etc so I don't have to write my own functions each time and I can simply use something like float a = det(B). 3- What else should I do to optimize my programming for computational physics? I'm taking courses in computational physics soon and already started to read books. Thanks.