Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public static UnitTerms Random()
        {
            var t = new UnitTerms();

            for (var i = 0; i < GetRandom.Count(); i++)
            {
                t.Add(UnitTerm.Random());
            }
            return(t);
        }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
 protected override void SetRandomValues()
 {
     base.SetRandomValues();
     terms = UnitTerms.Random();
 }