public Unit Multiply(DerivedUnit d, bool isDivide = false) { if (isDivide) { if (d == this) { return(new BaseUnit()); } } var a = new UnitTerms(); foreach (var e in Terms) { var c = new UnitTerm { Unit = e.Unit, Power = e.Power }; a.Add(c); } foreach (var e in d.Terms) { var c = new UnitTerm { Unit = e.Unit, Power = e.Power }; c.Power = isDivide ? -c.Power : c.Power; a.Add(c); } a.RemoveAll(x => x.Power == 0); var b = new DerivedUnit(a); var f = (DerivedMeasure)measure; b.measure = isDivide ? f.Divide((DerivedMeasure)d.measure) : f.Multiply((DerivedMeasure)d.measure); b.Factor = Factor * d.Factor; return(b); }
public static UnitTerms Random() { var t = new UnitTerms(); for (var i = 0; i < GetRandom.Count(); i++) { t.Add(UnitTerm.Random()); } return(t); }
public DerivedUnit(UnitTerms terms, string name = null, string symbol = null) { terms = terms ?? new UnitTerms(); name = name ?? terms.Formula(true); symbol = symbol ?? terms.Formula(); this.terms = terms; this.name = name; this.symbol = symbol; definition = name; }
public Unit Reciprocal() { var t1 = new UnitTerm(this, -1); var t = new UnitTerms { t1 }; var a = new DerivedUnit(t); var b = (BaseMeasure)this.measure; a.Measure = b.Reciprocal(); return(a); }
public Unit Multiply(BaseUnit i, bool isDivide = false) { var t1 = new UnitTerm(this, 1); var t2 = isDivide ? new UnitTerm(i, -1) : new UnitTerm(i, 1); var t = new UnitTerms { t1, t2 }; var a = new DerivedUnit(t); var b = (BaseMeasure)measure; a.Measure = isDivide ? b.Multiply((BaseMeasure)i.Measure, true): b.Multiply(i.Measure); return(a); }
public Unit Multiply(DerivedUnit m) { var t = new UnitTerms(); t.Add(new UnitTerm(this, 1)); foreach (var e in m.Terms) { t.Add(new UnitTerm(e.Unit as BaseUnit, e.Power)); } var a = new DerivedUnit(t); var b = (BaseMeasure)measure; a.Measure = b.Multiply((DerivedMeasure)m.Measure); return(a); }
public Unit Reciprocal() { var a = new UnitTerms(); foreach (var e in Terms) { var c = Clone(e); c.Power = c.Power * -1; a.Add(c); } var b = new DerivedUnit(a); var d = (DerivedMeasure)measure; b.measure = d.Reciprocal(); return(b); }
public Unit Reciprocal() { var a = new UnitTerms(); foreach (var e in Terms) { var c = new UnitTerm { Unit = e.Unit, Power = e.Power }; c.Power *= -1; a.Add(c); } var b = new DerivedUnit(a); var d = (DerivedMeasure)measure; b.measure = d.Reciprocal(); return(b); }
public Unit Exponentiation(int i) { if (i == 0) { return(new BaseUnit()); } UnitTerm t1; t1 = new UnitTerm(this, i); var t = new UnitTerms { t1 }; var a = new DerivedUnit(t); var b = (BaseMeasure)this.measure; a.Measure = b.Exponentiation(i); a.Factor = Math.Pow(Factor, i); Measures.Instance.Add(a.Measure); return(a); }
public Unit Exponentiation(int i) { if (i == 0) { return(Empty); } var a = new UnitTerms(); foreach (var e in Terms) { var c = Clone(e); c.Power = c.Power * i; a.Add(c); } var b = new DerivedUnit(a); var d = (DerivedMeasure)this.measure; b.measure = d.Exponentiation(i); return(b); }
public Unit Exponentiation(int i) { if (i == 0) { return(new BaseUnit()); } var a = new UnitTerms(); foreach (var e in Terms) { var c = new UnitTerm { Unit = e.Unit, Power = e.Power }; c.Power *= i; a.Add(c); } var b = new DerivedUnit(a); var d = (DerivedMeasure)this.measure; b.measure = d.Exponentiation(i); return(b); }
protected override void SetRandomValues() { base.SetRandomValues(); terms = UnitTerms.Random(); }