covsrt.cpp

来自「c经典算法(包括源码)」· C++ 代码 · 共 45 行

CPP
45
字号
void covsrt(double covar[], int ncvm, int ma, int lista[], int mfit)
{
	int i,j;
	double swap;
	for (j = 1; j<=ma - 1; j++)
	{
		for (i = j + 1; i<=ma; i++)
		{
			covar[(i-1)*ma+j] = 0.0;
		}
    }
    for (i = 1; i<=mfit - 1; i++)
	{
        for (j = i + 1; j<=mfit; j++)
		{
            if (lista[j] > lista[i])
			{
                covar[(lista[j]-1)*ma+lista[i]] = covar[(i-1)*ma+j];
			}
            else
			{
               covar[(lista[i]-1)*ma+lista[j]] = covar[(i-1)*ma+j];
            }
        }
    }
    swap = covar[1];;
    for (j = 1; j<=ma; j++)
	{
        covar[j] = covar[(j-1)*ma+j];
        covar[(j-1)*ma+j] = 0.0;
    }
    covar[(lista[1]-1)*ma+lista[1]] = swap;
    for (j = 2; j<=mfit; j++)
	{
        covar[(lista[j]-1)*ma+lista[j]] = covar[j];
    }
    for (j = 2; j<=ma; j++)
	{
        for (i = 1; i<=j - 1; i++)
		{
            covar[(i-1)*ma+j] = covar[(j-1)*ma+i];
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?