converting 'MarginsData' to a 'std::valarray' object

The 'std::valarray' type supposedly "defined to be free of certain
forms of aliasing, thus allowing operations on these classes to be
optimized." This fact will come in handy in upcoming changes.