Oracle® CEP CQL Language Reference 11g Release 1 (11.1.1) Part Number E12048-01

 View PDF

# 9 Functions: java.lang.Math

Oracle CQL provides a variety of built-in functions based on the `java.lang.Math` class.

## 9.1 Introduction to Oracle CQL Built-In java.lang.Math Functions

Table 9-1 lists the built-in `java.lang.Math` functions that Oracle CQL provides.

Table 9-1 Oracle CQL Built-in java.lang.Math Functions

Type Function

Trigonometric

Logarithmic

Euler's Number

Roots

Signum Function

Unit of Least Precision

Other

Note:

In stream input examples, lines beginning with `h` (such as `h 3800`) are heartbeat input tuples. These inform Oracle CEP that no further input will have a timestamp lesser than the heartbeat value.

## ABS

Syntax

Purpose

`ABS` returns the absolute value of the input `integer` argument as an `integer`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#abs(int)`.

Examples

Consider the query `q66` in Example 9-1. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-2, the query returns the stream in Example 9-3.

Example 9-1 ABS Function Query

```<query id="q66"><![CDATA[
select abs(c1) from SFunc
]]></query>
```

Example 9-2 ABS Function Stream Input

```Timestamp   Tuple
10         1,0.5,8
1000        -4,0.7,6
1200        -3,0.89,12
2000         8,0.4,4
```

Example 9-3 ABS Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1
1000:       +           4
1200:       +           3
2000:       +           8
```

## ABS1

Syntax

Purpose

`ABS1` returns the absolute value of the input `long` argument as a `long`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#abs(long)`.

Examples

Consider the query `q67` in Example 9-4. Given the data stream `SFunc` with schema `(c1 integer, c2 float, c3 long)` in Example 9-5, the query returns the stream in Example 9-6.

Example 9-4 ABS1 Function Query

```<query id="q67"><![CDATA[
select abs1(c3) from SFunc
]]></query>
```

Example 9-5 ABS1 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,-6
1200        3,0.89,-12
2000        8,0.4,4
```

Example 9-6 ABS1 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           8
1000:       +           6
1200:       +           12
2000:       +           4
```

## ABS2

Syntax

Purpose

`ABS2` returns the absolute value of the input `float` argument as a `float`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#abs(float)`.

Examples

Consider the query `q68` in Example 9-7. Given the data stream `SFunc` with schema `(c1 integer, c2 float, c3 bigint)` in Example 9-8, the query returns the stream in Example 9-9.

Example 9-7 ABS2 Function Query

```<query id="q68"><![CDATA[
select abs2(c2) from SFunc
]]></query>
```

Example 9-8 ABS2 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,-0.7,6
1200        3,-0.89,12
2000        8,0.4,4
```

Example 9-9 ABS2 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.5
1000:       +           0.7
1200:       +           0.89
2000:       +           0.4
```

## ABS3

Syntax

Purpose

`ABS3` returns the absolute value of the input `double` argument as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#abs(double)`.

Examples

Consider the query `q69` in Example 9-10. Given the data stream `SFunc` with schema `(c1 integer, c2 float, c3 bigint, c4 double)` in Example 9-11, the query returns the stream in Example 9-12.

Example 9-10 ABS3 Function Query

```<query id="q69"><![CDATA[
select abs3(c4) from SFunc
]]></query>
```

Example 9-11 ABS3 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8,0.25334
1000        4,0.7,6,-4.64322
1200        3,0.89,12,-1.4672272
2000        8,0.4,4,2.66777
```

Example 9-12 ABS3 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.25334
1000:       +           4.64322
1200:       +           1.4672272
2000:       +           2.66777
```

## ACOS

Syntax

Purpose

`ACOS` returns the arc cosine of a `double` angle, in the range of `0.0` through `pi`, as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#acos(double)`.

Examples

Consider the query `q73` in Example 9-13. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-14, the query returns the stream in Example 9-15.

Example 9-13 ACOS Function Query

```<query id="q73"><![CDATA[
select acos(c2) from SFunc
]]></query>
```

Example 9-14 ACOS Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-15 ACOS Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1.0471976
1000:       +           0.79539883
1200:       +           0.4734512
2000:       +           1.1592795
```

## ASIN

Syntax

Purpose

`ASIN` returns the arc sine of a `double` angle, in the range of `-pi/2` through `pi/2`, as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#asin(double)`.

Examples

Consider the query `q74` in Example 9-16. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-17, the query returns the stream in Example 9-18.

Example 9-16 ASIN Function Query

```<query id="q74"><![CDATA[
select asin(c2) from SFunc
]]></query>
```

Example 9-17 ASIN Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-18 ASIN Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.5235988
1000:       +           0.7753975
1200:       +           1.0973451
2000:       +           0.41151685
```

## ATAN

Syntax

Purpose

`ATAN` returns the arc tangent of a `double` angle, in the range of `-pi/2` through `pi/2,` as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#atan(double)`.

Examples

Consider the query `q75` in Example 9-19. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-20, the query returns the stream in Example 9-21.

Example 9-19 ATAN Function Query

```<query id="q75"><![CDATA[
select atan(c2) from SFunc
]]></query>
```

Example 9-20 ATAN Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-21 ATAN Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.4636476
1000:       +           0.61072594
1200:       +           0.7272627
2000:       +           0.3805064
```

## ATAN2

Syntax

Purpose

`ATAN2` converts rectangular coordinates (`x,y`) to polar (`r,theta`) coordinates.

This function takes the following arguments:

• `double1`: the ordinate coordinate.

• `double2`: the abscissa coordinate.

This function returns the theta component of the point (`r,theta`) in polar coordinates that corresponds to the point (`x,y`) in Cartesian coordinates as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#atan2(double,%20double)`.

Examples

Consider the query `q63` in Example 9-22. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-23, the query returns the stream in Example 9-24.

Example 9-22 ATAN2 Function Query

```<query id="q63"><![CDATA[
select atan2(c2,c2) from SFunc
]]></query>
```

Example 9-23 ATAN2 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-24 ATAN2 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.7853982
1000:       +           0.7853982
1200:       +           0.7853982
2000:       +           0.7853982
```

## CBRT

Syntax

Purpose

`CBRT` returns the cube root of the `double` argument as a `double`.

For positive finite `a`, `cbrt(-a) == -cbrt(a)`; that is, the cube root of a negative value is the negative of the cube root of that value's magnitude.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#cbrt(double)`.

Examples

Consider the query `q76` in Example 9-25. Given the data stream `SFunc` with schema `(c1 integer, c2 float, c3 bigint)` in Example 9-26, the query returns the stream in Example 9-27.

Example 9-25 CBRT Function Query

```<query id="q76"><![CDATA[
select cbrt(c2) from SFunc
]]></query>
```

Example 9-26 CBRT Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-27 CBRT Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.7937005
1000:       +           0.887904
1200:       +           0.9619002
2000:       +           0.73680633
```

## CEIL1

Syntax

Purpose

`CEIL1` returns the smallest (closest to negative infinity) `double` value that is greater than or equal to the `double` argument and equals a mathematical integer.

To avoid possible rounding error, consider using `(long) cern.jet.math.Arithmetic.ceil(double)`.

• `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#ceil(double)`

• "CEIL"

Examples

Consider the query `q77` in Example 9-28. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-29, the query returns the stream in Example 9-30.

Example 9-28 CEIL1 Function Query

```<query id="q77"><![CDATA[
select ceil1(c2) from SFunc
]]></query>
```

Example 9-29 CEIL1 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-30 CEIL1 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1.0
1000:       +           1.0
1200:       +           1.0
2000:       +           1.0
```

## COS

Syntax

Purpose

`COS` returns the trigonometric cosine of a `double` angle as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#cos(double)`.

Examples

Consider the query `q61` in Example 9-31. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-32, the query returns the stream in Example 9-33.

Example 9-31 COS Function Query

```<query id="q61"><![CDATA[
select cos(c2) from SFunc
]]></query>
```

Example 9-32 COS Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-33 COS Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.87758255
1000:       +           0.7648422
1200:       +           0.62941206
2000:       +           0.921061
```

## COSH

Syntax

Purpose

`COSH` returns the hyperbolic cosine of a `double` value as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#cosh(double)`.

Examples

Consider the query `q78` in Example 9-34. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-35, the query returns the stream in Example 9-36.

Example 9-34 COSH Function Query

```<query id="q78"><![CDATA[
select cosh(c2) from SFunc
]]></query>
```

Example 9-35 COSH Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-36 COSH Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1.127626
1000:       +           1.255169
1200:       +           1.4228927
2000:       +           1.0810723
```

## EXP

Syntax

Purpose

`EXP` returns Euler's number e raised to the power of the `double` argument as a `double`.

Note that for values of `x` near 0, the exact sum of `EXPM1(x) + 1` is much closer to the true result of Euler's number e raised to the power of `x` than `EXP(x)`.

• `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#exp(double)`

• "EXPM1"

Examples

Consider the query `q79` in Example 9-37. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-38, the query returns the stream in Example 9-39.

Example 9-37 EXP Function Query

```<query id="q79"><![CDATA[
select exp(c2) from SFunc
]]></query>
```

Example 9-38 EXP Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-39 EXP Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1.6487212
1000:       +           2.0137527
1200:       +           2.4351296
2000:       +           1.4918247
```

## EXPM1

Syntax

Purpose

`EXPM1` returns the computation that Figure 9-1 shows as a `double`, where `x` is the `double` argument and e is Euler's number.

Note that for values of `x` near 0, the exact sum of `EXPM1(x) + 1` is much closer to the true result of Euler's number e raised to the power of `x` than `EXP(x)`.

• `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#expm1(double)`

• "EXP"

Examples

Consider the query `q80` in Example 9-40. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-41, the query returns the stream in Example 9-42.

Example 9-40 EXPM1 Function Query

```<query id="q80"><![CDATA[
select expm1(c2) from SFunc
]]></query>
```

Example 9-41 EXPM1 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-42 EXPM1 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.6487213
1000:       +           1.0137527
1200:       +           1.4351296
2000:       +           0.49182472
```

## FLOOR1

Syntax

Purpose

`FLOOR1` returns the largest (closest to positive infinity) `double` value that is less than or equal to the `double` argument and equals a mathematical integer.

To avoid possible rounding error, consider using `(long) cern.jet.math.Arithmetic.floor(double)`.

• `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#floor(double)`

• "FLOOR"

Examples

Consider the query `q81` in Example 9-43. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-44, the query returns the stream in Example 9-45.

Example 9-43 FLOOR1 Function Query

```<query id="q81"><![CDATA[
select floor1(c2) from SFunc
]]></query>
```

Example 9-44 FLOOR1 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-45 FLOOR1 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.0
1000:       +           0.0
1200:       +           0.0
2000:       +           0.0
```

## HYPOT

Syntax

Purpose

`HYPOT` returns the hypotenuse (see Figure 9-2) of the `double` arguments as a `double`.

This function takes the following arguments:

• `double1`: the `x` value.

• `double2`: the `y` value.

The hypotenuse is computed without intermediate overflow or underflow.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#hypot(double,%20double)`.

Examples

Consider the query `q82` in Example 9-46. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-47, the query returns the stream in Example 9-48.

Example 9-46 HYPOT Function Query

```<query id="q82"><![CDATA[
select hypot(c2,c2) from SFunc
]]></query>
```

Example 9-47 HYPOT Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-48 HYPOT Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.70710677
1000:       +           0.98994946
1200:       +           1.2586501
2000:       +           0.56568545
```

## IEEEREMAINDER

Syntax

Purpose

`IEEEREMAINDER` computes the remainder operation on two `double` arguments as prescribed by the IEEE 754 standard and returns the result as a `double`.

This function takes the following arguments:

• `double1`: the dividend.

• `double2`: the divisor.

The remainder value is mathematically equal to `f1 - f2 × n`, where `n` is the mathematical integer closest to the exact mathematical value of the quotient `f1/f2`, and if two mathematical integers are equally close to `f1/f2`, then `n` is the integer that is even. If the remainder is zero, its sign is the same as the sign of the first argument.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#IEEEremainder(double,%20double)`.

Examples

Consider the query `q72` in Example 9-49. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-50, the query returns the stream in Example 9-51.

Example 9-49 IEEEREMAINDER Function Query

```<query id="q72"><![CDATA[
select IEEEremainder(c2,c2) from SFunc
]]></query>
```

Example 9-50 IEEEREMAINDER Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-51 IEEEREMAINDER Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.0
1000:       +           0.0
1200:       +           0.0
2000:       +           0.0
```

## LOG1

Syntax

Purpose

`LOG1` returns the natural logarithm (base e) of a `double` value as a `double`.

Note that for small values `x`, the result of `log1p(x)` is much closer to the true result of `ln(1 + x)` than the floating-point evaluation of `log(1.0+x)`.

• `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#log(double)`

• "LOG1P"

Examples

Consider the query `q83` in Example 9-52. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-53, the query returns the stream in Example 9-54.

Example 9-52 LOG1 Function Query

```<query id="q83"><![CDATA[
select log1(c2) from SFunc
]]></query>
```

Example 9-53 LOG1 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-54 LOG1 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           -0.6931472
1000:       +           -0.35667497
1200:       +           -0.11653383
2000:       +           -0.9162907
```

## LOG101

Syntax

Purpose

`LOG101` returns the base 10 logarithm of a `double` value as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#log10(double)`.

Examples

Consider the query `q84` in Example 9-55. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-56, the query returns the stream in Example 9-57.

Example 9-55 LOG101 Function Query

```<query id="q84"><![CDATA[
select log101(c2) from SFunc
]]></query>
```

Example 9-56 LOG101 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-57 LOG101 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           -0.30103
1000:       +           -0.15490197
1200:       +           -0.050610002
2000:       +           -0.39794
```

## LOG1P

Syntax

Purpose

`LOG1P` returns the natural logarithm of the sum of the `double` argument and 1 as a `double`.

Note that for small values `x`, the result of `log1p(x)` is much closer to the true result of `ln(1 + x)` than the floating-point evaluation of `log(1.0+x)`.

• `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#log1p(double)`

• "LOG1"

Examples

Consider the query `q85` in Example 9-58. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-59, the query returns the stream in Example 9-60.

Example 9-58 LOG1P Function Query

```<query id="q85"><![CDATA[
select log1p(c2) from SFunc
]]></query>
```

Example 9-59 LOG1P Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-60 LOG1P Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.4054651
1000:       +           0.53062826
1200:       +           0.63657683
2000:       +           0.33647224
```

## POW

Syntax

Purpose

`POW` returns the value of the first `double` argument (the base) raised to the power of the second `double` argument (the exponent) as a `double`.

This function takes the following arguments:

• `double1`: the base.

• `double2`: the exponent.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#pow(double,%20double)`.

Examples

Consider the query `q65` in Example 9-61. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-62, the query returns the stream in Example 9-63.

Example 9-61 POW Function Query

```<query id="q65"><![CDATA[
select pow(c2,c2) from SFunc
]]></query>
```

Example 9-62 POW Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-63 POW Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.70710677
1000:       +           0.7790559
1200:       +           0.9014821
2000:       +           0.69314486
```

## RINT

Syntax

Purpose

`RINT` returns the `double` value that is closest in value to the `double` argument and equals a mathematical integer. If two `double` values that are mathematical integers are equally close, the result is the integer value that is even.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#rint(double)`.

Examples

Consider the query `q86` in Example 9-64. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-65, the query returns the stream in Example 9-66.

Example 9-64 RINT Function Query

```<query id="q86"><![CDATA[
select rint(c2) from SFunc
]]></query>
```

Example 9-65 RINT Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-66 RINT Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.0
1000:       +           1.0
1200:       +           1.0
2000:       +           0.0
```

## ROUND

Syntax

Purpose

`ROUND` returns the closest `integer` to the `float` argument.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#round(float)`.

Examples

Consider the query `q87` in Example 9-67. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-68, the query returns the stream in Example 9-69.

Example 9-67 ROUND Function Query

```<query id="q87"><![CDATA[
select round(c2) from SFunc
]]></query>
```

Example 9-68 ROUND Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-69 ROUND Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1
1000:       +           1
1200:       +           1
2000:       +           0
```

## ROUND1

Syntax

Purpose

`ROUND1` returns the closest `integer` to the `float` argument.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#round(float)`.

Examples

Consider the query `q88` in Example 9-70. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-71, the query returns the stream in Example 9-72.

Example 9-70 ROUND1 Function Query

```<query id="q88"><![CDATA[
select round1(c2) from SFunc
]]></query>
```

Example 9-71 ROUND1 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-72 ROUND1 Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1
1000:       +           1
1200:       +           1
2000:       +           0
```

## SIGNUM

Syntax

Purpose

`SIGNUM` returns the signum function of the `double` argument as a `double`:

• zero if the argument is zero

• 1.0 if the argument is greater than zero

• -1.0 if the argument is less than zero

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#signum(double)`.

Examples

Consider the query `q70` in Example 9-73. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-74, the query returns the stream in Example 9-75.

Example 9-73 SIGNUM Function Query

```<query id="q70"><![CDATA[
select signum(c2) from SFunc
]]></query>
```

Example 9-74 SIGNUM Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,-0.7,6
1200        3,-0.89,12
2000        8,0.4,4
```

Example 9-75 SIGNUM Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1.0
1000:       +           -1.0
1200:       +           -1.0
2000:       +           1.0
```

## SIGNUM1

Syntax

Purpose

`SIGNUM1` returns the signum function of the `float` argument as a `float`:

• zero if the argument is zero

• 1.0 if the argument is greater than zero

• -1.0 if the argument is less than zero

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#signum(float)`.

Examples

Consider the query `q71` in Example 9-76. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-77, the query returns the relation in Example 9-78.

Example 9-76 SIGNUM1 Function Query

```<query id="q71"><![CDATA[
select signum1(c2) from SFunc
]]></query>
```

Example 9-77 SIGNUM1 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,-0.7,6
1200        3,-0.89,12
2000        8,0.4,4
```

Example 9-78 SIGNUM1 Function Relation Output

```Timestamp   Tuple Kind  Tuple
10:       +           1.0
1000:       +           -1.0
1200:       +           -1.0
2000:       +           1.0
```

## SIN

Syntax

Purpose

`SIN` returns the trigonometric sine of a `double` angle as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#sin(double)`.

Examples

Consider the query `q60` in Example 9-79. Given the data stream `SFunc` with schema (`c1 integer`, `c2 float`, `c3 bigint`) in Example 9-80, the query returns the stream in Example 9-81.

Example 9-79 SIN Function Query

```<query id="q60"><![CDATA[
select sin(c2) from SFunc
]]></query>
```

Example 9-80 SIN Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-81 SIN Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.47942555
1000:       +           0.64421767
1200:       +           0.7770717
2000:       +           0.38941833
```

## SINH

Syntax

Purpose

`SINH` returns the hyperbolic sine of a `double` value as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#sinh(double)`.

Examples

Consider the query `q89` in Example 9-82. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-83, the query returns the stream in Example 9-84.

Example 9-82 SINH Function Query

```<query id="q89"><![CDATA[
select sinh(c2) from SFunc
]]></query>
```

Example 9-83 SINH Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-84 SINH Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.5210953
1000:       +           0.75858366
1200:       +           1.012237
2000:       +           0.41075233
```

## SQRT

Syntax

Purpose

`SQRT` returns the correctly rounded positive square root of a `double` value as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#sqrt(double)`.

Examples

Consider the query `q64` in Example 9-85. Given the data stream `SFunc` with schema (`c1 integer`, `c2 float`, `c3 bigint`) in Example 9-86, the query returns the stream in Example 9-87.

Example 9-85 SQRT Function Query

```<query id="q64"><![CDATA[
select sqrt(c2) from SFunc
]]></query>
```

Example 9-86 SQRT Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-87 SQRT Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.70710677
1000:       +           0.83666
1200:       +           0.9433981
2000:       +           0.6324555
```

## TAN

Syntax

Purpose

`TAN` returns the trigonometric tangent of a `double` angle as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#tan(double)`.

Examples

Consider the query `q62` in Example 9-88. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-89, the query returns the stream in Example 9-90.

Example 9-88 TAN Function Query

```<query id="q62"><![CDATA[
select tan(c2) from SFunc
]]></query>
```

Example 9-89 TAN Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-90 TAN Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.5463025
1000:       +           0.8422884
1200:       +           1.2345995
2000:       +           0.42279324
```

## TANH

Syntax

Purpose

`TANH` returns the hyperbolic tangent of a `double` value as a `double`.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#tanh(double)`.

Examples

Consider the query `q90` in Example 9-91. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-92, the query returns the stream in Example 9-93.

Example 9-91 TANH Function Query

```<query id="q90"><![CDATA[
select tanh(c2) from SFunc
]]></query>
```

Example 9-92 TANH Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-93 TANH Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.46211717
1000:       +           0.6043678
1200:       +           0.7113937
2000:       +           0.37994897
```

## TODEGREES

Syntax

Purpose

`TODEGREES` converts a `double` angle measured in radians to an approximately equivalent angle measured in degrees as a `double`.

The conversion from radians to degrees is generally inexact; do not expect `COS(TORADIANS(90.0))` to exactly equal `0.0`.

• `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#toDegrees(double)`

• "COS"

Examples

Consider the query `q91` in Example 9-94. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-95, the query returns the stream in Example 9-96.

Example 9-94 TODEGREES Function Query

```<query id="q91"><![CDATA[
select toDegrees(c2) from SFunc
]]></query>
```

Example 9-95 TODEGREES Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-96 TODEGREES Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           28.64789
1000:       +           40.107044
1200:       +           50.993244
2000:       +           22.918312
```

Syntax

Purpose

`TORADIANS` converts a `double` angle measured in degrees to an approximately equivalent angle measured in radians as a `double`.

• `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#toRadians(double)`

• "TODEGREES"

• "COS"

Examples

Consider the query `q92` in Example 9-97. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-98, the query returns the stream in Example 9-99.

```<query id="q92"><![CDATA[
]]></query>
```

Example 9-98 TORADIANS Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-99 TORADIANS Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           0.008726646
1000:       +           0.012217305
1200:       +           0.0155334305
2000:       +           0.006981317
```

## ULP

Syntax

Purpose

`ULP` returns the size of an ulp of the `double` argument as a `double`. In this case, an ulp of the argument value is the positive distance between this floating-point value and the double value next larger in magnitude.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#ulp(double)`.

Examples

Consider the query `q93` in Example 9-100. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-101, the query returns the stream in Example 9-102.

Example 9-100 ULP Function Query

```<query id="q93"><![CDATA[
select ulp(c2) from SFunc
]]></query>
```

Example 9-101 ULP Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-102 ULP Function Stream Output

```Timestamp   Tuple Kind  Tuple
10:       +           1.110223E-16
1000:       +           1.110223E-16
1200:       +           1.110223E-16
2000:       +           5.551115E-17
```

## ULP1

Syntax

Purpose

`ULP1` returns the size of an ulp of the `float` argument as a `float`. An ulp of a float value is the positive distance between this floating-point value and the float value next larger in magnitude.

For more information, see `http://java.sun.com/javase/6/docs/api/java/lang/Math.html#ulp(float)`.

Examples

Consider the query `q94` in Example 9-103. Given the data stream `SFunc` with schema `(c1 integer, c2 double, c3 bigint)` in Example 9-104, the query returns the relation in Example 9-105.

Example 9-103 ULP1 Function Query

```<query id="q94"><![CDATA[
select ulp1(c2) from SFunc
]]></query>
```

Example 9-104 ULP1 Function Stream Input

```Timestamp   Tuple
10        1,0.5,8
1000        4,0.7,6
1200        3,0.89,12
2000        8,0.4,4
```

Example 9-105 ULP1 Function Relation Output

```Timestamp   Tuple Kind  Tuple
10:       +           5.9604645E-8
1000:       +           5.9604645E-8
1200:       +           5.9604645E-8
2000:       +           2.9802322E-8
```