Skip to content

Misleading tip text for scaleFactor input of AbstractScale #79

Description

@tgvaughan

Currently the input is defined as follows:

    public final Input<Double> scaleFactorInput = new Input<>("scaleFactor",
            "scaling factor: range from 0 to 1. Close to zero is very large jumps, " +
                    "close to 1.0 is very small jumps.", 0.75);

However the default use of this value in KernelDistribution is:

		@Override
		public double getScaler(int dim, double oldValue, double scaleFactor) {
	        double scale = 0;
	        scale = scaleFactor * getRandomNumber();
	        scale = Math.exp(scale);
			return scale;
		}

So close to zero produces small jumps and there's nothing at all special about 1.0. (From the following AbstractScale input it looks to be the default upper bound:

    final public Input<Double> scaleUpperLimit = new Input<>("upper",
            "Upper Limit of scale factor", 1.0 - 1e-8);

but apparently this isn't the case either, since there's this mysterious code in AbstractScale::initAndValidate:

        //TODO why?
        if (scaleUpperLimit.get() == 1 - 1e-8) {
            scaleUpperLimit.setValue(10.0, this);
        }

so it seems the default upper bound is effectively 10.0?)

Given how much these "scale" operators have changed over the last couple of years, I'm not confident enough to propose a fix for this directly - but it'd be wonderful if somebody who knows the ins and outs of how the new kernel-based system could look at this. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions