Skip to main content

FUNCTIONS_ROUNDING

Constant FUNCTIONS_ROUNDING 

Source
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.