Initial commit of functions from github.com/btracey/optimize

You can do that with another two rank-one updates for the second term. If you use the blas functionality you can use a symmetric matrix and the symmetric rank-two update function.