function scale(m, v, dst) {
  dst = dst || new MatType(16);
  var v0 = v[0];
  var v1 = v[1];
  var v2 = v[2];
  dst[0] = v0 * m[0 * 4 + 0];
  dst[1] = v0 * m[0 * 4 + 1];
  dst[2] = v0 * m[0 * 4 + 2];
  dst[3] = v0 * m[0 * 4 + 3];
  dst[4] = v1 * m[1 * 4 + 0];
  dst[5] = v1 * m[1 * 4 + 1];
  dst[6] = v1 * m[1 * 4 + 2];
  dst[7] = v1 * m[1 * 4 + 3];
  dst[8] = v2 * m[2 * 4 + 0];
  dst[9] = v2 * m[2 * 4 + 1];
  dst[10] = v2 * m[2 * 4 + 2];
  dst[11] = v2 * m[2 * 4 + 3];

  if (m !== dst) {
    dst[12] = m[12];
    dst[13] = m[13];
    dst[14] = m[14];
    dst[15] = m[15];
  }

  return dst;
}
Scales the given 4-by-4 matrix in each dimension by an amount
given by the corresponding entry in the given vector; assumes the vector has
three entries.
@param {module:twgl/m4.Mat4} m The matrix to be modified.
@param {module:twgl/v3.Vec3} v A vector of three entries specifying the
    factor by which to scale in each dimension.
@param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.
@return {module:twgl/m4.Mat4} The scaled matrix.
@memberOf module:twgl/m4