[code=javascript]
let chebyshevCache={0:[1],1:[0,1]};
function chebyshev(rank) {
if (chebyshevCache[rank]) {
return chebyshevCache[rank];
}
let arr = new Array(rank+1).fill(0);
arr[0] = (-1)*chebyshev(rank-2)[0];
for (let i = 1; i < arr.length; i++) {
arr[i]=2*chebyshev(rank-1)[i-1]-((rank-2<i)?0:chebyshev(rank-2)[i]);
}
chebyshevCache[rank]=arr;
return chebyshevCache[rank];
}
[/code]