Skip to content

Misleading tip text for scaleFactor input of AbstractScale #79

@tgvaughan

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions