@Override
    public boolean numericalCheck() {
        //
        // over all time steps.
        //
        for (int f = 0; f < this.data.framewidth; f++) {
            //
            // for all cells.
            //
            for (int j = 0; j < this.structure.cellsnum; j++) {
                if (!check(this.data.input[f][j]))      return false;
                if (!check(this.data.output[f][j]))     return false;
                if (!check(this.data.gradinput[f][j]))  return false;
                if (!check(this.data.gradoutput[f][j])) return false;
            }
        }
        //
        // for all weights.
        //
        for (int i = 0; i < this.data.weightsnum; i++) {
            if (!check(this.data.weights[i])) return false;
        }
        return true;
    }