Trigonometric Functions in Apache AGE
Tags: apacheage, postgres, bitnine, database
Published: 2023-06-28 20:00:43

In this tutorial, we will delve into the trigonometric functions offered by Apache AGE. These functions can be utilized in our Cypher queries to enhance their functionality and calculations.

**What is Apache AGE ?**

Apache AGE is a graph database system that is built on top of PostgreSQL. It allows users to store, manage, and analyze large-scale graph data in a highly performant and scalable way.

Apache AGE combines the benefits of a powerful relational database management system (PostgreSQL) with the flexibility and scalability of a graph database. This means that users can store their data in a relational format and also perform graph-based queries and analyses on the data.

**Prerequisites**

1. PostgreSQL Version 11 or 12: Make sure you have PostgreSQL installed on your machine. Apache AGE relies on PostgreSQL, so it's important to have either version 11 or 12.

2. Apache AGE Installation and Configuration: Install and configure Apache AGE to seamlessly integrate with your PostgreSQL installation. If you haven't installed PostgreSQL and Apache AGE yet, we recommend following our comprehensive step-by-step guide for easy installation on Windows. You can access the tutorial [here](https://dev.to/omarsaad/step-by-step-guide-to-install-postgresql-apache-age-on-windows-28gf). This guide will walk you through the entire process and ensure a smooth setup.


**Trigonometric Functions in Apache AGE**

**degrees**

degrees() function in Apache AGE is used to convert radians to degrees.

Example: 

```
SELECT *
FROM cypher('graph_name', $$
    RETURN degrees(3.14159)
$$) as (deg agtype);

```
The number of degrees of 3.14159 is returned which will be around 180.


**radians**

radians() function in Apache AGE is used to convert degree to radian.

Example: 

```
SELECT *
FROM cypher('graph_name', $$
    RETURN radians(180)
$$) as (deg agtype);

```
The radian of 180 degrees will be returned which is pi.

**pi**

pi() returns the mathematical constant pi.

```
SELECT *
FROM cypher('graph_name', $$
    RETURN pi()
$$) as (p agtype);
```

The constant pi should be returned.

**sin**

sin() returns the sine of the given number.

```
SELECT *
FROM cypher('graph_name', $$
    RETURN sin(0.5)
$$) as (s agtype);
```

The result of sin(0.5) will be returned.

**cos**

cos() returns the cosine of a given number.

```
SELECT *
FROM cypher('graph_name', $$
    RETURN cos(0.5)
$$) as (s agtype);
```

The result of cos(0.5) will be returned.

**tan**

tan() returns the tangent of a given number.

```
SELECT *
FROM cypher('graph_name', $$
    RETURN tan(0.5)
$$) as (s agtype);
```

The result of tan(0.5) will be returned.



In addition to the functions we discussed earlier, Apache AGE also provides other useful trigonometric functions, namely `acos()`, `asin()`, `atan()`, and `atan2()`. These functions offer various functionalities for trigonometric calculations. `acos()` calculates the arc cosine of a value, `asin()` computes the arc sine, `atan()` evaluates the arc tangent, and `atan2()` allows you to calculate the arc tangent of two given values. The usage of these functions is similar to what we previously explored, making them accessible for performing different trigonometric computations on your graph data within Apache AGE's Cypher queries.

**Conclusion**

In conclusion, Apache AGE offers a range of trigonometric functions that can be leveraged for performing calculations involving angles and trigonometric operations in graph analysis. By incorporating these functions into your Cypher queries, you can enhance your graph analysis workflows and gain deeper insights from your graph data.