Beispiel #1
0
        internal static ndarray FromScalar(ScalarGeneric scalar, dtype descr = null)
        {
            ndarray arr = scalar.ToArray();

            if (descr != null && !NpyCoreApi.EquivTypes((dtype)scalar.dtype, descr))
            {
                arr = NpyCoreApi.CastToType(arr, descr, arr.IsFortran);
            }
            return(arr);
        }
Beispiel #2
0
        internal object ToScalar(VoidPtr dataPtr, int size)
        {
            if (ScalarType == null)
            {
                throw new ArgumentException("Attempt to construct scalar from non-scalar type");
            }

            ScalarGeneric result = scalarInfo.ScalarConstructor();

            return(result.FillData(dataPtr, size, true));
        }
Beispiel #3
0
 /// <summary>
 /// Converts a 0-d array to a scalar
 /// </summary>
 /// <param name="arr"></param>
 /// <returns></returns>
 internal object ToScalar(ndarray arr, long offset = 0)
 {
     if (ScalarType == null || ChkFlags(NpyArray_Descr_Flags.NPY_USE_GETITEM))
     {
         return(arr.GetItem(offset));
     }
     else
     {
         ScalarGeneric result = scalarInfo.ScalarConstructor();
         return(result.FillData(arr, offset, arr.Dtype.IsNativeByteOrder));
     }
 }