# Is there a one-line function that generates a triangle wave?

In a similar way that *modulo* generates a sawtooth wave. It doesn't have to be continuous.

here is what i mean:

```
int m = 10;
int x = 0;
int i = 0;
while (i < m*3) {
printf("%d ", x);
x++;
x = x % m;
i++;
}
```

generates a sequence 0..9, three times which looks like this:

*note that the slope on the right side of the peak is just a graphing artifact*

The one-liner in this case is **x = i++ % m**

What I want is this:

If you know one-liners for the other wave forms (sine, square), that would be good to know as well.

**Update**: everyone's answers have been very helpful and I have a follow-up question.

What would be added to the triangle wave function to make the slope of the lines curve in or out like this:

**Thanks everyone**, your varied answers helped me see the problem from a larger perspective. Special thanks to Noldorin for his take on extending the equation to quadratic curves.

## Answers:

```
x = m - abs(i % (2*m) - m)
```