As an undergrad student studying math and computer science, I have learned a lot of linear algebra. That said, I am quite far from being an expert, and have needed state of the art solutions for some fairly specific problems that on my own I would never have known how to solve. The two best examples of this are matrix exponentials of symmetric matrices, and matrix inverse square roots.
For both of these problems, I spent a while trying to go through some of the literature or see what python did, but I eventually decided to check
LinearAlgebra and see what it did. In the first case, it gave me a 3 line algorithm to implement in python that sped up a research problem by a factor of 3. In the second, I found a state of the art approach with pretty readable documentation.
The main point of this post is to highlight the 3 great things about Julia for this kind of exploration
- Multiple Dispatch: This is why the specialized versions of functions exist and have discoverable names
@editGetting files and line numbers means I only have to read the function I care about, not the entire file
- The countless hours of work that went into implementing these algorithms in the first place.
Anyway, just wanted to say how much I appreciate all the work that’s gone into this awesome language!