@d4c/numjs
Version:
Like NumPy, in TypeScript and JavaScript
89 lines • 5.21 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const dtypes_1 = __importDefault(require("./dtypes"));
function isNumber(value) {
return typeof value === "number";
}
function isString(value) {
return typeof value === "string";
}
function isFunction(value) {
return typeof value === "function";
}
function baseFlatten(array, isDeep, result) {
result = result || [];
let index = -1;
const length = array.length;
while (++index < length) {
let value = array[index];
if (isNumber(value)) {
result[result.length] = value;
}
else if (isDeep) {
// Recursively flatten arrays (susceptible to call stack limits).
baseFlatten(value, isDeep, result);
}
else {
result.push(value);
}
}
return result;
}
function shapeSize(shape) {
let s = 1;
for (let i = 0; i < shape.length; i++) {
s *= shape[i];
}
return s;
}
function getType(dtype) {
return isFunction(dtype) ? dtype : dtypes_1.default[dtype] || Array;
}
function _dim(x) {
const ret = [];
while (typeof x === "object") {
ret.push(x.length);
x = x[0];
}
return ret;
}
function getShape(array) {
let y, z;
if (typeof array === "object") {
y = array[0];
if (typeof y === "object") {
z = y[0];
if (typeof z === "object") {
return _dim(array);
}
return [array.length, y.length];
}
return [array.length];
}
return [];
}
// function haveSameShape (shape1, shape2) {
// if (shapeSize(shape1) !== shapeSize(shape2) || shape1.length !== shape2.length) {
// return false;
// }
// let d = shape1.length;
// for (let i = 0; i < d; i++) {
// if (shape1[i] !== shape2[i]) {
// return false;
// }
// }
// return true;
// }
exports.default = {
isNumber: isNumber,
isString: isString,
isFunction: isFunction,
flatten: baseFlatten,
shapeSize: shapeSize,
getType: getType,
getShape: getShape,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7QUFDYixzREFBOEI7QUFFOUIsU0FBUyxRQUFRLENBQUMsS0FBSztJQUNyQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBQ0QsU0FBUyxRQUFRLENBQUMsS0FBSztJQUNyQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBQ0QsU0FBUyxVQUFVLENBQUMsS0FBSztJQUN2QixPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFpQjtJQUNuRCxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN0QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNmLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFFNUIsT0FBTyxFQUFFLEtBQUssR0FBRyxNQUFNLEVBQUU7UUFDdkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQy9CO2FBQU0sSUFBSSxNQUFNLEVBQUU7WUFDakIsaUVBQWlFO1lBQ2pFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BCO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsS0FBSztJQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2Y7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxLQUFLO0lBQ3BCLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxDQUFDO0lBQ2IsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2YsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDNUIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNWO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBSztJQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDVCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDekIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNULElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtZQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdkI7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCw0Q0FBNEM7QUFDNUMsc0ZBQXNGO0FBQ3RGLG9CQUFvQjtBQUNwQixNQUFNO0FBQ04sMkJBQTJCO0FBQzNCLGtDQUFrQztBQUNsQyxxQ0FBcUM7QUFDckMsc0JBQXNCO0FBQ3RCLFFBQVE7QUFDUixNQUFNO0FBQ04saUJBQWlCO0FBQ2pCLElBQUk7QUFFSixrQkFBZTtJQUNiLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFFBQVEsRUFBRSxRQUFRO0NBQ25CLENBQUMifQ==