pub const FUNCTIONS_ROUNDING: &str = "%YAML 1.2\n---\nurn: extension:io.substrait:functions_rounding\nscalar_functions:\n -\n name: \"ceil\"\n description: >\n Rounding to the ceiling of the value `x`.\n impls:\n - args:\n - value: fp32\n name: \"x\"\n return: fp32\n - args:\n - value: fp64\n name: \"x\"\n return: fp64\n -\n name: \"floor\"\n description: >\n Rounding to the floor of the value `x`.\n impls:\n - args:\n - value: fp32\n name: \"x\"\n return: fp32\n - args:\n - value: fp64\n name: \"x\"\n return: fp64\n -\n name: \"round\"\n description: >\n Rounding the value `x` to `s` decimal places.\n impls:\n - args:\n - value: i8\n name: \"x\"\n description: >\n Numerical expression to be rounded.\n - value: i32\n name: \"s\"\n description: >\n Number of decimal places to be rounded to.\n\n When `s` is a positive number, nothing will happen\n since `x` is an integer value.\n\n When `s` is a negative number, the rounding is\n performed to the nearest multiple of `10^(-s)`.\n options:\n rounding:\n description: >\n When a boundary is computed to lie somewhere between two values,\n and this value cannot be exactly represented, this specifies how\n to round it.\n\n - TIE_TO_EVEN: round to nearest value; if exactly halfway, tie\n to the even option.\n - TIE_AWAY_FROM_ZERO: round to nearest value; if exactly\n halfway, tie away from zero.\n - TRUNCATE: always round toward zero.\n - CEILING: always round toward positive infinity.\n - FLOOR: always round toward negative infinity.\n - AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule\n - TIE_DOWN: round ties with FLOOR rule\n - TIE_UP: round ties with CEILING rule\n - TIE_TOWARDS_ZERO: round ties with TRUNCATE rule\n - TIE_TO_ODD: round to nearest value; if exactly halfway, tie\n to the odd option.\n values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,\n AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]\n nullability: DECLARED_OUTPUT\n return: i8?\n - args:\n - value: i16\n name: \"x\"\n description: >\n Numerical expression to be rounded.\n - value: i32\n name: \"s\"\n description: >\n Number of decimal places to be rounded to.\n\n When `s` is a positive number, nothing will happen\n since `x` is an integer value.\n\n When `s` is a negative number, the rounding is\n performed to the nearest multiple of `10^(-s)`.\n options:\n rounding:\n description: >\n When a boundary is computed to lie somewhere between two values,\n and this value cannot be exactly represented, this specifies how\n to round it.\n\n - TIE_TO_EVEN: round to nearest value; if exactly halfway, tie\n to the even option.\n - TIE_AWAY_FROM_ZERO: round to nearest value; if exactly\n halfway, tie away from zero.\n - TRUNCATE: always round toward zero.\n - CEILING: always round toward positive infinity.\n - FLOOR: always round toward negative infinity.\n - AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule\n - TIE_DOWN: round ties with FLOOR rule\n - TIE_UP: round ties with CEILING rule\n - TIE_TOWARDS_ZERO: round ties with TRUNCATE rule\n - TIE_TO_ODD: round to nearest value; if exactly halfway, tie\n to the odd option.\n values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,\n AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]\n nullability: DECLARED_OUTPUT\n return: i16?\n - args:\n - value: i32\n name: \"x\"\n description: >\n Numerical expression to be rounded.\n - value: i32\n name: \"s\"\n description: >\n Number of decimal places to be rounded to.\n\n When `s` is a positive number, nothing will happen\n since `x` is an integer value.\n\n When `s` is a negative number, the rounding is\n performed to the nearest multiple of `10^(-s)`.\n options:\n rounding:\n description: >\n When a boundary is computed to lie somewhere between two values,\n and this value cannot be exactly represented, this specifies how\n to round it.\n\n - TIE_TO_EVEN: round to nearest value; if exactly halfway, tie\n to the even option.\n - TIE_AWAY_FROM_ZERO: round to nearest value; if exactly\n halfway, tie away from zero.\n - TRUNCATE: always round toward zero.\n - CEILING: always round toward positive infinity.\n - FLOOR: always round toward negative infinity.\n - AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule\n - TIE_DOWN: round ties with FLOOR rule\n - TIE_UP: round ties with CEILING rule\n - TIE_TOWARDS_ZERO: round ties with TRUNCATE rule\n - TIE_TO_ODD: round to nearest value; if exactly halfway, tie\n to the odd option.\n values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,\n AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]\n nullability: DECLARED_OUTPUT\n return: i32?\n - args:\n - value: i64\n name: \"x\"\n description: >\n Numerical expression to be rounded.\n - value: i32\n name: \"s\"\n description: >\n Number of decimal places to be rounded to.\n\n When `s` is a positive number, nothing will happen\n since `x` is an integer value.\n\n When `s` is a negative number, the rounding is\n performed to the nearest multiple of `10^(-s)`.\n options:\n rounding:\n description: >\n When a boundary is computed to lie somewhere between two values,\n and this value cannot be exactly represented, this specifies how\n to round it.\n\n - TIE_TO_EVEN: round to nearest value; if exactly halfway, tie\n to the even option.\n - TIE_AWAY_FROM_ZERO: round to nearest value; if exactly\n halfway, tie away from zero.\n - TRUNCATE: always round toward zero.\n - CEILING: always round toward positive infinity.\n - FLOOR: always round toward negative infinity.\n - AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule\n - TIE_DOWN: round ties with FLOOR rule\n - TIE_UP: round ties with CEILING rule\n - TIE_TOWARDS_ZERO: round ties with TRUNCATE rule\n - TIE_TO_ODD: round to nearest value; if exactly halfway, tie\n to the odd option.\n values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,\n AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]\n nullability: DECLARED_OUTPUT\n return: i64?\n - args:\n - value: fp32\n name: \"x\"\n description: >\n Numerical expression to be rounded.\n - value: i32\n name: \"s\"\n description: >\n Number of decimal places to be rounded to.\n\n When `s` is a positive number, the rounding\n is performed to a `s` number of decimal places.\n\n When `s` is a negative number, the rounding is\n performed to the left side of the decimal point\n as specified by `s`.\n options:\n rounding:\n description: >\n When a boundary is computed to lie somewhere between two values,\n and this value cannot be exactly represented, this specifies how\n to round it.\n\n - TIE_TO_EVEN: round to nearest value; if exactly halfway, tie\n to the even option.\n - TIE_AWAY_FROM_ZERO: round to nearest value; if exactly\n halfway, tie away from zero.\n - TRUNCATE: always round toward zero.\n - CEILING: always round toward positive infinity.\n - FLOOR: always round toward negative infinity.\n - AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule\n - TIE_DOWN: round ties with FLOOR rule\n - TIE_UP: round ties with CEILING rule\n - TIE_TOWARDS_ZERO: round ties with TRUNCATE rule\n - TIE_TO_ODD: round to nearest value; if exactly halfway, tie\n to the odd option.\n values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,\n AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]\n nullability: DECLARED_OUTPUT\n return: fp32?\n - args:\n - value: fp64\n name: \"x\"\n description: >\n Numerical expression to be rounded.\n - value: i32\n name: \"s\"\n description: >\n Number of decimal places to be rounded to.\n\n When `s` is a positive number, the rounding\n is performed to a `s` number of decimal places.\n\n When `s` is a negative number, the rounding is\n performed to the left side of the decimal point\n as specified by `s`.\n options:\n rounding:\n description: >\n When a boundary is computed to lie somewhere between two values,\n and this value cannot be exactly represented, this specifies how\n to round it.\n\n - TIE_TO_EVEN: round to nearest value; if exactly halfway, tie\n to the even option.\n - TIE_AWAY_FROM_ZERO: round to nearest value; if exactly\n halfway, tie away from zero.\n - TRUNCATE: always round toward zero.\n - CEILING: always round toward positive infinity.\n - FLOOR: always round toward negative infinity.\n - AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule\n - TIE_DOWN: round ties with FLOOR rule\n - TIE_UP: round ties with CEILING rule\n - TIE_TOWARDS_ZERO: round ties with TRUNCATE rule\n - TIE_TO_ODD: round to nearest value; if exactly halfway, tie\n to the odd option.\n values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,\n AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]\n nullability: DECLARED_OUTPUT\n return: fp64?\n";Expand description
Included source of the functions_rounding extension YAML file.