for (int i = n - upperPadOutSize; i < n; i++) {
z[j][i] = ZERO;
}
}
ComplexNumber u = new ComplexNumber(0.0, -(1 + alpha));
final int offset = halfN - 1;
ComplexNumber[] f = ajointFunc.evaluate(u);
ComplexNumber num = exp(f[0]);
ComplexNumber denom = multiply(u, subtract(MINUS_I, u));
ComplexNumber v = divide(num, denom);
z[0][offset] = v;
for (int j = 1; j < size; j++) {
ComplexNumber temp = multiply(v, f[j]);
z[j][offset] = temp;
}
for (int i = 1; i < m; i++) {
u = new ComplexNumber(i * delta, -(1 + alpha));
f = ajointFunc.evaluate(u);
num = exp(f[0]);
denom = multiply(u, subtract(MINUS_I, u));
v = divide(num, denom);
z[0][offset + i] = v;
z[0][offset - i] = ComplexMathUtils.conjugate(v);
for (int j = 1; j < size; j++) {
ComplexNumber temp = multiply(v, f[j]);
z[j][offset + i] = temp;
z[j][offset - i] = ComplexMathUtils.conjugate(temp); //TODO the FFT should take care of this
}
}
return z;