/usr/share/hyphy/ChartAddIns/Covariance is in hyphy-common 2.2.6+dfsg-3build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | 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};
sumX = 0;
sumY = 0;
sumXY = 0;
for (count = 0; count < data_rows; count = count+2)
{
x_v = SELECTED_CHART_DATA[count];
y_v = SELECTED_CHART_DATA[count+1];
sumX = sumX + x_v;
sumY = sumY + y_v;
sumXY = sumXY + y_v*x_v;
}
data_rows = data_rows/2;
fprintf (stdout, "\nEstimated covariance: ", sumXY/data_rows - sumX*sumY/data_rows^2 , "\n");
return 0;
}
}
}
fprintf (stdout, "Please select two columns to compute the covariance of.\n");
}
else
{
NON_EMPTY_SELECTION = -1;
}
|