private protected AtomicMeasureUnit( MeasureContext ctx, string abbreviation, string name, AutoStandardPrefix stdPrefix, bool isNormalized) : base(ctx, abbreviation, name, isNormalized) { AutoStandardPrefix = stdPrefix; }
internal AliasMeasureUnit( MeasureContext ctx, string abbreviation, string name, FullFactor definitionFactor, MeasureUnit definition, AutoStandardPrefix stdPrefix) : base(ctx, abbreviation, name, stdPrefix, false) { DefinitionFactor = definitionFactor; Definition = definition; }
public void Add(IEnumerable <ExponentMeasureUnit> units) { MeasureContext c = null; foreach (var u in units) { if (c != u.Context && c != null) { throw new Exception("Units' Context mismatch."); } Add(u.AtomicMeasureUnit, u.Exponent); c = u.Context; } }
/// <summary> /// This ctor is used by <see cref="AtomicMeasureUnit"/>: it initializes a /// MeasureUnit bound to itself. /// </summary> /// <param name="ctx">The context.</param> /// <param name="abbreviation">The abbreviation.</param> /// <param name="name">The name.</param> /// <param name="isNormalized">True if this measure unit is the normalized one for its dimension.</param> private protected MeasureUnit(MeasureContext ctx, string abbreviation, string name, bool isNormalized) { _ctx = ctx; Abbreviation = abbreviation; Name = name; _units = new[] { (ExponentMeasureUnit)this }; if (isNormalized) { _normalizationFactor = FullFactor.Neutral; _normalization = this; if (ctx == null) { _invert = this; } } }
public MeasureUnit GetResult(MeasureContext ctx) { int count = _normM.Count; if (count == 0) { if (_dimensionLessFactor.IsNeutral) { return(None); } return(ctx.RegisterPrefixed(_dimensionLessFactor, MeasureStandardPrefix.None, None)); } if (count == 1 && _dimensionLessFactor.IsNeutral) { int exp = _normE[0]; return(exp == 0 ? None : (exp == 1 ? _normM[0] : ctx.RegisterExponent(exp, _normM[0]))); } var result = new List <ExponentMeasureUnit>(count); for (int i = 0; i < count; ++i) { int exp = _normE[i]; if (exp != 0) { result.Add(exp == 1 ? _normM[i] : ctx.RegisterExponent(exp, _normM[i])); } } if (!_dimensionLessFactor.IsNeutral) { result.Add(ctx.RegisterPrefixed(_dimensionLessFactor, MeasureStandardPrefix.None, None)); } count = result.Count; if (count == 0) { return(None); } if (count == 1) { return(result[0]); } result.Sort(); return(ctx.RegisterCombined(result.ToArray())); }
internal FundamentalMeasureUnit(MeasureContext ctx, string abbreviation, string name, AutoStandardPrefix stdPrefix, bool isNormalized) : base(ctx, abbreviation, name, stdPrefix, isNormalized) { }
public static MeasureUnit Create(MeasureContext ctx, IEnumerable <ExponentMeasureUnit> units) { return(new Combinator(units).GetResult(ctx)); }
internal MeasureUnit(MeasureContext ctx, (string A, string N) names, ExponentMeasureUnit[] units)
internal ExponentMeasureUnit(MeasureContext ctx, (string A, string N) names, int exp, AtomicMeasureUnit u)
internal PrefixedMeasureUnit(MeasureContext ctx, (string A, string N) names, ExpFactor adjusment, MeasureStandardPrefix p, AtomicMeasureUnit u, bool isNormalized)