mathjs 13.1.1 → 13.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +17 -0
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -2
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/function/typed.js +1 -0
- package/lib/cjs/expression/parse.js +1 -1
- package/lib/cjs/expression/transform/filter.transform.js +28 -40
- package/lib/cjs/expression/transform/forEach.transform.js +29 -30
- package/lib/cjs/expression/transform/map.transform.js +8 -93
- package/lib/cjs/expression/transform/utils/transformCallback.js +101 -0
- package/lib/cjs/function/algebra/derivative.js +10 -11
- package/lib/cjs/function/matrix/filter.js +3 -2
- package/lib/cjs/function/matrix/forEach.js +3 -14
- package/lib/cjs/function/matrix/map.js +11 -33
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/matrix/DenseMatrix.js +73 -29
- package/lib/cjs/type/matrix/SparseMatrix.js +7 -4
- package/lib/cjs/utils/array.js +22 -0
- package/lib/cjs/utils/optimizeCallback.js +94 -0
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/function/typed.js +1 -0
- package/lib/esm/expression/parse.js +1 -1
- package/lib/esm/expression/transform/filter.transform.js +28 -40
- package/lib/esm/expression/transform/forEach.transform.js +29 -30
- package/lib/esm/expression/transform/map.transform.js +8 -93
- package/lib/esm/expression/transform/utils/transformCallback.js +95 -0
- package/lib/esm/function/algebra/derivative.js +10 -11
- package/lib/esm/function/matrix/filter.js +3 -2
- package/lib/esm/function/matrix/forEach.js +3 -14
- package/lib/esm/function/matrix/map.js +12 -34
- package/lib/esm/type/matrix/DenseMatrix.js +75 -32
- package/lib/esm/type/matrix/SparseMatrix.js +7 -4
- package/lib/esm/utils/array.js +21 -0
- package/lib/esm/utils/optimizeCallback.js +88 -0
- package/lib/esm/version.js +1 -1
- package/package.json +7 -7
- package/types/index.d.ts +50 -12
- package/lib/cjs/utils/applyCallback.js +0 -73
- package/lib/esm/utils/applyCallback.js +0 -67
@@ -100,6 +100,7 @@ const createTyped = exports.createTyped = /* #__PURE__ */(0, _factory.factory)('
|
|
100
100
|
// string starting with an alphabetic character. It is used (at least)
|
101
101
|
// in the definition of the derivative() function, as the argument telling
|
102
102
|
// what to differentiate over must (currently) be a variable.
|
103
|
+
// TODO: deprecate the identifier type (it's not used anymore, see https://github.com/josdejong/mathjs/issues/3253)
|
103
104
|
{
|
104
105
|
name: 'identifier',
|
105
106
|
test: s => _is.isString && /^[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{10300}-\u{1031F}\u{1032D}-\u{10340}\u{10342}-\u{10349}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{103A0}-\u{103C3}\u{103C8}-\u{103CF}\u{10400}-\u{1049D}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{10570}-\u{1057A}\u{1057C}-\u{1058A}\u{1058C}-\u{10592}\u{10594}\u{10595}\u{10597}-\u{105A1}\u{105A3}-\u{105B1}\u{105B3}-\u{105B9}\u{105BB}\u{105BC}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{10780}-\u{10785}\u{10787}-\u{107B0}\u{107B2}-\u{107BA}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10860}-\u{10876}\u{10880}-\u{1089E}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{10900}-\u{10915}\u{10920}-\u{10939}\u{10980}-\u{109B7}\u{109BE}\u{109BF}\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A60}-\u{10A7C}\u{10A80}-\u{10A9C}\u{10AC0}-\u{10AC7}\u{10AC9}-\u{10AE4}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B60}-\u{10B72}\u{10B80}-\u{10B91}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10D00}-\u{10D23}\u{10E80}-\u{10EA9}\u{10EB0}\u{10EB1}\u{10F00}-\u{10F1C}\u{10F27}\u{10F30}-\u{10F45}\u{10F70}-\u{10F81}\u{10FB0}-\u{10FC4}\u{10FE0}-\u{10FF6}\u{11003}-\u{11037}\u{11071}\u{11072}\u{11075}\u{11083}-\u{110AF}\u{110D0}-\u{110E8}\u{11103}-\u{11126}\u{11144}\u{11147}\u{11150}-\u{11172}\u{11176}\u{11183}-\u{111B2}\u{111C1}-\u{111C4}\u{111DA}\u{111DC}\u{11200}-\u{11211}\u{11213}-\u{1122B}\u{1123F}\u{11240}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A8}\u{112B0}-\u{112DE}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}\u{11350}\u{1135D}-\u{11361}\u{11400}-\u{11434}\u{11447}-\u{1144A}\u{1145F}-\u{11461}\u{11480}-\u{114AF}\u{114C4}\u{114C5}\u{114C7}\u{11580}-\u{115AE}\u{115D8}-\u{115DB}\u{11600}-\u{1162F}\u{11644}\u{11680}-\u{116AA}\u{116B8}\u{11700}-\u{1171A}\u{11740}-\u{11746}\u{11800}-\u{1182B}\u{118A0}-\u{118DF}\u{118FF}-\u{11906}\u{11909}\u{1190C}-\u{11913}\u{11915}\u{11916}\u{11918}-\u{1192F}\u{1193F}\u{11941}\u{119A0}-\u{119A7}\u{119AA}-\u{119D0}\u{119E1}\u{119E3}\u{11A00}\u{11A0B}-\u{11A32}\u{11A3A}\u{11A50}\u{11A5C}-\u{11A89}\u{11A9D}\u{11AB0}-\u{11AF8}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2E}\u{11C40}\u{11C72}-\u{11C8F}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D60}-\u{11D65}\u{11D67}\u{11D68}\u{11D6A}-\u{11D89}\u{11D98}\u{11EE0}-\u{11EF2}\u{11F02}\u{11F04}-\u{11F10}\u{11F12}-\u{11F33}\u{11FB0}\u{12000}-\u{12399}\u{12480}-\u{12543}\u{12F90}-\u{12FF0}\u{13000}-\u{1342F}\u{13441}-\u{13446}\u{14400}-\u{14646}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A70}-\u{16ABE}\u{16AD0}-\u{16AED}\u{16B00}-\u{16B2F}\u{16B40}-\u{16B43}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16E40}-\u{16E7F}\u{16F00}-\u{16F4A}\u{16F50}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{16FE3}\u{17000}-\u{187F7}\u{18800}-\u{18CD5}\u{18D00}-\u{18D08}\u{1AFF0}-\u{1AFF3}\u{1AFF5}-\u{1AFFB}\u{1AFFD}\u{1AFFE}\u{1B000}-\u{1B122}\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6C0}\u{1D6C2}-\u{1D6DA}\u{1D6DC}-\u{1D6FA}\u{1D6FC}-\u{1D714}\u{1D716}-\u{1D734}\u{1D736}-\u{1D74E}\u{1D750}-\u{1D76E}\u{1D770}-\u{1D788}\u{1D78A}-\u{1D7A8}\u{1D7AA}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1DF00}-\u{1DF1E}\u{1DF25}-\u{1DF2A}\u{1E030}-\u{1E06D}\u{1E100}-\u{1E12C}\u{1E137}-\u{1E13D}\u{1E14E}\u{1E290}-\u{1E2AD}\u{1E2C0}-\u{1E2EB}\u{1E4D0}-\u{1E4EB}\u{1E7E0}-\u{1E7E6}\u{1E7E8}-\u{1E7EB}\u{1E7ED}\u{1E7EE}\u{1E7F0}-\u{1E7FE}\u{1E800}-\u{1E8C4}\u{1E900}-\u{1E943}\u{1E94B}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B739}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2EBF0}-\u{2EE5D}\u{2F800}-\u{2FA1D}\u{30000}-\u{3134A}\u{31350}-\u{323AF}][0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{10300}-\u{1031F}\u{1032D}-\u{10340}\u{10342}-\u{10349}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{103A0}-\u{103C3}\u{103C8}-\u{103CF}\u{10400}-\u{1049D}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{10570}-\u{1057A}\u{1057C}-\u{1058A}\u{1058C}-\u{10592}\u{10594}\u{10595}\u{10597}-\u{105A1}\u{105A3}-\u{105B1}\u{105B3}-\u{105B9}\u{105BB}\u{105BC}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{10780}-\u{10785}\u{10787}-\u{107B0}\u{107B2}-\u{107BA}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10860}-\u{10876}\u{10880}-\u{1089E}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{10900}-\u{10915}\u{10920}-\u{10939}\u{10980}-\u{109B7}\u{109BE}\u{109BF}\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A60}-\u{10A7C}\u{10A80}-\u{10A9C}\u{10AC0}-\u{10AC7}\u{10AC9}-\u{10AE4}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B60}-\u{10B72}\u{10B80}-\u{10B91}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10D00}-\u{10D23}\u{10E80}-\u{10EA9}\u{10EB0}\u{10EB1}\u{10F00}-\u{10F1C}\u{10F27}\u{10F30}-\u{10F45}\u{10F70}-\u{10F81}\u{10FB0}-\u{10FC4}\u{10FE0}-\u{10FF6}\u{11003}-\u{11037}\u{11071}\u{11072}\u{11075}\u{11083}-\u{110AF}\u{110D0}-\u{110E8}\u{11103}-\u{11126}\u{11144}\u{11147}\u{11150}-\u{11172}\u{11176}\u{11183}-\u{111B2}\u{111C1}-\u{111C4}\u{111DA}\u{111DC}\u{11200}-\u{11211}\u{11213}-\u{1122B}\u{1123F}\u{11240}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A8}\u{112B0}-\u{112DE}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}\u{11350}\u{1135D}-\u{11361}\u{11400}-\u{11434}\u{11447}-\u{1144A}\u{1145F}-\u{11461}\u{11480}-\u{114AF}\u{114C4}\u{114C5}\u{114C7}\u{11580}-\u{115AE}\u{115D8}-\u{115DB}\u{11600}-\u{1162F}\u{11644}\u{11680}-\u{116AA}\u{116B8}\u{11700}-\u{1171A}\u{11740}-\u{11746}\u{11800}-\u{1182B}\u{118A0}-\u{118DF}\u{118FF}-\u{11906}\u{11909}\u{1190C}-\u{11913}\u{11915}\u{11916}\u{11918}-\u{1192F}\u{1193F}\u{11941}\u{119A0}-\u{119A7}\u{119AA}-\u{119D0}\u{119E1}\u{119E3}\u{11A00}\u{11A0B}-\u{11A32}\u{11A3A}\u{11A50}\u{11A5C}-\u{11A89}\u{11A9D}\u{11AB0}-\u{11AF8}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2E}\u{11C40}\u{11C72}-\u{11C8F}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D60}-\u{11D65}\u{11D67}\u{11D68}\u{11D6A}-\u{11D89}\u{11D98}\u{11EE0}-\u{11EF2}\u{11F02}\u{11F04}-\u{11F10}\u{11F12}-\u{11F33}\u{11FB0}\u{12000}-\u{12399}\u{12480}-\u{12543}\u{12F90}-\u{12FF0}\u{13000}-\u{1342F}\u{13441}-\u{13446}\u{14400}-\u{14646}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A70}-\u{16ABE}\u{16AD0}-\u{16AED}\u{16B00}-\u{16B2F}\u{16B40}-\u{16B43}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16E40}-\u{16E7F}\u{16F00}-\u{16F4A}\u{16F50}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{16FE3}\u{17000}-\u{187F7}\u{18800}-\u{18CD5}\u{18D00}-\u{18D08}\u{1AFF0}-\u{1AFF3}\u{1AFF5}-\u{1AFFB}\u{1AFFD}\u{1AFFE}\u{1B000}-\u{1B122}\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6C0}\u{1D6C2}-\u{1D6DA}\u{1D6DC}-\u{1D6FA}\u{1D6FC}-\u{1D714}\u{1D716}-\u{1D734}\u{1D736}-\u{1D74E}\u{1D750}-\u{1D76E}\u{1D770}-\u{1D788}\u{1D78A}-\u{1D7A8}\u{1D7AA}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1DF00}-\u{1DF1E}\u{1DF25}-\u{1DF2A}\u{1E030}-\u{1E06D}\u{1E100}-\u{1E12C}\u{1E137}-\u{1E13D}\u{1E14E}\u{1E290}-\u{1E2AD}\u{1E2C0}-\u{1E2EB}\u{1E4D0}-\u{1E4EB}\u{1E7E0}-\u{1E7E6}\u{1E7E8}-\u{1E7EB}\u{1E7ED}\u{1E7EE}\u{1E7F0}-\u{1E7FE}\u{1E800}-\u{1E8C4}\u{1E900}-\u{1E943}\u{1E94B}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B739}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2EBF0}-\u{2EE5D}\u{2F800}-\u{2FA1D}\u{30000}-\u{3134A}\u{31350}-\u{323AF}]*$/u.test(s)
|
@@ -999,7 +999,7 @@ const createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(n
|
|
999
999
|
node = parseRule2(state);
|
1000
1000
|
last = node;
|
1001
1001
|
while (true) {
|
1002
|
-
if (state.tokenType === TOKENTYPE.SYMBOL || state.token === 'in' && (0, _is.isConstantNode)(node) || state.tokenType === TOKENTYPE.NUMBER && !(0, _is.isConstantNode)(last) && (!(0, _is.isOperatorNode)(last) || last.op === '!') || state.token === '(') {
|
1002
|
+
if (state.tokenType === TOKENTYPE.SYMBOL || state.token === 'in' && (0, _is.isConstantNode)(node) || state.token === 'in' && (0, _is.isOperatorNode)(node) && node.fn === 'unaryMinus' && (0, _is.isConstantNode)(node.args[0]) || state.tokenType === TOKENTYPE.NUMBER && !(0, _is.isConstantNode)(last) && (!(0, _is.isOperatorNode)(last) || last.op === '!') || state.token === '(') {
|
1003
1003
|
// parse implicit multiplication
|
1004
1004
|
//
|
1005
1005
|
// symbol: implicit multiplication like '2a', '(2+3)a', 'a b'
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.createFilterTransform = void 0;
|
7
|
-
var
|
8
|
-
var _array = require("../../utils/array.js");
|
7
|
+
var _filter = require("../../function/matrix/filter.js");
|
9
8
|
var _factory = require("../../utils/factory.js");
|
10
9
|
var _is = require("../../utils/is.js");
|
11
10
|
var _compileInlineExpression = require("./utils/compileInlineExpression.js");
|
11
|
+
var _transformCallback = require("./utils/transformCallback.js");
|
12
12
|
const name = 'filter';
|
13
13
|
const dependencies = ['typed'];
|
14
14
|
const createFilterTransform = exports.createFilterTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
@@ -23,52 +23,40 @@ const createFilterTransform = exports.createFilterTransform = /* #__PURE__ */(0,
|
|
23
23
|
* so you can do something like 'filter([3, -2, 5], x > 0)'.
|
24
24
|
*/
|
25
25
|
function filterTransform(args, math, scope) {
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
const filter = (0, _filter.createFilter)({
|
27
|
+
typed
|
28
|
+
});
|
29
|
+
const transformCallback = (0, _transformCallback.createTransformCallback)({
|
30
|
+
typed
|
31
|
+
});
|
32
|
+
if (args.length === 0) {
|
33
|
+
return filter();
|
29
34
|
}
|
30
|
-
|
31
|
-
|
35
|
+
let x = args[0];
|
36
|
+
if (args.length === 1) {
|
37
|
+
return filter(x);
|
38
|
+
}
|
39
|
+
const N = args.length - 1;
|
40
|
+
let callback = args[N];
|
41
|
+
if (x) {
|
42
|
+
x = _compileAndEvaluate(x, scope);
|
43
|
+
}
|
44
|
+
if (callback) {
|
45
|
+
if ((0, _is.isSymbolNode)(callback) || (0, _is.isFunctionAssignmentNode)(callback)) {
|
32
46
|
// a function pointer, like filter([3, -2, 5], myTestFunction)
|
33
|
-
callback =
|
47
|
+
callback = _compileAndEvaluate(callback, scope);
|
34
48
|
} else {
|
35
49
|
// an expression like filter([3, -2, 5], x > 0)
|
36
|
-
callback = (0, _compileInlineExpression.compileInlineExpression)(
|
50
|
+
callback = (0, _compileInlineExpression.compileInlineExpression)(callback, math, scope);
|
37
51
|
}
|
38
52
|
}
|
39
|
-
return filter(x, callback);
|
53
|
+
return filter(x, transformCallback(callback, N));
|
40
54
|
}
|
41
55
|
filterTransform.rawArgs = true;
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
'Array, function': _filter,
|
46
|
-
'Matrix, function': function (x, test) {
|
47
|
-
return x.create(_filter(x.toArray(), test), x.datatype());
|
48
|
-
},
|
49
|
-
'Array, RegExp': _array.filterRegExp,
|
50
|
-
'Matrix, RegExp': function (x, test) {
|
51
|
-
return x.create((0, _array.filterRegExp)(x.toArray(), test), x.datatype());
|
52
|
-
}
|
53
|
-
});
|
56
|
+
function _compileAndEvaluate(arg, scope) {
|
57
|
+
return arg.compile().evaluate(scope);
|
58
|
+
}
|
54
59
|
return filterTransform;
|
55
60
|
}, {
|
56
61
|
isTransformFunction: true
|
57
|
-
});
|
58
|
-
|
59
|
-
/**
|
60
|
-
* Filter values in a callback given a callback function
|
61
|
-
*
|
62
|
-
* !!! Passes a one-based index !!!
|
63
|
-
*
|
64
|
-
* @param {Array} x
|
65
|
-
* @param {Function} callback
|
66
|
-
* @return {Array} Returns the filtered array
|
67
|
-
* @private
|
68
|
-
*/
|
69
|
-
function _filter(x, callback) {
|
70
|
-
return (0, _array.filter)(x, function (value, index, array) {
|
71
|
-
// invoke the callback function with the right number of arguments
|
72
|
-
return (0, _applyCallback.applyCallback)(callback, value, [index + 1], array, 'filter');
|
73
|
-
});
|
74
|
-
}
|
62
|
+
});
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.createForEachTransform = void 0;
|
7
|
-
var
|
8
|
-
var
|
7
|
+
var _forEach = require("../../function/matrix/forEach.js");
|
8
|
+
var _transformCallback = require("./utils/transformCallback.js");
|
9
9
|
var _factory = require("../../utils/factory.js");
|
10
10
|
var _is = require("../../utils/is.js");
|
11
11
|
var _compileInlineExpression = require("./utils/compileInlineExpression.js");
|
@@ -21,41 +21,40 @@ const createForEachTransform = exports.createForEachTransform = /* #__PURE__ */(
|
|
21
21
|
*
|
22
22
|
* This transform creates a one-based index instead of a zero-based index
|
23
23
|
*/
|
24
|
+
const forEach = (0, _forEach.createForEach)({
|
25
|
+
typed
|
26
|
+
});
|
27
|
+
const transformCallback = (0, _transformCallback.createTransformCallback)({
|
28
|
+
typed
|
29
|
+
});
|
24
30
|
function forEachTransform(args, math, scope) {
|
25
|
-
|
26
|
-
|
27
|
-
|
31
|
+
if (args.length === 0) {
|
32
|
+
return forEach();
|
33
|
+
}
|
34
|
+
let x = args[0];
|
35
|
+
if (args.length === 1) {
|
36
|
+
return forEach(x);
|
28
37
|
}
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
38
|
+
const N = args.length - 1;
|
39
|
+
let callback = args[N];
|
40
|
+
if (x) {
|
41
|
+
x = _compileAndEvaluate(x, scope);
|
42
|
+
}
|
43
|
+
if (callback) {
|
44
|
+
if ((0, _is.isSymbolNode)(callback) || (0, _is.isFunctionAssignmentNode)(callback)) {
|
45
|
+
// a function pointer, like filter([3, -2, 5], myTestFunction)
|
46
|
+
callback = _compileAndEvaluate(callback, scope);
|
33
47
|
} else {
|
34
|
-
// an expression like
|
35
|
-
callback = (0, _compileInlineExpression.compileInlineExpression)(
|
48
|
+
// an expression like filter([3, -2, 5], x > 0)
|
49
|
+
callback = (0, _compileInlineExpression.compileInlineExpression)(callback, math, scope);
|
36
50
|
}
|
37
51
|
}
|
38
|
-
return
|
52
|
+
return forEach(x, transformCallback(callback, N));
|
39
53
|
}
|
40
54
|
forEachTransform.rawArgs = true;
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
'Array | Matrix, function': function (array, callback) {
|
45
|
-
const recurse = function (value, index) {
|
46
|
-
if (Array.isArray(value)) {
|
47
|
-
(0, _array.forEach)(value, function (child, i) {
|
48
|
-
// we create a copy of the index array and append the new index value
|
49
|
-
recurse(child, index.concat(i + 1)); // one based index, hence i+1
|
50
|
-
});
|
51
|
-
} else {
|
52
|
-
// invoke the callback function with the right number of arguments
|
53
|
-
return (0, _applyCallback.applyCallback)(callback, value, index, array, 'forEach');
|
54
|
-
}
|
55
|
-
};
|
56
|
-
recurse(array.valueOf(), []); // pass Array
|
57
|
-
}
|
58
|
-
});
|
55
|
+
function _compileAndEvaluate(arg, scope) {
|
56
|
+
return arg.compile().evaluate(scope);
|
57
|
+
}
|
59
58
|
return forEachTransform;
|
60
59
|
}, {
|
61
60
|
isTransformFunction: true
|
@@ -8,6 +8,7 @@ var _factory = require("../../utils/factory.js");
|
|
8
8
|
var _is = require("../../utils/is.js");
|
9
9
|
var _map = require("../../function/matrix/map.js");
|
10
10
|
var _compileInlineExpression = require("./utils/compileInlineExpression.js");
|
11
|
+
var _transformCallback = require("./utils/transformCallback.js");
|
11
12
|
const name = 'map';
|
12
13
|
const dependencies = ['typed'];
|
13
14
|
const createMapTransform = exports.createMapTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
@@ -23,6 +24,9 @@ const createMapTransform = exports.createMapTransform = /* #__PURE__ */(0, _fact
|
|
23
24
|
const map = (0, _map.createMap)({
|
24
25
|
typed
|
25
26
|
});
|
27
|
+
const transformCallback = (0, _transformCallback.createTransformCallback)({
|
28
|
+
typed
|
29
|
+
});
|
26
30
|
function mapTransform(args, math, scope) {
|
27
31
|
if (args.length === 0) {
|
28
32
|
return map();
|
@@ -31,9 +35,8 @@ const createMapTransform = exports.createMapTransform = /* #__PURE__ */(0, _fact
|
|
31
35
|
return map(args[0]);
|
32
36
|
}
|
33
37
|
const N = args.length - 1;
|
34
|
-
let X,
|
35
|
-
callback = args[N];
|
36
|
-
X = args.slice(0, N);
|
38
|
+
let X = args.slice(0, N);
|
39
|
+
let callback = args[N];
|
37
40
|
X = X.map(arg => _compileAndEvaluate(arg, scope));
|
38
41
|
if (callback) {
|
39
42
|
if ((0, _is.isSymbolNode)(callback) || (0, _is.isFunctionAssignmentNode)(callback)) {
|
@@ -44,101 +47,13 @@ const createMapTransform = exports.createMapTransform = /* #__PURE__ */(0, _fact
|
|
44
47
|
callback = (0, _compileInlineExpression.compileInlineExpression)(callback, math, scope);
|
45
48
|
}
|
46
49
|
}
|
47
|
-
return map(...X,
|
50
|
+
return map(...X, transformCallback(callback, N));
|
48
51
|
function _compileAndEvaluate(arg, scope) {
|
49
52
|
return arg.compile().evaluate(scope);
|
50
53
|
}
|
51
54
|
}
|
52
55
|
mapTransform.rawArgs = true;
|
53
56
|
return mapTransform;
|
54
|
-
|
55
|
-
/**
|
56
|
-
* Transforms the given callback function based on its type and number of arrays.
|
57
|
-
*
|
58
|
-
* @param {Function} callback - The callback function to transform.
|
59
|
-
* @param {number} numberOfArrays - The number of arrays to pass to the callback function.
|
60
|
-
* @returns {*} - The transformed callback function.
|
61
|
-
*/
|
62
|
-
function _transformCallback(callback, numberOfArrays) {
|
63
|
-
if (typed.isTypedFunction(callback)) {
|
64
|
-
return _transformTypedCallbackFunction(callback, numberOfArrays);
|
65
|
-
} else {
|
66
|
-
return _transformCallbackFunction(callback, callback.length, numberOfArrays);
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
|
-
/**
|
71
|
-
* Transforms the given typed callback function based on the number of arrays.
|
72
|
-
*
|
73
|
-
* @param {Function} typedFunction - The typed callback function to transform.
|
74
|
-
* @param {number} numberOfArrays - The number of arrays to pass to the callback function.
|
75
|
-
* @returns {*} - The transformed typed callback function.
|
76
|
-
*/
|
77
|
-
function _transformTypedCallbackFunction(typedFunction, numberOfArrays) {
|
78
|
-
const signatures = Object.fromEntries(Object.entries(typedFunction.signatures).map(_ref2 => {
|
79
|
-
let [signature, callbackFunction] = _ref2;
|
80
|
-
const numberOfCallbackInputs = signature.split(',').length;
|
81
|
-
if (typed.isTypedFunction(callbackFunction)) {
|
82
|
-
return [signature, _transformTypedCallbackFunction(callbackFunction, numberOfArrays)];
|
83
|
-
} else {
|
84
|
-
return [signature, _transformCallbackFunction(callbackFunction, numberOfCallbackInputs, numberOfArrays)];
|
85
|
-
}
|
86
|
-
}));
|
87
|
-
if (typeof typedFunction.name === 'string') {
|
88
|
-
return typed(typedFunction.name, signatures);
|
89
|
-
} else {
|
90
|
-
return typed(signatures);
|
91
|
-
}
|
92
|
-
}
|
93
57
|
}, {
|
94
58
|
isTransformFunction: true
|
95
|
-
});
|
96
|
-
|
97
|
-
/**
|
98
|
-
* Transforms the callback function based on the number of callback inputs and arrays.
|
99
|
-
* There are three cases:
|
100
|
-
* 1. The callback function has N arguments.
|
101
|
-
* 2. The callback function has N+1 arguments.
|
102
|
-
* 3. The callback function has 2N+1 arguments.
|
103
|
-
*
|
104
|
-
* @param {Function} callbackFunction - The callback function to transform.
|
105
|
-
* @param {number} numberOfCallbackInputs - The number of callback inputs.
|
106
|
-
* @param {number} numberOfArrays - The number of arrays.
|
107
|
-
* @returns {Function} The transformed callback function.
|
108
|
-
*/
|
109
|
-
function _transformCallbackFunction(callbackFunction, numberOfCallbackInputs, numberOfArrays) {
|
110
|
-
if (numberOfCallbackInputs === numberOfArrays) {
|
111
|
-
return callbackFunction;
|
112
|
-
} else if (numberOfCallbackInputs === numberOfArrays + 1) {
|
113
|
-
return function () {
|
114
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
115
|
-
args[_key] = arguments[_key];
|
116
|
-
}
|
117
|
-
const vals = args.slice(0, numberOfArrays);
|
118
|
-
const idx = _transformDims(args[numberOfArrays]);
|
119
|
-
return callbackFunction(...vals, idx);
|
120
|
-
};
|
121
|
-
} else if (numberOfCallbackInputs > numberOfArrays + 1) {
|
122
|
-
return function () {
|
123
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
124
|
-
args[_key2] = arguments[_key2];
|
125
|
-
}
|
126
|
-
const vals = args.slice(0, numberOfArrays);
|
127
|
-
const idx = _transformDims(args[numberOfArrays]);
|
128
|
-
const rest = args.slice(numberOfArrays + 1);
|
129
|
-
return callbackFunction(...vals, idx, ...rest);
|
130
|
-
};
|
131
|
-
} else {
|
132
|
-
return callbackFunction;
|
133
|
-
}
|
134
|
-
}
|
135
|
-
|
136
|
-
/**
|
137
|
-
* Transforms the dimensions by adding 1 to each dimension.
|
138
|
-
*
|
139
|
-
* @param {Array} dims - The dimensions to transform.
|
140
|
-
* @returns {Array} The transformed dimensions.
|
141
|
-
*/
|
142
|
-
function _transformDims(dims) {
|
143
|
-
return dims.map(dim => dim.isBigNumber ? dim.plus(1) : dim + 1);
|
144
|
-
}
|
59
|
+
});
|
@@ -0,0 +1,101 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createTransformCallback = void 0;
|
7
|
+
var _factory = require("../../../utils/factory.js");
|
8
|
+
const name = 'transformCallback';
|
9
|
+
const dependencies = ['typed'];
|
10
|
+
const createTransformCallback = exports.createTransformCallback = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
11
|
+
let {
|
12
|
+
typed
|
13
|
+
} = _ref;
|
14
|
+
/**
|
15
|
+
* Transforms the given callback function based on its type and number of arrays.
|
16
|
+
*
|
17
|
+
* @param {Function} callback - The callback function to transform.
|
18
|
+
* @param {number} numberOfArrays - The number of arrays to pass to the callback function.
|
19
|
+
* @returns {*} - The transformed callback function.
|
20
|
+
*/
|
21
|
+
return function (callback, numberOfArrays) {
|
22
|
+
if (typed.isTypedFunction(callback)) {
|
23
|
+
return _transformTypedCallbackFunction(callback, numberOfArrays);
|
24
|
+
} else {
|
25
|
+
return _transformCallbackFunction(callback, callback.length, numberOfArrays);
|
26
|
+
}
|
27
|
+
};
|
28
|
+
|
29
|
+
/**
|
30
|
+
* Transforms the given typed callback function based on the number of arrays.
|
31
|
+
*
|
32
|
+
* @param {Function} typedFunction - The typed callback function to transform.
|
33
|
+
* @param {number} numberOfArrays - The number of arrays to pass to the callback function.
|
34
|
+
* @returns {*} - The transformed callback function.
|
35
|
+
*/
|
36
|
+
function _transformTypedCallbackFunction(typedFunction, numberOfArrays) {
|
37
|
+
const signatures = Object.fromEntries(Object.entries(typedFunction.signatures).map(_ref2 => {
|
38
|
+
let [signature, callbackFunction] = _ref2;
|
39
|
+
const numberOfCallbackInputs = signature.split(',').length;
|
40
|
+
if (typed.isTypedFunction(callbackFunction)) {
|
41
|
+
return [signature, _transformTypedCallbackFunction(callbackFunction, numberOfArrays)];
|
42
|
+
} else {
|
43
|
+
return [signature, _transformCallbackFunction(callbackFunction, numberOfCallbackInputs, numberOfArrays)];
|
44
|
+
}
|
45
|
+
}));
|
46
|
+
if (typeof typedFunction.name === 'string') {
|
47
|
+
return typed(typedFunction.name, signatures);
|
48
|
+
} else {
|
49
|
+
return typed(signatures);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
});
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Transforms the callback function based on the number of callback inputs and arrays.
|
56
|
+
* There are three cases:
|
57
|
+
* 1. The callback function has N arguments.
|
58
|
+
* 2. The callback function has N+1 arguments.
|
59
|
+
* 3. The callback function has 2N+1 arguments.
|
60
|
+
*
|
61
|
+
* @param {Function} callbackFunction - The callback function to transform.
|
62
|
+
* @param {number} numberOfCallbackInputs - The number of callback inputs.
|
63
|
+
* @param {number} numberOfArrays - The number of arrays.
|
64
|
+
* @returns {Function} The transformed callback function.
|
65
|
+
*/
|
66
|
+
function _transformCallbackFunction(callbackFunction, numberOfCallbackInputs, numberOfArrays) {
|
67
|
+
if (numberOfCallbackInputs === numberOfArrays) {
|
68
|
+
return callbackFunction;
|
69
|
+
} else if (numberOfCallbackInputs === numberOfArrays + 1) {
|
70
|
+
return function () {
|
71
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
72
|
+
args[_key] = arguments[_key];
|
73
|
+
}
|
74
|
+
const vals = args.slice(0, numberOfArrays);
|
75
|
+
const idx = _transformDims(args[numberOfArrays]);
|
76
|
+
return callbackFunction(...vals, idx);
|
77
|
+
};
|
78
|
+
} else if (numberOfCallbackInputs > numberOfArrays + 1) {
|
79
|
+
return function () {
|
80
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
81
|
+
args[_key2] = arguments[_key2];
|
82
|
+
}
|
83
|
+
const vals = args.slice(0, numberOfArrays);
|
84
|
+
const idx = _transformDims(args[numberOfArrays]);
|
85
|
+
const rest = args.slice(numberOfArrays + 1);
|
86
|
+
return callbackFunction(...vals, idx, ...rest);
|
87
|
+
};
|
88
|
+
} else {
|
89
|
+
return callbackFunction;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
/**
|
94
|
+
* Transforms the dimensions by adding 1 to each dimension.
|
95
|
+
*
|
96
|
+
* @param {Array} dims - The dimensions to transform.
|
97
|
+
* @returns {Array} The transformed dimensions.
|
98
|
+
*/
|
99
|
+
function _transformDims(dims) {
|
100
|
+
return dims.map(dim => dim + 1);
|
101
|
+
}
|
@@ -71,14 +71,18 @@ const createDerivative = exports.createDerivative = /* #__PURE__ */(0, _factory.
|
|
71
71
|
const res = _derivative(expr, constNodes);
|
72
72
|
return options.simplify ? simplify(res) : res;
|
73
73
|
}
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
74
|
+
function parseIdentifier(string) {
|
75
|
+
const symbol = parse(string);
|
76
|
+
if (!symbol.isSymbolNode) {
|
77
|
+
throw new TypeError('Invalid variable. ' + `Cannot parse ${JSON.stringify(string)} into a variable in function derivative`);
|
78
|
+
}
|
79
|
+
return symbol;
|
80
|
+
}
|
79
81
|
const derivative = typed(name, {
|
80
82
|
'Node, SymbolNode': plainDerivative,
|
81
|
-
'Node, SymbolNode, Object': plainDerivative
|
83
|
+
'Node, SymbolNode, Object': plainDerivative,
|
84
|
+
'Node, string': (node, symbol) => plainDerivative(node, parseIdentifier(symbol)),
|
85
|
+
'Node, string, Object': (node, symbol, options) => plainDerivative(node, parseIdentifier(symbol), options)
|
82
86
|
|
83
87
|
/* TODO: implement and test syntax with order of derivatives -> implement as an option {order: number}
|
84
88
|
'Node, SymbolNode, ConstantNode': function (expr, variable, {order}) {
|
@@ -92,11 +96,6 @@ const createDerivative = exports.createDerivative = /* #__PURE__ */(0, _factory.
|
|
92
96
|
}
|
93
97
|
*/
|
94
98
|
});
|
95
|
-
typed.removeConversion({
|
96
|
-
from: 'identifier',
|
97
|
-
to: 'SymbolNode',
|
98
|
-
convert: parse
|
99
|
-
});
|
100
99
|
derivative._simplify = true;
|
101
100
|
derivative.toTex = function (deriv) {
|
102
101
|
return _derivTex.apply(null, deriv.args);
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.createFilter = void 0;
|
7
|
-
var
|
7
|
+
var _optimizeCallback = require("../../utils/optimizeCallback.js");
|
8
8
|
var _array = require("../../utils/array.js");
|
9
9
|
var _factory = require("../../utils/factory.js");
|
10
10
|
const name = 'filter';
|
@@ -62,8 +62,9 @@ const createFilter = exports.createFilter = /* #__PURE__ */(0, _factory.factory)
|
|
62
62
|
* @private
|
63
63
|
*/
|
64
64
|
function _filterCallback(x, callback) {
|
65
|
+
const fastCallback = (0, _optimizeCallback.optimizeCallback)(callback, x, 'filter');
|
65
66
|
return (0, _array.filter)(x, function (value, index, array) {
|
66
67
|
// invoke the callback function with the right number of arguments
|
67
|
-
return (
|
68
|
+
return fastCallback(value, [index], array);
|
68
69
|
});
|
69
70
|
}
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.createForEach = void 0;
|
7
|
-
var
|
8
|
-
var _array = require("../../utils/array.js");
|
7
|
+
var _optimizeCallback = require("../../utils/optimizeCallback.js");
|
9
8
|
var _factory = require("../../utils/factory.js");
|
9
|
+
var _array = require("../../utils/array.js");
|
10
10
|
const name = 'forEach';
|
11
11
|
const dependencies = ['typed'];
|
12
12
|
const createForEach = exports.createForEach = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
@@ -51,16 +51,5 @@ const createForEach = exports.createForEach = /* #__PURE__ */(0, _factory.factor
|
|
51
51
|
* @private
|
52
52
|
*/
|
53
53
|
function _forEach(array, callback) {
|
54
|
-
|
55
|
-
if (Array.isArray(value)) {
|
56
|
-
(0, _array.forEach)(value, function (child, i) {
|
57
|
-
// we create a copy of the index array and append the new index value
|
58
|
-
recurse(child, index.concat(i));
|
59
|
-
});
|
60
|
-
} else {
|
61
|
-
// invoke the callback function with the right number of arguments
|
62
|
-
return (0, _applyCallback.applyCallback)(callback, value, index, array, 'forEach');
|
63
|
-
}
|
64
|
-
};
|
65
|
-
recurse(array, []);
|
54
|
+
(0, _array.recurse)(array, [], array, (0, _optimizeCallback.optimizeCallback)(callback, array, name));
|
66
55
|
}
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.createMap = void 0;
|
7
|
-
var
|
7
|
+
var _optimizeCallback = require("../../utils/optimizeCallback.js");
|
8
8
|
var _array = require("../../utils/array.js");
|
9
9
|
var _factory = require("../../utils/factory.js");
|
10
10
|
const name = 'map';
|
@@ -135,36 +135,14 @@ const createMap = exports.createMap = /* #__PURE__ */(0, _factory.factory)(name,
|
|
135
135
|
return 0;
|
136
136
|
}
|
137
137
|
}
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
function _mapArray(array, callback) {
|
148
|
-
return _recurse(array, [], array, callback);
|
149
|
-
}
|
150
|
-
|
151
|
-
/**
|
152
|
-
* Recursive function to map a multi-dimensional array.
|
153
|
-
*
|
154
|
-
* @param {*} value - The current value being processed in the array.
|
155
|
-
* @param {Array} index - The index of the current value being processed in the array.
|
156
|
-
* @param {Array} array - The array being processed.
|
157
|
-
* @param {Function} callback - Function that produces the element of the new Array, taking three arguments: the value of the element, the index of the element, and the Array being processed.
|
158
|
-
* @returns {*} The new array with each element being the result of the callback function.
|
159
|
-
*/
|
160
|
-
function _recurse(value, index, array, callback) {
|
161
|
-
if (Array.isArray(value)) {
|
162
|
-
return value.map(function (child, i) {
|
163
|
-
// we create a copy of the index array and append the new index value
|
164
|
-
return _recurse(child, index.concat(i), array, callback);
|
165
|
-
});
|
166
|
-
} else {
|
167
|
-
// invoke the callback function with the right number of arguments
|
168
|
-
return (0, _applyCallback.applyCallback)(callback, value, index, array, 'map');
|
138
|
+
/**
|
139
|
+
* Map for a multi dimensional array
|
140
|
+
* @param {Array} array
|
141
|
+
* @param {Function} callback
|
142
|
+
* @return {Array}
|
143
|
+
* @private
|
144
|
+
*/
|
145
|
+
function _mapArray(array, callback) {
|
146
|
+
return (0, _array.recurse)(array, [], array, (0, _optimizeCallback.optimizeCallback)(callback, array, name));
|
169
147
|
}
|
170
|
-
}
|
148
|
+
});
|
package/lib/cjs/header.js
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
* It features real and complex numbers, units, matrices, a large set of
|
7
7
|
* mathematical functions, and a flexible expression parser.
|
8
8
|
*
|
9
|
-
* @version 13.
|
10
|
-
* @date 2024-
|
9
|
+
* @version 13.2.0
|
10
|
+
* @date 2024-10-02
|
11
11
|
*
|
12
12
|
* @license
|
13
13
|
* Copyright (C) 2013-2024 Jos de Jong <wjosdejong@gmail.com>
|