public static int IndexOfMax <T>(this SpanTensor1 <T> tensor, IComparer <T> comparer = null)
            where T : unmanaged, IEquatable <T>
        {
            var span = tensor._Buffer;

            if (span.Length == 0)
            {
                return(-1);
            }

            if (comparer == null)
            {
                comparer = Comparer <T> .Default;
            }

            T   max = span[0];
            var idx = 0;

            for (int i = 1; i < span.Length; ++i)
            {
                var item = span[i];
                if (comparer.Compare(max, item) > 0)
                {
                    max = item; idx = i;
                }
            }

            return(idx);
        }
        public static int IndexOf <T>(this SpanTensor1 <T> tensor, Predicate <T> predicate)
            where T : unmanaged, IEquatable <T>
        {
            var span = tensor._Buffer;

            for (int i = 0; i < span.Length; ++i)
            {
                if (predicate(span[i]))
                {
                    return(i);
                }
            }

            return(-1);
        }
 public static int IndexOf <T>(this SpanTensor1 <T> tensor, T value)
     where T : unmanaged, IEquatable <T>
 {
     return(tensor._Buffer.IndexOf(value));
 }
 public static void ApplySoftMax(this SpanTensor1 <float> tensor)
 {
     SpanTensor.ApplySoftMax(tensor.Span);
 }