Skip to content

Commit

Permalink
fix(reviews): adding i8, i16, i32 and i64 for x
Browse files Browse the repository at this point in the history
  • Loading branch information
vibhatha committed Feb 7, 2023
1 parent 17955d3 commit d66fd7b
Showing 1 changed file with 161 additions and 3 deletions.
164 changes: 161 additions & 3 deletions extensions/functions_rounding.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,166 @@ scalar_functions:
description: >
Rounding the value `x` to `s` decimal places.
impls:
- args:
- value: i8
name: "x"
description: >
Numerical expression to be rounded.
- value: i32
name: "s"
description: >
Number of decimal places to be rounded to.
When `s` is a positive number, the rounding
is performed to a `s` number of decimal places.
When `s` is a negative number, the rounding is
performed to the left side of the decimal point
as specified by `s`.
options:
rounding:
description: >
When a boundary is computed to lie somewhere between two values,
and this value cannot be exactly represented, this specifies how
to round it.
- TIE_TO_EVEN: round to nearest value; if exactly halfway, tie
to the even option.
- TIE_AWAY_FROM_ZERO: round to nearest value; if exactly
halfway, tie away from zero.
- TRUNCATE: always round toward zero.
- CEILING: always round toward positive infinity.
- FLOOR: always round toward negative infinity.
- AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule
- TIE_DOWN: round ties with FLOOR rule
- TIE_UP: round ties with CEILING rule
- TIE_TOWARDS_ZERO: round ties with TRUNCATE rule
- TIE_TO_ODD: round to nearest value; if exactly halfway, tie
to the odd option.
values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,
AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]
nullability: DECLARED_OUTPUT
return: i8?
- args:
- value: i16
name: "x"
description: >
Numerical expression to be rounded.
- value: i32
name: "s"
description: >
Number of decimal places to be rounded to.
When `s` is a positive number, the rounding
is performed to a `s` number of decimal places.
When `s` is a negative number, the rounding is
performed to the left side of the decimal point
as specified by `s`.
options:
rounding:
description: >
When a boundary is computed to lie somewhere between two values,
and this value cannot be exactly represented, this specifies how
to round it.
- TIE_TO_EVEN: round to nearest value; if exactly halfway, tie
to the even option.
- TIE_AWAY_FROM_ZERO: round to nearest value; if exactly
halfway, tie away from zero.
- TRUNCATE: always round toward zero.
- CEILING: always round toward positive infinity.
- FLOOR: always round toward negative infinity.
- AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule
- TIE_DOWN: round ties with FLOOR rule
- TIE_UP: round ties with CEILING rule
- TIE_TOWARDS_ZERO: round ties with TRUNCATE rule
- TIE_TO_ODD: round to nearest value; if exactly halfway, tie
to the odd option.
values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,
AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]
nullability: DECLARED_OUTPUT
return: i16?
- args:
- value: i32
name: "x"
description: >
Numerical expression to be rounded.
- value: i32
name: "s"
description: >
Number of decimal places to be rounded to.
When `s` is a positive number, the rounding
is performed to a `s` number of decimal places.
When `s` is a negative number, the rounding is
performed to the left side of the decimal point
as specified by `s`.
options:
rounding:
description: >
When a boundary is computed to lie somewhere between two values,
and this value cannot be exactly represented, this specifies how
to round it.
- TIE_TO_EVEN: round to nearest value; if exactly halfway, tie
to the even option.
- TIE_AWAY_FROM_ZERO: round to nearest value; if exactly
halfway, tie away from zero.
- TRUNCATE: always round toward zero.
- CEILING: always round toward positive infinity.
- FLOOR: always round toward negative infinity.
- AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule
- TIE_DOWN: round ties with FLOOR rule
- TIE_UP: round ties with CEILING rule
- TIE_TOWARDS_ZERO: round ties with TRUNCATE rule
- TIE_TO_ODD: round to nearest value; if exactly halfway, tie
to the odd option.
values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,
AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]
nullability: DECLARED_OUTPUT
return: i32?
- args:
- value: i64
name: "x"
description: >
Numerical expression to be rounded.
- value: i32
name: "s"
description: >
Number of decimal places to be rounded to.
When `s` is a positive number, the rounding
is performed to a `s` number of decimal places.
When `s` is a negative number, the rounding is
performed to the left side of the decimal point
as specified by `s`.
options:
rounding:
description: >
When a boundary is computed to lie somewhere between two values,
and this value cannot be exactly represented, this specifies how
to round it.
- TIE_TO_EVEN: round to nearest value; if exactly halfway, tie
to the even option.
- TIE_AWAY_FROM_ZERO: round to nearest value; if exactly
halfway, tie away from zero.
- TRUNCATE: always round toward zero.
- CEILING: always round toward positive infinity.
- FLOOR: always round toward negative infinity.
- AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule
- TIE_DOWN: round ties with FLOOR rule
- TIE_UP: round ties with CEILING rule
- TIE_TOWARDS_ZERO: round ties with TRUNCATE rule
- TIE_TO_ODD: round to nearest value; if exactly halfway, tie
to the odd option.
values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,
AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]
nullability: DECLARED_OUTPUT
return: i64?
- args:
- value: fp32
name: "x"
Expand All @@ -53,9 +213,7 @@ scalar_functions:
description: >
When a boundary is computed to lie somewhere between two values,
and this value cannot be exactly represented, this specifies how
to round it. For floating point numbers, it specifies the IEEE
754 rounding mode (as it does for all other floating point
operations). For integer types:
to round it.
- TIE_TO_EVEN: round to nearest value; if exactly halfway, tie
to the even option.
Expand Down

0 comments on commit d66fd7b

Please sign in to comment.