public Vector(IEnumerable <double> data) { if (data == null) { throw new ArgumentNullException("data"); } var vec = data.ToArray(); vector = new igraph_vector_t(); DllImporter.igraph_vector_init_copy(vector, vec); }
public Matrix(double[,] mat) { if (mat == null) { throw new ArgumentNullException("mat"); } matrix = new igraph_matrix_t(); var nrows = mat.GetLength(0); var ncols = mat.GetLength(1); DllImporter.igraph_matrix_init(matrix, nrows, ncols); var colwise = new double[ncols * nrows]; for (var j = 0; j < ncols; j++) { for (var i = 0; i < nrows; i++) { colwise[j * nrows + i] = mat[i, j]; } } DllImporter.igraph_vector_init_copy(matrix.data, colwise); }