if (intervals.size() == 0)
{
for (int i = 0; i < data.getMetadata().getColumnsCount(); ++i)
{
Range range = null;
final ColumnInfo column = data.getMetadata().getColumn(i);
if (column.getVariableType() == type && column.getDataType() == DataType.Number)
{
double min = Double.MAX_VALUE;
double max = Double.MIN_VALUE;
for (int j = 0; j < data.size(); ++j)
{
Row row = data.get(j);
double value = row.getDouble(i);
if (value < min)
{
min = value;
}
if (value > max)
{
max = value;
}
}
range = new DoubleRange(min, max);
}
intervals.add(range);
}
}
double minValue = getNewValuesInterval(type).getMinimumDouble();
double maxValue = getNewValuesInterval(type).getMaximumDouble();
for (int j = 0; j < data.size(); ++j)
{
Row row = data.get(j);
for (int i = 0; i < data.getMetadata().getColumnsCount(); ++i)
{
ColumnInfo column = data.getMetadata().getColumn(i);
if (column.getVariableType() == type && column.getDataType() == DataType.Number)
{
double value = row.getDouble(i);
Range interval = intervals.get(i);
value = Math.min(interval.getMaximumDouble(), value);
value = Math.max(interval.getMinimumDouble(), value);
double normalizedValue = JNMFMathUtils
.reflectToInterval(value, interval.getMinimumDouble(),
interval.getMaximumDouble(), minValue, maxValue);
data.get(j).set(i, normalizedValue);
}
}
}