For a square matrix A, vech(A) returns the vector formed
by the lower triangular portion of the matrix, including the diagonal;
usually, this only makes sense for a symmetric matrix of numeric values.
If v=vech(M) where M is a symmetric numeric matrix,
vech2mat(v) performs the inverse operation and returns the original
matrix M; this explain the requirement on length(v).
For a positive integer n, D=duplicationMatrix(n) is a matrix
of dimension (n^2, n*(n+1)/2) such that D %*% vech(M) returns
the vec-form of a symmetric matrix M of
order n, that is, the vector which stacks the columns of M;
for more information, see Section 3.8 of Magnus and Neudecker (1988).