# Functions and Operators

You are viewing an old version of this page. View the current version.

Version 91

# Available Functions

Odysseus provides a wide range of functions to be used in a Map, Select, or Join operator.

## Mathematical Functions

### Cos(X)

Returns the trigonometric cosine of an angle

### ACos(X)

Returns the arc cosine of a value

### Cosh(X)

Returns the hyperbolic cosine of a double value

### Sin(X)

Returns the trigonometric sine of an angle

### ASin(X)

Returns the arc sine of a value

### Sinh(X)

Returns the hyperbolic sine of a double value

### Tan(X)

Returns the trigonometric tangent of an angle

### ATan(X)

Returns the arc tangent of a value

### ATan2(Y,X)

Returns the angle theta from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta)

### Tanh(X)

Returns the hyperbolic tangent of a double value

### Abs(X)

Returns the absolute value of a value

### Sign(X)

Returns the signum function of the argument

### Sqrt(X)

Returns the square root of a value

### Ceil(X)

Returns the smallest value that is greater than or equal to the argument and is equal to a mathematical integer.

### Floor(X)

Returns the largest value that is less than or equal to the argument and is equal to a mathematical integer.

### Round(X)

Returns the closest number to the argument, with ties rounding up

### Log(X)

Returns the natural logarithm (base e) of a double value

### Exp(X)

Returns Euler's number e raised to the power of a double value

### PI()

Returns the double value that is closer than any other to pi.

### E()

Returns the double value that is closer than any other to e

Converts an angle measured in degrees to an equivalent angle measured in radians.

### ToDegrees(X)

Converts an angle measured in radians to an equivalent angle measured in degrees.

# Optional Functions

The following MEP functions are not part of the Odysseus Core and may be restricted.

## Probabilistic Functions (Probabilistic Feature)

The probabilistic feature provides arbitrary functions to work with discrete and continuous probabilistic values in a data stream. Further this feature provides algebraic operator (+, *, -, /) to perform probabilistic addition, subtraction, multiplication, division, and exponentiation.

Example
```SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) + ToProbabilisticDouble([4.0,0.25;5.0,0.75]) FROM Stream
=> (6.0:0.0625;7.0:0.375;8.0:0.5625)
SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) - ToProbabilisticDouble([4.0,0.25;5.0,0.75]) FROM Stream
=> (-3.0:0.1875;-2.0:0.625;-1.0:0.1875)
SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) * ToProbabilisticDouble([4.0,0.25;5.0,0.75]) FROM Stream
=> (15.0:0.5625;12.0:0.1875;10.0:0.1875;8.0:0.0625)
SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) / ToProbabilisticDouble([4.0,0.25;5.0,0.75]) FROM Stream
=> (0.75:0.1875;0.6:0.5625;0.5:0.0625;0.4:0.1875)
SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75])^2 FROM Stream
=> (4.0:0.25;9.0:0.75)
SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) + 2 FROM Stream
=> (4.0:0.25;5.0:0.75)
SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) - 2 FROM Stream
=> (0.0:0.25;1.0:0.75)
SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) * 2 FROM Stream
=> (6.0:0.75;4.0:0.25)
SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) / 2 FROM Stream
=> (1.5:0.75;1.0:0.25)```

### SQRT(Probabilistic Value)

Computes the probabilistic square root of the given probabilistic value.

### sMIn(Probabilistic Value, Probabilistic Value)

Computes the minimum of two probabilistic values.

### sMax(Probabilistic Value, Probabilistic Value)

Computes the maximum of two probabilistic values.

### ToProbabilisticDouble(Matrix)

Constructs a discrete probabilistic value using the first column of the given matrix for the values and the second column of the matrix for the probabilities for each value.

ToProbabilisticDouble Example
```SELECT ToProbabilisticDouble([2.0,0.25;3.0,0.75]) FROM Stream
=> (3.0:0.75;2.0:0.25)```

### DoubleToShort(Probabilistic Value)

Converts the given probabilistic double value to a probabilistic short value

### DoubleToByte(Probabilistic Value)

Converts the given probabilistic double value to a probabilistic byte value

### DoubleToInteger(Probabilistic Value)

Converts the given probabilistic double value to a probabilistic integer value

### DoubleToFloat(Probabilistic Value)

Converts the given probabilistic double value to a probabilistic float value

### DoubleToLong(Probabilistic Value)

Converts the given probabilistic double value to a probabilistic long value

### Int(Distribution, Lower Limit, Upper Limit)

Estimates the multivariate normal distribution probability with lower and upper integration limit.

### as2DVector(Object, Object)

Converts the two object into a 2D vector.

### as3DVector(Object, Object, Object)

Similar to the as2DVector function, this function creates a 3D vector with the given objects.

### Similarity(Distribution, Distribution)

Calculates the Bhattacharyya distance between two distributions.

Example
```SELECT similarity(as2DVector(x1,y1), as2DVector(x2,y2)) FROM stream
```

### Distance(Distribution, Value)

Calculates the Mahalanobis distance between the distribution and the value. The value can be a scalar value or a vector.

Example
`SELECT distance(as3DVector(x, y, z), [1.0;2.0;3.0]) FROM stream`

## Spatial Functions (Spatial Feature)

The spatial functions are based upon the JTS Topology Suite (http://www.vividsolutions.com/jts/JTSHome.htm).

Notice, that JTS only considers x and y coordinate and ignores the z coordinate (although z can be definied)!

### AsCartesianCoordinates(SpatialPolarCoordinate[])

Transform the list of spatial polar coordinates into a list of Cartesian coordinates

### GetCentroid(Geometry)

Returns the centroid of the given geometry

### SpatialBuffer(Geometry, Double)

Creates a buffer of the given size around the given geometry

### SpatialContains(Geometry, Geometry)

Checks whether the first geometry contains the second geometry.

### SpatialConvexHull(Geometry)

Computes the smallest convex spatial p`olygon` that contains all the points in the `geometry`

### ToCartesianCoordinate(SpatialPolarCoordinate)

Transforms the given spatial polar coordinate into a spatial Cartesian coordinate.

### ToPolarCoordinate(SpatialCoordinate)

Transforms the given spatial Cartesian coordinate into a polar coordinate

Most function descriptions on this page are copied from the openjdk documentation.

• No labels