示例#1
0
        public static object acq_random_vector(int seed, int size)
        {
            if (ExcelDnaUtil.IsInFunctionWizard())
            {
                return(ExcelError.ExcelErrorRef);
            }
            else
            {
                return(ACQ.Excel.Handles.GlobalCache.CreateHandle(ExcelVector.Tag, new object[] { seed, size, "acq_random_vector" },
                                                                  (objectType, parameters) =>
                {
                    ACQ.Math.Random.MersenneTwister rng = new Math.Random.MersenneTwister((uint)seed);
                    ACQ.Math.Linalg.Vector v = gen_random_sample(rng, size);

                    return v;
                }));
            }
        }
示例#2
0
        public static object acq_random_vector_ex(double[] seed, int size)
        {
            if (ExcelDnaUtil.IsInFunctionWizard())
            {
                return(ExcelError.ExcelErrorRef);
            }
            else
            {
                return(ACQ.Excel.Handles.GlobalCache.CreateHandle(ExcelVector.Tag, new object[] { seed, size, "acq_random_vector" },
                                                                  (objectType, parameters) =>
                {
                    uint[] useed = new uint[seed.Length];

                    for (int i = 0; i < seed.Length; i++)
                    {
                        useed[i] = (uint)seed[i];
                    }
                    ACQ.Math.Random.MersenneTwister rng = new Math.Random.MersenneTwister(useed);
                    ACQ.Math.Linalg.Vector v = gen_random_sample(rng, size);

                    return v;
                }));
            }
        }