541 karma · joined April 21, 2021
But I think what it was really missing last time I looked at it was good access to compiler intrinsics (or otherwise) to hit vectorizations and math optimization instructions. The OpenMP simd pragmas weren't really doing a fantastic job. I hope that's better now it's in LLVM.
Picking on what I'd consider one of the major workhorse methods of continous constrained optimization, Interior Point Methods get a 2-3 page super high level summary in this book. Nocedal and Wright give an entire chapter on the topic (~25 pages) (which of course still is probably insufficient detail to implement anything like a competitive solver).
That said, most of those packages will just read the hardware capability from the OS and dispatch an appropriate codepath anyway. You maybe save some code footprint by restricting the number of codepaths it needs to compile.
Certain layouts have performance advantages for certain operations on certain microarchitectures due to data access patterns (especially for level 2 BLAS), but that's largely irrelevant to historical discussion of the API's evolution.
Of course things have moved on since then and a lot of software these days is written in languages that inherited their array ordering from C, leading to much fun and confusion.
The other gotcha with a lot of these APIs is of course 0 vs 1-based array numbering.
Cambridge if you'd not done the homework before the tutorial, you got sent packing for wasting everyone's time, but in Edinburgh it was common for all but the best students to only start the homework at the tutorial (thus wasting their opportunity to ask questions on trivial stuff they could get by reading the course notes.
Equally on exams, the minimum standard at Cambridge was "regurgitate proof from course notes" with the other 2/3rds of the marks for iterating on it with unseen material, whereas the Edinburgh exams the regurgitation would get you 100%.
Unless things have changed significantly (or Edinburgh is that much worth than other redbricks), I'm not sure I trust these rankings in terms of student quality.
- Lots more speed cameras
- Average speed cameras especially make a huge difference vs spot enforcement
- Tolerance for enforcement is normally 10% rather than 10 mph (i.e. 30 limit means no more than 33mph rather than no more than 40mph)