The problem was in my use of dseupd, I was giving it the parameter:
"LR".as_ptr() as *const i8,
What I should have used is:
"LM".as_ptr() as *const i8,
Additionally, one should be careful that the memory layout of the high level matrix structures is continous.