private static final long[] evaluate(long[] data) {
        long[] evl = new long[smp.length];
        for (int i = 0; i < smp.length; i++) {
            evl[i] = 1L;
            for (long j : data) evl[i] = PF.mul(evl[i], PF.sub(smp[i],j));
        }
        return evl;
    }