public double[,] getDoubleData(int first, int last) { DataDescription dd = new DataDescription(); ByteBuffer buf = getRawData(first, last, dd); int nSamples = dd.nSamples; int nChans = dd.nChans; double[,] data = new double[nSamples, nChans]; switch (dd.dataType) { case DataType.INT8: for (int i = 0; i < nSamples; i++) { for (int j = 0; j < nChans; j++) { data[i, j] = (double)buf.get(); } } break; case DataType.INT16: for (int i = 0; i < nSamples; i++) { for (int j = 0; j < nChans; j++) { data[i, j] = (double)buf.getShort(); } } break; case DataType.INT32: for (int i = 0; i < nSamples; i++) { for (int j = 0; j < nChans; j++) { data[i, j] = (double)buf.getInt(); } } break; case DataType.INT64: for (int i = 0; i < nSamples; i++) { for (int j = 0; j < nChans; j++) { data[i, j] = (double)buf.getLong(); } } break; case DataType.FLOAT32: for (int i = 0; i < nSamples; i++) { for (int j = 0; j < nChans; j++) { data[i, j] = buf.getFloat(); } } break; case DataType.FLOAT64: DoubleBuffer dBuf = buf.asDoubleBuffer(); double[] rowData; for (int n = 0; n < nSamples; n++) { rowData = getRow <double>(data, n); dBuf.get(rowData); } break; default: throw new IOException("Not supported yet - returning zeros."); } return(data); }
public DoubleBuffer asDoubleBuffer() { DoubleBuffer doublebuffer = new DoubleBuffer(this); return(doublebuffer); }