public IVector combine(IVector vector) { BasicSymbolVector v = (BasicSymbolVector)vector; int newSize = this.rows() + v.rows(); int[] newValue = new int[newSize]; if (v.@base == @base) { values.AddRange(((BasicSymbolVector)vector).getdataArray()); } else { SymbolBase vBase = v.@base; int length = vBase.size(); int[] mapper = new int[length]; for (int i = 0; i < length; ++i) { mapper[i] = @base.find(vBase.getSymbol(i), true); } length = v.rows(); List <int> vValues = v.getdataArray(); int baseRow = this.rows(); for (int i = 0; i < length; ++i) { newValue[baseRow + i] = mapper[vValues[i]]; } } return(new BasicSymbolVector(@base, newValue, false)); }
public BasicSymbolVector(IList <string> list) : base(DATA_FORM.DF_VECTOR) { @base = new SymbolBase(0); values = new List <int>(new int[list.Count]); for (int i = 0; i < list.Count; ++i) { values[i] = @base.find(list[i], true); } }
protected internal BasicSymbolVector(DATA_FORM df, ExtendedDataInput @in, SymbolBaseCollection collection) : base(df) { int rows = @in.readInt(); int columns = @in.readInt(); int size = rows * columns; values = new List <int>(new int[rows]); @base = collection.add(@in); for (int i = 0; i < size; ++i) { values[i] = @in.readInt(); } }
public virtual SymbolBase add(ExtendedDataInput @in) { int id = @in.readInt(); if (symbaseMap.ContainsKey(id)) { int size = @in.readInt(); if (size != 0) { throw new IOException("Invalid symbol base."); } lastSymbase = symbaseMap[id]; } else { SymbolBase cur = new SymbolBase(id, @in); symbaseMap[id] = cur; lastSymbase = cur; } return(lastSymbase); }
public virtual void write(ExtendedDataOutput @out, SymbolBase @base) { bool existing = false; int id = 0; if (existingBases == null) { existingBases = new Dictionary <SymbolBase, int>(); existingBases[@base] = 0; } else { int?curId = existingBases[@base]; if (curId != null) { existing = true; id = curId.Value; } else { id = existingBases.Count; existingBases[@base] = id; } } @out.writeInt(id); if (existing) { @out.writeInt(0); } else { int size = @base.size(); @out.writeInt(size); for (int i = 0; i < size; ++i) { @out.writeString(@base.getSymbol(i)); } } }
public BasicSymbolVector(SymbolBase @base, int[] values, bool copy) : base(DATA_FORM.DF_VECTOR) { this.@base = @base; this.values = new List <int>(values); }
public BasicSymbolVector(SymbolBase @base, int size) : base(DATA_FORM.DF_VECTOR) { this.@base = @base; values = new List <int>(new int[size]); }
public BasicSymbolVector(int size) : base(DATA_FORM.DF_VECTOR) { @base = new SymbolBase(0); values = new List <int>(new int[size]); }
public virtual void clear() { symbaseMap.Clear(); lastSymbase = null; }