Docs/Infohub (Flow)/Built-in Function Reference
Infohub (Flow)Reference

Built-in Function Reference

All 41 built-in calculation functions across 7 libraries, with the exact call syntax an expression needs.

Updated 15 Oct 2026Infohub Docs

Infohub ships 41 built-in calculation functions in 7 libraries. They are available to every calculated measure, every tag-level calculation, and every event attribute calculation, with nothing to install and nothing to declare.

This page is the complete list, read from the function libraries at v7.2.0. For writing your own functions, see Custom Functions; for what else an expression has in scope, see Calculation Expression Reference.

Calling a built-in function#

A calculation expression is compiled C#, and Infohub imports each library's namespace — not its members. So a built-in function is always called class-qualified:

Aggregate.Sum(Measure_1043.Value, Measure_1044.Value)
Important

The class name is not always the library name. The library is listed in the Toolbox as Aggregates, but the class you type is Aggregate. The table for each library below gives the exact name to use. Typing the library's display name instead is the most common cause of "does not exist in the current context" when a calculation fails to compile.

Note

What dragging from the Toolbox actually gives you. Dragging a function from the Toolbox into an expression editor inserts its signature, not a finished call — Sum(params double?[] values), with the parameter types spelled out and no class qualifier. Treat it as a template: add the Aggregate. prefix and replace the parameter list with your inputs. Left as inserted, it will not compile.

Nulls pass straight through#

Almost every built-in takes and returns double?. Passing a null generally yields a null rather than an error, which is what you want: a missing input should produce "no value for this interval", not a zero that looks like a real reading. Conditional.IfNull is the deliberate exception — it is how you substitute a value when one is missing.

Aggregates#

This library contains aggregate functions. Call these as Aggregate.<function>.

Function Returns Description
Aggregate.Average(params double?[] values) double? Returns the average of a range of numbers.
Aggregate.Histogram(double?[] values, int buckets, int bucketToReturn) double? Returns the Count for the required bucket of the Histogram from the range of values.
Aggregate.Max(params double?[] values) double? Returns the largest of a range of numbers.
Aggregate.Mean(double?[] values) double? Returns the Mean of a range of numbers.
Aggregate.Min(params double?[] values) double? Returns the smaller of a range of numbers.
Aggregate.StandardDeviation(double?[] values) double? Returns the Standard Deviation of a range of numbers.
Aggregate.Sum(params double?[] values) double? Returns the sum of a range of numbers.

Conditional#

This library contains conditional logic. Call these as Conditional.<function>.

Function Returns Description
Conditional.If(bool Condition, double? TrueValue, double? FalseValue) double? If statement
Conditional.IfNull(double? Value, double? DefaultValue) double? If null statement

Logarithmic#

This library contains logarithmic functions. Call these as Logarithmic.<function>.

Function Returns Description
Logarithmic.e() double Represents the natural logarithmic base, specified by the constant, e.
Logarithmic.Exp(double? d) double? Returns e raised to the specified power.
Logarithmic.Log(double? d) double? Returns the natural (base e) logarithm of a specified number.
Logarithmic.Log10(double? d) double? Returns the base 10 logarithm of a specified number.

Logical#

This library contains logic functions. Call these as Logical.<function>.

Function Returns Description
Logical.And(params bool[] Conditions) bool And statement
Logical.Not(bool Condition) bool Not statement
Logical.Or(params bool[] Conditions) bool Or statement
Logical.XOr(params bool[] Conditions) bool XOr statement

Number#

This library contains standard mathematics functions. Call these as Number.<function>.

Function Returns Description
Number.Abs(double? value) double? Returns the absolute value of a number.
Number.Ceiling(double? a) double? Returns the smallest integral value that is greater than or equal to the specified number.
Number.Floor(double? d) double? Returns the largest integer less than or equal to the specified number.
Number.Pow(double? x, double? y) double? Returns a specified number raised to the specified power.
Number.Remainder(double? x, double? y) double? Returns the remainder resulting from the division of a specified number by another specified number.
Number.Round(double? a) double? Rounds a number to the nearest integral value.
Number.Sqrt(double? d) double? Returns the square root of a specified number.
Number.Truncate(double? d) double? Calculates the integral part of a specified number.

Regression#

This library contains regression curve fitting functions. Call these as Regression.<function>.

Function Returns Description
Regression.LineFitIntercept(double?[] xdata, double?[] ydata) double Returns the intercept as an arry value based on Simple Regression: Fit to a Line.
Regression.LineFitPredicted(double?[] xdata, double?[] ydata, int project) double? Returns the predicted value based on Simple Regression: Fit to a Line.
Regression.LineFitSlope(double?[] xdata, double?[] ydata) double Returns the slope as an arry value based on Simple Regression: Fit to a Line.
Regression.PolynomialFitMatrix(double?[] xdata, double?[] ydata, int order) double[] Returns the Vandermonde Matrix based on polynomial Regression.
Regression.PolynomialFitPredicted(double?[] xdata, double?[] ydata, int order, int project) double Returns the projected value based on polynomial Regression.

Trigonometry#

This library contains trigonometry functions. Call these as Trigonometry.<function>.

Function Returns Description
Trigonometry.Acos(double? d) double? Returns the angle whose cosine is the specified number.
Trigonometry.Asin(double? d) double? Returns the angle whose sine is the specified number.
Trigonometry.Atan(double? d) double? Returns the angle whose tangent is the specified number.
Trigonometry.Atan2(double? y, double? x) double? Returns the angle whose tangent is the quotient of two specified numbers.
Trigonometry.Cos(double? d) double? Returns the cosine of the specified angle.
Trigonometry.Cosh(double? value) double? Returns the hyperbolic cosine of the specified angle.
Trigonometry.PI() double Represents the ratio of the circumference of a circle to its diameter, specified by the constant, π.
Trigonometry.Sin(double? a) double? Returns the sine of the specified angle.
Trigonometry.Sinh(double? value) double? Returns the hyperbolic sine of the specified angle.
Trigonometry.Tan(double? a) double? Returns the tangent of the specified angle.
Trigonometry.Tanh(double? value) double? Returns the hyperbolic tangent of the specified angle.

Variadic functions#

7 functions accept any number of arguments (params), so they can be called with two measures or twenty:

  • Aggregate.Sum
  • Aggregate.Average
  • Aggregate.Min
  • Aggregate.Max
  • Logical.And
  • Logical.Or
  • Logical.XOr

Note which aggregate functions are variadic and which take an array. Aggregate.Sum, Average, Min and Max take a list of values; Mean, StandardDeviation and Histogram take an actual array — pass a measure collection to those, not a comma-separated list.

Diagnosing#

Symptom Likely cause
The name 'Sum' does not exist in the current context Missing the class qualifier — write Aggregate.Sum(...)
'Aggregates' does not exist Used the library's display name; the class is Aggregate
cannot convert from 'double?[]' to 'double?' Passed an array to a variadic function, or a list to an array function
Calculation returns null unexpectedly A null input propagated; wrap the input in Conditional.IfNull
A function you added does not appear Function libraries load from the package directory; the calculation assembly is rebuilt when a function changes — see Custom Functions
esc
↑↓ navigate · ↵ open · ⌘K anywhere