public ArrayMatrix(T[,] value)
        {
            var len0 = value.GetLength(0);
            var len1 = value.GetLength(1);
            var arr  = this.Value = new T[len0][];
            var span = MemoryMarshal.CreateReadOnlySpan(ref value[0, 0], len0 * len1);

            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = span.Slice(i * len1, len1).ToArray();
            }
            kind = ArrayMatrixKind.Normal;
        }
 public ArrayMatrix(T[][] value)
 {
     Value = value;
     kind  = ArrayMatrixKind.Normal;
 }
 internal ArrayMatrix(ArrayMatrixKind kind)
 {
     this.kind = kind;
     Value     = null;
 }