public Measure Divide(DerivedMeasure d) { if (d == this) { return(new BaseMeasure()); } var a = new MeasureTerms(); foreach (var e in Terms) { var c = new MeasureTerm { Measure = e.Measure, Power = e.Power }; a.Add(c); } foreach (var e in d.Terms) { var c = new MeasureTerm { Measure = e.Measure, Power = e.Power }; c.Power = -c.Power; a.Add(c); } a.RemoveAll(x => x.Power == 0); return(new DerivedMeasure(a)); }
public new static DerivedMeasure Random() { var m = new DerivedMeasure(); m.SetRandomValues(); return(m); }
public Measure Multiply(DerivedMeasure m) { var t = new MeasureTerms(); t.Add(new MeasureTerm(this, 1)); foreach (var e in m.Terms) { t.Add(new MeasureTerm(e.Measure as BaseMeasure, e.Power)); } return(new DerivedMeasure(t)); }
public void InitTests() { t = new DerivedMeasure(); m1 = new BaseMeasure("v"); m2 = new BaseMeasure("t"); m3 = new BaseMeasure("c"); Measures.Instance.Add(m1); Measures.Instance.Add(m2); Measures.Instance.Add(m3); d1 = (DerivedMeasure)m1.Multiply(m2); d2 = (DerivedMeasure)m1.Multiply(m1); d3 = (DerivedMeasure)m3.Multiply(m3); d4 = (DerivedMeasure)m1.Multiply(m3); }
public Measure Multiply(DerivedMeasure d) { var a = new MeasureTerms(); foreach (var e in Terms) { var c = Clone(e); a.Add(c); } foreach (var e in d.Terms) { var c = Clone(e); a.Add(c); } return(new DerivedMeasure(a)); }
public Measure Multiply(DerivedMeasure d) { var a = new MeasureTerms(); foreach (var e in Terms) { var c = new MeasureTerm { Measure = e.Measure, Power = e.Power }; a.Add(c); } foreach (var e in d.Terms) { var c = new MeasureTerm { Measure = e.Measure, Power = e.Power }; a.Add(c); } return(new DerivedMeasure(a)); }
public ActionResult Result(ComplexMathViewModel quantity) { var q1 = quantity.FirstQuantity; var q2 = quantity.SecondQuantity; var baseMeasure = BaseMeasure.Random(); Measures.Instance.Add(baseMeasure); var derivedMeasure = DerivedMeasure.Random(); Measures.Instance.Add(derivedMeasure); int i = 0; List <DerivedUnit> derivedUnits = new List <DerivedUnit>(); foreach (string str in quantity.UnitList) { var baseUnit = new BaseUnit(baseMeasure, Unit.SetFactor(str), str, str); Units.Instance.Add(baseUnit); var derivedUnit = baseUnit.Exponentiation(quantity.PowerList[i]) as DerivedUnit; derivedUnit.Measure = derivedMeasure; Units.Instance.Add(derivedUnit); derivedUnits.Add(derivedUnit); i++; if (i == quantity.NumberOfUnits) { break; } } for (int j = 0; j < quantity.NumberOfUnits - 1; j++) { var a = derivedUnits[j].Multiply(derivedUnits[j + 1]) as DerivedUnit; Units.Instance.Add(a); derivedUnits[j + 1] = a; if (j == quantity.NumberOfUnits - 2) { q1.Unit = a.Name; q2.Unit = a.Name; } } quantity = SetResults(quantity, q1, q2); return(View("Index", quantity)); }
public Measure Divide(DerivedMeasure d) { if (d == this) { return(Empty); } var a = new MeasureTerms(); foreach (var e in Terms) { var c = Clone(e); a.Add(c); } foreach (var e in d.Terms) { var c = Clone(e); c.Power = -c.Power; a.Add(c); } a.RemoveAll(x => x.Power == 0); return(new DerivedMeasure(a)); }
public void CleanTests() { t = null; }