view src/samer/tools/RateSchedule.java @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents bf79fb79ee13
children
line wrap: on
line source
package samer.tools;

import samer.core.types.*;
import samer.core.*;

public class RateSchedule extends AnonymousTask {
	VDouble	rate,dec;
	
	public void setRatio(double r) { dec.set(1-r); }
	public void setCount(double n) { dec.set(1/(n+1)); }
	
	public RateSchedule(VDouble rate) {
		this.rate=rate;	
		Shell.push(rate.getNode());
		this.dec=new VDouble("relative dec",0.01);
		Shell.pop();
		// setCount(n); 
	}

	public void dispose() { dec.dispose(); super.dispose(); }
	public void run() {
		// rate.value*=n/(1+n); n+=1;
		double d=dec.value;
		if (d>=1) d=1; else if (d<0) d=0;
		rate.value -= rate.value*d; // /(++n);
		dec.value/=1+d;
		dec.set(d/(1+d));
		rate.changed();
	}
}

// note to self: add agent to rate viewable.
// need linked list of Agents -- DoubleAgent?!