code: public MutableDouble mapInput(final DoubleUnaryOperator fn) {
          final MutableDouble host = this;
          return new MutableDouble() {
              @Override
              public MutableDouble set(final double value) {
                  host.set(fn.applyAsDouble(value));
                  return this;
              }
  
          };
      }
docs: Use the supplied function to perform a lazy transform operation when getValue is called
  <pre>
  {@code
  MutableDouble mutable = MutableDouble.fromExternal(()->!this.value,val->!this.value);
  MutableDouble withOverride = mutable.mapInput(b->{
  if(override)
  return 10.0;
  return b;
  });
  
  }
  </pre>
  
  
  @param fn Map function to be applied to the input when set is called
  @return Mutable that lazily applies the provided function when set is called to the input value