summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzero <zero@66b5f39b-87a2-44c3-adb7-4b08653a3962>2009-12-02 00:23:35 +0000
committerzero <zero@66b5f39b-87a2-44c3-adb7-4b08653a3962>2009-12-02 00:23:35 +0000
commit5c85a3742e20876a7d3803bcfa962f1077c0ec7b (patch)
tree81260b9414bb2613a6e9f6a7bd1fbd85b063f785
parentc4c95c4b2ecdc01f197c889dcbf3bb74e370153c (diff)
downloaduncertainfuture-5c85a3742e20876a7d3803bcfa962f1077c0ec7b.tar.gz
uncertainfuture-5c85a3742e20876a7d3803bcfa962f1077c0ec7b.zip
Changed version of JRE to 1.5
git-svn-id: svn+ssh://10.37.55.100/usr/local/svn/uf@20 66b5f39b-87a2-44c3-adb7-4b08653a3962
-rw-r--r--java/build.jardesc110
-rw-r--r--java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java306
-rw-r--r--java/src/org/singinst/uf/view/AppletBrowser.java3
-rw-r--r--web/UfApplet.jarbin780226 -> 722981 bytes
-rw-r--r--web/index.html2
5 files changed, 239 insertions, 182 deletions
diff --git a/java/build.jardesc b/java/build.jardesc
index ae3b3fa..0497f93 100644
--- a/java/build.jardesc
+++ b/java/build.jardesc
@@ -11,50 +11,104 @@
</sealing>
</manifest>
<selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false">
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{AtLeastOneHappensCalculation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{InvertableFunction.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooresLawNodeMetadataContentsFactory.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{SummarySource.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{LogBounds.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooreAsymptote.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{AxisDirection.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarSubIDString.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooreConstraint.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{GraphCanvas.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{IncidentFunction.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{SimpleLine.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{AxisSample.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{SimpleStyle.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarValueDependency.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NormalNodeMetadataContentsFactory.java"/>
+ <file path="/java/src/org/singinst/uf/model/UiTextConstant.java~"/>
+ <file path="/java/.classpath"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{YearwiseCalculationRelation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{DraggableLine.java"/>
+ <file path="/java/libs/commons-math-1.2.jar"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{CumulativeNormalDistributionCalculation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ResearcherExtreme.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{AiRelation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ScalarValuePointList.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{InvertedFunction.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{CumulativeHazardsRelation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{DisruptionRelation.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{MathUtilTest.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{LineBounded.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Evaluable.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{YearExtremeNodeMetadataContentsFactory.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeMetadataFactory.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{MouseClickListener.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ClippedCanvas.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{LineBounds.java"/>
- <file path="/java/.project"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{MathUtil.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{InvertableFunction.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{PlaneBounded.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ProxyCanvas.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{AxisDirection.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ResearchersNodeMetadataContentsFactory.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{UfHelp.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model"/>
<javaElement handleIdentifier="=java/src&lt;org.apache"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ScaledCanvas.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{GraphCanvas.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.apache.commons"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeMetadataBuilder.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{PowerFunction.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{GeneLearningExtreme.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.apache.commons.math"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{GeneLearningNodeMetadataContentsFactory.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooreDraggableLine.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{Store.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{SimplePoint.java"/>
+ <file path="/java/build.jardesc"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NeuromorphicAiRelation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{UiText.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NotablePercentile.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{GraphTransform.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NeedsCalcCache.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NormalConstraint.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{OtherIaExtreme.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ClippedCanvas.java"/>
+ <file path="/java/.project"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Axis.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ConclusionReportGenerator.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Calculation.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{Completion.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{SimpleLine.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarRelation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarValueHolder.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{RescheduledEventsRelation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{PercentileDraggableLine.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeIDString.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarSchema.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{IncidentExtremeNodeMetadataContentsFactory.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{CanvasString.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.common"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ValueListener.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{NumericEntry.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ClickableCurve.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooresLawData.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{LineBounded.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MultiplicationCalculation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ModelUtil.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{CompositeCalculation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{IncidentBounds.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{PlaneBounded.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeMetadata.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ProxyCanvas.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{UiTextConstant.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{MouseDragListener.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{AxisSample.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{SimpleStyle.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{CalculationRelation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{OtherIaNodeMetadataContentsFactory.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{Status.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{PlaneBounds.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{HtmlUtil.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.apache.commons.math"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{SimpleColor.java"/>
<javaElement handleIdentifier="=java/src&lt;org"/>
- <file path="/java/.classpath"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Node.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{LinearTransform.java"/>
<file path="/java/libs/junit-4.6.jar"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{CanvasString.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.common"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{DraggableLine.java"/>
- <file path="/java/libs/commons-math-1.2.jar"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{Store.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{SimplePoint.java"/>
- <file path="/java/build.jardesc"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{HazardRateNodeMetadataContentsFactory.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{RelationPresentation.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{NumericEntry.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ClickableCurve.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ScalarValuePointList.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{GraphTransform.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{InvertedFunction.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{IncidentLine.java"/>
</selectedElements>
</jardesc>
diff --git a/java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java b/java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java
index 34488a8..39f347b 100644
--- a/java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java
+++ b/java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java
@@ -1,153 +1,153 @@
-package org.singinst.uf.model;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.singinst.uf.math.MathUtil;
-import org.singinst.uf.math.SimplePoint;
-import org.singinst.uf.presenter.ClickableCurve;
-import org.singinst.uf.presenter.HtmlUtil;
-import org.singinst.uf.presenter.LineBounds;
-import org.singinst.uf.presenter.MouseClickListener;
-import org.singinst.uf.presenter.ScalarValuePointList;
-import org.singinst.uf.presenter.SimpleLine;
-import org.singinst.uf.presenter.SimpleStyle;
-
-public class NormalNodeMetadataContentsFactory implements MouseClickListener {
-
- private final Collection<ScalarSchema> scalarSchemata = new ArrayList<ScalarSchema>();
- private final List<ScalarValueHolder> scalarValueHolders = new ArrayList<ScalarValueHolder>();
-
- private final ScalarValuePointList curvePointList = new ClickableCurve(this);
- private final ScalarValuePointList pointList5 = new ScalarValuePointList(new SimpleStyle(SimpleColor.GREEN));
- private final ScalarValuePointList pointList50 = new ScalarValuePointList(new SimpleStyle(SimpleColor.BLACK));
- private final ScalarValuePointList pointList95 = new ScalarValuePointList(new SimpleStyle(SimpleColor.RED));
-
- private final ScalarRelation relation;
- private final ScalarSchema mean;
- //private final ScalarSchema median;
- private final ScalarSchema stdDev;
- private final String normalUnits;
-
- public NormalNodeMetadataContentsFactory(Node node, String units, final LineBounds meanBounds, String stdSuffix) {
- String powerStr = meanBounds.displayAsLog() ? " 10 to the " : " ";
- // if we are not displaying as log, it is going to be 'year', so add an 's'
- String plural = meanBounds.displayAsLog() ? "" : "s";
-
- this.normalUnits = units;
- mean = new ScalarSchema(node, ScalarSubIDString.MEAN, meanBounds, meanUnits(), "The median value is " + powerStr, plural, meanBounds, true);
- double maxStdDev = meanBounds.getLength() / 10;
- stdDev = new ScalarSchema(node, ScalarSubIDString.STD_DEV, new LineBounds(0, maxStdDev), units, "std dev is " + stdSuffix + powerStr, "", new LineBounds(0, maxStdDev * 100), true);
- Axis vertical = new Axis(new LineBounds(0, 5 / maxStdDev), false);
- Axis horizontal = new Axis(meanBounds);
- scalarSchemata.add(mean);
- scalarSchemata.add(stdDev);
- scalarValueHolders.add(mean.getScalarValueHolder());
- scalarValueHolders.add(stdDev.getScalarValueHolder());
-
- relation = new ScalarRelation(horizontal, vertical) {
-
- @Override
- public List<ScalarValuePointList> getPointLists() {
- List<SimplePoint> pointSamples = new ArrayList<SimplePoint>();
- Iterable<Double> samples =
- meanBounds.getVisualSamples(5001, mean.getScalarValueHolder().getValue(), Arrays.asList(getPercentile5(), getPercentile95()));
- for (double x : samples) {
- pointSamples.add(new SimplePoint(x, yFromX(x)));
- }
- curvePointList.setHypothesisPoints(pointSamples);
-
- pointList5.setHypothesisPoints(verticalLine(getPercentile5()));
- pointList50.setHypothesisPoints(verticalLine(mean.getScalarValueHolder().getValue()));
- pointList95.setHypothesisPoints(verticalLine(getPercentile95()));
-
- List<ScalarValuePointList> retVal = Arrays.asList(curvePointList, pointList5, pointList50, pointList95);
- for (ScalarValuePointList scalarValuePointList : retVal) {
- List<SimplePoint> filteredList = new ArrayList<SimplePoint>();
- for (SimplePoint simplePoint : scalarValuePointList.getHypothesisPoints()) {
- double x = simplePoint.x;
- if (x >= meanBounds.getFirst() && x <= meanBounds.getSecond()) {
- filteredList.add(simplePoint);
- }
- }
- scalarValuePointList.setHypothesisPoints(filteredList);
- }
- return retVal;
- }
-
- private List<SimplePoint> verticalLine(double x) {
- SimpleLine line = SimpleLine.vertical(x, 0, yFromX(x));
- return Arrays.asList(line.p1, line.p2);
- }
-
- public List<? extends ConclusionReportGenerator> getConclusionGenerators() {
- return Collections.singletonList(new ConclusionReportGenerator() {
- public String getText(ScalarValueHolder scalarValueHolder, double value) {
- boolean power = meanBounds.displayAsLog();
- // if we are not displaying as log, it is going to be 'year', so add an 's'
- String plural = power ? "" : "s";
- String str = "There is a 90% chance of being between ";
- if (power){
- str += HtmlUtil.green("10 <sup>" + mean.getBounds().userFormat(getPercentile5()) + "</sup>") +
- " and " +
- HtmlUtil.red("10 <sup>" + mean.getBounds().userFormat(getPercentile95()) + "</sup>") + " " + meanUnits() + plural;
- }
- else {
- str += HtmlUtil.green(mean.getBounds().userFormat(getPercentile5())) + " and " +
- HtmlUtil.red(mean.getBounds().userFormat(getPercentile95())) + " " + meanUnits() + plural;
- }
-
- return str;
- }
- });
- }
-
- public List<ScalarValueHolder> getScalarValues() {
- return scalarValueHolders;
- }
-
- };
- }
-
- private Double getPercentile5() {
- return mean.getScalarValueHolder().getValue() - MathUtil.NINETY_FIVE_PERCENTILE * stdDev.getScalarValueHolder().getValue();
- }
-
- private Double getPercentile95() {
- return mean.getScalarValueHolder().getValue() + MathUtil.NINETY_FIVE_PERCENTILE * stdDev.getScalarValueHolder().getValue();
- }
-
- protected double yFromX(double x) {
- double meanValue = mean.getScalarValueHolder().getValue();
- double stdDevValue = stdDev.getScalarValueHolder().getValue();
- double squaredDistanceFromMean = (meanValue - x) * (meanValue - x);
- double variance = stdDevValue * stdDevValue;
- double functionalY = (1 / Math.sqrt(2 * Math.PI * variance)) * Math.exp(-1 * squaredDistanceFromMean / (2 * variance));
- return functionalY;
- }
-
- public Collection<? extends ScalarSchema> getScalars() {
- return scalarSchemata;
- }
-
- public ScalarRelation getRelation() {
- return relation;
- }
-
- public void mouseClick(SimplePoint point) {
- double newMean = point.x;
- double newDensityAtMean = point.y;
- double newVariance = 1 / (2 * Math.PI * newDensityAtMean * newDensityAtMean);
- stdDev.getScalarValueHolder().setValue(Math.sqrt(newVariance));
- mean.getScalarValueHolder().setValue(newMean);
-
- }
-
- // TODO5 called from constructor
- protected String meanUnits() {
- return normalUnits;
- }
-}
+package org.singinst.uf.model;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.singinst.uf.math.MathUtil;
+import org.singinst.uf.math.SimplePoint;
+import org.singinst.uf.presenter.ClickableCurve;
+import org.singinst.uf.presenter.HtmlUtil;
+import org.singinst.uf.presenter.LineBounds;
+import org.singinst.uf.presenter.MouseClickListener;
+import org.singinst.uf.presenter.ScalarValuePointList;
+import org.singinst.uf.presenter.SimpleLine;
+import org.singinst.uf.presenter.SimpleStyle;
+
+public class NormalNodeMetadataContentsFactory implements MouseClickListener {
+
+ private final Collection<ScalarSchema> scalarSchemata = new ArrayList<ScalarSchema>();
+ private final List<ScalarValueHolder> scalarValueHolders = new ArrayList<ScalarValueHolder>();
+
+ private final ScalarValuePointList curvePointList = new ClickableCurve(this);
+ private final ScalarValuePointList pointList5 = new ScalarValuePointList(new SimpleStyle(SimpleColor.GREEN));
+ private final ScalarValuePointList pointList50 = new ScalarValuePointList(new SimpleStyle(SimpleColor.BLACK));
+ private final ScalarValuePointList pointList95 = new ScalarValuePointList(new SimpleStyle(SimpleColor.RED));
+
+ private final ScalarRelation relation;
+ private final ScalarSchema mean;
+ //private final ScalarSchema median;
+ private final ScalarSchema stdDev;
+ private final String normalUnits;
+
+ public NormalNodeMetadataContentsFactory(Node node, String units, final LineBounds meanBounds, String stdSuffix) {
+ String powerStr = meanBounds.displayAsLog() ? " 10 to the " : " ";
+ // if we are not displaying as log, it is going to be 'year', so add an 's'
+ String plural = meanBounds.displayAsLog() ? "" : "s";
+
+ this.normalUnits = units;
+ mean = new ScalarSchema(node, ScalarSubIDString.MEAN, meanBounds, meanUnits(), "The median value is " + powerStr, plural, meanBounds, true);
+ double maxStdDev = meanBounds.getLength() / 10;
+ stdDev = new ScalarSchema(node, ScalarSubIDString.STD_DEV, new LineBounds(0, maxStdDev), units, "std dev is " + stdSuffix + powerStr, "", new LineBounds(0, maxStdDev * 100), true);
+ Axis vertical = new Axis(new LineBounds(0, 5 / maxStdDev), false);
+ Axis horizontal = new Axis(meanBounds);
+ scalarSchemata.add(mean);
+ scalarSchemata.add(stdDev);
+ scalarValueHolders.add(mean.getScalarValueHolder());
+ scalarValueHolders.add(stdDev.getScalarValueHolder());
+
+ relation = new ScalarRelation(horizontal, vertical) {
+
+ @Override
+ public List<ScalarValuePointList> getPointLists() {
+ List<SimplePoint> pointSamples = new ArrayList<SimplePoint>();
+ Iterable<Double> samples =
+ meanBounds.getVisualSamples(5001, mean.getScalarValueHolder().getValue(), Arrays.asList(getPercentile5(), getPercentile95()));
+ for (double x : samples) {
+ pointSamples.add(new SimplePoint(x, yFromX(x)));
+ }
+ curvePointList.setHypothesisPoints(pointSamples);
+
+ pointList5.setHypothesisPoints(verticalLine(getPercentile5()));
+ pointList50.setHypothesisPoints(verticalLine(mean.getScalarValueHolder().getValue()));
+ pointList95.setHypothesisPoints(verticalLine(getPercentile95()));
+
+ List<ScalarValuePointList> retVal = Arrays.asList(curvePointList, pointList5, pointList50, pointList95);
+ for (ScalarValuePointList scalarValuePointList : retVal) {
+ List<SimplePoint> filteredList = new ArrayList<SimplePoint>();
+ for (SimplePoint simplePoint : scalarValuePointList.getHypothesisPoints()) {
+ double x = simplePoint.x;
+ if (x >= meanBounds.getFirst() && x <= meanBounds.getSecond()) {
+ filteredList.add(simplePoint);
+ }
+ }
+ scalarValuePointList.setHypothesisPoints(filteredList);
+ }
+ return retVal;
+ }
+
+ private List<SimplePoint> verticalLine(double x) {
+ SimpleLine line = SimpleLine.vertical(x, 0, yFromX(x));
+ return Arrays.asList(line.p1, line.p2);
+ }
+
+ public List<? extends ConclusionReportGenerator> getConclusionGenerators() {
+ return Collections.singletonList(new ConclusionReportGenerator() {
+ public String getText(ScalarValueHolder scalarValueHolder, double value) {
+ boolean power = meanBounds.displayAsLog();
+ // if we are not displaying as log, it is going to be 'year', so add an 's'
+ String plural = power ? "" : "s";
+ String str = "There is a 90% chance of being between ";
+ if (power){
+ str += HtmlUtil.green("10 <sup>" + mean.getBounds().userFormat(getPercentile5()) + "</sup>") +
+ " and " +
+ HtmlUtil.red("10 <sup>" + mean.getBounds().userFormat(getPercentile95()) + "</sup>") + " " + meanUnits() + plural;
+ }
+ else {
+ str += HtmlUtil.green(mean.getBounds().userFormat(getPercentile5())) + " and " +
+ HtmlUtil.red(mean.getBounds().userFormat(getPercentile95())) + " " + meanUnits() + plural;
+ }
+
+ return str;
+ }
+ });
+ }
+
+ public List<ScalarValueHolder> getScalarValues() {
+ return scalarValueHolders;
+ }
+
+ };
+ }
+
+ private Double getPercentile5() {
+ return mean.getScalarValueHolder().getValue() - MathUtil.NINETY_FIVE_PERCENTILE * stdDev.getScalarValueHolder().getValue();
+ }
+
+ private Double getPercentile95() {
+ return mean.getScalarValueHolder().getValue() + MathUtil.NINETY_FIVE_PERCENTILE * stdDev.getScalarValueHolder().getValue();
+ }
+
+ protected double yFromX(double x) {
+ double meanValue = mean.getScalarValueHolder().getValue();
+ double stdDevValue = stdDev.getScalarValueHolder().getValue();
+ double squaredDistanceFromMean = (meanValue - x) * (meanValue - x);
+ double variance = stdDevValue * stdDevValue;
+ double functionalY = (1 / Math.sqrt(2 * Math.PI * variance)) * Math.exp(-1 * squaredDistanceFromMean / (2 * variance));
+ return functionalY;
+ }
+
+ public Collection<? extends ScalarSchema> getScalars() {
+ return scalarSchemata;
+ }
+
+ public ScalarRelation getRelation() {
+ return relation;
+ }
+
+ public void mouseClick(SimplePoint point) {
+ double newMean = point.x;
+ double newDensityAtMean = point.y;
+ double newVariance = 1 / (2 * Math.PI * newDensityAtMean * newDensityAtMean);
+ stdDev.getScalarValueHolder().setValue(Math.sqrt(newVariance));
+ mean.getScalarValueHolder().setValue(newMean);
+
+ }
+
+ // TODO5 called from constructor
+ protected String meanUnits() {
+ return normalUnits;
+ }
+}
diff --git a/java/src/org/singinst/uf/view/AppletBrowser.java b/java/src/org/singinst/uf/view/AppletBrowser.java
index 2c83f9e..9d10d99 100644
--- a/java/src/org/singinst/uf/view/AppletBrowser.java
+++ b/java/src/org/singinst/uf/view/AppletBrowser.java
@@ -23,7 +23,9 @@ public class AppletBrowser {
}
}
public void loadPage(final String helpName) {
+ System.out.println("FIXME: loadPage(" + helpName + ")");
if (service != null) {
+ System.out.println("FIXME: service != null");
try {
service.invokeAndWait(new DOMAction()
{
@@ -31,6 +33,7 @@ public class AppletBrowser {
{
HTMLDocument doc = (HTMLDocument) accessor.getDocument(applet);
Element element = doc.getElementById("sidebar");
+ System.out.println("doc: " + doc + ", element: " + element);
//for (int i = 0; i < nodeList.getLength(); i++) {
//Node node = nodeList.item(i);
//if (node instanceof Element) {
diff --git a/web/UfApplet.jar b/web/UfApplet.jar
index 42de08d..96661b8 100644
--- a/web/UfApplet.jar
+++ b/web/UfApplet.jar
Binary files differ
diff --git a/web/index.html b/web/index.html
index 0579b79..9ef2377 100644
--- a/web/index.html
+++ b/web/index.html
@@ -73,7 +73,7 @@
</p>
<p><a id="large-start-link" href="main.html">Ready to start?</a></p>
- <p style="font-size: 0.8em;">The Uncertain Future requires Java 5 or later.
+ <p style="font-size: 0.8em;">The Uncertain Future requires Java 6 or later.
<a target="_blank" href="http://www.java.com/en/download/index.jsp">
Click here</a>
to get a Java runtime environment.