Exercise 2.37 all working, with development notes
Exercise 2.37 - matrix operations, ready for submission to /dev/null