Ejemplo n.º 1
0
        internal static int DifferentSizes_SetItemFunc(npy_intp index, dynamic value, NpyArray npa)
        {
            // handles case of views mapped to different size arrays
            var SrcArray = NpyDataMem_NEW(npa.ItemType, 1, false);

            SetIndex(SrcArray, 0, value);
            MemCopy.MemCpy(npa.data, index, SrcArray, 0, npa.ItemSize);
            return(1);
        }
Ejemplo n.º 2
0
        internal static object DifferentSizes_GetItemFunc(npy_intp index, NpyArray npa)
        {
            // handles case of views mapped to different size arrays
            var DestArray = NpyDataMem_NEW(npa.ItemType, 1, false);

            MemCopy.MemCpy(DestArray, 0, npa.data, index, npa.ItemSize);

            return(GetIndex(DestArray, 0));
        }
Ejemplo n.º 3
0
        private static VoidPtr ConvertAllToFloats(VoidPtr src, int srcOffset, int length)
        {
            int totalBytesToCopy = (length - srcOffset);

            float[] destArray = new float[(totalBytesToCopy + sizeof(float) - 1) / sizeof(float)];

            VoidPtr Dest = new VoidPtr(destArray);

            MemCopy.MemCpy(Dest, 0, src, srcOffset, totalBytesToCopy);
            return(Dest);
        }
Ejemplo n.º 4
0
        private static VoidPtr ConvertAllToDecimals(VoidPtr src, int srcOffset, int length)
        {
            int totalBytesToCopy = (length - srcOffset);

            decimal[] destArray = new decimal[(totalBytesToCopy + sizeof(decimal) - 1) / sizeof(decimal)];

            VoidPtr Dest = new VoidPtr(destArray);

            MemCopy.MemCpy(Dest, 0, src, srcOffset, totalBytesToCopy);
            return(Dest);
        }
Ejemplo n.º 5
0
        private static VoidPtr ConvertAllToUInt64s(VoidPtr src, int srcOffset, int length)
        {
            int totalBytesToCopy = (length - srcOffset);

            UInt64[] destArray = new UInt64[(totalBytesToCopy + sizeof(UInt64) - 1) / sizeof(UInt64)];

            VoidPtr Dest = new VoidPtr(destArray);

            MemCopy.MemCpy(Dest, 0, src, srcOffset, totalBytesToCopy);
            return(Dest);
        }
Ejemplo n.º 6
0
        public static VoidPtr NpyDataMem_RENEW(VoidPtr oldArray, ulong newSize)
        {
            VoidPtr newArray = NpyDataMem_NEW(oldArray.type_num, newSize, true);

            ulong preserveLength = System.Math.Min(VoidPointer_BytesLength(oldArray), newSize);

            if (preserveLength > 0)
            {
                MemCopy.MemCpy(newArray, 0, oldArray, 0, (long)preserveLength);
            }
            return(newArray);
        }
Ejemplo n.º 7
0
 internal static void memmove(VoidPtr dest, npy_intp dest_offset, VoidPtr src, npy_intp src_offset, long len)
 {
     if (dest.type_num == NPY_TYPES.NPY_DECIMAL)
     {
         VoidPtr Temp = new VoidPtr(new decimal[len / sizeof(decimal)]);
         MemCopy.MemCpy(Temp, 0, src, src_offset, len);
         MemCopy.MemCpy(dest, dest_offset, Temp, 0, len);
     }
     else
     {
         VoidPtr Temp = new VoidPtr(new byte[len]);
         MemCopy.MemCpy(Temp, 0, src, src_offset, len);
         MemCopy.MemCpy(dest, dest_offset, Temp, 0, len);
     }
 }
Ejemplo n.º 8
0
 internal static void memmove(VoidPtr dest, npy_intp dest_offset, VoidPtr src, npy_intp src_offset, long len)
 {
     if ((src.type_num == dest.type_num) && IsElementAligned(src, src_offset) && IsElementAligned(dest, dest_offset))
     {
         var helper = MemCopy.GetMemcopyHelper(dest);
         helper.memmove(dest, dest_offset, src, src_offset, len);
         return;
     }
     else
     {
         VoidPtr Temp = new VoidPtr(new byte[len]);
         MemCopy.MemCpy(Temp, 0, src, src_offset, len);
         MemCopy.MemCpy(dest, dest_offset, Temp, 0, len);
         return;
     }
 }
Ejemplo n.º 9
0
 internal static bool MemCpy(VoidPtr Dest, npy_intp DestOffset, VoidPtr Src, npy_intp SrcOffset, long Length)
 {
     return(MemCopy.MemCpy(Dest, DestOffset, Src, SrcOffset, Length));
 }
Ejemplo n.º 10
0
 internal static void memcpy(VoidPtr dest, VoidPtr src, long len)
 {
     MemCopy.MemCpy(dest, 0, src, 0, len);
 }