@xogeny/mat-parser
Version:
A parser for MATLAB v4 files
89 lines • 2.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var DataFormat;
(function (DataFormat) {
DataFormat[DataFormat["Float64"] = 0] = "Float64";
DataFormat[DataFormat["Float32"] = 1] = "Float32";
DataFormat[DataFormat["Int32"] = 2] = "Int32";
DataFormat[DataFormat["Int16"] = 3] = "Int16";
DataFormat[DataFormat["UInt16"] = 4] = "UInt16";
DataFormat[DataFormat["UInt8"] = 5] = "UInt8";
})(DataFormat = exports.DataFormat || (exports.DataFormat = {}));
function dataSize(format, n) {
switch (format) {
case DataFormat.Float64:
return 8 * n;
case DataFormat.Float32:
return 4 * n;
case DataFormat.Int32:
return 4 * n;
case DataFormat.Int16:
return 2 * n;
case DataFormat.UInt16:
return 2 * n;
case DataFormat.UInt8:
return 1 * n;
default:
throw new Error("Unknown data format: " + format);
}
}
exports.dataSize = dataSize;
function readOne(info, format, buffer) {
switch (format) {
case DataFormat.Float64:
info.push(buffer.readDoubleLE(0));
break;
case DataFormat.Float32:
info.push(buffer.readFloatLE(0));
break;
case DataFormat.Int32:
info.push(buffer.readInt32LE(0));
break;
case DataFormat.Int16:
info.push(buffer.readInt16LE(0));
break;
case DataFormat.UInt16:
info.push(buffer.readUInt16LE(0));
break;
case DataFormat.UInt8:
info.push(buffer.readUInt8(0));
break;
default:
throw new Error("Uknown DataFormat value: " + format);
}
return buffer.slice(dataSize(format, 1));
}
exports.readOne = readOne;
var MatrixType;
(function (MatrixType) {
MatrixType[MatrixType["FullNumeric"] = 0] = "FullNumeric";
MatrixType[MatrixType["SparseNumeric"] = 1] = "SparseNumeric";
MatrixType[MatrixType["Text"] = 2] = "Text";
})(MatrixType = exports.MatrixType || (exports.MatrixType = {}));
function dataType(n) {
if (n == "0")
return DataFormat.Float64;
if (n == "1")
return DataFormat.Float32;
if (n == "2")
return DataFormat.Int32;
if (n == "3")
return DataFormat.Int16;
if (n == "4")
return DataFormat.UInt16;
if (n == "5")
return DataFormat.UInt8;
throw new Error("Invalid data type '" + n + "'");
}
exports.dataType = dataType;
function matrixType(n) {
if (n == "0")
return MatrixType.FullNumeric;
if (n == "1")
return MatrixType.Text;
if (n == "2")
return MatrixType.SparseNumeric;
throw new Error("Invalid matrix type '" + n + "'");
}
exports.matrixType = matrixType;
//# sourceMappingURL=types.js.map