code: public static PixelConvertingSpliterator<PixelBase, double[]> getDoubletArrayElementSpliterator(
  			Spliterator<? extends PixelBase> pixelSpliterator){
  		PixelConvertingSpliterator<PixelBase, double[]> arraySpliterator = new PixelConvertingSpliterator<>(
  				pixelSpliterator, getDoubleArrayConverter());
  		return arraySpliterator;
  	}
docs: Example implementation of a {@code PixelConvertingSpliterator<double[]>}.
  <p>
  The elements of the returned spliterator will be {@code double[]} of length 3
  with normalized red, green and blue channels on index 0, 1 and 2.
  <p>
  <b>Code:</b>
  <pre>
  {@code
  Supplier<double[]> arrayAllocator = () -> {
  return new double[3];
  };
  BiConsumer<Pixel, double[]> convertToArray = (px, array) -> {
  array[0]=px.r_normalized();
  array[1]=px.g_normalized();
  array[2]=px.b_normalized();
  };
  BiConsumer<double[], Pixel> convertToPixel = (array, px) -> {
  px.setRGB_fromNormalized_preserveAlpha(
  // clamp values between zero and one
  Math.min(1, Math.max(0, array[0])),
  Math.min(1, Math.max(0, array[1])),
  Math.min(1, Math.max(0, array[2])));
  };
  PixelConvertingSpliterator<double[]> arraySpliterator = new PixelConvertingSpliterator<>(
  pixelSpliterator,
  arrayAllocator,
  convertToArray,
  convertToPixel);
  }
  </pre>
  @param pixelSpliterator the {@code Spliterator<Pixel>} to which the
  returned spliterator delegates to.
  @return a spliterator with float[] elements consisting of normalized RGB channels.
  
  @since 1.4