// TODO Add documentation, clean up, remove commented out code, etc. public static float WorkOutAtResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata) { float Resistanc = 0; if (Indata == null) { return(Resistanc); } bool goingToExists = ResistanceSources.ResistanceGoingTo.TryGetValue(Indata, out VIRResistances goingTo); bool comingFromExists = ResistanceSources.ResistanceComingFrom.TryGetValue(Indata, out VIRResistances comingFrom); if (goingToExists && comingFromExists) { HashSet <ResistanceWrap> ResistanceSour = new HashSet <ResistanceWrap>(comingFrom.ResistanceSources); //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources); //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSour.ExceptWith(ResistanceSourtoreove); float Toadd = 0; float ToRemove = 0; foreach (var Resistance in ResistanceSour) { if (goingTo.ResistanceSources.Contains(Resistance)) { Toadd = 1 / Resistance.Resistance(); } //else { // ToRemove = 1 / Resistance.Resistance(); //} } if (Toadd != 0) { Toadd = 1 / Toadd; } Resistanc = Toadd - ToRemove; } else { if (comingFromExists) { Resistanc = comingFrom.Resistance(); } else if (goingToExists) { Resistanc = goingTo.Resistance(); } } return(Resistanc); }
// TODO Add documentation, clean up, remove commented out code, etc. public static float WorkOutAtResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata) { float Resistanc = 0; if (Indata != null && ResistanceSources.ResistanceGoingTo.ContainsKey(Indata) && ResistanceSources.ResistanceComingFrom.ContainsKey(Indata)) { HashSet <ResistanceWrap> ResistanceSour = new HashSet <ResistanceWrap>(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources); //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources); //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSour.ExceptWith(ResistanceSourtoreove); float Toadd = 0; float ToRemove = 0; foreach (var Resistance in ResistanceSour) { if (ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources.Contains(Resistance)) { Toadd = 1 / Resistance.Resistance(); } //else { // ToRemove = 1 / Resistance.Resistance(); //} } if (Toadd != 0) { Toadd = 1 / Toadd; } Resistanc = Toadd - ToRemove; } else { if (ResistanceSources.ResistanceComingFrom.ContainsKey(Indata)) { Resistanc = ResistanceSources.ResistanceComingFrom[Indata].Resistance(); } else if (ResistanceSources.ResistanceGoingTo.ContainsKey(Indata)) { Resistanc = ResistanceSources.ResistanceGoingTo[Indata].Resistance(); } } //Logger.Log((1 / ResistanceXAll)+ "< Return"); return(Resistanc); }