Reduktionsfunktionen

Eine Reduktionsfunktion ist eine Funktion, die aus einer Folge von Werten einen einzelnen Ergebniswert, die Reduktion, berechnet.

reduction = Reduce(value[1], …, value[n])

Im Grenzfall n=0 wird die Reduktionsfunktion auf eine leere Folge von Werten angewandt:

neutral = Reduce()

Dies definiert ein "neutrales" Element der Reduktion.

Eine Reduktionsfunktion kann durch wiederholtes Kombinieren zweier Werte mit der Combine-Funktion definiert werden. Zum Beispiel wenn wir die Addition als Combine-Funktion verwenden, erhalten wird die Summe der Eingabewerte:

tmp[0] = 0

tmp[i] = tmp[i-1] + value[i]

reduction = tmp[n]

Eine Reduktionsfunktion kann auch basierend auf existierenden Reduktionsfunktionen definiert werden.

Minimum

Die Minimum-Funktion liefert das Minimum aller Eingabewerte:

combine(a, b) = min(a, b)

Das Minimum ist für alle numerischen Datentypen verfügbar.

Maximum

Die Maximum-Funktion liefert das Maximum aller Eingabewerte:

combine(a, b) = max(a, b)

Das Maximum ist für alle numerischen Datentypen verfügbar.

Count

Die Reduktionsfunktion liefert die Anzahl der Messpunkte:

Count(values[1], …, values[n]) = n

Add

Die Add-Funktion liefert die Summe aller Eingabewerte:

combine(a, b) = a + b

Average

Die Average-Funktion berechnet den Durchschnitt über die Eingabewerte. Dies ist einfach die Summe der Messpunkte geteilt durch die Anzahl der Messpunkte:

Average(values) = Add(values) / Count(values)

Integral

Die Integral-Funktion berechnet die Fläche unter der Signalkurve von der Zeit des ersten Messpunkts bis zur Zeit des zuletzt ausgewählten Messpunkts. Es wird von Stufeninterpolation ausgegangen, d. h. es ist die Summe, über die sich rechts von jedem Messpunkt ausdehnenden Rechtecke:

r_i = s_i * (t_i+1 - t_i)

Hier ist s_i der Wert und t_i die Zeit des Messwerts am Indey i.