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