int r;
for (r=1; r<=nRows; r++) if (Data[r][0] >= key) break;
- r = r < 2 ? 2 : (r > nRows ? nRows : r);
+ r = Clamp(2, r, nRows);
+ key = Clamp(Data[1][0], key, Data[nRows][0]);
// make sure denominator below does not go to zero.
int r, c;
for (r=1;r<=nRows;r++) if (Data[r][0] >= rowKey) break;
- for (c=1;c<=nCols;c++) if (Data[0][c] >= colKey) break;
+ r = Clamp(2, r, nRows);
+ rowKey = Clamp(Data[1][0], rowKey, Data[nRows][0]);
- c = c < 2 ? 2 : (c > nCols ? nCols : c);
- r = r < 2 ? 2 : (r > nRows ? nRows : r);
+ for (c=1;c<=nCols;c++) if (Data[0][c] >= colKey) break;
+ c = Clamp(2, c, nCols);
+ colKey = Clamp(Data[0][1], colKey, Data[0][nCols]);
rFactor = (rowKey - Data[r-1][0]) / (Data[r][0] - Data[r-1][0]);
cFactor = (colKey - Data[0][c-1]) / (Data[0][c] - Data[0][c-1]);
if (Type == tt1D) startRow = 1;
else startRow = 0;
- cout.setf(ios::fixed); // set up output stream
+#if defined (sgi) && !defined(__GNUC__)
+ unsigned long flags = cout.setf(ios::fixed);
+#else
+ ios::fmtflags flags = cout.setf(ios::fixed); // set up output stream
+#endif
+
cout.precision(4);
for (int r=startRow; r<=nRows; r++) {
}
cout << endl;
}
- cout.setf((ios_base::fmtflags)0, ios::floatfield); // reset
+ cout.setf(flags); // reset
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%