Не красиво, но в одной строке, которая работает и не использует условные выражения:
f(i):
f := (2 * (i mod 2) - 1) * ((i + 1) >> 1)
Конечно, используя условные выражения, она становится более читабельной:
f(i):
if (i mod 2) is
0: f := -((i + 1) >> 1)
1: f := ((i + 1) >> 1)