# Arccovercosine
> Compute the [inverse coversed cosine][inverse-coversed-cosine].
The [inverse coversed cosine][inverse-coversed-cosine] is defined as
```math
\mathop{\mathrm{acovercos}}(\theta) = \arcsin(\theta-1)
```
## Usage
```javascript
var acovercos = require( '@stdlib/math/base/special/acovercos' );
```
#### acovercos( x )
Computes the [inverse coversed cosine][inverse-coversed-cosine].
```javascript
var v = acovercos( 0.0 );
// returns ~-1.5708
v = acovercos( 3.141592653589793/2.0 );
// returns ~0.6075
v = acovercos( 3.141592653589793/6.0 );
// returns ~-0.4966
```
If `x < 0`, `x > 2`, or `x` is `NaN`, the function returns `NaN`.
```javascript
var v = acovercos( -1.0 );
// returns NaN
v = acovercos( 3.14 );
// returns NaN
v = acovercos( NaN );
// returns NaN
```
## Examples
```javascript
var uniform = require( '@stdlib/random/array/uniform' );
var logEachMap = require( '@stdlib/console/log-each-map' );
var acovercos = require( '@stdlib/math/base/special/acovercos' );
var x = uniform( 100, 0.0, 2.0, {
'dtype': 'float64'
});
logEachMap( 'acovercos(%0.4f) = %0.4f', x, acovercos );
```
* * *
## C APIs
### Usage
```c
#include "stdlib/math/base/special/acovercos.h"
```
#### stdlib_base_acovercos( x )
Computes the [inverse coversed cosine][inverse-coversed-cosine] of a double-precision floating-point number.
```c
double out = stdlib_base_acovercos( 3.141592653589793/2.0 );
// returns ~0.6075
```
The function accepts the following arguments:
- **x**: `[in] double` input value.
```c
double stdlib_base_acovercos( const double x );
```
### Examples
```c
#include "stdlib/math/base/special/acovercos.h"
#include
int main( void ) {
const double x[] = { 0.0, 0.27, 0.56, 0.78, 1.67, 1.70, 1.78, 1.80, 1.89, 2.0 };
double v;
int i;
for ( i = 0; i < 10; i++ ) {
v = stdlib_base_acovercos( x[ i ] );
printf( "acovercos(%lf) = %lf\n", x[ i ], v );
}
}
```
[inverse-coversed-cosine]: https://en.wikipedia.org/wiki/Versine
[@stdlib/math/base/special/acoversin]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/acoversin
[@stdlib/math/base/special/avercos]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/avercos
[@stdlib/math/base/special/covercos]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/covercos
[@stdlib/math/base/special/vercos]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/vercos