{"_id":"ml-direct","_rev":"5-8c961bf49b3ca9d151e575768aac1213","name":"ml-direct","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"ml-direct","version":"0.0.1","description":"Direct - DIviding RECTangles optimization algorithm","main":"lib/index.js","module":"src/index.js","scripts":{"build":"cheminfo-build --entry src/index.js --root Direct","eslint":"eslint src","eslint-fix":"npm run eslint -- --fix","prepublishOnly":"rollup -c","test":"npm run test-coverage && npm run eslint","test-coverage":"jest --coverage","test-only":"jest"},"repository":{"type":"git","url":"git+https://github.com/cheminfo/direct-optimization.git"},"keywords":[],"author":{"name":"Wargner Moreno"},"license":"MIT","bugs":{"url":"https://github.com/cheminfo/direct-optimization/issues"},"homepage":"https://github.com/cheminfo/direct-optimization#readme","jest":{"testEnvironment":"node"},"prettier":{"arrowParens":"always","semi":true,"singleQuote":true,"tabWidth":2,"trailingComma":"all"},"devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.12.1","cheminfo-build":"^1.1.8","eslint":"^7.12.1","eslint-config-cheminfo":"^5.2.2","eslint-plugin-import":"^2.22.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-prettier":"^3.1.4","esm":"^3.2.25","jest":"^26.6.1","jest-matcher-deep-close-to":"^2.0.1","prettier":"^2.1.2","rollup":"^2.32.1"},"dependencies":{"ml-array-max":"^1.2.0","ml-array-min":"^1.2.0","ml-matrix":"^6.5.3","ml-optimize-lorentzian":"^0.2.0","monotone-chain-convex-hull":"^1.0.0"},"gitHead":"bd68ab7cb4b5da0e376c0ac7e82b2565e39e99c0","_id":"ml-direct@0.0.1","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-yk9vUXQzzqsoAAICU9UWqL4naSH1/71ts8MdTiixk3x1HQw7m5BcsGHg/QJnGCfXdGGrYmPV5EIE4h7qmQW01A==","shasum":"63f32585f34d4f3db6499b1a3a3f5168072fb1e6","tarball":"https://registry.npmjs.org/ml-direct/-/ml-direct-0.0.1.tgz","fileCount":9,"unpackedSize":31463,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnQO7CRA9TVsSAnZWagAAkD0QAJc2cGPcgn2gJ82rJmNb\n2A7KYsWJ3bLc7els/DCsvb/Za6VT4u/Y064toq53LaHCCJ318xnL3x8epGtj\nNbugEHFzP+evdjjQZqRlVMGuGU44wI1gjac2q0GR/IM+ZVM7Kqumq372eeJl\nJjwIbtrosPi2xxdm6uRrgK1XDrWPGPhBWYusfZRkuDftgeMAyYIUXtQbPlNZ\nW5wPXdVvXP+7ijWNhTNL/eA8xtvN+aijQHSf+qMNG5lOdRkbn63dgD1F+jKY\nf3dxC/M5fjEiB9T1IuHqqS/CnjemMKroICWfEBi6lt5MRH0gh9Z/e8iiuSN5\ndsZxMrQeTXXQ4hKB77sIDAfXMf3//nfsKSN8a98C3aEU5GounYwCXJuqcswj\nUThVm/VZv2nV5ImG1k1c/zFNfoojJIuP2hf/zzFFmRwvML38Wtm3z/vVqkK0\nm91H6lwoP2hlUFTpqYJSAtWsPOpkfCkgjdUjvCk7NYo9Z8DtUc8NLI9H1oKW\nxUgUlukjQcSUxu3zmoNmpLoLc8eKaLCJRkxynLM92h9dZ33SivPelXcLPB1g\noO1qFN41XCEcXfrMAWD3wJxT4967OFS79rRRseICA1AKtik/H9AaafB8Px/n\nhKE1sVssekX84IOxhfBt1mH/z7HMTDvHzhjR4TgYwP3YxlVBKSIjwSJPiCFJ\nK57Z\r\n=BQrP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpsdzBkkgk/ONKXfPFWAWh/FmR7alqUZcchvlVqHdp2gIgM+Aof2KWdD+TBSHbdxo5Sk0DMU87BT7AFcuLVe4O8eA="}]},"maintainers":[{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"}],"_npmUser":{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ml-direct_0.0.1_1604125626616_0.5149718124087648"},"_hasShrinkwrap":false},"0.1.0":{"name":"ml-direct","version":"0.1.0","description":"Direct - DIviding RECTangles optimization algorithm","main":"lib/index.js","module":"src/index.js","scripts":{"build":"cheminfo-build --entry src/index.js --root Direct","eslint":"eslint src","eslint-fix":"npm run eslint -- --fix","prepublishOnly":"rollup -c","test":"npm run test-coverage && npm run eslint","test-coverage":"jest --coverage","test-only":"jest"},"repository":{"type":"git","url":"git+https://github.com/cheminfo/direct-optimization.git"},"keywords":[],"author":{"name":"Wargner Moreno"},"license":"MIT","bugs":{"url":"https://github.com/cheminfo/direct-optimization/issues"},"homepage":"https://github.com/cheminfo/direct-optimization#readme","jest":{"testEnvironment":"node"},"prettier":{"arrowParens":"always","semi":true,"singleQuote":true,"tabWidth":2,"trailingComma":"all"},"devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.12.1","cheminfo-build":"^1.1.8","eslint":"^7.12.1","eslint-config-cheminfo":"^5.2.2","eslint-plugin-import":"^2.22.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-prettier":"^3.1.4","esm":"^3.2.25","jest":"^26.6.3","jest-matcher-deep-close-to":"^2.0.1","prettier":"^2.1.2","rollup":"^2.33.1"},"dependencies":{"ml-array-max":"^1.2.0","ml-array-min":"^1.2.0","ml-matrix":"^6.5.3","ml-optimize-lorentzian":"^0.2.0","ml-spectra-processing":"^4.7.0"},"gitHead":"078f1e038f959372b13a8b8f1f5285c25a67f953","_id":"ml-direct@0.1.0","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-HaBydZ2KtMtSjrLQ727eS2Rihw31KxpYee6bca9C/LQghT4AUGDQTG0EqnudtEBQr4Z4yO5F3dRy3Nzd4XVxaQ==","shasum":"a3d0abed9db3ca3627af8182e5dbbdb4cd40e8ff","tarball":"https://registry.npmjs.org/ml-direct/-/ml-direct-0.1.0.tgz","fileCount":10,"unpackedSize":38438,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpaKYCRA9TVsSAnZWagAAnuYP/RGzUpNNL9n4tpTHRX1G\nRCIuMW1MAO/xIdB+lc2+IRWXftuPU4lSz9HXahNONuPfHsPyqCyqkhcFHS3G\nbTzH4+zroX14vmUNR8hElx1G/ZTFUAFSXaVoQVFMC2ww6SeC7mai49ZQ8M4V\n78O+EZM3Ob8jb8yX2ArWnBb5VKNawI7uN2GRGkB52Hh2Bwcv7t5J8lipVxU2\nuMG9LyZrIjd7xfsoK7eV7eTQkCwzrEWJDuiIdpg0wtH6GHcEqZgZwYzxGEYj\nZ5TLfLvvvWj+x0fZUGTavuR/lPLwdFO2RGSYTJw4uH16VWqUjLj+btIx+U5m\naegURQmMqopocyKl+sQaaIgy4oFeob4BReqCaAEZp3ApGAnCwdyeUahmiHLz\nuZIxofAwe56bHj4x7PlLtRTXKttF2yB09Po4aMX35lAfs5sxuzGoN8enGXPk\nCTtiITqKUKRyMWgq3QHTMS0fXv4tWMqoYzVSIRkyOmIMwvL3RTIVWjLATWLK\nRDAywljSsSuNbAhDTtlNWRzCcL/l8E287yEL1fO2tuWYy4pHEPRYG78LM8YB\nhTAg4ydqCd0SAaVVSZaDtxIiwjWIQF3N4BDGdkME73LQ5LSRzXvFp8QbG7Aa\n/3OEsEea54kPetGNzIcTroHPANkIrMUCHXXagztAaMXjIPAJuzYzE5la5btl\nXxTN\r\n=54u3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+TauBZfxDFGm6LN0mxYbc/Wj+3PWiXQINPqlAIW9ymAiEA/Yy3m+GZcBo5iU6BmqydJ7WIHvgI42g8mhkVF3C4/Io="}]},"_npmUser":{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"},"directories":{},"maintainers":[{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ml-direct_0.1.0_1604690583830_0.6394274017400334"},"_hasShrinkwrap":false},"0.1.1":{"name":"ml-direct","version":"0.1.1","description":"Direct - DIviding RECTangles optimization algorithm","main":"lib/index.js","module":"src/index.js","types":"ml-direct.d.ts","scripts":{"build":"cheminfo-build --entry src/index.js --root Direct","eslint":"eslint src","eslint-fix":"npm run eslint -- --fix","prepack":"rollup -c","prettier":"prettier --check src","prettier-write":"prettier --write src","test":"npm run test-only && npm run eslint && npm run prettier","test-only":"jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/mljs/direct.git"},"keywords":[],"author":{"name":"Wargner Moreno"},"license":"MIT","bugs":{"url":"https://github.com/mljs/direct/issues"},"homepage":"https://github.com/mljs/direct#readme","devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.18.6","cheminfo-build":"^1.1.11","eslint":"^8.23.0","eslint-config-cheminfo":"^8.0.2","esm":"^3.2.25","jest":"^29.0.2","jest-matcher-deep-close-to":"^3.0.2","prettier":"^2.7.1","rollup":"^2.79.0"},"dependencies":{"ml-matrix":"^6.10.2","ml-spectra-processing":"^11.12.0"},"gitHead":"e0c1ddee8ac91ea586d0dbee78b84679b086a533","_id":"ml-direct@0.1.1","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-9CP/MgFcPcmch9YvaroPePEkNITcFRt8orJzDY7MBNT5oszBiFBccWVN4358QbPOg26fWqH2CBhLIJKgjYfnBA==","shasum":"ec291708510960ee78a821bbe65474dcbbfbb99a","tarball":"https://registry.npmjs.org/ml-direct/-/ml-direct-0.1.1.tgz","fileCount":10,"unpackedSize":36625,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCU6bbDFIAeXSSkg8u2tzxjqA20/bL05FJYo7pJR64S3wIhAL2T43gz5azq3YxqVg7HQc8SMHPwvXuykUG8OZqyMDdd"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLIjkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmplIg//WPrLuCqxeZas8EADm4LPMB1StjSPy55+3mb6sPJN6kxbnVt1\r\n3jfnuQprPjcETFX6j1k+AFHYvcQnpkFw3bFCusUtlwPOz/WdBmc6CZqDhQ9H\r\n3z/YmMX98Y6DE3RHnTv35wpmCnuuILczGyl0CWgkBykk75dT46U8RSKZlWzm\r\ndumnxexIi31A5a/9lvhz+2nbzMfChGC94MAea+eJQDSQ/iAvkJUS702mY5/t\r\n+kVOZZW5H6WcEH7TUkEshlygVPG3Iw3db+WxvKi3yaTy4z+x9DnWIeeJh+RO\r\nBAPoF6U88+XpBnVcInx9SoPVRu0IlXTkYmdp425qPG7WJUjnXsKk/Yw5q84t\r\neS7MwPpk9IKCM7F5q35TJsFklCtkwoA3AXNC8wumsiGckOicBrFiT2QBRdQ7\r\niW7HvJcxLKzyBRZT1gKcqW7Ru8op0ufLIs6TuJ52WEnlAIjDtORWLl8yulZ0\r\nfALMUjxYlLqvJKpUmsFYM/+Z/PN9aXhPZ/0sv4pKTpXDWl/TexV0fKaB6iZA\r\nMOzmYwvfGwU5+0Z37F1dkuwDYJSLrgj9cnlw22hos8n+yiMT43CvXplrz14C\r\n3v9LGJKOafNhMymMnY69LOMfH9jC25+Z8qgnGw4AIKDmCm9hNR9T8iePVPcD\r\ne8w6QibbmTJWeHSt19eC5wuLwOO1c4dZvbc=\r\n=/338\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"},"directories":{},"maintainers":[{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ml-direct_0.1.1_1663863012364_0.14908899652364083"},"_hasShrinkwrap":false},"0.1.3":{"name":"ml-direct","version":"0.1.3","description":"Direct - DIviding RECTangles optimization algorithm","main":"lib/index.js","module":"src/index.js","types":"ml-direct.d.ts","scripts":{"build":"cheminfo-build --entry src/index.js --root Direct","eslint":"eslint src","eslint-fix":"npm run eslint -- --fix","prepack":"rollup -c","prettier":"prettier --check src","prettier-write":"prettier --write src","test":"npm run test-only && npm run eslint && npm run prettier","test-only":"jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/mljs/direct.git"},"keywords":[],"author":{"name":"Wargner Moreno"},"license":"MIT","bugs":{"url":"https://github.com/mljs/direct/issues"},"homepage":"https://github.com/mljs/direct#readme","devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.21.2","cheminfo-build":"^1.2.0","eslint":"^8.36.0","eslint-config-cheminfo":"^8.2.0","esm":"^3.2.25","jest":"^29.5.0","jest-matcher-deep-close-to":"^3.0.2","prettier":"^2.8.7","rollup":"^3.20.2"},"dependencies":{"ml-matrix":"^6.10.4","ml-spectra-processing":"^12.0.0"},"gitHead":"e3e36fe9f46eba38f7964faf470ec580e2812c9b","_id":"ml-direct@0.1.3","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-3CFuHK4eJrBAiTK9bgwqN5rXr3X66ShC/Acx3+h26kk/aLpQxLRkZ5lPCC72HMG9hTtJIMoSlev8QYpXSBB3OA==","shasum":"b1b12c5ebdd681b6b559ec6f42b46f86c0c100ac","tarball":"https://registry.npmjs.org/ml-direct/-/ml-direct-0.1.3.tgz","fileCount":10,"unpackedSize":36671,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvBK7ooOl3Nvhs4E/J0Mg9WSGGbLrRgpDxiPIM1e28VAiAVD+LrYQ+WC+JsGZZrSzNe1tzLYRmB3rQPVrdlc1af2g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHbvoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1yQ//ZiV1sqic9i6FIlYRjMLvs69JZ2kNq5t7pHlnXoQvsYjFdjyj\r\nE5OhCWk4BSXyW/giguHup1nXwo2dQ1L9dBkj9PKqEz0MPfS4gXHZEPFAyEaA\r\n8bse1BAIbNChFnu4QGvzmCkYP4doyKbqx04aXcHovXS32CAF8CARRoVLA9Uu\r\niLWEE5JlQu4/lBVzHbkajuwMxpIjEHDMBdui2sM0BjMYFExr3fGOQ4HH8wJo\r\nETdU6IW2OMpExl6UFPoCy/bSSUqKdWPfB2aLqzk0tpJnU/Sqve1iwOMgQIaZ\r\nRi/5gWK/AaIqGUUytiUFobB6vgAc/+hrBpyrKGfQQZfdNfMPEdq8DiDBdgLu\r\n3hjKiSX9tOnIPLpPlQVpC/TrqGIL98xAACi/+l9Vlb7K6bddB93Uf8sTetkI\r\nyW68FGIVcxr2Qs0gr24+T5g7VKBQa7MxOdy5phBfDE7fQff5HoARfHCBHfl7\r\nO+WNgMJowZLpaBmrldamaLk58ITbNVRBzq7+mJe8JRkYc5Rb2u9OWyRrmFXh\r\n8N5Jn2fvZUV/DgdVpTDLHC2bYWdCDFgCjedl0wDTCO6xud05tMJGII5OkE6W\r\nHoW7WEyHNTRwzRYq7Xp/oUxF+H9wbDeYpFN30ROlzT2vhJ2j4byQuTKo9A9U\r\nxQXIEu3fnniZx0BXc/4fjr6YCRx5vsAQLSw=\r\n=t7uC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"},"directories":{},"maintainers":[{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ml-direct_0.1.3_1679670248054_0.7122276930354041"},"_hasShrinkwrap":false},"1.0.0":{"name":"ml-direct","version":"1.0.0","description":"Direct - DIviding RECTangles optimization algorithm","main":"lib/index.js","module":"src/index.js","types":"ml-direct.d.ts","scripts":{"build":"cheminfo-build --entry src/index.js --root Direct","eslint":"eslint src","eslint-fix":"npm run eslint -- --fix","prepack":"rollup -c","prettier":"prettier --check src","prettier-write":"prettier --write src","test":"npm run test-only && npm run eslint && npm run prettier","test-only":"jest --coverage"},"repository":{"type":"git","url":"git+https://github.com/mljs/direct.git"},"keywords":[],"author":{"name":"Wargner Moreno"},"license":"MIT","bugs":{"url":"https://github.com/mljs/direct/issues"},"homepage":"https://github.com/mljs/direct#readme","devDependencies":{"@babel/plugin-transform-modules-commonjs":"^7.23.3","cheminfo-build":"^1.2.0","eslint":"^8.57.0","eslint-config-cheminfo":"^9.2.0","esm":"^3.2.25","jest":"^29.7.0","jest-matcher-deep-close-to":"^3.0.2","prettier":"^3.2.5","rollup":"^4.12.1"},"dependencies":{"ml-matrix":"^6.11.0","ml-spectra-processing":"^14.2.0"},"_id":"ml-direct@1.0.0","gitHead":"df5f767f5eab39168840b84fcbc56ae827f2963a","_nodeVersion":"20.11.1","_npmVersion":"10.2.4","dist":{"integrity":"sha512-DyynbcLIHGCRYiJNRW6qeWpOyV/SCYwSzYDN0VP72ucIx0jn8H4GYKRTY94e0Gk+yKlOjdu3GSNY/j6nxdl9YA==","shasum":"fcf1f943f300825bb83af136ce9aaf310ab44d7e","tarball":"https://registry.npmjs.org/ml-direct/-/ml-direct-1.0.0.tgz","fileCount":10,"unpackedSize":36631,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICJbmV9fgji7toyBl/GxPBio4pEd8N79h34R6wIC6w7LAiEAgl0Xu9pK4mRlUYIBMZrR8bIh+NWpNSXg4UoBkIPuHcQ="}]},"_npmUser":{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"},"directories":{},"maintainers":[{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ml-direct_1.0.0_1709820878305_0.5513942021155123"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-31T06:27:06.615Z","0.0.1":"2020-10-31T06:27:06.724Z","modified":"2024-03-07T14:14:38.932Z","0.1.0":"2020-11-06T19:23:04.011Z","0.1.1":"2022-09-22T16:10:12.530Z","0.1.3":"2023-03-24T15:04:08.238Z","1.0.0":"2024-03-07T14:14:38.510Z"},"maintainers":[{"name":"mljs-bot","email":"bot+npm-mljs@zakodium.com"}],"description":"Direct - DIviding RECTangles optimization algorithm","homepage":"https://github.com/mljs/direct#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/mljs/direct.git"},"author":{"name":"Wargner Moreno"},"bugs":{"url":"https://github.com/mljs/direct/issues"},"license":"MIT","readme":"# ml-direct\n\n[![NPM version][npm-image]][npm-url]\n[![build status][ci-image]][ci-url]\n[![npm download][download-image]][download-url]\n\n# Direct - DIviding RECTangles algorithm.\n\nThe algorithm is intended to minimize real valued multivariate scalar fields over a hyper-rectangular region of N, theoretically the only prerequisite to achieve convergence is that the function must be continuous in the domain or at least continuous over a neighborhood of the global minimum.\n\n## Advanced example\n\n```js\nimport direct from 'ml-direct';\n\nconst options = {\n  iterations: 50,\n};\n\nconst lowerBoundaries = [-1, -1.5];\nconst upperBoundaries = [2, 6];\n\nconst predicted = direct(griewank, lowerBoundaries, upperBoundaries, options);\n\nfunction griewank(x) {\n  let d = x.length;\n  let s = 0;\n  let p = 1;\n  for (let i = 0; i < d; i++) {\n    s += Math.pow(x[i], 2) / Math.sqrt(4000);\n    p *= Math.cos(x[i] / Math.sqrt(i + 1));\n  }\n  let result = s - p + 1;\n  return result;\n}\n\n// predicted.minFunctionValue = 0;\n// predicted.optima[0] = [0, 0]; This are the points where the function has minimum value\n```\n\n<p align=\"center\">\n  <img src=\"image/griewandContourplotDirect.png\">\n</p>\n\n<p align=\"center\">\n  A tool for global optimization of real valued functions .\n</p>\n\n## Installation\n\n`$ npm i ml-direct`\n\n## Usage\n\n```js\nimport direct from 'ml-direct';\n\nconst options = {\n  iterations: 25,\n};\n\n// for x we explore values between -5 and 4\n// for y we explore values between -2 and 3\n\nconst lowerBoundaries = [-5, -2];\nconst upperBoundaries = [4, 3];\n\nconst quadratic = function (parameters) {\n  let [x, y] = parameters;\n  return Math.pow(x, 2) + Math.pow(y, 2);\n};\n\nconst predicted = direct(quadratic, lowerBoundaries, upperBoundaries, options);\n\n// predicted.minFunctionValue = 0;\n// predicted.optima[0] = [0, 0];\n```\n\n## [API Documentation](https://mljs.github.io/direct/)\n\n## References\n\n- Jones, D. R., Perttunen, C. D., & Stuckman, B. E. (1993). Lipschitzian optimization without the Lipschitz constant. Journal of optimization Theory and Applications, 79(1), 157-181.\n\n- Björkman, M., & Holmström, K. (1999). Global optimization using the DIRECT algorithm in Matlab.\n\n- Preparata, F. P., & Shamos, M. I. (2012). Computational geometry: an introduction. Springer Science & Business Media.\n\n## License\n\n[MIT](./LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/ml-direct.svg\n[npm-url]: https://www.npmjs.com/package/ml-direct\n[ci-image]: https://github.com/mljs/direct/workflows/Node.js%20CI/badge.svg?branch=main\n[ci-url]: https://github.com/mljs/direct/actions?query=workflow%3A%22Node.js+CI%22\n[download-image]: https://img.shields.io/npm/dm/ml-direct.svg\n[download-url]: https://www.npmjs.com/package/ml-direct\n","readmeFilename":"README.md"}