Ejemplo n.º 1
0
        private static ACQ.Math.Linalg.Vector gen_random_sample(ACQ.Math.Random.RandomBase rng, int size)
        {
            ACQ.Math.Linalg.Vector v = new ACQ.Math.Linalg.Vector(size);

            for (int i = 0; i < size; i++)
            {
                v[i] = rng.NextDouble();
            }
            return(v);
        }
Ejemplo n.º 2
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;
                }));
            }
        }
Ejemplo n.º 3
0
        private static DataTable ToDataTable(ACQ.Math.Linalg.Vector vector)
        {
            DataTable table = new DataTable(vector.GetType().ToString());

            DataColumn column;
            DataRow    row;

            column            = new DataColumn();
            column.DataType   = System.Type.GetType("System.Double");
            column.ColumnName = "value";
            column.ReadOnly   = true;
            table.Columns.Add(column);

            // Create three new DataRow objects and add
            // them to the DataTable
            for (int i = 0; i < vector.Size; i++)
            {
                row          = table.NewRow();
                row["value"] = vector[i];
                table.Rows.Add(row);
            }
            return(table);
        }
Ejemplo n.º 4
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;
                }));
            }
        }