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); }
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)); }
/// <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)); } }