public static VectorNf Min(VectorNf left, VectorNf right)
        {
            var dim    = Math.Max(left.Dimension, right.Dimension);
            var result = new float[dim];

            for (var i = 0; i < dim; i++)
            {
                result[i] = Math.Min(left[i], right[i]);
            }

            return(new VectorNf(ref result));
        }
        public static float DotP(VectorNf left, VectorNf right)
        {
            float result = 0;
            var   dim    = Math.Min(left.Dimension, right.Dimension);

            for (var i = 0; i < dim; i++)
            {
                result += left[i] * right[i];
            }

            return(result);
        }