code: @Pure
      public static double noiseValue(double value, MathFunction noiseLaw) throws MathException {
          try {
              double noise = Math.abs(noiseLaw.f(value));
              initRandomNumberList();
              noise *= uniformRandomVariableList.nextFloat();
              if (uniformRandomVariableList.nextBoolean()) {
                  noise = -noise;
              }
              return value + noise;
          } catch (MathException e) {
              return value;
          }
      }
docs: Add a noise to the specified value.
  
  <p>The returned value is given by:
  {@code (value-noise) &lt; value &lt; (value+noise)}
  where {@code 0 &lt;= noise &lt;= max(abs(value), noiseLaw(value))}.
  The {@code noise} is randomly selected according to the
  given random number list.
  
  <p>This method uses a {@link UniformStochasticLaw uniform distribution random number generation}.
  
  @param value is the value to noise
  @param noiseLaw is the law used to selected tyhe noise amount.
  @return the value
  @throws MathException is case the value is not valid