You are tasked with implementing a function that performs linear interpolation between two values in a given wavetable.

A wavetable `sample_table` is represented by an array of floating-point numbers, where each element represents a sample value. The function will be given the following parameters:
- `index0`: An integer representing the index of the first sample in the wavetable.
- `index1`: An integer representing the index of the second sample in the wavetable.
- `frac`: A floating-point number representing the fractional part of the index between `index0` and `index1`.

Your task is to implement the function `linear_interpolation(index0: int, index1: int, frac: float) -> float` which returns the linearly interpolated value between `sample_table[index0]` and `sample_table[index1]` based on the given fractional part `frac`. The interpolated value is calculated using the formula:

```
value = sample_table[index0] + frac * (sample_table[index1] - sample_table[index0])
```

You can assume that the given `index0` and `index1` are valid indices within the range of the `sample_table`, and `frac` is a value between 0 and 1 (inclusive).

Write the code for the `linear_interpolation` function to solve this problem.
40f09f7f-fdc6-4323-afda-8e90f28a4dc6
Se te encarga implementar una función que realice una interpolación lineal entre dos valores en una tabla de ondas dada.

Una tabla de ondas `sample_table` está representada por un array de números de punto flotante, donde cada elemento representa un valor de muestra. La función recibirá los siguientes parámetros:
- `index0`: Un entero que representa el índice de la primera muestra en la tabla de ondas.
- `index1`: Un entero que representa el índice de la segunda muestra en la tabla de ondas.
- `frac`: Un número de punto flotante que representa la parte fraccional del índice entre `index0` e `index1`.

Tu tarea es implementar la función `linear_interpolation(index0: int, index1: int, frac: float) -> float` que retorna el valor interpolado linealmente entre `sample_table[index0]` y `sample_table[index1]` basado en la parte fraccional dada `frac`. El valor interpolado se calcula usando la fórmula:

```
value = sample_table[index0] + frac * (sample_table[index1] - sample_table[index0])
```

Puedes asumir que `index0` y `index1` son índices válidos dentro del rango de la `sample_table`, y que `frac` es un valor entre 0 y 1 (inclusive).

Escribe el código para la función `linear_interpolation` que resuelve este problema.
submitted
Se te encomienda implementar una función que realice una interpolación lineal entre dos valores en una tabla de ondas dada.

Una tabla de ondas `sample_table` está representada por un array de números de punto flotante, donde cada elemento representa un valor de muestra. La función recibirá los siguientes parámetros:
- `index0`: Un entero que representa el índice de la primera muestra en la tabla de ondas.
- `index1`: Un entero que representa el índice de la segunda muestra en la tabla de ondas.
- `frac`: Un número de punto flotante que representa la parte fraccional del índice entre `index0` e `index1`.

Tu tarea es implementar la función `linear_interpolation(index0: int, index1: int, frac: float) -> float` que retorna el valor interpolado linealmente entre `sample_table[index0]` y `sample_table[index1]` basado en la parte fraccional dada `frac`. El valor interpolado se calcula usando la fórmula:

```
value = sample_table[index0] + frac * (sample_table[index1] - sample_table[index0])
```

Puedes asumir que `index0` y `index1` son índices válidos dentro del rango de la `sample_table`, y que `frac` es un valor entre 0 y 1 (inclusive).

Escribe el código para la función `linear_interpolation` para resolver este problema.
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}