Ejemplo n.º 1
0
 public static bool CompareArrays(NpyArray T1, NpyArray T2)
 {
     return(CompareArrays(T1.data, T2.data));
 }
Ejemplo n.º 2
0
 static bool numpy_interface_array_new_wrapper(NpyArray newArray, bool ensureArray, bool customStrides, object subtype, object interfaceData, ref object interfaceRet)
 {
     return(true);
 }
Ejemplo n.º 3
0
 public static void DefaultCastFunction(VoidPtr Src, VoidPtr Dest, int srclen, NpyArray srcArray, NpyArray destArray)
 {
     numpyAPI.DefaultCastFunction(Src, Dest, srclen, srcArray, destArray);
     return;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Recursively walks the array and appends a representation of each element
        /// to the passed string builder.  Square brackets delimit each array dimension.
        /// </summary>
        /// <param name="sb">StringBuilder instance to append to</param>
        /// <param name="dimensions">Array of size of each dimension</param>
        /// <param name="strides">Offset in bytes to reach next element in each dimension</param>
        /// <param name="dimIdx">Index of the current dimension (starts at 0, recursively counts up)</param>
        /// <param name="offset">Byte offset into data array, starts at 0</param>
        private static void DumpArray(NpyArray arr, List <string> sb, npy_intp[] dimensions, npy_intp[] strides, int dimIdx, npy_intp offset, npy_intp totalElements, int IndentCount, bool UseParensForMarkers)
        {
            if (dimIdx == arr.nd)
            {
                Object value = arr.descr.f.getitem(offset, arr);
                if (value == null)
                {
                    sb.Add("None");
                }
                else
                {
                    string strValue = "";
                    switch (arr.ItemType)
                    {
                    case NPY_TYPES.NPY_FLOAT:
                        float fValue = (float)value;
                        strValue = fValue.ToString();
                        if (!strValue.Contains("."))
                        {
                            strValue += ".0";
                        }
                        strValue += "f";
                        break;

                    case NPY_TYPES.NPY_DOUBLE:
                        double dValue = (double)value;
                        strValue = dValue.ToString();
                        if (!strValue.Contains("."))
                        {
                            strValue += ".0";
                        }
                        break;

                    case NPY_TYPES.NPY_DECIMAL:
                        decimal ddValue = (decimal)value;
                        strValue = ddValue.ToString();
                        if (!strValue.Contains("."))
                        {
                            strValue += ".0";
                        }
                        strValue += "m";
                        break;

                    default:
                        strValue = value.ToString();
                        break;
                    }


                    sb.Add(strValue);
                }
            }
            else
            {
                string RowStartMarker;
                string RowEndMarker;

                if (UseParensForMarkers)
                {
                    RowStartMarker = "{ ";
                    RowEndMarker   = " }\n";
                }
                else
                {
                    RowStartMarker = "[ ";
                    RowEndMarker   = " ]\n";
                }

                string StartRow = InsertRowStartOffsets(sb, IndentCount);

                StartRow += RowStartMarker;
                sb.Add(StartRow);
                IndentCount++;

                for (int i = 0; i < dimensions[dimIdx]; i++)
                {
                    DumpArray(arr, sb, dimensions, strides, dimIdx + 1, offset + (strides[dimIdx] * i), totalElements, IndentCount, UseParensForMarkers);
                    if (i < dimensions[dimIdx] - 1)
                    {
                        string LastRow = sb[sb.Count - 1];
                        if (LastRow.EndsWith(RowEndMarker))
                        {
                            sb[sb.Count - 1] = LastRow.TrimEnd() + ",\n";
                        }
                        else
                        {
                            sb.Add(", ");
                        }
                    }
                }

                string LastRow2 = sb[sb.Count - 1];
                if (LastRow2.EndsWith(RowEndMarker))
                {
                    sb[sb.Count - 1] = LastRow2.TrimEnd() + RowEndMarker;
                }
                else
                {
                    sb.Add(RowEndMarker);
                    IndentCount--;
                }
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Recursively walks the array and appends a representation of each element
        /// to the passed string builder.  Square brackets delimit each array dimension.
        /// </summary>
        /// <param name="sb">StringBuilder instance to append to</param>
        /// <param name="dimensions">Array of size of each dimension</param>
        /// <param name="strides">Offset in bytes to reach next element in each dimension</param>
        /// <param name="dimIdx">Index of the current dimension (starts at 0, recursively counts up)</param>
        /// <param name="offset">Byte offset into data array, starts at 0</param>
        private static void DumpArray(NpyArray arr, StringBuilder sb, npy_intp[] dimensions, npy_intp[] strides, int dimIdx, long offset, npy_intp totalElements)
        {
            if (dimIdx == arr.nd)
            {
                Object value = arr.descr.f.getitem(offset, arr);
                if (value == null)
                {
                    sb.Append("None");
                }
                else
                {
                    string strValue = "";
                    switch (arr.ItemType)
                    {
                    case NPY_TYPES.NPY_FLOAT:
                        float fValue = (float)value;
                        strValue = fValue.ToString();
                        if (!strValue.Contains("."))
                        {
                            if (totalElements == 1)
                            {
                                strValue += ".0";
                            }
                            else
                            {
                                strValue += ".";
                            }
                        }
                        break;

                    case NPY_TYPES.NPY_CDOUBLE:
                    case NPY_TYPES.NPY_DOUBLE:
                    case NPY_TYPES.NPY_LONGDOUBLE:
                    case NPY_TYPES.NPY_CLONGDOUBLE:

                        double dValue = (double)value;
                        strValue = dValue.ToString();
                        if (!strValue.Contains("."))
                        {
                            if (totalElements == 1)
                            {
                                strValue += ".0";
                            }
                            else
                            {
                                strValue += ".";
                            }
                        }
                        break;

                    default:
                        strValue = value.ToString();
                        break;
                    }


                    sb.Append(strValue);
                }
            }
            else
            {
                sb.Append('[');
                for (int i = 0; i < dimensions[dimIdx]; i++)
                {
                    DumpArray(arr, sb, dimensions, strides, dimIdx + 1, offset + (strides[dimIdx] * i), totalElements);
                    if (i < dimensions[dimIdx] - 1)
                    {
                        sb.Append(", ");
                    }
                }
                sb.Append("]\n");
            }
        }
Ejemplo n.º 6
0
 internal void SetItem(Object value, long offset, NpyArray arr)
 {
     SetFunc(value, arr.data + offset, arr);
 }
Ejemplo n.º 7
0
 internal Object GetItem(long offset, NpyArray arr)
 {
     return(GetFunc(arr.data + offset, arr));
 }