add generate of distributed_matrix by function object
Merge remote-tracking branch 'origin/develop' into develop