# Vector Truncate

## Function Prototype

/* Vector Truncate */
/* Type: simple */
/* Input arrays: 1    Options: 0    Output arrays: 1 */
/* Inputs: real */
/* Options: none */
/* Outputs: trunc */
int ti_trunc_start(TI_REAL const *options);
int ti_trunc(int size,
TI_REAL const *const *inputs,
TI_REAL const *options,
TI_REAL *const *outputs);

## Description

This documentation is still a work in progress. It has omissions, and it probably has errors too. If you see any issues, or have any general feedback, please get in touch.

Vector Truncate returns only the integer part of a number for each element in the input array. It is the same as Vector Floor for positive numbers and Vector Ceiling for negative numbers.

$$trunc =\begin{cases} \lfloor input_{t} \rfloor & n \gt 0 \\ \lceil input_{t} \rceil & \text{ else} \end{cases}$$

## Example Usage

### Calling From C

/* Example usage of Vector Truncate */
/* Assuming that 'input' is a pre-loaded array of size 'in_size'. */
TI_REAL *inputs[] = {input};
TI_REAL options[] = {}; /* No options */
TI_REAL *outputs[1]; /* trunc */

/* Determine how large the output size is for our options. */
const int out_size = in_size - ti_trunc_start(options);

/* Allocate memory for output. */
outputs[0] = malloc(sizeof(TI_REAL) * out_size); assert(outputs[0] != 0); /* trunc */

/* Run the actual calculation. */
const int ret = ti_trunc(in_size, inputs, options, outputs);
assert(ret == TI_OKAY);


### Calling From Lua (with Tulip Chart bindings)

-- Example usage of Vector Truncate
trunc = ti.trunc(input)


## Example Calculation

dateinputtrunc
2005-11-0181.5981.00
2005-11-0281.0681.00
2005-11-0382.8782.00
2005-11-0483.0083.00
2005-11-0783.6183.00
2005-11-0883.1583.00
2005-11-0982.8482.00
2005-11-1083.9983.00
2005-11-1184.5584.00
2005-11-1484.3684.00
2005-11-1585.5385.00
2005-11-1686.5486.00
2005-11-1786.8986.00
2005-11-1887.7787.00
2005-11-2187.2987.00

## Other Indicators

Previous indicator: Trix

Next indicator: Time Series Forecast

Random indicator: Rate of Change