Example #1
0
 static public SictVonAnwendungBerict KonstruktFürAutomaatZuusctandDiferenzScrit(
     WertZuZaitpunktStruct <Bib3.RefNezDiferenz.SictZuNezSictDiferenzScritAbbild> AutomaatZuusctandDiferenzScritMitZait)
 {
     return(new SictVonAnwendungBerict()
     {
         MengeAutomaatZuusctandDiferenzScritMitZait = new[] { AutomaatZuusctandDiferenzScritMitZait },
     });
 }
		static public void BoundComputeFromSetMeasuredBound(
			IEnumerable<MeasurementBound1DIntAtTime> SetMeasuredBound,
			out WertZuZaitpunktStruct<Int64>? LowerBound,
			out WertZuZaitpunktStruct<Int64>? UpperBound,
			int SafetyIndex)
		{
			LowerBound = null;
			UpperBound = null;

			var ListMeasuredBound =
				SetMeasuredBound?.OrderByDescending(MeasuredBound => MeasuredBound.Time)?.ToArray();

			if (null == ListMeasuredBound)
			{
				return;
			}

			if (SafetyIndex < 1)
			{
				return;
			}

			var BoundComponentCountMax = SafetyIndex * 2 - 1;

			MeasurementBound1DIntAtTime[] LowerBoundComponent = null;
			MeasurementBound1DIntAtTime[] UpperBoundComponent = null;

			foreach (var MeasuredBound in ListMeasuredBound)
			{
				if (MeasuredBound.IsUpperBound)
				{
					UpperBoundComponent =
						UpperBoundComponent.ConcatNullable(MeasuredBound.Yield())
						.OrderByDescending(Bound => Bound.Time)
						.OrderBy(Bound => Bound.Bound)
						.Take(BoundComponentCountMax)
						.ToArray();

				}
				else
				{
					LowerBoundComponent =
						LowerBoundComponent.ConcatNullable(MeasuredBound.Yield())
						.OrderByDescending(Bound => Bound.Time)
						.OrderByDescending(Bound => Bound.Bound)
						.Take(BoundComponentCountMax)
						.ToArray();
				}

				if (SafetyIndex <= LowerBoundComponent?.Length)
				{
					var ListeVarianteScrankeMin = new WertZuZaitpunktStruct<Int64>[LowerBoundComponent.Length - SafetyIndex + 1];

					for (int i = 0; i < ListeVarianteScrankeMin.Length; i++)
					{
						var VarianteInListeAnzaalIndex = i + SafetyIndex - 1;

						var VarianteScrankeMin = LowerBoundComponent.ElementAt(VarianteInListeAnzaalIndex);

						var VarianteScrankeMax = Int64.MaxValue;

						if (VarianteInListeAnzaalIndex < Bib3.Extension.CountNullable(LowerBoundComponent))
						{
							VarianteScrankeMax = LowerBoundComponent.ElementAt(VarianteInListeAnzaalIndex).Bound;
						}

						ListeVarianteScrankeMin[i] = new WertZuZaitpunktStruct<Int64>(
							Math.Min(VarianteScrankeMin.Bound, VarianteScrankeMax), VarianteScrankeMin.Time);
					}

					var CandidateLowerBoundReplacement =
						ListeVarianteScrankeMin.OrderByDescending((VarianteScrankeMin) => VarianteScrankeMin.Wert).FirstOrDefault();

					if (!(CandidateLowerBoundReplacement.Wert < LowerBound?.Wert))
					{
						LowerBound = CandidateLowerBoundReplacement;
					}
				}

				if (SafetyIndex <= UpperBoundComponent?.Length)
				{
					var ListeVarianteScrankeMax = new WertZuZaitpunktStruct<Int64>[UpperBoundComponent.Length - SafetyIndex + 1];

					for (int i = 0; i < ListeVarianteScrankeMax.Length; i++)
					{
						var VarianteInListeAnzaalIndex = i + SafetyIndex - 1;

						var VarianteScrankeMax = UpperBoundComponent.ElementAt(VarianteInListeAnzaalIndex);

						var VarianteScrankeMin = Int64.MinValue;

						if (VarianteInListeAnzaalIndex < Bib3.Extension.CountNullable(UpperBoundComponent))
						{
							VarianteScrankeMin = UpperBoundComponent.ElementAt(VarianteInListeAnzaalIndex).Bound;
						}

						ListeVarianteScrankeMax[i] = new WertZuZaitpunktStruct<Int64>(
							Math.Max(VarianteScrankeMax.Bound, VarianteScrankeMin), VarianteScrankeMax.Time);
					}

					var CandidateUpperBoundReplacement =
						ListeVarianteScrankeMax.OrderBy((VarianteScrankeMax) => VarianteScrankeMax.Wert).FirstOrDefault();

					if (!(UpperBound?.Wert < CandidateUpperBoundReplacement.Wert))
					{
						UpperBound = CandidateUpperBoundReplacement;
					}
				}

				if (LowerBound.HasValue && UpperBound.HasValue)
				{
					if (UpperBound.Value.Wert <= LowerBound.Value.Wert)
					{
						break;
					}
				}
			}
		}
Example #3
0
 public void AppDomainConstruct()
 {
     AppDomain.Wert?.Dispose();
     AppDomain = new WertZuZaitpunktStruct <InterfaceAppDomainProxy>(new InterfaceAppDomainProxy(AppDomainSetupType, AppDomainSetupTypeLoadFromMainModule), Glob.StopwatchZaitMiliSictInt());
 }