コード例 #1
0
 private float amotsa(float[,] p, float[] y, float[] psum, int ndim, float[] pb, ref float yb,
                      ChiSqr f, int ihi, ref float yhi, float temptr, float fac)
 {
 }
コード例 #2
0
 private void amebsa(float[,] p, float[] y, int ndim, float[] pb, ref float yb, float ftol, ChiSqr f,
                     ref int iter, float temptr)
 {
 }
コード例 #3
0
        private void startamo(bool[] ip, out float[,] p, out float[] y, out float[] pb, out float yb,
                              out int ndim, out ChiSqr chisq)
        {
            int i, j, ilo;

            float[] pp;
            ip0   = ip;
            chisq = new ChiSqr(chisqr);
            ndim  = 0;
            for (i = 0; i < ip.Length; i++)
            {
                if (ip[i])
                {
                    ndim++;
                }
            }

            p0   = new double[ip.Length];
            p    = new float[ndim + 1, ndim];
            y    = new float[ndim + 1];
            ptry = new float[ndim];

            for (i = 0, j = 0; i < ip.Length; i++)
            {
                if (ip[i])
                {
                    p[0, j++] = (float)f.p[i];
                }
            }
            for (i = 1; i <= ndim; i++)
            {
                for (j = 0; j < ndim; j++)
                {
                    if (j == i - 1)
                    {
                        p[i, j] = p[0, j] * 2;
                    }
                    else
                    {
                        p[i, j] = p[0, j];
                    }
                }
            }

            pp  = new float[ndim];
            yb  = float.MaxValue;
            ilo = 0;
            for (i = 0; i <= ndim; i++)
            {
                for (j = 0; j < ndim; j++)
                {
                    pp[j] = p[i, j];
                }
                y[i] = chisq(pp);
                if (y[i] < yb)
                {
                    ilo = i;
                    yb  = y[i];
                }
            }

            pb = new float[ndim];
            for (i = 0; i < ndim; i++)
            {
                pb[i] = p[ilo, i];
            }
        }
コード例 #4
0
ファイル: Fit.cs プロジェクト: xuchuansheng/GenXSource
		private float amotsa(float[,] p, float[] y, float[] psum, int ndim, float[] pb, ref float yb,
			ChiSqr f, int ihi, ref float yhi, float temptr, float fac) {
		}
コード例 #5
0
ファイル: Fit.cs プロジェクト: xuchuansheng/GenXSource
		private void amebsa(float[,] p, float[] y, int ndim, float[] pb, ref float yb, float ftol, ChiSqr f,
			ref int iter, float temptr) {
		}
コード例 #6
0
ファイル: Fit.cs プロジェクト: xuchuansheng/GenXSource
		private void startamo(bool[] ip, out float[,] p, out float[] y, out float[] pb, out float yb,
			out int ndim, out ChiSqr chisq) {

			int i, j, ilo;
			float[] pp;
			ip0 = ip;
			chisq = new ChiSqr(chisqr);
			ndim = 0;
			for (i = 0; i < ip.Length; i++) {
				if (ip[i]) ndim++;
			}

			p0 = new double[ip.Length];
			p = new float[ndim+1, ndim];
			y = new float[ndim+1];
			ptry = new float[ndim];

			for (i = 0, j = 0; i < ip.Length; i++) {
				if (ip[i]) p[0, j++] = (float)f.p[i];
			}
			for (i = 1; i <= ndim; i++) {
				for (j = 0; j < ndim; j++) {
					if (j == i-1) p[i, j] = p[0, j]*2;
					else p[i, j] = p[0, j];
				}
			}
			
			pp = new float[ndim];
			yb = float.MaxValue;
			ilo = 0;
			for (i = 0; i <= ndim; i++) {
				for (j = 0; j < ndim; j++) pp[j] = p[i, j]; 
				y[i] = chisq(pp);
				if (y[i] < yb) {
					ilo = i;
					yb = y[i];
				}
			}

			pb = new float[ndim];
			for (i = 0; i < ndim; i++) pb[i] = p[ilo, i];

		}