Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/08/16 11:41:45 (8 years ago)
Author:
gkronber
Message:

#2650: merged r14245:14273 from trunk to branch (fixing conflicts in RegressionSolutionTargetResponseGradientView)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/symbreg-factors-2650/HeuristicLab.ExtLibs/HeuristicLab.Igraph/0.8.0-pre/HeuristicLab.Igraph-0.8.0-pre/Wrappers/Vector.cs

    r14276 r14277  
    2121
    2222using System;
     23using System.Collections.Generic;
     24using System.Linq;
    2325
    2426namespace HeuristicLab.IGraph.Wrappers {
     
    3941      DllImporter.igraph_vector_init(vector, length);
    4042    }
    41 
     43    public Vector(IEnumerable<double> data) {
     44      if (data == null) throw new ArgumentNullException("data");
     45      var vec = data.ToArray();
     46      vector = new igraph_vector_t();
     47      DllImporter.igraph_vector_init_copy(vector, vec);
     48    }
    4249    public Vector(Vector other) {
    4350      if (other == null) throw new ArgumentNullException("other");
     
    4552      DllImporter.igraph_vector_copy(vector, other.NativeInstance);
    4653    }
    47 
    4854    ~Vector() {
    4955      DllImporter.igraph_vector_destroy(vector);
     
    5561      vector = null;
    5662      GC.SuppressFinalize(this);
     63    }
     64
     65    public void Fill(double v) {
     66      DllImporter.igraph_vector_fill(vector, v);
     67    }
     68
     69    public void Reverse() {
     70      DllImporter.igraph_vector_reverse(vector);
     71    }
     72
     73    public void Shuffle() {
     74      DllImporter.igraph_vector_shuffle(vector);
     75    }
     76
     77    public void Scale(double by) {
     78      DllImporter.igraph_vector_scale(vector, by);
    5779    }
    5880
     
    6991
    7092    public double[] ToArray() {
    71       var result = new double[Length];
    72       for (var i = 0; i < result.Length; i++) {
    73         result[i] = DllImporter.igraph_vector_e(vector, i);
    74       }
    75       return result;
     93      return DllImporter.igraph_vector_to_array(vector);
    7694    }
    7795  }
Note: See TracChangeset for help on using the changeset viewer.