コード例 #1
0
 public static ArrayExtensions.ArraySegmentSelectVectorEnumerable <TSource, TResult, TSelector, TSelector> SelectVector <TSource, TResult, TSelector>(this ValueEnumerable <TSource> source, TSelector selector = default)
     where TSelector : struct, IFunction <Vector <TSource>, Vector <TResult> >, IFunction <TSource, TResult>
     where TSource : struct
     where TResult : struct
 => new ArraySegment <TSource>(source.source).SelectVector <TSource, TResult, TSelector, TSelector>(selector, selector);
コード例 #2
0
        public int Hyperlinq_Memory()
        {
            var sum = 0;

            foreach (var item in memory.AsValueEnumerable().SelectMany <ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                sum += item;
            }
            return(sum);
        }
コード例 #3
0
        public int Hyperlinq_Collection_Reference()
        {
            var sum = 0;

            foreach (var item in collectionReference
                     .AsValueEnumerable()
                     .SelectMany <
                         ReadOnlyCollectionExtensions.ValueEnumerableWrapper <int>, ReadOnlyCollectionExtensions.ValueEnumerableWrapper <int> .Enumerator, int,
                         ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                sum += item;
            }
            return(sum);
        }
コード例 #4
0
        public int Hyperlinq_Collection_Value()
        {
            var sum = 0;

            foreach (var item in EnumerableExtensions.AsValueEnumerable <TestCollection.Enumerable, TestCollection.Enumerable.Enumerator, int>(collectionValue, enumerable => enumerable.GetEnumerator())
                     .SelectMany <
                         EnumerableExtensions.ValueEnumerableWrapper <TestCollection.Enumerable, TestCollection.Enumerable.Enumerator, int>, TestCollection.Enumerable.Enumerator, int,
                         ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                sum += item;
            }
            return(sum);
        }
コード例 #5
0
        public void GlobalSetup()
        {
            var range = ValueEnumerable.Range(0, Count);

            array = ImmutableArray.CreateRange(range);
        }
コード例 #6
0
 public int[] Hyperlinq_IFunction_SIMD()
 => ValueEnumerable
 .Range(Start, Count)
 .SelectVector <int, TripleOfInt32>()
 .ToArray();
コード例 #7
0
 public static ArrayExtensions.MemorySelectVectorEnumerable <TSource, TResult, TVectorSelector, TSelector> SelectVector <TSource, TResult, TVectorSelector, TSelector>(this ValueEnumerable <TSource> source, TVectorSelector vectorSelector = default, TSelector selector = default)
     where TVectorSelector : struct, IFunction <Vector <TSource>, Vector <TResult> >
     where TSelector : struct, IFunction <TSource, TResult>
     where TSource : struct
     where TResult : struct
 => source.source.SelectVector <TSource, TResult, TVectorSelector, TSelector>(vectorSelector, selector);
コード例 #8
0
 public int[] Hyperlinq_Range_Where_ToArray() =>
 ValueEnumerable.Range(0, Count).Where(_ => true).ToArray();
コード例 #9
0
 public List <int> Hyperlinq_Range_Where_ToList() =>
 ValueEnumerable.Range(0, Count).Where(_ => true).ToList();
コード例 #10
0
 public int[] Hyperlinq()
 => ValueEnumerable.Repeat(0, Count).ToArray();
コード例 #11
0
 public int[] Hyperlinq_SIMD()
 => ValueEnumerable.Repeat(0, Count).ToArrayVector();
コード例 #12
0
 public void GlobalSetup()
 {
     list = new LinkedList <int>(ValueEnumerable.Range(0, Count));
 }
コード例 #13
0
 public int[] Hyperlinq_IFunction()
 => ValueEnumerable
 .Range(Start, Count)
 .Select <int, DoubleOfInt32>()
 .ToArray();
コード例 #14
0
 public void GlobalSetup()
 => list = ValueEnumerable.Range(0, Count).ToList();
コード例 #15
0
 public int[] Hyperlinq()
 => ValueEnumerable
 .Range(Start, Count)
 .Select(item => item * 3)
 .ToArray();
コード例 #16
0
        public int Hyperlinq_Memory()
        {
            var count = 0;

            foreach (var item in memory.SelectMany <int, ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                count++;
            }
            return(count);
        }
コード例 #17
0
 public int[] Hyperlinq_SIMD()
 => ValueEnumerable
 .Range(Start, Count)
 .SelectVector(item => item * 3, item => item * 3)
 .ToArray();
コード例 #18
0
        public int Hyperlinq_List_Value()
        {
            var count = 0;

            foreach (var item in Enumerable.AsValueEnumerable <TestList.Enumerable, TestList.Enumerable.Enumerator, int>(listValue, enumerable => enumerable.GetEnumerator())
                     .SelectMany <
                         Enumerable.ValueEnumerableWrapper <TestList.Enumerable, TestList.Enumerable.Enumerator, int>, TestList.Enumerable.Enumerator, int,
                         ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                count++;
            }
            return(count);
        }
コード例 #19
0
        public int Hyperlinq_List_Reference()
        {
            var sum = 0;

            foreach (var item in ReadOnlyListExtensions.SelectMany <
                         ReadOnlyListExtensions.ValueEnumerableWrapper <int>, int,
                         ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(
                         ReadOnlyListExtensions.AsValueEnumerable <int>(listReference), item => ValueEnumerable.Return(item)))
            {
                sum += item;
            }
            return(sum);
        }
コード例 #20
0
        public int Hyperlinq_Enumerable_Reference()
        {
            var count = 0;

            foreach (var item in enumerableReference.AsValueEnumerable()
                     .SelectMany <
                         Enumerable.ValueEnumerableWrapper <int>, Enumerable.ValueEnumerableWrapper <int> .Enumerator, int,
                         ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                count++;
            }
            return(count);
        }
コード例 #21
0
        public int Hyperlinq_Array()
        {
            var sum = 0;

            foreach (var item in array.SelectMany <int, ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                sum += item;
            }
            return(sum);
        }
コード例 #22
0
        public int Hyperlinq_Collection_Reference()
        {
            var count = 0;

            foreach (var item in collectionReference.AsValueEnumerable()
                     .SelectMany <
                         ReadOnlyCollection.ValueEnumerableWrapper <int>, ReadOnlyCollection.ValueEnumerableWrapper <int> .Enumerator, int,
                         ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                count++;
            }
            return(count);
        }
コード例 #23
0
 public List <int> Hyperlinq()
 => ValueEnumerable.Range(0, Count).Select(item => item % 10).Distinct().ToList();
コード例 #24
0
        public int Hyperlinq_List_Reference()
        {
            var count = 0;

            foreach (var item in ReadOnlyList.SelectMany <
                         ReadOnlyList.ValueEnumerableWrapper <int>, int,
                         ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(
                         ReadOnlyList.AsValueEnumerable <int>(listReference), item => ValueEnumerable.Return(item)))
            {
                count++;
            }
            return(count);
        }
コード例 #25
0
 protected static int[] GetSequentialValues(int count)
 => ValueEnumerable.Range(0, count).ToArray();
コード例 #26
0
 public int[] Hyperlinq()
 => ValueEnumerable
 .Range(Start, Count)
 .ToArray();
コード例 #27
0
        public int Hyperlinq_Enumerable_Reference()
        {
            var sum = 0;

            foreach (var item in enumerableReference
                     .AsValueEnumerable()
                     .SelectMany <
                         EnumerableExtensions.ValueEnumerable <int>, EnumerableExtensions.ValueEnumerable <int> .Enumerator, int,
                         ValueEnumerable.ReturnEnumerable <int>, ValueEnumerable.ReturnEnumerable <int> .DisposableEnumerator, int>(item => ValueEnumerable.Return(item)))
            {
                sum += item;
            }
            return(sum);
        }
コード例 #28
0
 public void GlobalSetup()
 {
     enumerable = TestEnumerable.ReferenceType(10);
     list       = ValueEnumerable.Range(0, 10).ToList();
 }
コード例 #29
0
 public int Hyperlinq_Empty_Count()
 => ValueEnumerable.Empty <int>().Count();
コード例 #30
0
 protected JsonResult Data(string msg, ValueEnumerable errors) => Json(new MsgVue(msg, errors));