コード例 #1
0
        public void GetSizeTest()
        {
            using var chunk = new AlignedMemoryChunk(1024, 16);

            chunk.Alignment.Is(16);
            chunk.Size.Is(1024);
        }
コード例 #2
0
        public void AsSpanTest()
        {
            using var chunk = new AlignedMemoryChunk(1024, 16);

            {
                var span = chunk.AsSpan <uint>(256);

                for (var i = 0; i < 256; i++)
                {
                    span[i] = (uint)i;
                }
            }


            {
                var span   = chunk.AsSpan <uint>(256);
                var roSpan = chunk.AsReadOnlySpan <uint>(256);
                var ptr    = (uint *)chunk.AlignedHead;

                for (var i = 0; i < span.Length; i++)
                {
                    span[i].Is((uint)i);
                    roSpan[i].Is((uint)i);
                    ptr[i].Is((uint)i);
                }
            }
        }
コード例 #3
0
 public dSfmtPrimitiveState()
 {
     _chunk = new AlignedMemoryChunk(sizeof(ulong) * (DSFMT_N + 1) * 2, 16);
     //_chunk = new AlignedMemoryChunk(3104, 16);
     status = (FloatW128 *)_chunk.AlignedHead;
     idx    = 0;
 }
コード例 #4
0
        public void AllocateTest(int alignment)
        {
            var target = new AlignedMemoryChunk(1024, alignment);
            var ptr    = (ulong)target.AlignedHead;
            var ret    = (int)(ptr % (ulong)alignment);

            ret.Is(0);
        }
コード例 #5
0
        public void CloseTest()
        {
            var chunk = new AlignedMemoryChunk(1024, 16);

            chunk.Dispose();
            chunk.IsClosed.IsTrue();

            Assert.Throws <ObjectDisposedException>(() => chunk.GetChunkHead);
            Assert.Throws <ObjectDisposedException>(() => chunk.Alignment);
            Assert.Throws <ObjectDisposedException>(() => chunk.Size);
        }
コード例 #6
0
 public SfmtPrimitiveState()
 {
     _chunk = new AlignedMemoryChunk(sizeof(ulong) * IntegerDefinition.N64, 16);
     State  = (IntegerW128 *)_chunk.AlignedHead;
     Index  = 0;
 }