import ChaosDemos.*;
import java.awt.*;
import java.util.*;
//********************************************************************
/**
* Diagnostics for Map1D
* Plots histogram of x values.
* Region of x-axis can be enlarged using mouse drag.
* @version 10 October 1997
* @author Michael Cross
*/
//********************************************************************
public class Map1DBin extends Map1DDiagnostics {
/** number of data points for power spectrum (must be power of 2!) and histogram */
private int dataLength ;
/** 2*dataLength */
private int dataLength2;
/** index point in accumulating Fourier data */
private int fourierIndex;
/** array for plotting histogram */
private double[] plotData;
/** array of accumulated numbers in bins */
private int[] binData;
private int binSkip=1;
/** maximum bin content, for scaling histogram */
private int binMax=0;
//******************************************************************
/**
* @param inParent parent class
* @see Map1D
*/
//******************************************************************
public Map1DBin(Map1D inParent) {
super(inParent);
parameters = new double[parent.nParameters];
}
//********************************************************************
/**
* Updates parameters from the text controls in parent class
*/
//********************************************************************
public void updateParameters() {
int i;
x0=parent.variables.parseTextField(5,x0);
x=x0;
ntrans=parent.variables.parseTextField(3,ntrans);
if(ntrans>0) runTrans=true;
nf=parent.variables.parseTextField(2,nf,true);
parent.mapFunction.setCompose(nf);
dataLength=parent.variables.parseTextField(4,10);
dataLength2=2*dataLength;
}
//*********************************************************************
/**
* Restarts
*/
//*********************************************************************
public void restart() {
double data1[] = new double[6];
int i,j;
double xSave;
double tSave;
double f;
int ip=0;
iterations=0;
// Eliminate transient
if(runTrans) {
for(i=0;i0 && index < dataLength2) {
binData[index]++;
if(binData[index] > binMax) binMax=binData[index];
}
}
iterations+=dataLength;
data1[0]=xmin;
data1[1]=0.;
data1[2]=xmax;
data1[3]=1.;
ncurve = parent.graph.addCurve(data1,2,Color.black,0,7,1.);
for(j=1;j=0 && index binMax) binMax=binData[index];
}
}
iterations+=binSkip;
if(parent.showTime)
parent.status.setText("No. of Iterations "+ iterations);
parent.graph.clearAll=true;
parent.graph.paintAll=false;
// if(ncurve>=0) ncurve = graph.deleteAllCurves();
// ncurve = graph.addCurve(moredata,2,Color.black,0,7,1);
for(j=1;j