public void CalculateNonVariableLayers() { CalculateChildren(); NumberLayer newNumber = new NumberLayer(1); for (int i = 0; i < factors.Count; i++) { if (!Double.IsNaN(factors[i].Calculate(null))) { newNumber.Value *= factors[i].Calculate(null); factors.RemoveAt(i); i--; } } for (int i = 0; i < divisors.Count; i++) { if (!Double.IsNaN(divisors[i].Calculate(null))) { newNumber.Value /= divisors[i].Calculate(null); divisors.RemoveAt(i); i--; } } if(newNumber.Value != 1) factors.Add(newNumber); }
public void CalculateNonVariableLayers() { CalculateChildren(); NumberLayer newNumber = new NumberLayer(0); for (int i = 0; i < additions.Count; i++) { if (!Double.IsNaN(additions[i].Calculate(null))) { newNumber.Value += additions[i].Calculate(null); additions.RemoveAt(i); i--; } } for (int i = 0; i < subtractions.Count; i++) { if (!Double.IsNaN(subtractions[i].Calculate(null))) { newNumber.Value -= subtractions[i].Calculate(null); subtractions.RemoveAt(i); i--; } } if (newNumber.Value > 0) additions.Add(newNumber); if (newNumber.Value < 0) { newNumber.Value = -newNumber.Value; subtractions.Add(newNumber); } }