Primal partition programming for block diagonal matrices