---
title: "acos"
canonical: "https://help.vicon.com/space/ShogunPost121/1253737439/acos"
format: markdown
---
# Description

Returns the arc cosine (aka inverse cosine) of an input

Arc cosine is the inverse function for cosine. That is, given a value for val in the domain [-1.0, 1.0], it returns an angle acos(val) in degrees.

To illustrate, picture the unit circle (a circle of radius 1.0 centered about the origin). If you imagine a unit vector rotating inside of the unit circle, the x-coordinate of the endpoint of the vector is the acos function argument val. The angle that the vector makes with the positive x-axis is the function output acos(val).

Because, as the vector rotates inside the circle, the x-coordinate of the vector must always be within the unit circle, the input argument to acos (aka val) must always be within [-1.0, 1.0]. Also, as cos(t) is doubly valued for t in [0, 360], the acos function is restricted to the first two quadrants. This means that the unit vector rotating inside the unit circle is assumed to have a positive or 0 y-coordinate, therefore acos(val) always returns a value in [0.0, 180.0].

## Functional area

Math

# Command syntax

## Syntax

> Macro (scroll-tablelayout)

|  |
| --- |
| `acos value` |

### Arguments

| **Name** | **Type** | **Required** | **Comments** |
| --- | --- | --- | --- |
| `value` | float | yes | The domain of arc cosine is [-1.0, 1.0]. Values of val outside of this domain are not meaningful to the function acos. |

### Flags

None 

> Macro (scroll-pagebreak)

## Return value

float

For an input argument val in [-1.0, 1.0], returns a floating point angle (degrees) in the range [0.0, 180.0].

For input arguments val in the ranges: (1.0, Inf], [-Inf, -1.0) and NaN, acos(val) returns NaN.

## Examples

```plaintext
float $t;
float $acos_of_t; 
float $cos_of_acos_of_t;

// acos(0) is 90 degrees because cos(90 degrees) = 0
$t                = 0.0;
$acos_of_t        = acos($t);
$cos_of_acos_of_t = cos($acos_of_t);
print("t, acos(t), cos(acos(t)) = " + string($t) + ", " + string($acos_of_t) + ", " + string($cos_of_acos_of_t));
// 1.1 is not a meaningful input into acos and returns NaN 
// (-1.#IND00)
$t                = 1.1;
$acos_of_t        = acos($t);
$cos_of_acos_of_t = cos($acos_of_t);
print("t, acos(t), cos(acos(t)) = " + string($t) + ", " + string($acos_of_t) + ", " + string($cos_of_acos_of_t));
```

# Additional info

## Related commands

- [asin](https://vicon-help.atlassian.net/wiki/spaces/ShogunPost121/pages/1253737453)
- [atan](https://vicon-help.atlassian.net/wiki/spaces/ShogunPost121/pages/1253737193)
- [cos](https://vicon-help.atlassian.net/wiki/spaces/ShogunPost121/pages/1253736839)
- [sin](https://vicon-help.atlassian.net/wiki/spaces/ShogunPost121/pages/1253738349)
- [tan](https://vicon-help.atlassian.net/wiki/spaces/ShogunPost121/pages/1253737400)