]> git.sesse.net Git - ffmpeg/blobdiff - doc/eval.texi
Merge commit '218aefce4472dc02ee3f12830a9a894bf7916da9'
[ffmpeg] / doc / eval.texi
index f77b87deac947f1437ad646909d069f06c13f93d..9b98c18cdf0c4da213b98822bb82672392d09d76 100644 (file)
@@ -20,111 +20,102 @@ The following unary operators are available: @code{+}, @code{-}.
 
 The following functions are available:
 @table @option
-@item sinh(x)
-Compute hyperbolic sine of @var{x}.
+@item abs(x)
+Compute absolute value of @var{x}.
 
-@item cosh(x)
-Compute hyperbolic cosine of @var{x}.
+@item acos(x)
+Compute arccosine of @var{x}.
 
-@item tanh(x)
-Compute hyperbolic tangent of @var{x}.
+@item asin(x)
+Compute arcsine of @var{x}.
 
-@item sin(x)
-Compute sine of @var{x}.
+@item atan(x)
+Compute arctangent of @var{x}.
+
+@item ceil(expr)
+Round the value of expression @var{expr} upwards to the nearest
+integer. For example, "ceil(1.5)" is "2.0".
 
 @item cos(x)
 Compute cosine of @var{x}.
 
-@item tan(x)
-Compute tangent of @var{x}.
-
-@item atan(x)
-Compute arctangent of @var{x}.
-
-@item asin(x)
-Compute arcsine of @var{x}.
+@item cosh(x)
+Compute hyperbolic cosine of @var{x}.
 
-@item acos(x)
-Compute arccosine of @var{x}.
+@item eq(x, y)
+Return 1 if @var{x} and @var{y} are equivalent, 0 otherwise.
 
 @item exp(x)
 Compute exponential of @var{x} (with base @code{e}, the Euler's number).
 
-@item log(x)
-Compute natural logarithm of @var{x}.
-
-@item abs(x)
-Compute absolute value of @var{x}.
-
-@item squish(x)
-Compute expression @code{1/(1 + exp(4*x))}.
+@item floor(expr)
+Round the value of expression @var{expr} downwards to the nearest
+integer. For example, "floor(-1.5)" is "-2.0".
 
 @item gauss(x)
 Compute Gauss function of @var{x}, corresponding to
 @code{exp(-x*x/2) / sqrt(2*PI)}.
 
-@item isinf(x)
-Return 1.0 if @var{x} is +/-INFINITY, 0.0 otherwise.
-
-@item isnan(x)
-Return 1.0 if @var{x} is NAN, 0.0 otherwise.
+@item gcd(x, y)
+Return the greatest common divisor of @var{x} and @var{y}. If both @var{x} and
+@var{y} are 0 or either or both are less than zero then behavior is undefined.
 
-@item mod(x, y)
-Compute the remainder of division of @var{x} by @var{y}.
+@item gt(x, y)
+Return 1 if @var{x} is greater than @var{y}, 0 otherwise.
 
-@item max(x, y)
-Return the maximum between @var{x} and @var{y}.
+@item gte(x, y)
+Return 1 if @var{x} is greater than or equal to @var{y}, 0 otherwise.
 
-@item min(x, y)
-Return the maximum between @var{x} and @var{y}.
+@item hypot(x, y)
+This function is similar to the C function with the same name; it returns
+"sqrt(@var{x}*@var{x} + @var{y}*@var{y})", the length of the hypotenuse of a
+right triangle with sides of length @var{x} and @var{y}, or the distance of the
+point (@var{x}, @var{y}) from the origin.
 
-@item eq(x, y)
-Return 1 if @var{x} and @var{y} are equivalent, 0 otherwise.
+@item if(x, y)
+Evaluate @var{x}, and if the result is non-zero return the result of
+the evaluation of @var{y}, return 0 otherwise.
 
-@item gte(x, y)
-Return 1 if @var{x} is greater than or equal to @var{y}, 0 otherwise.
+@item if(x, y, z)
+Evaluate @var{x}, and if the result is non-zero return the evaluation
+result of @var{y}, otherwise the evaluation result of @var{z}.
 
-@item gt(x, y)
-Return 1 if @var{x} is greater than @var{y}, 0 otherwise.
+@item ifnot(x, y)
+Evaluate @var{x}, and if the result is zero return the result of the
+evaluation of @var{y}, return 0 otherwise.
 
-@item lte(x, y)
-Return 1 if @var{x} is lesser than or equal to @var{y}, 0 otherwise.
+@item ifnot(x, y, z)
+Evaluate @var{x}, and if the result is zero return the evaluation
+result of @var{y}, otherwise the evaluation result of @var{z}.
 
-@item lt(x, y)
-Return 1 if @var{x} is lesser than @var{y}, 0 otherwise.
+@item isinf(x)
+Return 1.0 if @var{x} is +/-INFINITY, 0.0 otherwise.
 
-@item st(var, expr)
-Allow to store the value of the expression @var{expr} in an internal
-variable. @var{var} specifies the number of the variable where to
-store the value, and it is a value ranging from 0 to 9. The function
-returns the value stored in the internal variable.
-Note, Variables are currently not shared between expressions.
+@item isnan(x)
+Return 1.0 if @var{x} is NAN, 0.0 otherwise.
 
 @item ld(var)
 Allow to load the value of the internal variable with number
 @var{var}, which was previously stored with st(@var{var}, @var{expr}).
 The function returns the loaded value.
 
-@item while(cond, expr)
-Evaluate expression @var{expr} while the expression @var{cond} is
-non-zero, and returns the value of the last @var{expr} evaluation, or
-NAN if @var{cond} was always false.
+@item log(x)
+Compute natural logarithm of @var{x}.
 
-@item ceil(expr)
-Round the value of expression @var{expr} upwards to the nearest
-integer. For example, "ceil(1.5)" is "2.0".
+@item lt(x, y)
+Return 1 if @var{x} is lesser than @var{y}, 0 otherwise.
 
-@item floor(expr)
-Round the value of expression @var{expr} downwards to the nearest
-integer. For example, "floor(-1.5)" is "-2.0".
+@item lte(x, y)
+Return 1 if @var{x} is lesser than or equal to @var{y}, 0 otherwise.
 
-@item trunc(expr)
-Round the value of expression @var{expr} towards zero to the nearest
-integer. For example, "trunc(-1.5)" is "-1.0".
+@item max(x, y)
+Return the maximum between @var{x} and @var{y}.
 
-@item sqrt(expr)
-Compute the square root of @var{expr}. This is equivalent to
-"(@var{expr})^.5".
+@item min(x, y)
+Return the maximum between @var{x} and @var{y}.
+
+@item mod(x, y)
+Compute the remainder of division of @var{x} by @var{y}.
 
 @item not(expr)
 Return 1.0 if @var{expr} is zero, 0.0 otherwise.
@@ -137,46 +128,71 @@ Compute the power of @var{x} elevated @var{y}, it is equivalent to
 Return a pseudo random value between 0.0 and 1.0. @var{x} is the index of the
 internal variable which will be used to save the seed/state.
 
-@item hypot(x, y)
-This function is similar to the C function with the same name; it returns
-"sqrt(@var{x}*@var{x} + @var{y}*@var{y})", the length of the hypotenuse of a
-right triangle with sides of length @var{x} and @var{y}, or the distance of the
-point (@var{x}, @var{y}) from the origin.
+@item root(expr, max)
+Find an input value for which the function represented by @var{expr}
+with argument @var{ld(0)} is 0 in the interval 0..@var{max}.
 
-@item gcd(x, y)
-Return the greatest common divisor of @var{x} and @var{y}. If both @var{x} and
-@var{y} are 0 or either or both are less than zero then behavior is undefined.
+The expression in @var{expr} must denote a continuous function or the
+result is undefined.
 
-@item if(x, y)
-Evaluate @var{x}, and if the result is non-zero return the result of
-the evaluation of @var{y}, return 0 otherwise.
+@var{ld(0)} is used to represent the function input value, which means
+that the given expression will be evaluated multiple times with
+various input values that the expression can access through
+@code{ld(0)}. When the expression evaluates to 0 then the
+corresponding input value will be returned.
 
-@item if(x, y, z)
-Evaluate @var{x}, and if the result is non-zero return the evaluation
-result of @var{y}, otherwise the evaluation result of @var{z}.
+@item sin(x)
+Compute sine of @var{x}.
 
-@item ifnot(x, y)
-Evaluate @var{x}, and if the result is zero return the result of the
-evaluation of @var{y}, return 0 otherwise.
+@item sinh(x)
+Compute hyperbolic sine of @var{x}.
 
-@item ifnot(x, y, z)
-Evaluate @var{x}, and if the result is zero return the evaluation
-result of @var{y}, otherwise the evaluation result of @var{z}.
+@item sqrt(expr)
+Compute the square root of @var{expr}. This is equivalent to
+"(@var{expr})^.5".
+
+@item squish(x)
+Compute expression @code{1/(1 + exp(4*x))}.
+
+@item st(var, expr)
+Allow to store the value of the expression @var{expr} in an internal
+variable. @var{var} specifies the number of the variable where to
+store the value, and it is a value ranging from 0 to 9. The function
+returns the value stored in the internal variable.
+Note, Variables are currently not shared between expressions.
+
+@item tan(x)
+Compute tangent of @var{x}.
+
+@item tanh(x)
+Compute hyperbolic tangent of @var{x}.
+
+@item taylor(expr, x)
+@item taylor(expr, x, id)
+Evaluate a Taylor series at @var{x}, given an expression representing
+the @code{ld(id)}-th derivative of a function at 0.
 
-@item taylor(expr, x) taylor(expr, x, id)
-Evaluate a taylor series at x.
-expr represents the LD(id)-th derivates of f(x) at 0. If id is not specified
-then 0 is assumed.
-note, when you have the derivatives at y instead of 0
-taylor(expr, x-y) can be used
-When the series does not converge the results are undefined.
+When the series does not converge the result is undefined.
+
+@var{ld(id)} is used to represent the derivative order in @var{expr},
+which means that the given expression will be evaluated multiple times
+with various input values that the expression can access through
+@code{ld(id)}. If @var{id} is not specified then 0 is assumed.
+
+Note, when you have the derivatives at y instead of 0,
+@code{taylor(expr, x-y)} can be used.
 
 @item time(0)
 Return the current (wallclock) time in seconds.
 
-@item root(expr, max)
-Finds x where f(x)=0 in the interval 0..max.
-f() must be continuous or the result is undefined.
+@item trunc(expr)
+Round the value of expression @var{expr} towards zero to the nearest
+integer. For example, "trunc(-1.5)" is "-1.0".
+
+@item while(cond, expr)
+Evaluate expression @var{expr} while the expression @var{cond} is
+non-zero, and returns the value of the last @var{expr} evaluation, or
+NAN if @var{cond} was always false.
 @end table
 
 The following constants are available: