public static HtmModuleTopology Deserialize(StreamReader sr) { HtmModuleTopology htm = new HtmModuleTopology(); HtmSerializer2 ser = new HtmSerializer2(); while (sr.Peek() >= 0) { string data = sr.ReadLine(); if (data == ser.LineDelimiter || data == ser.ReadBegin(nameof(HtmModuleTopology)) || data == ser.ReadEnd(nameof(SegmentActivity))) { continue; } else if (data == ser.ReadEnd(nameof(HtmModuleTopology))) { break; } else { string[] str = data.Split(HtmSerializer2.ParameterDelimiter); for (int i = 0; i < str.Length; i++) { switch (i) { case 0: { htm.Dimensions = ser.ReadArrayInt(str[i]); break; } case 1: { htm.IsMajorOrdering = ser.ReadBoolValue(str[i]); break; } case 2: { htm.DimensionMultiplies = ser.ReadArrayInt(str[i]); break; } default: { break; } } } } } return(htm); }
public static Topology Deserialize(StreamReader sr) { Topology topology = new Topology(); HtmSerializer2 ser = new HtmSerializer2(); while (sr.Peek() >= 0) { string data = sr.ReadLine(); if (data == String.Empty || data == ser.ReadBegin(nameof(Topology))) { continue; } else { string[] str = data.Split(HtmSerializer2.ParameterDelimiter); for (int i = 0; i < str.Length; i++) { switch (i) { case 0: { topology.dimensions = ser.ReadArrayInt(str[i]); break; } case 1: { topology.dimensionMultiples = ser.ReadArrayInt(str[i]); break; } case 2: { topology.isColumnMajor = ser.ReadBoolValue(str[i]); break; } case 3: { topology.numDimensions = ser.ReadIntValue(str[i]); break; } } } } } return(topology); }
public static SparseBinaryMatrix Deserialize(StreamReader sr) { SparseBinaryMatrix sparse = new SparseBinaryMatrix(); HtmSerializer2 ser = new HtmSerializer2(); while (sr.Peek() >= 0) { string data = sr.ReadLine(); if (data == String.Empty || data == ser.ReadBegin(nameof(SparseBinaryMatrix))) { continue; } else if (data == ser.ReadBegin(nameof(InMemoryArray))) { sparse.backingArray = InMemoryArray.Deserialize(sr); } else if (data == ser.ReadBegin(nameof(HtmModuleTopology))) { sparse.ModuleTopology = HtmModuleTopology.Deserialize(sr); } else if (data == ser.ReadEnd(nameof(SparseBinaryMatrix))) { break; } else { string[] str = data.Split(HtmSerializer2.ParameterDelimiter); for (int i = 0; i < str.Length; i++) { switch (i) { case 0: { sparse.trueCounts = ser.ReadArrayInt(str[i]); break; } default: { break; } } } } } return(sparse); }
/// <summary> /// Deserializes the cell from the stream. /// </summary> /// <param name="sr"></param> /// <returns></returns> public static Cell Deserialize(StreamReader sr) { Cell cell = new Cell(); HtmSerializer2 ser = new HtmSerializer2(); while (sr.Peek() >= 0) { string data = sr.ReadLine(); if (data == String.Empty || data == ser.ReadBegin(nameof(Cell))) { continue; } else if (data == ser.ReadEnd(nameof(Cell))) { break; } else { string[] str = data.Split(HtmSerializer2.ParameterDelimiter); for (int i = 0; i < str.Length; i++) { switch (i) { case 0: { cell.Index = ser.ReadIntValue(str[i]); break; } case 1: { cell.CellId = ser.ReadIntValue(str[i]); break; } case 2: { cell.ParentColumnIndex = ser.ReadIntValue(str[i]); break; } case 3: { int[] vs = ser.ReadArrayInt(str[i]); cell.DistalDendrites = new List <DistalDendrite>(); for (int j = 0; j < vs.Count(); j++) { cell.DistalDendrites.Add(new DistalDendrite()); cell.DistalDendrites[j].Ordinal = vs[j]; using (StreamReader swLD = new StreamReader($"ser_SerializeDistalDendrite_{cell.DistalDendrites[j].Ordinal}.txt")) { cell.DistalDendrites[j] = DistalDendrite.Deserialize(swLD); } } break; } case 4: { int[] vs = ser.ReadArrayInt(str[i]); cell.ReceptorSynapses = new List <Synapse>(); for (int j = 0; j < vs.Count(); j++) { cell.ReceptorSynapses.Add(new Synapse()); cell.ReceptorSynapses[j].SynapseIndex = vs[j]; using (StreamReader swLS = new StreamReader($"ser_SerializeSynapseTest_{cell.ReceptorSynapses[j].SynapseIndex}.txt")) { cell.ReceptorSynapses[j] = Synapse.Deserialize(swLS); } } break; } default: { break; } } } } } return(cell); }