/** {@inheritDoc} */
  @Override
  protected void setup(final MatrixIteration2DBuilder builder) {
    builder.setEndMode(EMissingValueMode.SKIP);
    builder.setStartMode(EMissingValueMode.SKIP);
    builder.setIterationMode(EIterationMode.KEEP_PREVIOUS);
    builder.setXDirection(EIterationDirection.DECREASING);
    builder.setXDimension(0);
    builder.setYDimension(1);

    builder.setMatrices( //
        new DoubleMatrix1D(
            new double[] { //
              -0.5d, 0.5d, //
              -4.5d, 4.5d, //
              -8.5d, 8.5d, //
              -12.5d, 12.5d, //
            },
            4,
            2), //
        new DoubleMatrix1D(
            new double[] { //
              -1.5d, 100.5d, //
              -5.5d, 500.5d, //
              -9.5d, 900.5d, //
              -13.5d, 1300.5d, //
            },
            4,
            2), //
        new DoubleMatrix1D(
            new double[] { //
              -2.5d, 20000.5d, //
              -6.5d, 60000.5d, //
              -10.5d, 100000.5d, //
              -14.5d, 140000.5d, //
            },
            4,
            2), //
        new DoubleMatrix1D(
            new double[] { //
              -3.5d, 3000000.5d, //
              -7.5d, 7000000.5d, //
              -11.5d, 11000000.5d, //
              -15.5d, 15000000.5d, //
            },
            4,
            2));
  }
  /** {@inheritDoc} */
  @Override
  protected void setup(final MatrixIteration2DBuilder builder) {
    builder.setEndMode(EMissingValueMode.SKIP);
    builder.setStartMode(EMissingValueMode.SKIP);
    builder.setIterationMode(EIterationMode.PREVIEW_NEXT);
    builder.setXDirection(EIterationDirection.INCREASING);
    builder.setXDimension(0);
    builder.setYDimension(1);

    builder.setMatrices( //
        new LongMatrix1D(
            new long[] { //
              0L, 10L, //
              1L, 20L, //
              2L, 30L, //
              3L, 40L, //
            },
            4,
            2));
  }
  /** {@inheritDoc} */
  @Override
  protected void setup(final MatrixIteration2DBuilder builder) {
    builder.setEndMode(EMissingValueMode.SKIP);
    builder.setStartMode(EMissingValueMode.SKIP);
    builder.setIterationMode(EIterationMode.KEEP_PREVIOUS);
    builder.setXDirection(EIterationDirection.DECREASING);
    builder.setXDimension(0);
    builder.setYDimension(1);

    builder.setMatrices( //
        new DoubleMatrix1D(
            new double[] { //
              40000.5d, -100.5d, //
              3.5d, 10.5d, //
              2.5d, 20.5d, //
              1.5d, 30.5d, //
              0.5d, 40.5d, //
            },
            5,
            2));
  }