The convention is that each row of the rkhist object contains a
vector. It is not required that the set be a basis.
For each shape in shapes this function calls a function named
'deviate_shape' with one argument k. Some pre-coded functions already
exist but the user can easily add its own by following this naming
convention. The added function must have only one argument k and
return an rkhist object. It is advised that the returned deviate
vector's components should sum to 0 and have a unit module. But this can be
imposed by setting the argument constrain to TRUE.
If constrain == TRUE the vector set is modified to have the right
properties to be used in the Jolliffe-Primo test, through the Grahm-Schmidt
method. It is strongly advised to plot the resulting set with function
flatness::plot, since this transformation may greatly change the
shape of the original vectors.