コード例 #1
0
        static MxArray _MxArrayFromInt16Array(
            Array value)
        {
            int count = value.Length;

            int[] arraydims = MxUtils.GetArrayDimensions(value);
            int[] dims;
            if (value.Rank == 1)
            {
                dims = new int[] { 1, count };
            }
            else
            {
                dims = (int[])arraydims.Clone();
            }
            MxArray result = MxArray.CreateArray(dims,
                                                 ClassID.Int16, Complexity.Real);

            unsafe
            {
                short *pr;
                pr = (short *)result.RealElements;

                for (int i = 0; i < count; i++)
                {
                    *pr++ = (short)
                            value.GetValue(MxUtils.CoordinatesFromIndex(i, arraydims));
                }
            }

            return(result);
        }
コード例 #2
0
        unsafe static MxArray _MxArrayFromDouble(
            double value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Double, Complexity.Real);
            double *pr;

            pr = (double *)result.RealElements;
            *pr = value;

            return(result);
        }
コード例 #3
0
        unsafe static MxArray _MxArrayFromInt16(
            short value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Int16, Complexity.Real);
            short *pr;

            pr = (short *)result.RealElements;
            *pr = value;

            return(result);
        }
コード例 #4
0
        unsafe static MxArray _MxArrayFromByte(
            byte value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.UInt8, Complexity.Real);
            byte *pr;

            pr = (byte *)result.RealElements;
            *pr = value;

            return(result);
        }
コード例 #5
0
        unsafe static MxArray _MxArrayFromBoolean(
            bool value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Logical, Complexity.Real);
            bool *pr;

            pr = (bool *)result.RealElements;
            *pr = value;

            return(result);
        }
コード例 #6
0
        unsafe static MxArray _MxArrayFromChar(
            char value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Char, Complexity.Real);
            char *pr;

            pr = (char *)result.RealElements;
            *pr = value;

            return(result);
        }
コード例 #7
0
        unsafe static MxArray _MxArrayFromSingle(
            float value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Single, Complexity.Real);
            float *pr;

            pr = (float *)result.RealElements;
            *pr = value;

            return(result);
        }
コード例 #8
0
        unsafe static MxArray _MxArrayFromInt64(
            long value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Int64, Complexity.Real);
            long *pr;

            pr = (long *)result.RealElements;
            *pr = value;

            return(result);
        }
コード例 #9
0
        unsafe static MxArray _MxArrayFromUInt32(
            uint value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.UInt32, Complexity.Real);
            uint *pr;

            pr = (uint *)result.RealElements;
            *pr = value;

            return(result);
        }
コード例 #10
0
        unsafe static MxArray _MxArrayFromInt16_Cplx(
            Complex <short> value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Int16, Complexity.Complex);
            short *pr, pi;

            pr = (short *)result.RealElements;
            pi = (short *)result.ImaginaryElements;

            *pr = value.RealPart;
            *pi = value.ImaginaryPart;

            return(result);
        }
コード例 #11
0
        unsafe static MxArray _MxArrayFromByte_Cplx(
            Complex <byte> value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.UInt8, Complexity.Complex);
            byte *pr, pi;

            pr = (byte *)result.RealElements;
            pi = (byte *)result.ImaginaryElements;

            *pr = value.RealPart;
            *pi = value.ImaginaryPart;

            return(result);
        }
コード例 #12
0
        unsafe static MxArray _MxArrayFromBoolean_Cplx(
            Complex <bool> value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Logical, Complexity.Complex);
            bool *pr, pi;

            pr = (bool *)result.RealElements;
            pi = (bool *)result.ImaginaryElements;

            *pr = value.RealPart;
            *pi = value.ImaginaryPart;

            return(result);
        }
コード例 #13
0
        unsafe static MxArray _MxArrayFromChar_Cplx(
            Complex <char> value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Char, Complexity.Complex);
            char *pr, pi;

            pr = (char *)result.RealElements;
            pi = (char *)result.ImaginaryElements;

            *pr = value.RealPart;
            *pi = value.ImaginaryPart;

            return(result);
        }
コード例 #14
0
        unsafe static MxArray _MxArrayFromSingle_Cplx(
            Complex <float> value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.Single, Complexity.Complex);
            float *pr, pi;

            pr = (float *)result.RealElements;
            pi = (float *)result.ImaginaryElements;

            *pr = value.RealPart;
            *pi = value.ImaginaryPart;

            return(result);
        }
コード例 #15
0
        unsafe static MxArray _MxArrayFromUInt64_Cplx(
            Complex <ulong> value)
        {
            MxArray result = MxArray.CreateArray(new int[] { 1 },
                                                 ClassID.UInt64, Complexity.Complex);
            ulong *pr, pi;

            pr = (ulong *)result.RealElements;
            pi = (ulong *)result.ImaginaryElements;

            *pr = value.RealPart;
            *pi = value.ImaginaryPart;

            return(result);
        }
コード例 #16
0
        static MxArray _MxArrayFromInt16Array_Cplx(
            Array value)
        {
            int count = value.Length;

            int[] arraydims = MxUtils.GetArrayDimensions(value);
            int[] dims;
            if (value.Rank == 1)
            {
                dims = new int[] { 1, count };
            }
            else
            {
                dims = (int[])arraydims.Clone();
            }
            MxArray result = MxArray.CreateArray(dims,
                                                 ClassID.Int16, Complexity.Complex);

            unsafe
            {
                short *pr, pi;
                pr = (short *)result.RealElements;
                pi = (short *)result.ImaginaryElements;

                Complex <short> currentValue;
                for (int i = 0; i < count; i++)
                {
                    currentValue = (Complex <short>)
                                   value.GetValue(MxUtils.CoordinatesFromIndex(i, arraydims));
                    *pr++ = currentValue.RealPart;
                    *pi++ = currentValue.ImaginaryPart;
                }
            }

            return(result);
        }