public static UnitTerm Random() { var t = new UnitTerm(); t.SetRandomValues(); return(t); }
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 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 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(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); }