Modified: 
websites/production/commons/content/proper/commons-math/testapidocs/src-html/org/apache/commons/math3/optim/nonlinear/scalar/noderiv/CMAESOptimizerTest.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-math/testapidocs/src-html/org/apache/commons/math3/optim/nonlinear/scalar/noderiv/CMAESOptimizerTest.html
 (original)
+++ 
websites/production/commons/content/proper/commons-math/testapidocs/src-html/org/apache/commons/math3/optim/nonlinear/scalar/noderiv/CMAESOptimizerTest.html
 Sat Apr  6 23:42:01 2013
@@ -52,7 +52,7 @@
 <FONT color="green">049</FONT>    <a name="line.49"></a>
 <FONT color="green">050</FONT>        static final int DIM = 13;<a 
name="line.50"></a>
 <FONT color="green">051</FONT>        static final int LAMBDA = 4 + 
(int)(3.*Math.log(DIM));<a name="line.51"></a>
-<FONT color="green">052</FONT>       <a name="line.52"></a>
+<FONT color="green">052</FONT>    <a name="line.52"></a>
 <FONT color="green">053</FONT>        @Test(expected = 
NumberIsTooLargeException.class)<a name="line.53"></a>
 <FONT color="green">054</FONT>        public void testInitOutofbounds1() {<a 
name="line.54"></a>
 <FONT color="green">055</FONT>            double[] startPoint = 
point(DIM,3);<a name="line.55"></a>
@@ -513,288 +513,290 @@
 <FONT color="green">510</FONT>            for (int i = 0; i &lt; dim; i++) {<a 
name="line.510"></a>
 <FONT color="green">511</FONT>                
Assert.assertEquals(expected.getPoint()[i], result.getPoint()[i], pointTol);<a 
name="line.511"></a>
 <FONT color="green">512</FONT>            }<a name="line.512"></a>
-<FONT color="green">513</FONT>        }<a name="line.513"></a>
-<FONT color="green">514</FONT>    <a name="line.514"></a>
-<FONT color="green">515</FONT>        private static double[] point(int n, 
double value) {<a name="line.515"></a>
-<FONT color="green">516</FONT>            double[] ds = new double[n];<a 
name="line.516"></a>
-<FONT color="green">517</FONT>            Arrays.fill(ds, value);<a 
name="line.517"></a>
-<FONT color="green">518</FONT>            return ds;<a name="line.518"></a>
-<FONT color="green">519</FONT>        }<a name="line.519"></a>
-<FONT color="green">520</FONT>    <a name="line.520"></a>
-<FONT color="green">521</FONT>        private static double[][] boundaries(int 
dim,<a name="line.521"></a>
-<FONT color="green">522</FONT>                double lower, double upper) {<a 
name="line.522"></a>
-<FONT color="green">523</FONT>            double[][] boundaries = new 
double[2][dim];<a name="line.523"></a>
-<FONT color="green">524</FONT>            for (int i = 0; i &lt; dim; i++)<a 
name="line.524"></a>
-<FONT color="green">525</FONT>                boundaries[0][i] = lower;<a 
name="line.525"></a>
+<FONT color="green">513</FONT>    <a name="line.513"></a>
+<FONT color="green">514</FONT>            
Assert.assertTrue(optim.getIterations() &gt; 0);<a name="line.514"></a>
+<FONT color="green">515</FONT>        }<a name="line.515"></a>
+<FONT color="green">516</FONT>    <a name="line.516"></a>
+<FONT color="green">517</FONT>        private static double[] point(int n, 
double value) {<a name="line.517"></a>
+<FONT color="green">518</FONT>            double[] ds = new double[n];<a 
name="line.518"></a>
+<FONT color="green">519</FONT>            Arrays.fill(ds, value);<a 
name="line.519"></a>
+<FONT color="green">520</FONT>            return ds;<a name="line.520"></a>
+<FONT color="green">521</FONT>        }<a name="line.521"></a>
+<FONT color="green">522</FONT>    <a name="line.522"></a>
+<FONT color="green">523</FONT>        private static double[][] boundaries(int 
dim,<a name="line.523"></a>
+<FONT color="green">524</FONT>                double lower, double upper) {<a 
name="line.524"></a>
+<FONT color="green">525</FONT>            double[][] boundaries = new 
double[2][dim];<a name="line.525"></a>
 <FONT color="green">526</FONT>            for (int i = 0; i &lt; dim; i++)<a 
name="line.526"></a>
-<FONT color="green">527</FONT>                boundaries[1][i] = upper;<a 
name="line.527"></a>
-<FONT color="green">528</FONT>            return boundaries;<a 
name="line.528"></a>
-<FONT color="green">529</FONT>        }<a name="line.529"></a>
-<FONT color="green">530</FONT>    <a name="line.530"></a>
-<FONT color="green">531</FONT>        private static class Sphere implements 
MultivariateFunction {<a name="line.531"></a>
+<FONT color="green">527</FONT>                boundaries[0][i] = lower;<a 
name="line.527"></a>
+<FONT color="green">528</FONT>            for (int i = 0; i &lt; dim; i++)<a 
name="line.528"></a>
+<FONT color="green">529</FONT>                boundaries[1][i] = upper;<a 
name="line.529"></a>
+<FONT color="green">530</FONT>            return boundaries;<a 
name="line.530"></a>
+<FONT color="green">531</FONT>        }<a name="line.531"></a>
 <FONT color="green">532</FONT>    <a name="line.532"></a>
-<FONT color="green">533</FONT>            public double value(double[] x) {<a 
name="line.533"></a>
-<FONT color="green">534</FONT>                double f = 0;<a 
name="line.534"></a>
-<FONT color="green">535</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.535"></a>
-<FONT color="green">536</FONT>                    f += x[i] * x[i];<a 
name="line.536"></a>
-<FONT color="green">537</FONT>                return f;<a name="line.537"></a>
-<FONT color="green">538</FONT>            }<a name="line.538"></a>
-<FONT color="green">539</FONT>        }<a name="line.539"></a>
-<FONT color="green">540</FONT>    <a name="line.540"></a>
-<FONT color="green">541</FONT>        private static class Cigar implements 
MultivariateFunction {<a name="line.541"></a>
-<FONT color="green">542</FONT>            private double factor;<a 
name="line.542"></a>
-<FONT color="green">543</FONT>    <a name="line.543"></a>
-<FONT color="green">544</FONT>            Cigar() {<a name="line.544"></a>
-<FONT color="green">545</FONT>                this(1e3);<a name="line.545"></a>
-<FONT color="green">546</FONT>            }<a name="line.546"></a>
-<FONT color="green">547</FONT>    <a name="line.547"></a>
-<FONT color="green">548</FONT>            Cigar(double axisratio) {<a 
name="line.548"></a>
-<FONT color="green">549</FONT>                factor = axisratio * 
axisratio;<a name="line.549"></a>
-<FONT color="green">550</FONT>            }<a name="line.550"></a>
-<FONT color="green">551</FONT>    <a name="line.551"></a>
-<FONT color="green">552</FONT>            public double value(double[] x) {<a 
name="line.552"></a>
-<FONT color="green">553</FONT>                double f = x[0] * x[0];<a 
name="line.553"></a>
-<FONT color="green">554</FONT>                for (int i = 1; i &lt; x.length; 
++i)<a name="line.554"></a>
-<FONT color="green">555</FONT>                    f += factor * x[i] * x[i];<a 
name="line.555"></a>
-<FONT color="green">556</FONT>                return f;<a name="line.556"></a>
-<FONT color="green">557</FONT>            }<a name="line.557"></a>
-<FONT color="green">558</FONT>        }<a name="line.558"></a>
-<FONT color="green">559</FONT>    <a name="line.559"></a>
-<FONT color="green">560</FONT>        private static class Tablet implements 
MultivariateFunction {<a name="line.560"></a>
-<FONT color="green">561</FONT>            private double factor;<a 
name="line.561"></a>
-<FONT color="green">562</FONT>    <a name="line.562"></a>
-<FONT color="green">563</FONT>            Tablet() {<a name="line.563"></a>
-<FONT color="green">564</FONT>                this(1e3);<a name="line.564"></a>
-<FONT color="green">565</FONT>            }<a name="line.565"></a>
-<FONT color="green">566</FONT>    <a name="line.566"></a>
-<FONT color="green">567</FONT>            Tablet(double axisratio) {<a 
name="line.567"></a>
-<FONT color="green">568</FONT>                factor = axisratio * 
axisratio;<a name="line.568"></a>
-<FONT color="green">569</FONT>            }<a name="line.569"></a>
-<FONT color="green">570</FONT>    <a name="line.570"></a>
-<FONT color="green">571</FONT>            public double value(double[] x) {<a 
name="line.571"></a>
-<FONT color="green">572</FONT>                double f = factor * x[0] * 
x[0];<a name="line.572"></a>
-<FONT color="green">573</FONT>                for (int i = 1; i &lt; x.length; 
++i)<a name="line.573"></a>
-<FONT color="green">574</FONT>                    f += x[i] * x[i];<a 
name="line.574"></a>
-<FONT color="green">575</FONT>                return f;<a name="line.575"></a>
-<FONT color="green">576</FONT>            }<a name="line.576"></a>
-<FONT color="green">577</FONT>        }<a name="line.577"></a>
-<FONT color="green">578</FONT>    <a name="line.578"></a>
-<FONT color="green">579</FONT>        private static class CigTab implements 
MultivariateFunction {<a name="line.579"></a>
-<FONT color="green">580</FONT>            private double factor;<a 
name="line.580"></a>
-<FONT color="green">581</FONT>    <a name="line.581"></a>
-<FONT color="green">582</FONT>            CigTab() {<a name="line.582"></a>
-<FONT color="green">583</FONT>                this(1e4);<a name="line.583"></a>
-<FONT color="green">584</FONT>            }<a name="line.584"></a>
-<FONT color="green">585</FONT>    <a name="line.585"></a>
-<FONT color="green">586</FONT>            CigTab(double axisratio) {<a 
name="line.586"></a>
-<FONT color="green">587</FONT>                factor = axisratio;<a 
name="line.587"></a>
-<FONT color="green">588</FONT>            }<a name="line.588"></a>
-<FONT color="green">589</FONT>    <a name="line.589"></a>
-<FONT color="green">590</FONT>            public double value(double[] x) {<a 
name="line.590"></a>
-<FONT color="green">591</FONT>                int end = x.length - 1;<a 
name="line.591"></a>
-<FONT color="green">592</FONT>                double f = x[0] * x[0] / factor 
+ factor * x[end] * x[end];<a name="line.592"></a>
-<FONT color="green">593</FONT>                for (int i = 1; i &lt; end; 
++i)<a name="line.593"></a>
-<FONT color="green">594</FONT>                    f += x[i] * x[i];<a 
name="line.594"></a>
-<FONT color="green">595</FONT>                return f;<a name="line.595"></a>
-<FONT color="green">596</FONT>            }<a name="line.596"></a>
-<FONT color="green">597</FONT>        }<a name="line.597"></a>
-<FONT color="green">598</FONT>    <a name="line.598"></a>
-<FONT color="green">599</FONT>        private static class TwoAxes implements 
MultivariateFunction {<a name="line.599"></a>
+<FONT color="green">533</FONT>        private static class Sphere implements 
MultivariateFunction {<a name="line.533"></a>
+<FONT color="green">534</FONT>    <a name="line.534"></a>
+<FONT color="green">535</FONT>            public double value(double[] x) {<a 
name="line.535"></a>
+<FONT color="green">536</FONT>                double f = 0;<a 
name="line.536"></a>
+<FONT color="green">537</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.537"></a>
+<FONT color="green">538</FONT>                    f += x[i] * x[i];<a 
name="line.538"></a>
+<FONT color="green">539</FONT>                return f;<a name="line.539"></a>
+<FONT color="green">540</FONT>            }<a name="line.540"></a>
+<FONT color="green">541</FONT>        }<a name="line.541"></a>
+<FONT color="green">542</FONT>    <a name="line.542"></a>
+<FONT color="green">543</FONT>        private static class Cigar implements 
MultivariateFunction {<a name="line.543"></a>
+<FONT color="green">544</FONT>            private double factor;<a 
name="line.544"></a>
+<FONT color="green">545</FONT>    <a name="line.545"></a>
+<FONT color="green">546</FONT>            Cigar() {<a name="line.546"></a>
+<FONT color="green">547</FONT>                this(1e3);<a name="line.547"></a>
+<FONT color="green">548</FONT>            }<a name="line.548"></a>
+<FONT color="green">549</FONT>    <a name="line.549"></a>
+<FONT color="green">550</FONT>            Cigar(double axisratio) {<a 
name="line.550"></a>
+<FONT color="green">551</FONT>                factor = axisratio * 
axisratio;<a name="line.551"></a>
+<FONT color="green">552</FONT>            }<a name="line.552"></a>
+<FONT color="green">553</FONT>    <a name="line.553"></a>
+<FONT color="green">554</FONT>            public double value(double[] x) {<a 
name="line.554"></a>
+<FONT color="green">555</FONT>                double f = x[0] * x[0];<a 
name="line.555"></a>
+<FONT color="green">556</FONT>                for (int i = 1; i &lt; x.length; 
++i)<a name="line.556"></a>
+<FONT color="green">557</FONT>                    f += factor * x[i] * x[i];<a 
name="line.557"></a>
+<FONT color="green">558</FONT>                return f;<a name="line.558"></a>
+<FONT color="green">559</FONT>            }<a name="line.559"></a>
+<FONT color="green">560</FONT>        }<a name="line.560"></a>
+<FONT color="green">561</FONT>    <a name="line.561"></a>
+<FONT color="green">562</FONT>        private static class Tablet implements 
MultivariateFunction {<a name="line.562"></a>
+<FONT color="green">563</FONT>            private double factor;<a 
name="line.563"></a>
+<FONT color="green">564</FONT>    <a name="line.564"></a>
+<FONT color="green">565</FONT>            Tablet() {<a name="line.565"></a>
+<FONT color="green">566</FONT>                this(1e3);<a name="line.566"></a>
+<FONT color="green">567</FONT>            }<a name="line.567"></a>
+<FONT color="green">568</FONT>    <a name="line.568"></a>
+<FONT color="green">569</FONT>            Tablet(double axisratio) {<a 
name="line.569"></a>
+<FONT color="green">570</FONT>                factor = axisratio * 
axisratio;<a name="line.570"></a>
+<FONT color="green">571</FONT>            }<a name="line.571"></a>
+<FONT color="green">572</FONT>    <a name="line.572"></a>
+<FONT color="green">573</FONT>            public double value(double[] x) {<a 
name="line.573"></a>
+<FONT color="green">574</FONT>                double f = factor * x[0] * 
x[0];<a name="line.574"></a>
+<FONT color="green">575</FONT>                for (int i = 1; i &lt; x.length; 
++i)<a name="line.575"></a>
+<FONT color="green">576</FONT>                    f += x[i] * x[i];<a 
name="line.576"></a>
+<FONT color="green">577</FONT>                return f;<a name="line.577"></a>
+<FONT color="green">578</FONT>            }<a name="line.578"></a>
+<FONT color="green">579</FONT>        }<a name="line.579"></a>
+<FONT color="green">580</FONT>    <a name="line.580"></a>
+<FONT color="green">581</FONT>        private static class CigTab implements 
MultivariateFunction {<a name="line.581"></a>
+<FONT color="green">582</FONT>            private double factor;<a 
name="line.582"></a>
+<FONT color="green">583</FONT>    <a name="line.583"></a>
+<FONT color="green">584</FONT>            CigTab() {<a name="line.584"></a>
+<FONT color="green">585</FONT>                this(1e4);<a name="line.585"></a>
+<FONT color="green">586</FONT>            }<a name="line.586"></a>
+<FONT color="green">587</FONT>    <a name="line.587"></a>
+<FONT color="green">588</FONT>            CigTab(double axisratio) {<a 
name="line.588"></a>
+<FONT color="green">589</FONT>                factor = axisratio;<a 
name="line.589"></a>
+<FONT color="green">590</FONT>            }<a name="line.590"></a>
+<FONT color="green">591</FONT>    <a name="line.591"></a>
+<FONT color="green">592</FONT>            public double value(double[] x) {<a 
name="line.592"></a>
+<FONT color="green">593</FONT>                int end = x.length - 1;<a 
name="line.593"></a>
+<FONT color="green">594</FONT>                double f = x[0] * x[0] / factor 
+ factor * x[end] * x[end];<a name="line.594"></a>
+<FONT color="green">595</FONT>                for (int i = 1; i &lt; end; 
++i)<a name="line.595"></a>
+<FONT color="green">596</FONT>                    f += x[i] * x[i];<a 
name="line.596"></a>
+<FONT color="green">597</FONT>                return f;<a name="line.597"></a>
+<FONT color="green">598</FONT>            }<a name="line.598"></a>
+<FONT color="green">599</FONT>        }<a name="line.599"></a>
 <FONT color="green">600</FONT>    <a name="line.600"></a>
-<FONT color="green">601</FONT>            private double factor;<a 
name="line.601"></a>
+<FONT color="green">601</FONT>        private static class TwoAxes implements 
MultivariateFunction {<a name="line.601"></a>
 <FONT color="green">602</FONT>    <a name="line.602"></a>
-<FONT color="green">603</FONT>            TwoAxes() {<a name="line.603"></a>
-<FONT color="green">604</FONT>                this(1e6);<a name="line.604"></a>
-<FONT color="green">605</FONT>            }<a name="line.605"></a>
-<FONT color="green">606</FONT>    <a name="line.606"></a>
-<FONT color="green">607</FONT>            TwoAxes(double axisratio) {<a 
name="line.607"></a>
-<FONT color="green">608</FONT>                factor = axisratio * 
axisratio;<a name="line.608"></a>
-<FONT color="green">609</FONT>            }<a name="line.609"></a>
-<FONT color="green">610</FONT>    <a name="line.610"></a>
-<FONT color="green">611</FONT>            public double value(double[] x) {<a 
name="line.611"></a>
-<FONT color="green">612</FONT>                double f = 0;<a 
name="line.612"></a>
-<FONT color="green">613</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.613"></a>
-<FONT color="green">614</FONT>                    f += (i &lt; x.length / 2 ? 
factor : 1) * x[i] * x[i];<a name="line.614"></a>
-<FONT color="green">615</FONT>                return f;<a name="line.615"></a>
-<FONT color="green">616</FONT>            }<a name="line.616"></a>
-<FONT color="green">617</FONT>        }<a name="line.617"></a>
-<FONT color="green">618</FONT>    <a name="line.618"></a>
-<FONT color="green">619</FONT>        private static class ElliRotated 
implements MultivariateFunction {<a name="line.619"></a>
-<FONT color="green">620</FONT>            private Basis B = new Basis();<a 
name="line.620"></a>
-<FONT color="green">621</FONT>            private double factor;<a 
name="line.621"></a>
-<FONT color="green">622</FONT>    <a name="line.622"></a>
-<FONT color="green">623</FONT>            ElliRotated() {<a 
name="line.623"></a>
-<FONT color="green">624</FONT>                this(1e3);<a name="line.624"></a>
-<FONT color="green">625</FONT>            }<a name="line.625"></a>
-<FONT color="green">626</FONT>    <a name="line.626"></a>
-<FONT color="green">627</FONT>            ElliRotated(double axisratio) {<a 
name="line.627"></a>
-<FONT color="green">628</FONT>                factor = axisratio * 
axisratio;<a name="line.628"></a>
-<FONT color="green">629</FONT>            }<a name="line.629"></a>
-<FONT color="green">630</FONT>    <a name="line.630"></a>
-<FONT color="green">631</FONT>            public double value(double[] x) {<a 
name="line.631"></a>
-<FONT color="green">632</FONT>                double f = 0;<a 
name="line.632"></a>
-<FONT color="green">633</FONT>                x = B.Rotate(x);<a 
name="line.633"></a>
-<FONT color="green">634</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.634"></a>
-<FONT color="green">635</FONT>                    f += Math.pow(factor, i / 
(x.length - 1.)) * x[i] * x[i];<a name="line.635"></a>
-<FONT color="green">636</FONT>                return f;<a name="line.636"></a>
-<FONT color="green">637</FONT>            }<a name="line.637"></a>
-<FONT color="green">638</FONT>        }<a name="line.638"></a>
-<FONT color="green">639</FONT>    <a name="line.639"></a>
-<FONT color="green">640</FONT>        private static class Elli implements 
MultivariateFunction {<a name="line.640"></a>
+<FONT color="green">603</FONT>            private double factor;<a 
name="line.603"></a>
+<FONT color="green">604</FONT>    <a name="line.604"></a>
+<FONT color="green">605</FONT>            TwoAxes() {<a name="line.605"></a>
+<FONT color="green">606</FONT>                this(1e6);<a name="line.606"></a>
+<FONT color="green">607</FONT>            }<a name="line.607"></a>
+<FONT color="green">608</FONT>    <a name="line.608"></a>
+<FONT color="green">609</FONT>            TwoAxes(double axisratio) {<a 
name="line.609"></a>
+<FONT color="green">610</FONT>                factor = axisratio * 
axisratio;<a name="line.610"></a>
+<FONT color="green">611</FONT>            }<a name="line.611"></a>
+<FONT color="green">612</FONT>    <a name="line.612"></a>
+<FONT color="green">613</FONT>            public double value(double[] x) {<a 
name="line.613"></a>
+<FONT color="green">614</FONT>                double f = 0;<a 
name="line.614"></a>
+<FONT color="green">615</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.615"></a>
+<FONT color="green">616</FONT>                    f += (i &lt; x.length / 2 ? 
factor : 1) * x[i] * x[i];<a name="line.616"></a>
+<FONT color="green">617</FONT>                return f;<a name="line.617"></a>
+<FONT color="green">618</FONT>            }<a name="line.618"></a>
+<FONT color="green">619</FONT>        }<a name="line.619"></a>
+<FONT color="green">620</FONT>    <a name="line.620"></a>
+<FONT color="green">621</FONT>        private static class ElliRotated 
implements MultivariateFunction {<a name="line.621"></a>
+<FONT color="green">622</FONT>            private Basis B = new Basis();<a 
name="line.622"></a>
+<FONT color="green">623</FONT>            private double factor;<a 
name="line.623"></a>
+<FONT color="green">624</FONT>    <a name="line.624"></a>
+<FONT color="green">625</FONT>            ElliRotated() {<a 
name="line.625"></a>
+<FONT color="green">626</FONT>                this(1e3);<a name="line.626"></a>
+<FONT color="green">627</FONT>            }<a name="line.627"></a>
+<FONT color="green">628</FONT>    <a name="line.628"></a>
+<FONT color="green">629</FONT>            ElliRotated(double axisratio) {<a 
name="line.629"></a>
+<FONT color="green">630</FONT>                factor = axisratio * 
axisratio;<a name="line.630"></a>
+<FONT color="green">631</FONT>            }<a name="line.631"></a>
+<FONT color="green">632</FONT>    <a name="line.632"></a>
+<FONT color="green">633</FONT>            public double value(double[] x) {<a 
name="line.633"></a>
+<FONT color="green">634</FONT>                double f = 0;<a 
name="line.634"></a>
+<FONT color="green">635</FONT>                x = B.Rotate(x);<a 
name="line.635"></a>
+<FONT color="green">636</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.636"></a>
+<FONT color="green">637</FONT>                    f += Math.pow(factor, i / 
(x.length - 1.)) * x[i] * x[i];<a name="line.637"></a>
+<FONT color="green">638</FONT>                return f;<a name="line.638"></a>
+<FONT color="green">639</FONT>            }<a name="line.639"></a>
+<FONT color="green">640</FONT>        }<a name="line.640"></a>
 <FONT color="green">641</FONT>    <a name="line.641"></a>
-<FONT color="green">642</FONT>            private double factor;<a 
name="line.642"></a>
+<FONT color="green">642</FONT>        private static class Elli implements 
MultivariateFunction {<a name="line.642"></a>
 <FONT color="green">643</FONT>    <a name="line.643"></a>
-<FONT color="green">644</FONT>            Elli() {<a name="line.644"></a>
-<FONT color="green">645</FONT>                this(1e3);<a name="line.645"></a>
-<FONT color="green">646</FONT>            }<a name="line.646"></a>
-<FONT color="green">647</FONT>    <a name="line.647"></a>
-<FONT color="green">648</FONT>            Elli(double axisratio) {<a 
name="line.648"></a>
-<FONT color="green">649</FONT>                factor = axisratio * 
axisratio;<a name="line.649"></a>
-<FONT color="green">650</FONT>            }<a name="line.650"></a>
-<FONT color="green">651</FONT>    <a name="line.651"></a>
-<FONT color="green">652</FONT>            public double value(double[] x) {<a 
name="line.652"></a>
-<FONT color="green">653</FONT>                double f = 0;<a 
name="line.653"></a>
-<FONT color="green">654</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.654"></a>
-<FONT color="green">655</FONT>                    f += Math.pow(factor, i / 
(x.length - 1.)) * x[i] * x[i];<a name="line.655"></a>
-<FONT color="green">656</FONT>                return f;<a name="line.656"></a>
-<FONT color="green">657</FONT>            }<a name="line.657"></a>
-<FONT color="green">658</FONT>        }<a name="line.658"></a>
-<FONT color="green">659</FONT>    <a name="line.659"></a>
-<FONT color="green">660</FONT>        private static class MinusElli 
implements MultivariateFunction {<a name="line.660"></a>
+<FONT color="green">644</FONT>            private double factor;<a 
name="line.644"></a>
+<FONT color="green">645</FONT>    <a name="line.645"></a>
+<FONT color="green">646</FONT>            Elli() {<a name="line.646"></a>
+<FONT color="green">647</FONT>                this(1e3);<a name="line.647"></a>
+<FONT color="green">648</FONT>            }<a name="line.648"></a>
+<FONT color="green">649</FONT>    <a name="line.649"></a>
+<FONT color="green">650</FONT>            Elli(double axisratio) {<a 
name="line.650"></a>
+<FONT color="green">651</FONT>                factor = axisratio * 
axisratio;<a name="line.651"></a>
+<FONT color="green">652</FONT>            }<a name="line.652"></a>
+<FONT color="green">653</FONT>    <a name="line.653"></a>
+<FONT color="green">654</FONT>            public double value(double[] x) {<a 
name="line.654"></a>
+<FONT color="green">655</FONT>                double f = 0;<a 
name="line.655"></a>
+<FONT color="green">656</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.656"></a>
+<FONT color="green">657</FONT>                    f += Math.pow(factor, i / 
(x.length - 1.)) * x[i] * x[i];<a name="line.657"></a>
+<FONT color="green">658</FONT>                return f;<a name="line.658"></a>
+<FONT color="green">659</FONT>            }<a name="line.659"></a>
+<FONT color="green">660</FONT>        }<a name="line.660"></a>
 <FONT color="green">661</FONT>    <a name="line.661"></a>
-<FONT color="green">662</FONT>            public double value(double[] x) {<a 
name="line.662"></a>
-<FONT color="green">663</FONT>                return 1.0-(new 
Elli().value(x));<a name="line.663"></a>
-<FONT color="green">664</FONT>            }<a name="line.664"></a>
-<FONT color="green">665</FONT>        }<a name="line.665"></a>
-<FONT color="green">666</FONT>    <a name="line.666"></a>
-<FONT color="green">667</FONT>        private static class DiffPow implements 
MultivariateFunction {<a name="line.667"></a>
+<FONT color="green">662</FONT>        private static class MinusElli 
implements MultivariateFunction {<a name="line.662"></a>
+<FONT color="green">663</FONT>    <a name="line.663"></a>
+<FONT color="green">664</FONT>            public double value(double[] x) {<a 
name="line.664"></a>
+<FONT color="green">665</FONT>                return 1.0-(new 
Elli().value(x));<a name="line.665"></a>
+<FONT color="green">666</FONT>            }<a name="line.666"></a>
+<FONT color="green">667</FONT>        }<a name="line.667"></a>
 <FONT color="green">668</FONT>    <a name="line.668"></a>
-<FONT color="green">669</FONT>            public double value(double[] x) {<a 
name="line.669"></a>
-<FONT color="green">670</FONT>                double f = 0;<a 
name="line.670"></a>
-<FONT color="green">671</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.671"></a>
-<FONT color="green">672</FONT>                    f += 
Math.pow(Math.abs(x[i]), 2. + 10 * (double) i<a name="line.672"></a>
-<FONT color="green">673</FONT>                            / (x.length - 
1.));<a name="line.673"></a>
-<FONT color="green">674</FONT>                return f;<a name="line.674"></a>
-<FONT color="green">675</FONT>            }<a name="line.675"></a>
-<FONT color="green">676</FONT>        }<a name="line.676"></a>
-<FONT color="green">677</FONT>    <a name="line.677"></a>
-<FONT color="green">678</FONT>        private static class SsDiffPow 
implements MultivariateFunction {<a name="line.678"></a>
+<FONT color="green">669</FONT>        private static class DiffPow implements 
MultivariateFunction {<a name="line.669"></a>
+<FONT color="green">670</FONT>    <a name="line.670"></a>
+<FONT color="green">671</FONT>            public double value(double[] x) {<a 
name="line.671"></a>
+<FONT color="green">672</FONT>                double f = 0;<a 
name="line.672"></a>
+<FONT color="green">673</FONT>                for (int i = 0; i &lt; x.length; 
++i)<a name="line.673"></a>
+<FONT color="green">674</FONT>                    f += 
Math.pow(Math.abs(x[i]), 2. + 10 * (double) i<a name="line.674"></a>
+<FONT color="green">675</FONT>                            / (x.length - 
1.));<a name="line.675"></a>
+<FONT color="green">676</FONT>                return f;<a name="line.676"></a>
+<FONT color="green">677</FONT>            }<a name="line.677"></a>
+<FONT color="green">678</FONT>        }<a name="line.678"></a>
 <FONT color="green">679</FONT>    <a name="line.679"></a>
-<FONT color="green">680</FONT>            public double value(double[] x) {<a 
name="line.680"></a>
-<FONT color="green">681</FONT>                double f = Math.pow(new 
DiffPow().value(x), 0.25);<a name="line.681"></a>
-<FONT color="green">682</FONT>                return f;<a name="line.682"></a>
-<FONT color="green">683</FONT>            }<a name="line.683"></a>
-<FONT color="green">684</FONT>        }<a name="line.684"></a>
-<FONT color="green">685</FONT>    <a name="line.685"></a>
-<FONT color="green">686</FONT>        private static class Rosen implements 
MultivariateFunction {<a name="line.686"></a>
+<FONT color="green">680</FONT>        private static class SsDiffPow 
implements MultivariateFunction {<a name="line.680"></a>
+<FONT color="green">681</FONT>    <a name="line.681"></a>
+<FONT color="green">682</FONT>            public double value(double[] x) {<a 
name="line.682"></a>
+<FONT color="green">683</FONT>                double f = Math.pow(new 
DiffPow().value(x), 0.25);<a name="line.683"></a>
+<FONT color="green">684</FONT>                return f;<a name="line.684"></a>
+<FONT color="green">685</FONT>            }<a name="line.685"></a>
+<FONT color="green">686</FONT>        }<a name="line.686"></a>
 <FONT color="green">687</FONT>    <a name="line.687"></a>
-<FONT color="green">688</FONT>            public double value(double[] x) {<a 
name="line.688"></a>
-<FONT color="green">689</FONT>                double f = 0;<a 
name="line.689"></a>
-<FONT color="green">690</FONT>                for (int i = 0; i &lt; x.length 
- 1; ++i)<a name="line.690"></a>
-<FONT color="green">691</FONT>                    f += 1e2 * (x[i] * x[i] - 
x[i + 1]) * (x[i] * x[i] - x[i + 1])<a name="line.691"></a>
-<FONT color="green">692</FONT>                    + (x[i] - 1.) * (x[i] - 
1.);<a name="line.692"></a>
-<FONT color="green">693</FONT>                return f;<a name="line.693"></a>
-<FONT color="green">694</FONT>            }<a name="line.694"></a>
-<FONT color="green">695</FONT>        }<a name="line.695"></a>
-<FONT color="green">696</FONT>    <a name="line.696"></a>
-<FONT color="green">697</FONT>        private static class Ackley implements 
MultivariateFunction {<a name="line.697"></a>
-<FONT color="green">698</FONT>            private double axisratio;<a 
name="line.698"></a>
-<FONT color="green">699</FONT>    <a name="line.699"></a>
-<FONT color="green">700</FONT>            Ackley(double axra) {<a 
name="line.700"></a>
-<FONT color="green">701</FONT>                axisratio = axra;<a 
name="line.701"></a>
-<FONT color="green">702</FONT>            }<a name="line.702"></a>
-<FONT color="green">703</FONT>    <a name="line.703"></a>
-<FONT color="green">704</FONT>            public Ackley() {<a 
name="line.704"></a>
-<FONT color="green">705</FONT>                this(1);<a name="line.705"></a>
-<FONT color="green">706</FONT>            }<a name="line.706"></a>
-<FONT color="green">707</FONT>    <a name="line.707"></a>
-<FONT color="green">708</FONT>            public double value(double[] x) {<a 
name="line.708"></a>
-<FONT color="green">709</FONT>                double f = 0;<a 
name="line.709"></a>
-<FONT color="green">710</FONT>                double res2 = 0;<a 
name="line.710"></a>
-<FONT color="green">711</FONT>                double fac = 0;<a 
name="line.711"></a>
-<FONT color="green">712</FONT>                for (int i = 0; i &lt; x.length; 
++i) {<a name="line.712"></a>
-<FONT color="green">713</FONT>                    fac = Math.pow(axisratio, (i 
- 1.) / (x.length - 1.));<a name="line.713"></a>
-<FONT color="green">714</FONT>                    f += fac * fac * x[i] * 
x[i];<a name="line.714"></a>
-<FONT color="green">715</FONT>                    res2 += Math.cos(2. * 
Math.PI * fac * x[i]);<a name="line.715"></a>
-<FONT color="green">716</FONT>                }<a name="line.716"></a>
-<FONT color="green">717</FONT>                f = (20. - 20. * Math.exp(-0.2 * 
Math.sqrt(f / x.length))<a name="line.717"></a>
-<FONT color="green">718</FONT>                        + Math.exp(1.) - 
Math.exp(res2 / x.length));<a name="line.718"></a>
-<FONT color="green">719</FONT>                return f;<a name="line.719"></a>
-<FONT color="green">720</FONT>            }<a name="line.720"></a>
-<FONT color="green">721</FONT>        }<a name="line.721"></a>
-<FONT color="green">722</FONT>    <a name="line.722"></a>
-<FONT color="green">723</FONT>        private static class Rastrigin 
implements MultivariateFunction {<a name="line.723"></a>
+<FONT color="green">688</FONT>        private static class Rosen implements 
MultivariateFunction {<a name="line.688"></a>
+<FONT color="green">689</FONT>    <a name="line.689"></a>
+<FONT color="green">690</FONT>            public double value(double[] x) {<a 
name="line.690"></a>
+<FONT color="green">691</FONT>                double f = 0;<a 
name="line.691"></a>
+<FONT color="green">692</FONT>                for (int i = 0; i &lt; x.length 
- 1; ++i)<a name="line.692"></a>
+<FONT color="green">693</FONT>                    f += 1e2 * (x[i] * x[i] - 
x[i + 1]) * (x[i] * x[i] - x[i + 1])<a name="line.693"></a>
+<FONT color="green">694</FONT>                    + (x[i] - 1.) * (x[i] - 
1.);<a name="line.694"></a>
+<FONT color="green">695</FONT>                return f;<a name="line.695"></a>
+<FONT color="green">696</FONT>            }<a name="line.696"></a>
+<FONT color="green">697</FONT>        }<a name="line.697"></a>
+<FONT color="green">698</FONT>    <a name="line.698"></a>
+<FONT color="green">699</FONT>        private static class Ackley implements 
MultivariateFunction {<a name="line.699"></a>
+<FONT color="green">700</FONT>            private double axisratio;<a 
name="line.700"></a>
+<FONT color="green">701</FONT>    <a name="line.701"></a>
+<FONT color="green">702</FONT>            Ackley(double axra) {<a 
name="line.702"></a>
+<FONT color="green">703</FONT>                axisratio = axra;<a 
name="line.703"></a>
+<FONT color="green">704</FONT>            }<a name="line.704"></a>
+<FONT color="green">705</FONT>    <a name="line.705"></a>
+<FONT color="green">706</FONT>            public Ackley() {<a 
name="line.706"></a>
+<FONT color="green">707</FONT>                this(1);<a name="line.707"></a>
+<FONT color="green">708</FONT>            }<a name="line.708"></a>
+<FONT color="green">709</FONT>    <a name="line.709"></a>
+<FONT color="green">710</FONT>            public double value(double[] x) {<a 
name="line.710"></a>
+<FONT color="green">711</FONT>                double f = 0;<a 
name="line.711"></a>
+<FONT color="green">712</FONT>                double res2 = 0;<a 
name="line.712"></a>
+<FONT color="green">713</FONT>                double fac = 0;<a 
name="line.713"></a>
+<FONT color="green">714</FONT>                for (int i = 0; i &lt; x.length; 
++i) {<a name="line.714"></a>
+<FONT color="green">715</FONT>                    fac = Math.pow(axisratio, (i 
- 1.) / (x.length - 1.));<a name="line.715"></a>
+<FONT color="green">716</FONT>                    f += fac * fac * x[i] * 
x[i];<a name="line.716"></a>
+<FONT color="green">717</FONT>                    res2 += Math.cos(2. * 
Math.PI * fac * x[i]);<a name="line.717"></a>
+<FONT color="green">718</FONT>                }<a name="line.718"></a>
+<FONT color="green">719</FONT>                f = (20. - 20. * Math.exp(-0.2 * 
Math.sqrt(f / x.length))<a name="line.719"></a>
+<FONT color="green">720</FONT>                        + Math.exp(1.) - 
Math.exp(res2 / x.length));<a name="line.720"></a>
+<FONT color="green">721</FONT>                return f;<a name="line.721"></a>
+<FONT color="green">722</FONT>            }<a name="line.722"></a>
+<FONT color="green">723</FONT>        }<a name="line.723"></a>
 <FONT color="green">724</FONT>    <a name="line.724"></a>
-<FONT color="green">725</FONT>            private double axisratio;<a 
name="line.725"></a>
-<FONT color="green">726</FONT>            private double amplitude;<a 
name="line.726"></a>
-<FONT color="green">727</FONT>    <a name="line.727"></a>
-<FONT color="green">728</FONT>            Rastrigin() {<a name="line.728"></a>
-<FONT color="green">729</FONT>                this(1, 10);<a 
name="line.729"></a>
-<FONT color="green">730</FONT>            }<a name="line.730"></a>
-<FONT color="green">731</FONT>    <a name="line.731"></a>
-<FONT color="green">732</FONT>            Rastrigin(double axisratio, double 
amplitude) {<a name="line.732"></a>
-<FONT color="green">733</FONT>                this.axisratio = axisratio;<a 
name="line.733"></a>
-<FONT color="green">734</FONT>                this.amplitude = amplitude;<a 
name="line.734"></a>
-<FONT color="green">735</FONT>            }<a name="line.735"></a>
-<FONT color="green">736</FONT>    <a name="line.736"></a>
-<FONT color="green">737</FONT>            public double value(double[] x) {<a 
name="line.737"></a>
-<FONT color="green">738</FONT>                double f = 0;<a 
name="line.738"></a>
-<FONT color="green">739</FONT>                double fac;<a 
name="line.739"></a>
-<FONT color="green">740</FONT>                for (int i = 0; i &lt; x.length; 
++i) {<a name="line.740"></a>
-<FONT color="green">741</FONT>                    fac = Math.pow(axisratio, (i 
- 1.) / (x.length - 1.));<a name="line.741"></a>
-<FONT color="green">742</FONT>                    if (i == 0 &amp;&amp; x[i] 
&lt; 0)<a name="line.742"></a>
-<FONT color="green">743</FONT>                        fac *= 1.;<a 
name="line.743"></a>
-<FONT color="green">744</FONT>                    f += fac * fac * x[i] * x[i] 
+ amplitude<a name="line.744"></a>
-<FONT color="green">745</FONT>                    * (1. - Math.cos(2. * 
Math.PI * fac * x[i]));<a name="line.745"></a>
-<FONT color="green">746</FONT>                }<a name="line.746"></a>
-<FONT color="green">747</FONT>                return f;<a name="line.747"></a>
-<FONT color="green">748</FONT>            }<a name="line.748"></a>
-<FONT color="green">749</FONT>        }<a name="line.749"></a>
-<FONT color="green">750</FONT>    <a name="line.750"></a>
-<FONT color="green">751</FONT>        private static class Basis {<a 
name="line.751"></a>
-<FONT color="green">752</FONT>            double[][] basis;<a 
name="line.752"></a>
-<FONT color="green">753</FONT>            Random rand = new Random(2); // use 
not always the same basis<a name="line.753"></a>
-<FONT color="green">754</FONT>    <a name="line.754"></a>
-<FONT color="green">755</FONT>            double[] Rotate(double[] x) {<a 
name="line.755"></a>
-<FONT color="green">756</FONT>                GenBasis(x.length);<a 
name="line.756"></a>
-<FONT color="green">757</FONT>                double[] y = new 
double[x.length];<a name="line.757"></a>
-<FONT color="green">758</FONT>                for (int i = 0; i &lt; x.length; 
++i) {<a name="line.758"></a>
-<FONT color="green">759</FONT>                    y[i] = 0;<a 
name="line.759"></a>
-<FONT color="green">760</FONT>                    for (int j = 0; j &lt; 
x.length; ++j)<a name="line.760"></a>
-<FONT color="green">761</FONT>                        y[i] += basis[i][j] * 
x[j];<a name="line.761"></a>
-<FONT color="green">762</FONT>                }<a name="line.762"></a>
-<FONT color="green">763</FONT>                return y;<a name="line.763"></a>
-<FONT color="green">764</FONT>            }<a name="line.764"></a>
-<FONT color="green">765</FONT>    <a name="line.765"></a>
-<FONT color="green">766</FONT>            void GenBasis(int DIM) {<a 
name="line.766"></a>
-<FONT color="green">767</FONT>                if (basis != null ? basis.length 
== DIM : false)<a name="line.767"></a>
-<FONT color="green">768</FONT>                    return;<a 
name="line.768"></a>
-<FONT color="green">769</FONT>    <a name="line.769"></a>
-<FONT color="green">770</FONT>                double sp;<a name="line.770"></a>
-<FONT color="green">771</FONT>                int i, j, k;<a 
name="line.771"></a>
-<FONT color="green">772</FONT>    <a name="line.772"></a>
-<FONT color="green">773</FONT>                /* generate orthogonal basis 
*/<a name="line.773"></a>
-<FONT color="green">774</FONT>                basis = new double[DIM][DIM];<a 
name="line.774"></a>
-<FONT color="green">775</FONT>                for (i = 0; i &lt; DIM; ++i) {<a 
name="line.775"></a>
-<FONT color="green">776</FONT>                    /* sample components 
gaussian */<a name="line.776"></a>
-<FONT color="green">777</FONT>                    for (j = 0; j &lt; DIM; 
++j)<a name="line.777"></a>
-<FONT color="green">778</FONT>                        basis[i][j] = 
rand.nextGaussian();<a name="line.778"></a>
-<FONT color="green">779</FONT>                    /* substract projection of 
previous vectors */<a name="line.779"></a>
-<FONT color="green">780</FONT>                    for (j = i - 1; j &gt;= 0; 
--j) {<a name="line.780"></a>
-<FONT color="green">781</FONT>                        for (sp = 0., k = 0; k 
&lt; DIM; ++k)<a name="line.781"></a>
-<FONT color="green">782</FONT>                            sp += basis[i][k] * 
basis[j][k]; /* scalar product */<a name="line.782"></a>
-<FONT color="green">783</FONT>                        for (k = 0; k &lt; DIM; 
++k)<a name="line.783"></a>
-<FONT color="green">784</FONT>                            basis[i][k] -= sp * 
basis[j][k]; /* substract */<a name="line.784"></a>
-<FONT color="green">785</FONT>                    }<a name="line.785"></a>
-<FONT color="green">786</FONT>                    /* normalize */<a 
name="line.786"></a>
-<FONT color="green">787</FONT>                    for (sp = 0., k = 0; k &lt; 
DIM; ++k)<a name="line.787"></a>
-<FONT color="green">788</FONT>                        sp += basis[i][k] * 
basis[i][k]; /* squared norm */<a name="line.788"></a>
-<FONT color="green">789</FONT>                    for (k = 0; k &lt; DIM; 
++k)<a name="line.789"></a>
-<FONT color="green">790</FONT>                        basis[i][k] /= 
Math.sqrt(sp);<a name="line.790"></a>
-<FONT color="green">791</FONT>                }<a name="line.791"></a>
-<FONT color="green">792</FONT>            }<a name="line.792"></a>
-<FONT color="green">793</FONT>        }<a name="line.793"></a>
-<FONT color="green">794</FONT>    }<a name="line.794"></a>
+<FONT color="green">725</FONT>        private static class Rastrigin 
implements MultivariateFunction {<a name="line.725"></a>
+<FONT color="green">726</FONT>    <a name="line.726"></a>
+<FONT color="green">727</FONT>            private double axisratio;<a 
name="line.727"></a>
+<FONT color="green">728</FONT>            private double amplitude;<a 
name="line.728"></a>
+<FONT color="green">729</FONT>    <a name="line.729"></a>
+<FONT color="green">730</FONT>            Rastrigin() {<a name="line.730"></a>
+<FONT color="green">731</FONT>                this(1, 10);<a 
name="line.731"></a>
+<FONT color="green">732</FONT>            }<a name="line.732"></a>
+<FONT color="green">733</FONT>    <a name="line.733"></a>
+<FONT color="green">734</FONT>            Rastrigin(double axisratio, double 
amplitude) {<a name="line.734"></a>
+<FONT color="green">735</FONT>                this.axisratio = axisratio;<a 
name="line.735"></a>
+<FONT color="green">736</FONT>                this.amplitude = amplitude;<a 
name="line.736"></a>
+<FONT color="green">737</FONT>            }<a name="line.737"></a>
+<FONT color="green">738</FONT>    <a name="line.738"></a>
+<FONT color="green">739</FONT>            public double value(double[] x) {<a 
name="line.739"></a>
+<FONT color="green">740</FONT>                double f = 0;<a 
name="line.740"></a>
+<FONT color="green">741</FONT>                double fac;<a 
name="line.741"></a>
+<FONT color="green">742</FONT>                for (int i = 0; i &lt; x.length; 
++i) {<a name="line.742"></a>
+<FONT color="green">743</FONT>                    fac = Math.pow(axisratio, (i 
- 1.) / (x.length - 1.));<a name="line.743"></a>
+<FONT color="green">744</FONT>                    if (i == 0 &amp;&amp; x[i] 
&lt; 0)<a name="line.744"></a>
+<FONT color="green">745</FONT>                        fac *= 1.;<a 
name="line.745"></a>
+<FONT color="green">746</FONT>                    f += fac * fac * x[i] * x[i] 
+ amplitude<a name="line.746"></a>
+<FONT color="green">747</FONT>                    * (1. - Math.cos(2. * 
Math.PI * fac * x[i]));<a name="line.747"></a>
+<FONT color="green">748</FONT>                }<a name="line.748"></a>
+<FONT color="green">749</FONT>                return f;<a name="line.749"></a>
+<FONT color="green">750</FONT>            }<a name="line.750"></a>
+<FONT color="green">751</FONT>        }<a name="line.751"></a>
+<FONT color="green">752</FONT>    <a name="line.752"></a>
+<FONT color="green">753</FONT>        private static class Basis {<a 
name="line.753"></a>
+<FONT color="green">754</FONT>            double[][] basis;<a 
name="line.754"></a>
+<FONT color="green">755</FONT>            Random rand = new Random(2); // use 
not always the same basis<a name="line.755"></a>
+<FONT color="green">756</FONT>    <a name="line.756"></a>
+<FONT color="green">757</FONT>            double[] Rotate(double[] x) {<a 
name="line.757"></a>
+<FONT color="green">758</FONT>                GenBasis(x.length);<a 
name="line.758"></a>
+<FONT color="green">759</FONT>                double[] y = new 
double[x.length];<a name="line.759"></a>
+<FONT color="green">760</FONT>                for (int i = 0; i &lt; x.length; 
++i) {<a name="line.760"></a>
+<FONT color="green">761</FONT>                    y[i] = 0;<a 
name="line.761"></a>
+<FONT color="green">762</FONT>                    for (int j = 0; j &lt; 
x.length; ++j)<a name="line.762"></a>
+<FONT color="green">763</FONT>                        y[i] += basis[i][j] * 
x[j];<a name="line.763"></a>
+<FONT color="green">764</FONT>                }<a name="line.764"></a>
+<FONT color="green">765</FONT>                return y;<a name="line.765"></a>
+<FONT color="green">766</FONT>            }<a name="line.766"></a>
+<FONT color="green">767</FONT>    <a name="line.767"></a>
+<FONT color="green">768</FONT>            void GenBasis(int DIM) {<a 
name="line.768"></a>
+<FONT color="green">769</FONT>                if (basis != null ? basis.length 
== DIM : false)<a name="line.769"></a>
+<FONT color="green">770</FONT>                    return;<a 
name="line.770"></a>
+<FONT color="green">771</FONT>    <a name="line.771"></a>
+<FONT color="green">772</FONT>                double sp;<a name="line.772"></a>
+<FONT color="green">773</FONT>                int i, j, k;<a 
name="line.773"></a>
+<FONT color="green">774</FONT>    <a name="line.774"></a>
+<FONT color="green">775</FONT>                /* generate orthogonal basis 
*/<a name="line.775"></a>
+<FONT color="green">776</FONT>                basis = new double[DIM][DIM];<a 
name="line.776"></a>
+<FONT color="green">777</FONT>                for (i = 0; i &lt; DIM; ++i) {<a 
name="line.777"></a>
+<FONT color="green">778</FONT>                    /* sample components 
gaussian */<a name="line.778"></a>
+<FONT color="green">779</FONT>                    for (j = 0; j &lt; DIM; 
++j)<a name="line.779"></a>
+<FONT color="green">780</FONT>                        basis[i][j] = 
rand.nextGaussian();<a name="line.780"></a>
+<FONT color="green">781</FONT>                    /* substract projection of 
previous vectors */<a name="line.781"></a>
+<FONT color="green">782</FONT>                    for (j = i - 1; j &gt;= 0; 
--j) {<a name="line.782"></a>
+<FONT color="green">783</FONT>                        for (sp = 0., k = 0; k 
&lt; DIM; ++k)<a name="line.783"></a>
+<FONT color="green">784</FONT>                            sp += basis[i][k] * 
basis[j][k]; /* scalar product */<a name="line.784"></a>
+<FONT color="green">785</FONT>                        for (k = 0; k &lt; DIM; 
++k)<a name="line.785"></a>
+<FONT color="green">786</FONT>                            basis[i][k] -= sp * 
basis[j][k]; /* substract */<a name="line.786"></a>
+<FONT color="green">787</FONT>                    }<a name="line.787"></a>
+<FONT color="green">788</FONT>                    /* normalize */<a 
name="line.788"></a>
+<FONT color="green">789</FONT>                    for (sp = 0., k = 0; k &lt; 
DIM; ++k)<a name="line.789"></a>
+<FONT color="green">790</FONT>                        sp += basis[i][k] * 
basis[i][k]; /* squared norm */<a name="line.790"></a>
+<FONT color="green">791</FONT>                    for (k = 0; k &lt; DIM; 
++k)<a name="line.791"></a>
+<FONT color="green">792</FONT>                        basis[i][k] /= 
Math.sqrt(sp);<a name="line.792"></a>
+<FONT color="green">793</FONT>                }<a name="line.793"></a>
+<FONT color="green">794</FONT>            }<a name="line.794"></a>
+<FONT color="green">795</FONT>        }<a name="line.795"></a>
+<FONT color="green">796</FONT>    }<a name="line.796"></a>
 
 
 


Reply via email to