if (NON_EMPTY_SELECTION)
{
	data_rows  	 = Columns 	(SELECTED_CHART_ROWS);

	if (data_rows % 2 == 0)
	{
		temp = -1;
		data_columns = -1;
		
		for (count = 0; count<data_rows; count = count+1)
		{
			temp2 = SELECTED_CHART_COLS[count];
			if (temp<0)
			{
				temp = temp2;
			}
			else
			{
				if (temp!=temp2)
				{
					if (data_columns<0)
					{
						data_columns = temp2;
					}
					else
					{
						if (temp2!=data_columns)
						{
							break;
						}
					}
				}
			}
		}
		
		if ((count == data_rows)&&(data_columns>=0)&&(temp>=0))
		{
			for (count = 0; count < data_rows; count = count+2)
			{
				if (SELECTED_CHART_ROWS[count]!=SELECTED_CHART_ROWS[count+1])
				{
					break;
				}
			}
		
			if (count==data_rows)
			{
			
				SELECTED_CHART_ROWS = {2,data_rows/2};
				for (count = 0; count < data_rows; count = count+2)
				{
					SELECTED_CHART_ROWS[0][count/2]=SELECTED_CHART_DATA[count];
					SELECTED_CHART_ROWS[1][count/2]=SELECTED_CHART_DATA[count+1];
				}
				SELECTED_CHART_DATA = SELECTED_CHART_ROWS;
				
                LoadFunctionLibrary ("ProbabilityDistributions");
                lfit = linearFit (Transpose(SELECTED_CHART_DATA));
                        
                 
							
				fprintf (stdout, "\n\nCorrelation coefficient:",lfit["Correlation"],"\n");
				fprintf (stdout, "\nLinear fit :\n\t y = ",lfit["Intercept"]," + ", lfit["Slope"], " * x\n");
				fprintf (stdout, "\nB = ",lfit["Slope"], " +/- ", Sqrt (lfit["Var(Slope)"]),"\nA = ",lfit["Intercept"], " +/- ", Sqrt (lfit["Var(Intercept)"]),"\n");
				return;
			}
		}
	}

	fprintf (stdout, "Please select two columns with independent values (1st column) and dependent values (2nd columns).\n");
}
else
{
	NON_EMPTY_SELECTION = -1;
}